diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2022-01-18 16:19:03 +0100 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2022-01-18 16:19:03 +0100 |
commit | 5baecf63ad51430f4458f6594822ed3143dc99d0 (patch) | |
tree | b6674254818a9ad69e591b1ad3e5f59b91c5c811 | |
parent | ebdb2b9151b27a338dab6035d01c7e3c244fe5af (diff) |
Make some bundle validations enabled for hosted only
2 files changed, 20 insertions, 18 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/BundleValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/BundleValidator.java index 922e4115177..fe5ffb4e544 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/BundleValidator.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/BundleValidator.java @@ -60,7 +60,7 @@ public class BundleValidator extends Validator { DeployLogger deployLogger = deployState.getDeployLogger(); deployLogger.log(Level.FINE, String.format("Validating bundle at '%s'", path)); JarFile jarFile = new JarFile(app.getFileReference(path)); - validateJarFile(deployLogger, jarFile); + validateJarFile(deployLogger, deployState.isHosted(), jarFile); } catch (IOException e) { throw new IllegalArgumentException( "Failed to validate JAR file '" + path.last() + "'", e); @@ -68,7 +68,7 @@ public class BundleValidator extends Validator { } } - void validateJarFile(DeployLogger deployLogger, JarFile jarFile) throws IOException { + void validateJarFile(DeployLogger deployLogger, boolean isHosted, JarFile jarFile) throws IOException { Manifest manifest = jarFile.getManifest(); String filename = Paths.get(jarFile.getName()).getFileName().toString(); if (manifest == null) { @@ -76,7 +76,7 @@ public class BundleValidator extends Validator { } validateManifest(deployLogger, filename, manifest); getPomXmlContent(deployLogger, jarFile) - .ifPresent(pomXml -> validatePomXml(deployLogger, filename, pomXml)); + .ifPresent(pomXml -> validatePomXml(deployLogger, isHosted, filename, pomXml)); } private void validateManifest(DeployLogger deployLogger, String filename, Manifest mf) { @@ -152,16 +152,18 @@ public class BundleValidator extends Validator { }); } - private void validatePomXml(DeployLogger deployLogger, String jarFilename, String pomXmlContent) { - try { - Document pom = DocumentBuilderFactory.newDefaultInstance().newDocumentBuilder() - .parse(new InputSource(new StringReader(pomXmlContent))); - validateDependencies(deployLogger, jarFilename, pom); - validateRepositories(deployLogger, jarFilename, pom); - } catch (ParserConfigurationException e) { - throw new RuntimeException(e); - } catch (Exception e) { - deployLogger.log(Level.INFO, String.format("Unable to parse pom.xml from %s", jarFilename)); + private void validatePomXml(DeployLogger deployLogger, boolean isHosted, String jarFilename, String pomXmlContent) { + if (isHosted) { + try { + Document pom = DocumentBuilderFactory.newDefaultInstance().newDocumentBuilder() + .parse(new InputSource(new StringReader(pomXmlContent))); + validateDependencies(deployLogger, jarFilename, pom); + validateRepositories(deployLogger, jarFilename, pom); + } catch (ParserConfigurationException e) { + throw new RuntimeException(e); + } catch (Exception e) { + deployLogger.log(Level.INFO, String.format("Unable to parse pom.xml from %s", jarFilename)); + } } } diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/BundleValidatorTest.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/BundleValidatorTest.java index b73b50e82a5..eeae7dfe0ee 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/BundleValidatorTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/BundleValidatorTest.java @@ -29,7 +29,7 @@ public class BundleValidatorTest { // Valid jar file JarFile ok = createTemporaryJarFile("ok"); BundleValidator bundleValidator = new BundleValidator(); - bundleValidator.validateJarFile(new BaseDeployLogger(), ok); + bundleValidator.validateJarFile(new BaseDeployLogger(), false, ok); // No manifest validateWithException("nomanifest", "Non-existing or invalid manifest in nomanifest.jar"); @@ -39,7 +39,7 @@ public class BundleValidatorTest { try { JarFile jarFile = createTemporaryJarFile(jarName); BundleValidator bundleValidator = new BundleValidator(); - bundleValidator.validateJarFile(new BaseDeployLogger(), jarFile); + bundleValidator.validateJarFile(new BaseDeployLogger(), false, jarFile); assert (false); } catch (IllegalArgumentException e) { assertEquals(e.getMessage(), exceptionMessage); @@ -52,7 +52,7 @@ public class BundleValidatorTest { DeployLogger logger = createDeployLogger(buffer); JarFile jarFile = createTemporaryJarFile("snapshot_bundle"); - new BundleValidator().validateJarFile(logger, jarFile); + new BundleValidator().validateJarFile(logger, false, jarFile); assertTrue(buffer.toString().contains("Deploying snapshot bundle")); } @@ -62,7 +62,7 @@ public class BundleValidatorTest { DeployLogger logger = createDeployLogger(buffer); BundleValidator validator = new BundleValidator(); JarFile jarFile = createTemporaryJarFile("import-warnings"); - validator.validateJarFile(logger, jarFile); + validator.validateJarFile(logger, true, jarFile); assertThat(buffer.toString()) .contains("For JAR file 'import-warnings.jar': \n" + "Manifest imports the following Java packages from 'org.json:json': [org.json]. \n" + @@ -75,7 +75,7 @@ public class BundleValidatorTest { DeployLogger logger = createDeployLogger(buffer); BundleValidator validator = new BundleValidator(); JarFile jarFile = createTemporaryJarFile("pom-xml-warnings"); - validator.validateJarFile(logger, jarFile); + validator.validateJarFile(logger, true, jarFile); String output = buffer.toString(); assertThat(output) .contains("The pom.xml of bundle 'pom-xml-warnings.jar' includes a dependency to the artifact " + |