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 2013/06/05 20:49:55 UTC

svn commit: r1489999 - in /maven/enforcer/trunk/enforcer-rules/src: main/java/org/apache/maven/plugins/enforcer/utils/ site/apt/ test/java/org/apache/maven/plugins/enforcer/utils/

Author: rfscholte
Date: Wed Jun  5 18:49:55 2013
New Revision: 1489999

URL: http://svn.apache.org/r1489999
Log:
[MENFORCER-74] The bannedDependencies rule should support classifier
[MENFORCER-75] The bannedDependencies rule should support scope condition 


 

Modified:
    maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/ArtifactMatcher.java
    maven/enforcer/trunk/enforcer-rules/src/site/apt/banTransitiveDependencies.apt.vm
    maven/enforcer/trunk/enforcer-rules/src/site/apt/bannedDependencies.apt.vm
    maven/enforcer/trunk/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/utils/TestArtifactMatcher.java

Modified: maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/ArtifactMatcher.java
URL: http://svn.apache.org/viewvc/maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/ArtifactMatcher.java?rev=1489999&r1=1489998&r2=1489999&view=diff
==============================================================================
--- maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/ArtifactMatcher.java (original)
+++ maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/ArtifactMatcher.java Wed Jun  5 18:49:55 2013
@@ -53,9 +53,9 @@ public final class ArtifactMatcher
 
             this.pattern = pattern;
 
-            parts = pattern.split( ":", 6 );
+            parts = pattern.split( ":", 7 );
 
-            if ( parts.length == 6 )
+            if ( parts.length == 7 )
             {
                 throw new IllegalArgumentException( "Pattern contains too many delimiters." );
             }
@@ -79,6 +79,12 @@ public final class ArtifactMatcher
 
             switch ( parts.length )
             {
+                case 6:
+                    String classifier = artifact.getClassifier();
+                    if ( !matches( parts[5], classifier ) )
+                    {
+                        return false;
+                    }
                 case 5:
                     String scope = artifact.getScope();
                     if ( scope == null || scope.equals( "" ) )

Modified: maven/enforcer/trunk/enforcer-rules/src/site/apt/banTransitiveDependencies.apt.vm
URL: http://svn.apache.org/viewvc/maven/enforcer/trunk/enforcer-rules/src/site/apt/banTransitiveDependencies.apt.vm?rev=1489999&r1=1489998&r2=1489999&view=diff
==============================================================================
--- maven/enforcer/trunk/enforcer-rules/src/site/apt/banTransitiveDependencies.apt.vm (original)
+++ maven/enforcer/trunk/enforcer-rules/src/site/apt/banTransitiveDependencies.apt.vm Wed Jun  5 18:49:55 2013
@@ -31,13 +31,13 @@ Ban Transitive Dependencies
    
    * excludes - specify the dependencies that will be ignored.\
       This can be a list of artifacts in the format
-      groupId[:artifactId[:version[:type[:scope]]]] .
+      groupId[:artifactId[:version[:type[:scope[:classifier]]]]] .
       Wildcard '*' can be used to in place of specific section (e.g. group:*:1.0 will match both 'group:artifact:1.0' and 'group:anotherArtifact:1.0')
       Version is a string representing standard maven version range. Empty patterns will be ignored. 
 
    * includes - specify the dependencies that will be checked.\
      These are exceptions to excludes intended for more convenient configuration. This can be a list of artifacts in the format
-     groupId[:artifactId[:version[:type[:scope]]]] as above.
+     groupId[:artifactId[:version[:type[:scope[:classifier]]]]] as above.
  
    * message - an optional message to the user if the rule fails. Will replace generated report message.
    

Modified: maven/enforcer/trunk/enforcer-rules/src/site/apt/bannedDependencies.apt.vm
URL: http://svn.apache.org/viewvc/maven/enforcer/trunk/enforcer-rules/src/site/apt/bannedDependencies.apt.vm?rev=1489999&r1=1489998&r2=1489999&view=diff
==============================================================================
--- maven/enforcer/trunk/enforcer-rules/src/site/apt/bannedDependencies.apt.vm (original)
+++ maven/enforcer/trunk/enforcer-rules/src/site/apt/bannedDependencies.apt.vm Wed Jun  5 18:49:55 2013
@@ -32,7 +32,7 @@ Banned Dependencies
    
    * searchTransitive - if transitive dependencies should be checked.
    
-   * excludes - a list of artifacts to ban. The format is groupId[:artifactId][:version][:type][:scope] where artifactId, version, type, and scope are optional. Wildcards may be used to replace an entire or just parts of a section.
+   * excludes - a list of artifacts to ban. The format is groupId[:artifactId][:version][:type][:scope][:classifier] where artifactId, version, type, scope and classifier are optional. Wildcards may be used to replace an entire or just parts of a section.
       Examples:
        
         * org.apache.maven
@@ -44,6 +44,8 @@ Banned Dependencies
         * org.apache.maven:*:1.2
         
         * org.apache.maven:*:*:jar:test
+        
+        * *:*:*:jar:compile:tests
 
         * org.apache.*:maven-*:*
         

Modified: maven/enforcer/trunk/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/utils/TestArtifactMatcher.java
URL: http://svn.apache.org/viewvc/maven/enforcer/trunk/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/utils/TestArtifactMatcher.java?rev=1489999&r1=1489998&r2=1489999&view=diff
==============================================================================
--- maven/enforcer/trunk/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/utils/TestArtifactMatcher.java (original)
+++ maven/enforcer/trunk/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/utils/TestArtifactMatcher.java Wed Jun  5 18:49:55 2013
@@ -52,7 +52,7 @@ public class TestArtifactMatcher extends
 		
 		try
 		{
-			new Pattern("a:b:c:d:e:f");
+			new Pattern("a:b:c:d:e:f:g");
 			fail("IllegalArgumentException expected.");
 		}
 		catch(IllegalArgumentException e){}
@@ -93,6 +93,9 @@ public class TestArtifactMatcher extends
 		
 		executePatternMatch("*", "groupId", "artifactId", "1.0", "", "", true);
 		
+		// MENFORCER-74/75
+		executePatternMatch("*:*:*:jar:compile:tests", "groupId", "artifactId", "1.0", "", "", "tests", true);
+		
 		// MENFORCER-83
         executePatternMatch("*upId", "groupId", "artifactId", "1.0", "", "", true);
         
@@ -122,27 +125,42 @@ public class TestArtifactMatcher extends
 		executeMatch(matcher, "groupId", "anotherArtifact", "1.1", "", "", false);	
 	}
 	
