You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2016/10/26 21:35:31 UTC

svn commit: r1766741 - in /maven/shared/trunk/maven-common-artifact-filters: ./ src/main/java/org/apache/maven/shared/artifact/filter/ src/test/java/org/apache/maven/shared/artifact/filter/

Author: rfscholte
Date: Wed Oct 26 21:35:31 2016
New Revision: 1766741

URL: http://svn.apache.org/viewvc?rev=1766741&view=rev
Log:
[MSHARED-386] Wildcard does not work with null classifier

Modified:
    maven/shared/trunk/maven-common-artifact-filters/pom.xml
    maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/PatternIncludesArtifactFilter.java
    maven/shared/trunk/maven-common-artifact-filters/src/test/java/org/apache/maven/shared/artifact/filter/AbstractPatternArtifactFilterTest.java

Modified: maven/shared/trunk/maven-common-artifact-filters/pom.xml
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-common-artifact-filters/pom.xml?rev=1766741&r1=1766740&r2=1766741&view=diff
==============================================================================
--- maven/shared/trunk/maven-common-artifact-filters/pom.xml (original)
+++ maven/shared/trunk/maven-common-artifact-filters/pom.xml Wed Oct 26 21:35:31 2016
@@ -109,7 +109,7 @@
     <dependency>
       <groupId>org.apache.maven.shared</groupId>
       <artifactId>maven-shared-utils</artifactId>
-      <version>3.0.0</version>
+      <version>3.1.0</version>
     </dependency>
 
     <dependency>

Modified: maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/PatternIncludesArtifactFilter.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/PatternIncludesArtifactFilter.java?rev=1766741&r1=1766740&r2=1766741&view=diff
==============================================================================
--- maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/PatternIncludesArtifactFilter.java (original)
+++ maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/PatternIncludesArtifactFilter.java Wed Oct 26 21:35:31 2016
@@ -191,7 +191,18 @@ public class PatternIncludesArtifactFilt
         final String[] tokens = value.split( ":" );
         for ( String pattern : patterns )
         {
-            final String[] patternTokens = pattern.split( ":" );
+            String[] patternTokens = pattern.split( ":" );
+            
+            if ( patternTokens.length == 5 && tokens.length < 5 )
+            {
+                // 4th element is the classifier
+                if ( !"*".equals( patternTokens[3] ) )
+                {
+                    // classifier required, cannot be a match
+                    return false;
+                }
+                patternTokens = new String[] { patternTokens[0], patternTokens[1], patternTokens[2], patternTokens[4] };
+            }
 
             // fail immediately if pattern tokens outnumber tokens to match
             boolean matched = patternTokens.length <= tokens.length;

Modified: maven/shared/trunk/maven-common-artifact-filters/src/test/java/org/apache/maven/shared/artifact/filter/AbstractPatternArtifactFilterTest.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-common-artifact-filters/src/test/java/org/apache/maven/shared/artifact/filter/AbstractPatternArtifactFilterTest.java?rev=1766741&r1=1766740&r2=1766741&view=diff
==============================================================================
--- maven/shared/trunk/maven-common-artifact-filters/src/test/java/org/apache/maven/shared/artifact/filter/AbstractPatternArtifactFilterTest.java (original)
+++ maven/shared/trunk/maven-common-artifact-filters/src/test/java/org/apache/maven/shared/artifact/filter/AbstractPatternArtifactFilterTest.java Wed Oct 26 21:35:31 2016
@@ -463,6 +463,33 @@ public abstract class AbstractPatternArt
 
         verify( mac.getMock(), otherMac.getMock() );
     }
+    
+    public void testShouldIncludeJarsWithAndWithoutClassifier()
+    {
+        final String groupId = "com.mycompany.myproject";
+        final String artifactId = "some-artifact-id";
+
+        final ArtifactMockAndControl mac = new ArtifactMockAndControl( groupId, artifactId );
+
+        replay( mac.getMock() );
+
+        final List<String> patterns = new ArrayList<String>();
+
+        patterns.add( "com.mycompany.*:*:jar:*:*" );
+
+        final ArtifactFilter filter = createFilter( patterns );
+
+        if ( !isInclusionExpected() )
+        {
+            assertFalse( filter.include( mac.artifact ) );
+        }
+        else
+        {
+            assertTrue( filter.include( mac.artifact ) );
+        }
+
+        verify( mac.getMock() );
+    }
 
     // FIXME: Not sure what this is even trying to test.
     // public void testShouldIncludeDirectDependencyWhenInvertedWildcardMatchesButDoesntMatchTransitiveChild(