From 024b3bae8aa660bc4503b7aa36d788a08f833460 Mon Sep 17 00:00:00 2001 From: Billie Rinaldi Date: Tue, 12 Mar 2019 11:48:55 -0700 Subject: [PATCH] Revert "YARN-9255. Improve recommend applications order and fix findbugs warnings. Contributed by Eric Yang" This reverts commit aab7b77536ef3feaead85106de85d628fcfebcb1. --- .../application/AppCatalogSolrClient.java | 65 +++---------------- .../yarn/appcatalog/model/AppDetails.java | 12 ++-- .../yarn/appcatalog/model/Application.java | 22 ------- .../application/TestAppCatalogSolrClient.java | 22 +------ 4 files changed, 18 insertions(+), 103 deletions(-) diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-catalog/hadoop-yarn-applications-catalog-webapp/src/main/java/org/apache/hadoop/yarn/appcatalog/application/AppCatalogSolrClient.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-catalog/hadoop-yarn-applications-catalog-webapp/src/main/java/org/apache/hadoop/yarn/appcatalog/application/AppCatalogSolrClient.java index f3532ae89d..1397722acb 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-catalog/hadoop-yarn-applications-catalog-webapp/src/main/java/org/apache/hadoop/yarn/appcatalog/application/AppCatalogSolrClient.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-catalog/hadoop-yarn-applications-catalog-webapp/src/main/java/org/apache/hadoop/yarn/appcatalog/application/AppCatalogSolrClient.java @@ -38,7 +38,6 @@ import org.apache.commons.logging.LogFactory; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrQuery; -import org.apache.solr.client.solrj.SolrQuery.ORDER; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.HttpSolrClient; import org.apache.solr.client.solrj.response.QueryResponse; @@ -65,16 +64,12 @@ public AppCatalogSolrClient() { Properties properties = new Properties(); try { properties.load(input); - setSolrUrl(properties.getProperty("solr_url")); + urlString = properties.getProperty("solr_url"); } catch (IOException e) { LOG.error("Error reading appcatalog configuration: ", e); } } - private synchronized static void setSolrUrl(String url) { - urlString = url; - } - public SolrClient getSolrClient() { return new HttpSolrClient.Builder(urlString).build(); } @@ -84,7 +79,6 @@ public List getRecommendedApps() { SolrClient solr = getSolrClient(); SolrQuery query = new SolrQuery(); query.setQuery("*:*"); - query.setSort("download_i", ORDER.desc); query.setFilterQueries("type_s:AppStoreEntry"); query.setRows(40); QueryResponse response; @@ -101,8 +95,8 @@ public List getRecommendedApps() { if (d.get("icon_s")!=null) { entry.setIcon(d.get("icon_s").toString()); } - entry.setLike(Integer.parseInt(d.get("like_i").toString())); - entry.setDownload(Integer.parseInt(d.get("download_i").toString())); + entry.setLike(Integer.valueOf(d.get("like_i").toString())); + entry.setDownload(Integer.valueOf(d.get("download_i").toString())); apps.add(entry); } } catch (SolrServerException | IOException e) { @@ -134,8 +128,8 @@ public List search(String keyword) { entry.setOrg(d.get("org_s").toString()); entry.setName(d.get("name_s").toString()); entry.setDesc(d.get("desc_s").toString()); - entry.setLike(Integer.parseInt(d.get("like_i").toString())); - entry.setDownload(Integer.parseInt(d.get("download_i").toString())); + entry.setLike(Integer.valueOf(d.get("like_i").toString())); + entry.setDownload(Integer.valueOf(d.get("download_i").toString())); apps.add(entry); } } catch (SolrServerException | IOException e) { @@ -195,8 +189,8 @@ public AppStoreEntry findAppStoreEntry(String id) { entry.setOrg(d.get("org_s").toString()); entry.setName(d.get("name_s").toString()); entry.setDesc(d.get("desc_s").toString()); - entry.setLike(Integer.parseInt(d.get("like_i").toString())); - entry.setDownload(Integer.parseInt(d.get("download_i").toString())); + entry.setLike(Integer.valueOf(d.get("like_i").toString())); + entry.setDownload(Integer.valueOf(d.get("download_i").toString())); Service yarnApp = mapper.readValue(d.get("yarnfile_s").toString(), Service.class); String name; @@ -269,8 +263,8 @@ public void deployApp(String id, Service service) throws SolrServerException, entry.setOrg(d.get("org_s").toString()); entry.setName(d.get("name_s").toString()); entry.setDesc(d.get("desc_s").toString()); - entry.setLike(Integer.parseInt(d.get("like_i").toString())); - entry.setDownload(Integer.parseInt(d.get("download_i").toString())); + entry.setLike(Integer.valueOf(d.get("like_i").toString())); + entry.setDownload(Integer.valueOf(d.get("download_i").toString())); download = entry.getDownload() + 1; // Update download count @@ -309,8 +303,7 @@ private SolrInputDocument incrementDownload(SolrDocument doc, s.addField(name, doc.getFieldValues(name)); } } - download++; - s.setField("download_i", download); + s.setField("download_i", download++); return s; } @@ -363,42 +356,4 @@ public void register(Application app) throws IOException { } } - protected void register(AppStoreEntry app) throws IOException { - Collection docs = new HashSet(); - SolrClient solr = getSolrClient(); - ObjectMapper mapper = new ObjectMapper(); - mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - try { - SolrInputDocument buffer = new SolrInputDocument(); - buffer.setField("id", java.util.UUID.randomUUID().toString() - .substring(0, 11)); - buffer.setField("org_s", app.getOrg()); - buffer.setField("name_s", app.getName()); - buffer.setField("desc_s", app.getDesc()); - if (app.getIcon() != null) { - buffer.setField("icon_s", app.getIcon()); - } - buffer.setField("type_s", "AppStoreEntry"); - buffer.setField("like_i", app.getLike()); - buffer.setField("download_i", app.getDownload()); - - // Keep only YARN data model for yarnfile field - String yarnFile = mapper.writeValueAsString(app); - LOG.info("app:"+yarnFile); - Service yarnApp = mapper.readValue(yarnFile, Service.class); - buffer.setField("yarnfile_s", mapper.writeValueAsString(yarnApp)); - - docs.add(buffer); - // Commit Solr changes. - UpdateResponse detailsResponse = solr.add(docs); - if (detailsResponse.getStatus() != 0) { - throw new IOException("Unable to register application " + - "in Application Store."); - } - solr.commit(); - } catch (SolrServerException | IOException e) { - throw new IOException("Unable to register application " + - "in Application Store. "+ e.getMessage()); - } - } } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-catalog/hadoop-yarn-applications-catalog-webapp/src/main/java/org/apache/hadoop/yarn/appcatalog/model/AppDetails.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-catalog/hadoop-yarn-applications-catalog-webapp/src/main/java/org/apache/hadoop/yarn/appcatalog/model/AppDetails.java index d7168fc7ef..42012cfb81 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-catalog/hadoop-yarn-applications-catalog-webapp/src/main/java/org/apache/hadoop/yarn/appcatalog/model/AppDetails.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-catalog/hadoop-yarn-applications-catalog-webapp/src/main/java/org/apache/hadoop/yarn/appcatalog/model/AppDetails.java @@ -51,26 +51,26 @@ public void setVersion(String version) { } public String[] getPorts() { - return ports.clone(); + return ports; } public void setPorts(String[] ports2) { - this.ports = ports2.clone(); + this.ports = ports2; } public String[] getVolumes() { - return volumes.clone(); + return volumes; } public void setVolumes(String[] volumes) { - this.volumes = volumes.clone(); + this.volumes = volumes; } public String[] getEnv() { - return env.clone(); + return env; } public void setEnv(String[] env) { - this.env = env.clone(); + this.env = env; } } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-catalog/hadoop-yarn-applications-catalog-webapp/src/main/java/org/apache/hadoop/yarn/appcatalog/model/Application.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-catalog/hadoop-yarn-applications-catalog-webapp/src/main/java/org/apache/hadoop/yarn/appcatalog/model/Application.java index c99104a33a..dbc31b147e 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-catalog/hadoop-yarn-applications-catalog-webapp/src/main/java/org/apache/hadoop/yarn/appcatalog/model/Application.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-catalog/hadoop-yarn-applications-catalog-webapp/src/main/java/org/apache/hadoop/yarn/appcatalog/model/Application.java @@ -18,8 +18,6 @@ package org.apache.hadoop.yarn.appcatalog.model; -import java.util.Objects; - import javax.xml.bind.annotation.XmlRootElement; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; @@ -66,24 +64,4 @@ public void setIcon(String icon) { this.icon = icon; } - @Override - public boolean equals(final Object obj) { - if (obj == this) { - return true; - } else if ((obj instanceof Application)) { - if (((Application) obj).getName().equals(this.getName()) - && ((Application) obj).getVersion().equals(this.getVersion()) - && ((Application) obj).getOrganization() - .equals(this.getOrganization())) { - return true; - } - } - return false; - } - - @Override - public int hashCode() { - return Objects - .hash(this.getName() + this.getVersion() + this.getOrganization()); - } } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-catalog/hadoop-yarn-applications-catalog-webapp/src/test/java/org/apache/hadoop/yarn/appcatalog/application/TestAppCatalogSolrClient.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-catalog/hadoop-yarn-applications-catalog-webapp/src/test/java/org/apache/hadoop/yarn/appcatalog/application/TestAppCatalogSolrClient.java index 16bf7fbb7c..a43e0d4121 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-catalog/hadoop-yarn-applications-catalog-webapp/src/test/java/org/apache/hadoop/yarn/appcatalog/application/TestAppCatalogSolrClient.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-catalog/hadoop-yarn-applications-catalog-webapp/src/test/java/org/apache/hadoop/yarn/appcatalog/application/TestAppCatalogSolrClient.java @@ -104,27 +104,9 @@ public void testNotFoundSearch() throws Exception { @Test public void testGetRecommendedApps() throws Exception { - AppStoreEntry example = new AppStoreEntry(); - example.setOrg("jenkins-ci.org"); - example.setName("jenkins"); - example.setDesc("World leading open source automation system."); - example.setIcon("/css/img/feather.png"); - example.setDownload(100); - spy.register(example); - AppStoreEntry example2 = new AppStoreEntry(); - example2.setOrg("Apache"); - example2.setName("httpd"); - example2.setDesc("Apache webserver"); - example2.setIcon("/css/img/feather.png"); - example2.setDownload(1); - spy.register(example2); + List expected = spy.getRecommendedApps(); List actual = spy.getRecommendedApps(); - long previous = 1000L; - for (AppStoreEntry app: actual) { - assertTrue("Recommend app is not sort by download count.", - previous > app.getDownload()); - previous = app.getDownload(); - } + assertEquals(expected, actual); } }