aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/vespa/model/application/validation/BundleValidator.java
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-11-28 16:16:39 +0100
committerGitHub <noreply@github.com>2022-11-28 16:16:39 +0100
commite5cb5862776f800d64fe95647456ee15de778fb3 (patch)
treeedc8b7f120a61a666ab0ad0734ca7d2cb9181b90 /config-model/src/main/java/com/yahoo/vespa/model/application/validation/BundleValidator.java
parent1626383a9d0a0e1ce584e7b2dcc8c59c3630dcd5 (diff)
Revert "Use a simple tokenizer and replace the larger than container-search [run-systemtest]"
Diffstat (limited to 'config-model/src/main/java/com/yahoo/vespa/model/application/validation/BundleValidator.java')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/BundleValidator.java13
1 files changed, 11 insertions, 2 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 299e91f8ea2..1e3b27bc2fa 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
@@ -1,6 +1,7 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.model.application.validation;
+import aQute.bnd.version.VersionRange;
import com.yahoo.config.model.deploy.DeployState;
import org.w3c.dom.Document;
@@ -62,10 +63,11 @@ public class BundleValidator extends AbstractBundleValidator {
private void validateImportedPackages(DeployState state, JarFile jar, Manifest manifest) {
Map<DeprecatedProvidedBundle, List<String>> deprecatedPackagesInUse = new HashMap<>();
- forEachImportPackage(manifest, (packageName) -> {
+ forEachImportPackage(manifest, (packageName, versionRange) -> {
for (DeprecatedProvidedBundle deprecatedBundle : DeprecatedProvidedBundle.values()) {
for (Predicate<String> matcher : deprecatedBundle.javaPackageMatchers) {
- if (matcher.test(packageName)) {
+ if (matcher.test(packageName)
+ && (versionRange == null || deprecatedBundle.versionDiscriminator.test(versionRange))) {
deprecatedPackagesInUse.computeIfAbsent(deprecatedBundle, __ -> new ArrayList<>())
.add(packageName);
}
@@ -89,15 +91,22 @@ public class BundleValidator extends AbstractBundleValidator {
final String name;
final Collection<Predicate<String>> javaPackageMatchers;
+ final Predicate<VersionRange> versionDiscriminator;
final String description;
+ DeprecatedProvidedBundle(String name, String description, Collection<String> javaPackagePatterns) {
+ this(name, description, __ -> true, javaPackagePatterns);
+ }
+
DeprecatedProvidedBundle(String name,
String description,
+ Predicate<VersionRange> versionDiscriminator,
Collection<String> javaPackagePatterns) {
this.name = name;
this.javaPackageMatchers = javaPackagePatterns.stream()
.map(s -> Pattern.compile(s).asMatchPredicate())
.collect(Collectors.toList());
+ this.versionDiscriminator = versionDiscriminator;
this.description = description;
}
}