Return-Path: X-Original-To: apmail-ambari-commits-archive@www.apache.org Delivered-To: apmail-ambari-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id C034218764 for ; Sat, 20 Jun 2015 21:14:29 +0000 (UTC) Received: (qmail 29067 invoked by uid 500); 20 Jun 2015 21:14:29 -0000 Delivered-To: apmail-ambari-commits-archive@ambari.apache.org Received: (qmail 29037 invoked by uid 500); 20 Jun 2015 21:14:29 -0000 Mailing-List: contact commits-help@ambari.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: ambari-dev@ambari.apache.org Delivered-To: mailing list commits@ambari.apache.org Received: (qmail 29028 invoked by uid 99); 20 Jun 2015 21:14:29 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 20 Jun 2015 21:14:29 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 8BCBDE362D; Sat, 20 Jun 2015 21:14:29 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: tbeerbower@apache.org To: commits@ambari.apache.org Message-Id: X-Mailer: ASF-Git Admin Mailer Subject: ambari git commit: AMBARI-12048 - Views : Error deploying all non-system views (tbeerbower) Date: Sat, 20 Jun 2015 21:14:29 +0000 (UTC) Repository: ambari Updated Branches: refs/heads/branch-2.1 61a108799 -> d26a505d4 AMBARI-12048 - Views : Error deploying all non-system views (tbeerbower) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/d26a505d Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/d26a505d Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/d26a505d Branch: refs/heads/branch-2.1 Commit: d26a505d4de8b95ab93270121c35b54f9729fa74 Parents: 61a1087 Author: tbeerbower Authored: Sat Jun 20 17:12:42 2015 -0400 Committer: tbeerbower Committed: Sat Jun 20 17:14:11 2015 -0400 ---------------------------------------------------------------------- .../ambari/server/orm/entities/ViewEntity.java | 15 +++---- .../ambari/server/view/ViewArchiveUtility.java | 46 +++++++++----------- .../apache/ambari/server/view/ViewRegistry.java | 13 +++--- .../ambari/server/view/ViewRegistryTest.java | 46 ++++++++++---------- 4 files changed, 55 insertions(+), 65 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/d26a505d/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ViewEntity.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ViewEntity.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ViewEntity.java index c7630ed..29dc2a7 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ViewEntity.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ViewEntity.java @@ -327,6 +327,11 @@ public class ViewEntity implements ViewDefinition { return statusDetail; } + @Override + public String getMask() { + return mask; + } + // ----- ViewEntity -------------------------------------------------------- @@ -798,16 +803,6 @@ public class ViewEntity implements ViewDefinition { } /** - * Get the mask class name. - * - * @return the mask class name. - */ - @Override - public String getMask() { - return mask; - } - - /** * Determine whether or not the view is a system view. * * @return true if the view is a system view http://git-wip-us.apache.org/repos/asf/ambari/blob/d26a505d/ambari-server/src/main/java/org/apache/ambari/server/view/ViewArchiveUtility.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/view/ViewArchiveUtility.java b/ambari-server/src/main/java/org/apache/ambari/server/view/ViewArchiveUtility.java index 0472756..d1ead32 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/view/ViewArchiveUtility.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/view/ViewArchiveUtility.java @@ -34,7 +34,6 @@ import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; -import java.net.MalformedURLException; import java.net.URL; import java.net.URLClassLoader; import java.util.jar.JarInputStream; @@ -64,26 +63,27 @@ public class ViewArchiveUtility { * @throws JAXBException if xml is malformed */ public ViewConfig getViewConfigFromArchive(File archiveFile) - throws MalformedURLException, JAXBException, IOException { - ViewConfig res = null; - InputStream configStream = null; - try { + throws JAXBException, IOException { ClassLoader cl = URLClassLoader.newInstance(new URL[]{archiveFile.toURI().toURL()}); - configStream = cl.getResourceAsStream(VIEW_XML); + InputStream configStream = cl.getResourceAsStream(VIEW_XML); if (configStream == null) { configStream = cl.getResourceAsStream(WEB_INF_VIEW_XML); + if (configStream == null) { + throw new IllegalStateException( + String.format("Archive %s doesn't contain a view descriptor.", archiveFile.getAbsolutePath())); + } } - JAXBContext jaxbContext = JAXBContext.newInstance(ViewConfig.class); - Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); - res = (ViewConfig) jaxbUnmarshaller.unmarshal(configStream); + try { + + JAXBContext jaxbContext = JAXBContext.newInstance(ViewConfig.class); + Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); + + return (ViewConfig) jaxbUnmarshaller.unmarshal(configStream); } finally { - if (configStream != null) { - configStream.close(); - } + configStream.close(); } - return res; } /** @@ -100,9 +100,6 @@ public class ViewArchiveUtility { */ public ViewConfig getViewConfigFromExtractedArchive(String archivePath, boolean validate) throws JAXBException, IOException, SAXException { - ViewConfig res = null; - InputStream configStream = null; - try { File configFile = new File(archivePath + File.separator + VIEW_XML); if (!configFile.exists()) { @@ -113,17 +110,16 @@ public class ViewArchiveUtility { validateConfig(new FileInputStream(configFile)); } - configStream = new FileInputStream(configFile); - JAXBContext jaxbContext = JAXBContext.newInstance(ViewConfig.class); - Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); - res = (ViewConfig) jaxbUnmarshaller.unmarshal(configStream); + InputStream configStream = new FileInputStream(configFile); + try { + + JAXBContext jaxbContext = JAXBContext.newInstance(ViewConfig.class); + Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); + + return (ViewConfig) jaxbUnmarshaller.unmarshal(configStream); } finally { - if (configStream != null) { - configStream.close(); - } + configStream.close(); } - - return res; } /** http://git-wip-us.apache.org/repos/asf/ambari/blob/d26a505d/ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java b/ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java index 28016ea..29b9000 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java @@ -464,7 +464,7 @@ public class ViewRegistry { * Read all view archives. */ public void readViewArchives() { - readViewArchives(false, true, ALL_VIEWS_REG_EXP, true); + readViewArchives(false, true, ALL_VIEWS_REG_EXP); } /** @@ -473,7 +473,7 @@ public class ViewRegistry { * @param viewNameRegExp view name regular expression */ public void readViewArchives(String viewNameRegExp) { - readViewArchives(false, false, viewNameRegExp, false); + readViewArchives(false, false, viewNameRegExp); } /** @@ -1438,7 +1438,7 @@ public class ViewRegistry { // read the view archives. private void readViewArchives(boolean systemOnly, boolean useExecutor, - String viewNameRegExp, boolean removeUndeployed) { + String viewNameRegExp) { try { File viewDir = configuration.getViewsDir(); @@ -1535,17 +1535,16 @@ public class ViewRegistry { LOG.info("Reading view archive " + archiveFile + "."); try { + // extract the archive and get the class loader + ClassLoader cl = extractor.extractViewArchive(viewDefinition, archiveFile, extractedArchiveDirFile); ViewConfig viewConfig = archiveUtility.getViewConfigFromExtractedArchive(extractedArchiveDirPath, configuration.isViewValidationEnabled()); - if (viewConfig == null) { - setViewStatus(viewDefinition, ViewEntity.ViewStatus.ERROR, "View configuration not found"); - } viewDefinition.setConfiguration(viewConfig); if (checkViewVersions(viewDefinition, serverVersion)) { - setupViewDefinition(viewDefinition, extractor.extractViewArchive(viewDefinition, archiveFile, extractedArchiveDirFile)); + setupViewDefinition(viewDefinition, cl); Set instanceDefinitions = new HashSet(); http://git-wip-us.apache.org/repos/asf/ambari/blob/d26a505d/ambari-server/src/test/java/org/apache/ambari/server/view/ViewRegistryTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/view/ViewRegistryTest.java b/ambari-server/src/test/java/org/apache/ambari/server/view/ViewRegistryTest.java index 09df011..4d2c8e2 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/view/ViewRegistryTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/view/ViewRegistryTest.java @@ -108,19 +108,19 @@ import org.springframework.security.core.GrantedAuthority; */ public class ViewRegistryTest { - private static final String view_xml1 = "\n" + + private static final String VIEW_XML_1 = "\n" + " MY_VIEW\n" + " \n" + " 1.0.0\n" + ""; - private static final String view_xml2 = "\n" + + private static final String VIEW_XML_2 = "\n" + " MY_VIEW\n" + " \n" + " 2.0.0\n" + ""; - private static final String xml_valid_instance = "\n" + + private static final String XML_VALID_INSTANCE = "\n" + " MY_VIEW\n" + " \n" + " 1.0.0\n" + @@ -149,7 +149,7 @@ public class ViewRegistryTest { " \n" + ""; - private static final String xml_invalid_instance = "\n" + + private static final String XML_INVALID_INSTANCE = "\n" + " MY_VIEW\n" + " \n" + " 1.0.0\n" + @@ -597,7 +597,7 @@ public class ViewRegistryTest { TestListener listener = new TestListener(); registry.registerListener(listener, "MY_VIEW", "1.0.0"); - EventImpl event = EventImplTest.getEvent("MyEvent", Collections.emptyMap(), view_xml1); + EventImpl event = EventImplTest.getEvent("MyEvent", Collections.emptyMap(), VIEW_XML_1); registry.fireEvent(event); @@ -606,7 +606,7 @@ public class ViewRegistryTest { listener.clear(); // fire an event for a different view - event = EventImplTest.getEvent("MyEvent", Collections.emptyMap(), view_xml2); + event = EventImplTest.getEvent("MyEvent", Collections.emptyMap(), VIEW_XML_2); registry.fireEvent(event); @@ -615,7 +615,7 @@ public class ViewRegistryTest { // un-register the listener registry.unregisterListener(listener, "MY_VIEW", "1.0.0"); - event = EventImplTest.getEvent("MyEvent", Collections.emptyMap(), view_xml1); + event = EventImplTest.getEvent("MyEvent", Collections.emptyMap(), VIEW_XML_1); registry.fireEvent(event); @@ -629,7 +629,7 @@ public class ViewRegistryTest { TestListener listener = new TestListener(); registry.registerListener(listener, "MY_VIEW", null); // all versions of MY_VIEW - EventImpl event = EventImplTest.getEvent("MyEvent", Collections.emptyMap(), view_xml1); + EventImpl event = EventImplTest.getEvent("MyEvent", Collections.emptyMap(), VIEW_XML_1); registry.fireEvent(event); @@ -638,7 +638,7 @@ public class ViewRegistryTest { listener.clear(); // fire an event for a different view - event = EventImplTest.getEvent("MyEvent", Collections.emptyMap(), view_xml2); + event = EventImplTest.getEvent("MyEvent", Collections.emptyMap(), VIEW_XML_2); registry.fireEvent(event); @@ -649,13 +649,13 @@ public class ViewRegistryTest { // un-register the listener registry.unregisterListener(listener, "MY_VIEW", null); // all versions of MY_VIEW - event = EventImplTest.getEvent("MyEvent", Collections.emptyMap(), view_xml1); + event = EventImplTest.getEvent("MyEvent", Collections.emptyMap(), VIEW_XML_1); registry.fireEvent(event); Assert.assertNull(listener.getLastEvent()); - event = EventImplTest.getEvent("MyEvent", Collections.emptyMap(), view_xml2); + event = EventImplTest.getEvent("MyEvent", Collections.emptyMap(), VIEW_XML_2); registry.fireEvent(event); @@ -812,7 +812,7 @@ public class ViewRegistryTest { Configuration ambariConfig = new Configuration(properties); - ViewConfig config = ViewConfigTest.getConfig(xml_valid_instance); + ViewConfig config = ViewConfigTest.getConfig(XML_VALID_INSTANCE); ViewEntity viewEntity = getViewEntity(config, ambariConfig, getClass().getClassLoader(), ""); ViewInstanceEntity viewInstanceEntity = getViewInstanceEntity(viewEntity, config.getInstances().get(0)); ResourceTypeEntity resourceTypeEntity = new ResourceTypeEntity(); @@ -850,7 +850,7 @@ public class ViewRegistryTest { Configuration ambariConfig = new Configuration(properties); - ViewConfig config = ViewConfigTest.getConfig(xml_invalid_instance); + ViewConfig config = ViewConfigTest.getConfig(XML_INVALID_INSTANCE); ViewEntity viewEntity = getViewEntity(config, ambariConfig, getClass().getClassLoader(), ""); ViewInstanceEntity viewInstanceEntity = getViewInstanceEntity(viewEntity, config.getInstances().get(0)); @@ -878,7 +878,7 @@ public class ViewRegistryTest { Validator validator = createNiceMock(Validator.class); ValidationResult result = createNiceMock(ValidationResult.class); - ViewConfig config = ViewConfigTest.getConfig(xml_valid_instance); + ViewConfig config = ViewConfigTest.getConfig(XML_VALID_INSTANCE); ViewEntity viewEntity = getViewEntity(config, ambariConfig, getClass().getClassLoader(), ""); viewEntity.setValidator(validator); @@ -920,7 +920,7 @@ public class ViewRegistryTest { Validator validator = createNiceMock(Validator.class); ValidationResult result = createNiceMock(ValidationResult.class); - ViewConfig config = ViewConfigTest.getConfig(xml_valid_instance); + ViewConfig config = ViewConfigTest.getConfig(XML_VALID_INSTANCE); ViewEntity viewEntity = getViewEntity(config, ambariConfig, getClass().getClassLoader(), ""); viewEntity.setValidator(validator); @@ -957,7 +957,7 @@ public class ViewRegistryTest { Configuration ambariConfig = new Configuration(properties); - ViewConfig config = ViewConfigTest.getConfig(xml_valid_instance); + ViewConfig config = ViewConfigTest.getConfig(XML_VALID_INSTANCE); ViewEntity viewEntity = getViewEntity(config, ambariConfig, getClass().getClassLoader(), ""); ViewInstanceEntity viewInstanceEntity = getViewInstanceEntity(viewEntity, config.getInstances().get(0)); viewInstanceEntity.setViewName("BOGUS_VIEW"); @@ -984,7 +984,7 @@ public class ViewRegistryTest { Configuration ambariConfig = new Configuration(properties); - ViewConfig config = ViewConfigTest.getConfig(xml_valid_instance); + ViewConfig config = ViewConfigTest.getConfig(XML_VALID_INSTANCE); ViewEntity viewEntity = getViewEntity(config, ambariConfig, getClass().getClassLoader(), ""); ViewInstanceEntity viewInstanceEntity = getViewInstanceEntity(viewEntity, config.getInstances().get(0)); ViewInstanceEntity updateInstance = getViewInstanceEntity(viewEntity, config.getInstances().get(0)); @@ -1030,7 +1030,7 @@ public class ViewRegistryTest { Configuration ambariConfig = new Configuration(properties); - ViewConfig config = ViewConfigTest.getConfig(xml_valid_instance); + ViewConfig config = ViewConfigTest.getConfig(XML_VALID_INSTANCE); ViewEntity viewEntity = getViewEntity(config, ambariConfig, getClass().getClassLoader(), ""); ViewInstanceEntity viewInstanceEntity = getViewInstanceEntity(viewEntity, config.getInstances().get(0)); @@ -1052,7 +1052,7 @@ public class ViewRegistryTest { Configuration ambariConfig = new Configuration(new Properties()); - ViewConfig config = ViewConfigTest.getConfig(xml_valid_instance); + ViewConfig config = ViewConfigTest.getConfig(XML_VALID_INSTANCE); ViewEntity viewEntity = getViewEntity(config, ambariConfig, getClass().getClassLoader(), ""); ViewInstanceEntity viewInstanceEntity = getViewInstanceEntity(viewEntity, config.getInstances().get(0)); ResourceEntity resource = new ResourceEntity(); @@ -1100,8 +1100,8 @@ public class ViewRegistryTest { Configuration ambariConfig = new Configuration(properties); - ViewConfig config = ViewConfigTest.getConfig(xml_valid_instance); - ViewConfig invalidConfig = ViewConfigTest.getConfig(xml_invalid_instance); + ViewConfig config = ViewConfigTest.getConfig(XML_VALID_INSTANCE); + ViewConfig invalidConfig = ViewConfigTest.getConfig(XML_INVALID_INSTANCE); ViewEntity viewEntity = getViewEntity(config, ambariConfig, getClass().getClassLoader(), ""); ViewInstanceEntity viewInstanceEntity = getViewInstanceEntity(viewEntity, config.getInstances().get(0)); ViewInstanceEntity updateInstance = getViewInstanceEntity(viewEntity, invalidConfig.getInstances().get(0)); @@ -1134,7 +1134,7 @@ public class ViewRegistryTest { Validator validator = createNiceMock(Validator.class); ValidationResult result = createNiceMock(ValidationResult.class); - ViewConfig config = ViewConfigTest.getConfig(xml_valid_instance); + ViewConfig config = ViewConfigTest.getConfig(XML_VALID_INSTANCE); ViewEntity viewEntity = getViewEntity(config, ambariConfig, getClass().getClassLoader(), ""); viewEntity.setValidator(validator); ViewInstanceEntity viewInstanceEntity = getViewInstanceEntity(viewEntity, config.getInstances().get(0)); @@ -1177,7 +1177,7 @@ public class ViewRegistryTest { Validator validator = createNiceMock(Validator.class); ValidationResult result = createNiceMock(ValidationResult.class); - ViewConfig config = ViewConfigTest.getConfig(xml_valid_instance); + ViewConfig config = ViewConfigTest.getConfig(XML_VALID_INSTANCE); ViewEntity viewEntity = getViewEntity(config, ambariConfig, getClass().getClassLoader(), ""); viewEntity.setValidator(validator); ViewInstanceEntity viewInstanceEntity = getViewInstanceEntity(viewEntity, config.getInstances().get(0));