diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2022-01-18 16:15:37 +0100 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2022-01-18 16:15:37 +0100 |
commit | ebdb2b9151b27a338dab6035d01c7e3c244fe5af (patch) | |
tree | f759f6bef2aaf64499d96e673995be3795a039c4 /config-model/src/main | |
parent | 6de3a640675601bfaf33d1a0bf01358fdbb5990b (diff) |
Validate repositories in pom.xml
Diffstat (limited to 'config-model/src/main')
-rw-r--r-- | config-model/src/main/java/com/yahoo/vespa/model/application/validation/BundleValidator.java | 18 |
1 files changed, 18 insertions, 0 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 474043548db..922e4115177 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 @@ -157,6 +157,7 @@ public class BundleValidator extends Validator { 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) { @@ -179,6 +180,23 @@ public class BundleValidator extends Validator { }); } + private static void validateRepositories(DeployLogger deployLogger, String jarFilename, Document pom) throws XPathExpressionException { + forEachPomXmlElement(pom, "pluginRepositories/pluginRepository", + repository -> validateRepository(deployLogger, jarFilename, "pluginRepositories", repository)); + forEachPomXmlElement(pom, "repositories/repository", + repository -> validateRepository(deployLogger, jarFilename, "repositories", repository)); + } + + private static void validateRepository(DeployLogger deployLogger, String jarFilename, String parentElementName, + Element element) { + String url = element.getElementsByTagName("url").item(0).getTextContent(); + if (url.contains("vespa-maven-libs-release-local")) { + deployLogger.logApplicationPackage(Level.WARNING, + String.format("<%s> in pom.xml of '%s' uses deprecated Maven repository '%s'.\n See announcement.", + parentElementName, jarFilename, url)); + } + } + private static void forEachPomXmlElement(Document pom, String xpath, Consumer<Element> consumer) throws XPathExpressionException { NodeList dependencies = (NodeList) XPathFactory.newDefaultInstance().newXPath() .compile("/project/" + xpath) |