summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2022-01-18 16:19:03 +0100
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2022-01-18 16:19:03 +0100
commit5baecf63ad51430f4458f6594822ed3143dc99d0 (patch)
treeb6674254818a9ad69e591b1ad3e5f59b91c5c811
parentebdb2b9151b27a338dab6035d01c7e3c244fe5af (diff)
Make some bundle validations enabled for hosted only
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/BundleValidator.java28
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/application/validation/BundleValidatorTest.java10
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 " +