You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by kw...@apache.org on 2021/04/12 11:09:28 UTC

[sling-org-apache-sling-feature-analyser] branch master updated: SLING-10285 fix classifier matching

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 <kw...@apache.org>
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")));
     }
 }