-	private void executePatternMatch(final String pattern, final String groupId, final String artifactId,
-			final String versionRange, final String scope, final String type, boolean expectedResult)
-			throws InvalidVersionSpecificationException
-	{
-		assertEquals(expectedResult, new ArtifactMatcher.Pattern(pattern).match(createMockArtifact(groupId, artifactId, versionRange, scope, type)));
-	}
-	
-	
-	private void executeMatch(final ArtifactMatcher matcher, final String groupId, final String artifactId,
-			final String versionRange, final String scope, final String type, final boolean expectedResult) throws InvalidVersionSpecificationException
-	{
-		assertEquals(expectedResult, matcher.match(createMockArtifact(groupId, artifactId, versionRange, scope, type)));
-	}
-	
-	
-	private static Artifact createMockArtifact(final String groupId, final String artifactId,
-			final String versionRange, final String scope, final String type)
-	{
-		ArtifactHandler artifactHandler = new DefaultArtifactHandler();
-		
-		VersionRange version = VersionRange.createFromVersion(versionRange);
-		return new DefaultArtifact(groupId, artifactId, version, scope, type, "", artifactHandler);
-	}
+    private void executePatternMatch( final String pattern, final String groupId, final String artifactId,
+                                      final String versionRange, final String scope, final String type,
+                                      boolean expectedResult )
+        throws InvalidVersionSpecificationException
+    {
+        executePatternMatch( pattern, groupId, artifactId, versionRange, scope, type, "", expectedResult );
+    }
+
+    private void executePatternMatch( final String pattern, final String groupId, final String artifactId,
+                                      final String versionRange, final String scope, final String type,
+                                      final String classifier, boolean expectedResult )
+        throws InvalidVersionSpecificationException
+    {
+        assertEquals( expectedResult, new ArtifactMatcher.Pattern( pattern ).match( createMockArtifact( groupId,
+                                                                                                        artifactId,
+                                                                                                        versionRange,
+                                                                                                        scope, type,
+                                                                                                        classifier ) ) );
+    }
+
+    private void executeMatch( final ArtifactMatcher matcher, final String groupId, final String artifactId,
+                               final String versionRange, final String scope, final String type,
+                               final boolean expectedResult )
+        throws InvalidVersionSpecificationException
+    {
+        assertEquals( expectedResult,
+                      matcher.match( createMockArtifact( groupId, artifactId, versionRange, scope, type, "" ) ) );
+    }
+
+    private static Artifact createMockArtifact( final String groupId, final String artifactId,
+                                                final String versionRange, final String scope, final String type,
+                                                final String classifier )
+    {
+        ArtifactHandler artifactHandler = new DefaultArtifactHandler();
+
+        VersionRange version = VersionRange.createFromVersion( versionRange );
+        return new DefaultArtifact( groupId, artifactId, version, scope, type, classifier, artifactHandler );
+    }
 }