summaryrefslogtreecommitdiffstats
path: root/vespa-enforcer-extensions
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@yahooinc.com>2022-11-02 11:30:31 +0100
committerBjørn Christian Seime <bjorncs@yahooinc.com>2022-11-02 14:02:46 +0100
commit9d828cfa1ac79eca4794cc3d4983ceffd4dcfbe6 (patch)
tree9c77579303ccc855f03765ffb627525583e37394 /vespa-enforcer-extensions
parent13a0217c1d9c12ef3294fd9829170ffa5a72e757 (diff)
Remove support for version ranges in EnforceDependencies rule
Diffstat (limited to 'vespa-enforcer-extensions')
-rw-r--r--vespa-enforcer-extensions/src/main/java/com/yahoo/vespa/maven/plugin/enforcer/EnforceDependencies.java23
-rw-r--r--vespa-enforcer-extensions/src/test/java/com/yahoo/vespa/maven/plugin/enforcer/EnforceDependenciesTest.java4
2 files changed, 7 insertions, 20 deletions
diff --git a/vespa-enforcer-extensions/src/main/java/com/yahoo/vespa/maven/plugin/enforcer/EnforceDependencies.java b/vespa-enforcer-extensions/src/main/java/com/yahoo/vespa/maven/plugin/enforcer/EnforceDependencies.java
index 154ba9db790..54ccac9d22a 100644
--- a/vespa-enforcer-extensions/src/main/java/com/yahoo/vespa/maven/plugin/enforcer/EnforceDependencies.java
+++ b/vespa-enforcer-extensions/src/main/java/com/yahoo/vespa/maven/plugin/enforcer/EnforceDependencies.java
@@ -2,10 +2,6 @@
package com.yahoo.vespa.maven.plugin.enforcer;
import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.versioning.ArtifactVersion;
-import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
-import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
-import org.apache.maven.artifact.versioning.VersionRange;
import org.apache.maven.enforcer.rule.api.EnforcerRule;
import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
@@ -104,7 +100,7 @@ public class EnforceDependencies implements EnforcerRule {
return children;
}
- // Similar rule matching to bannedDependencies
+ // Similar rule matching to bannedDependencies but without support for version ranges
private static boolean matches(Artifact dependency, String rule) throws EnforcerRuleException {
String[] segments = rule.split(":");
if (segments.length < 1 || segments.length > 6) throw new EnforcerRuleException("Invalid rule: " + rule);
@@ -120,22 +116,13 @@ public class EnforceDependencies implements EnforcerRule {
private static boolean segmentMatches(String value, String segmentPattern) {
String regex = segmentPattern
- .replace(".", "\\.").replace("*", ".*").replace(":", "\\:").replace('?', '.')
- .replace("[", "\\[").replace("]", "\\]").replace("(", "\\(").replace(")", "\\)");
+ .replace(".", "\\.").replace("*", ".*").replace(":", "\\:").replace('?', '.').replace("(", "\\(")
+ .replace(")", "\\)");
return Pattern.matches(regex, value);
}
- private static boolean versionMatches(String rawVersion, String segmentPattern) throws EnforcerRuleException {
- try {
- if (segmentMatches(rawVersion, segmentPattern)) return true;
- VersionRange allowedRange = VersionRange.createFromVersionSpec(segmentPattern);
- ArtifactVersion version = new DefaultArtifactVersion(rawVersion);
- ArtifactVersion recommended = allowedRange.getRecommendedVersion();
- if (recommended == null) return allowedRange.containsVersion(version);
- return recommended.compareTo(version) <= 0;
- } catch (InvalidVersionSpecificationException e) {
- throw new EnforcerRuleException(e.getMessage(), e);
- }
+ private static boolean versionMatches(String rawVersion, String segmentPattern) {
+ return segmentMatches(rawVersion, segmentPattern);
}
public void setAllowed(List<String> allowed) { this.allowedDependencies = allowed; }
diff --git a/vespa-enforcer-extensions/src/test/java/com/yahoo/vespa/maven/plugin/enforcer/EnforceDependenciesTest.java b/vespa-enforcer-extensions/src/test/java/com/yahoo/vespa/maven/plugin/enforcer/EnforceDependenciesTest.java
index 0dcbe595121..bd7989bd65b 100644
--- a/vespa-enforcer-extensions/src/test/java/com/yahoo/vespa/maven/plugin/enforcer/EnforceDependenciesTest.java
+++ b/vespa-enforcer-extensions/src/test/java/com/yahoo/vespa/maven/plugin/enforcer/EnforceDependenciesTest.java
@@ -70,7 +70,7 @@ class EnforceDependenciesTest {
Set<Artifact> dependencies = Set.of(
artifact("com.yahoo.vespa", "testutils", "8.0.0", "test"));
Set<String> rules = Set.of(
- "com.yahoo.vespa:testutils:[7.0.0]:jar:test");
+ "com.yahoo.vespa:testutils:7.0.0:jar:test");
EnforcerRuleException exception = assertThrows(
EnforcerRuleException.class,
() -> EnforceDependencies.validateDependencies(dependencies, rules, true));
@@ -80,7 +80,7 @@ class EnforceDependenciesTest {
Dependencies not matching any rule:
- com.yahoo.vespa:testutils:jar:8.0.0:test
Rules not matching any dependency:
- - com.yahoo.vespa:testutils:[7.0.0]:jar:test
+ - com.yahoo.vespa:testutils:7.0.0:jar:test
""";
assertEquals(expectedErrorMessage, exception.getMessage());
}