This is an automated email from the ASF dual-hosted git repository.

kwin pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-analyser.git


The following commit(s) were added to refs/heads/master by this push:
     new 16834bb  SLING-10285 fix classifier matching
16834bb is described below

commit 16834bb6ef213708f794dd87713e13c1f8dfc8bc
Author: Konrad Windszus <[email protected]>
AuthorDate: Mon Apr 12 13:08:39 2021 +0200

    SLING-10285 fix classifier matching
---
 .../feature/analyser/task/impl/CheckFeatureId.java |  3 +-
 .../analyser/task/impl/CheckFeatureIdTest.java     | 34 +++++++++++++---------
 2 files changed, 23 insertions(+), 14 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/feature/analyser/task/impl/CheckFeatureId.java 
b/src/main/java/org/apache/sling/feature/analyser/task/impl/CheckFeatureId.java
index 88bf364..638f524 100644
--- 
a/src/main/java/org/apache/sling/feature/analyser/task/impl/CheckFeatureId.java
+++ 
b/src/main/java/org/apache/sling/feature/analyser/task/impl/CheckFeatureId.java
@@ -84,7 +84,8 @@ public class CheckFeatureId implements AnalyserTask {
             return false;
         }
         // classifier is optional
-        if (expectedArtifactId.getClassifier() != null && 
!expectedArtifactId.getClassifier().equals(artifactId.getClassifier()) && 
!expectedArtifactId.getClassifier().equals("*")) {
+        if ( (expectedArtifactId.getClassifier() == null && 
artifactId.getClassifier() != null) || 
+             (expectedArtifactId.getClassifier() != null && 
!expectedArtifactId.getClassifier().equals(artifactId.getClassifier()) && 
!expectedArtifactId.getClassifier().equals("*"))) {
             return false;
         }
         return true;
diff --git 
a/src/test/java/org/apache/sling/feature/analyser/task/impl/CheckFeatureIdTest.java
 
b/src/test/java/org/apache/sling/feature/analyser/task/impl/CheckFeatureIdTest.java
index 6045c3e..38a946c 100644
--- 
a/src/test/java/org/apache/sling/feature/analyser/task/impl/CheckFeatureIdTest.java
+++ 
b/src/test/java/org/apache/sling/feature/analyser/task/impl/CheckFeatureIdTest.java
@@ -65,19 +65,27 @@ public class CheckFeatureIdTest {
 
     @Test
     public void checkMatches() {
-        
assertTrue(CheckFeatureId.matches(ArtifactId.parse("myGroupId:myArtifactId:jar:myClassifier:1.0.0"),
 ArtifactId.parse("*:myArtifactId:1.0.0")));
-        
assertTrue(CheckFeatureId.matches(ArtifactId.parse("myGroupId:myArtifactId:jar:myClassifier:1.0.0"),
 ArtifactId.parse("myGroupId:*:1.0.0")));
-        
assertTrue(CheckFeatureId.matches(ArtifactId.parse("myGroupId:myArtifactId:jar:myClassifier:1.0.0"),
 ArtifactId.parse("myGroupId:myArtifactId:*")));
-        
assertTrue(CheckFeatureId.matches(ArtifactId.parse("myGroupId:myArtifactId:jar:myClassifier:1.0.0"),
 ArtifactId.parse("myGroupId:myArtifactId:jar:1.0.0")));
-        
assertTrue(CheckFeatureId.matches(ArtifactId.parse("myGroupId:myArtifactId:jar:myClassifier:1.0.0"),
 ArtifactId.parse("myGroupId:myArtifactId:jar:*")));
-        
assertTrue(CheckFeatureId.matches(ArtifactId.parse("myGroupId:myArtifactId:jar:myClassifier:1.0.0"),
 ArtifactId.parse("myGroupId:myArtifactId:*:1.0.0")));
-        
assertTrue(CheckFeatureId.matches(ArtifactId.parse("myGroupId:myArtifactId:jar:myClassifier:1.0.0"),
 ArtifactId.parse("myGroupId:myArtifactId:jar:*:1.0.0")));
+        
assertTrue(CheckFeatureId.matches(ArtifactId.parse("myGroupId:myArtifactId:jar:1.0.0"),
 ArtifactId.parse("*:myArtifactId:1.0.0")));
+        
assertTrue(CheckFeatureId.matches(ArtifactId.parse("myGroupId:myArtifactId:jar:1.0.0"),
 ArtifactId.parse("myGroupId:*:1.0.0")));
+        
assertTrue(CheckFeatureId.matches(ArtifactId.parse("myGroupId:myArtifactId:jar:1.0.0"),
 ArtifactId.parse("myGroupId:myArtifactId:*")));
+        
assertTrue(CheckFeatureId.matches(ArtifactId.parse("myGroupId:myArtifactId:jar:1.0.0"),
 ArtifactId.parse("myGroupId:myArtifactId:jar:1.0.0")));
+        
assertTrue(CheckFeatureId.matches(ArtifactId.parse("myGroupId:myArtifactId:jar:1.0.0"),
 ArtifactId.parse("myGroupId:myArtifactId:jar:*")));
+        
assertTrue(CheckFeatureId.matches(ArtifactId.parse("myGroupId:myArtifactId:jar:1.0.0"),
 ArtifactId.parse("myGroupId:myArtifactId:*:1.0.0")));
+        
assertTrue(CheckFeatureId.matches(ArtifactId.parse("myGroupId:myArtifactId:jar:1.0.0"),
 ArtifactId.parse("myGroupId:myArtifactId:jar:*:1.0.0")));
         
-        
assertFalse(CheckFeatureId.matches(ArtifactId.parse("myGroupId:myArtifactId:jar:myClassifier:1.0.0"),
 ArtifactId.parse("*:myOtherArtifactId:1.0.0")));
-        
assertFalse(CheckFeatureId.matches(ArtifactId.parse("myGroupId:myArtifactId:jar:myClassifier:1.0.0"),
 ArtifactId.parse("myOtherGroupId:*:1.0.0")));
-        
assertFalse(CheckFeatureId.matches(ArtifactId.parse("myGroupId:myArtifactId:jar:myClassifier:1.0.0"),
 ArtifactId.parse("myGroupId:myOtherArtifactId:*")));
-        
assertFalse(CheckFeatureId.matches(ArtifactId.parse("myGroupId:myArtifactId:jar:myClassifier:1.0.0"),
 ArtifactId.parse("myGroupId:myArtifactId:someothertype:*")));
-        
assertFalse(CheckFeatureId.matches(ArtifactId.parse("myGroupId:myArtifactId:jar:myClassifier:1.0.0"),
 ArtifactId.parse("myGroupId:myArtifactId:jar:*:1.1.0")));
-        
assertFalse(CheckFeatureId.matches(ArtifactId.parse("myGroupId:myArtifactId:jar:myClassifier:1.0.0"),
 ArtifactId.parse("myGroupId:myArtifactId:*:*:1.1.0")));
+        
assertFalse(CheckFeatureId.matches(ArtifactId.parse("myGroupId:myArtifactId:jar:1.0.0"),
 ArtifactId.parse("*:myOtherArtifactId:1.0.0")));
+        
assertFalse(CheckFeatureId.matches(ArtifactId.parse("myGroupId:myArtifactId:jar:1.0.0"),
 ArtifactId.parse("myOtherGroupId:*:1.0.0")));
+        
assertFalse(CheckFeatureId.matches(ArtifactId.parse("myGroupId:myArtifactId:jar:1.0.0"),
 ArtifactId.parse("myGroupId:myOtherArtifactId:*")));
+        
assertFalse(CheckFeatureId.matches(ArtifactId.parse("myGroupId:myArtifactId:jar:1.0.0"),
 ArtifactId.parse("myGroupId:myArtifactId:someothertype:*")));
+        
assertFalse(CheckFeatureId.matches(ArtifactId.parse("myGroupId:myArtifactId:jar:1.0.0"),
 ArtifactId.parse("myGroupId:myArtifactId:jar:*:1.1.0")));
+        
assertFalse(CheckFeatureId.matches(ArtifactId.parse("myGroupId:myArtifactId:jar:1.0.0"),
 ArtifactId.parse("myGroupId:myArtifactId:*:*:1.1.0")));
+        
+        // enforce no classifier
+        
assertTrue(CheckFeatureId.matches(ArtifactId.parse("myGroupId:myArtifactId:jar::1.0.0"),
 ArtifactId.parse("myGroupId:myArtifactId:jar::1.0.0")));
+        
assertFalse(CheckFeatureId.matches(ArtifactId.parse("myGroupId:myArtifactId:jar:invalidClassifier:1.0.0"),
 ArtifactId.parse("myGroupId:myArtifactId:jar::1.0.0")));
+        
+        // enforce default type
+        
assertTrue(CheckFeatureId.matches(ArtifactId.parse("myGroupId:myArtifactId:1.0.0"),
 ArtifactId.parse("myGroupId:myArtifactId:1.0.0")));
+        
assertFalse(CheckFeatureId.matches(ArtifactId.parse("myGroupId:myArtifactId:othertype:1.0.0"),
 ArtifactId.parse("myGroupId:myArtifactId:1.0.0")));
     }
 }

Reply via email to