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/06/28 20:48:03 UTC

svn commit: r1750584 - in /maven/shared/trunk/maven-common-artifact-filters/src: main/java/org/apache/maven/shared/artifact/filter/resolve/transform/ test/java/org/apache/maven/shared/artifact/filter/resolve/transform/

Author: rfscholte
Date: Tue Jun 28 20:48:03 2016
New Revision: 1750584

URL: http://svn.apache.org/viewvc?rev=1750584&view=rev
Log:
[MSHARED-566] Support actTransitivily for Pattern(Include/Exclude)ArtifactFilter

Modified:
    maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/resolve/transform/ArtifactIncludeFilterTransformer.java
    maven/shared/trunk/maven-common-artifact-filters/src/test/java/org/apache/maven/shared/artifact/filter/resolve/transform/ArtifactIncludeFilterTransformerTest.java

Modified: maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/resolve/transform/ArtifactIncludeFilterTransformer.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/resolve/transform/ArtifactIncludeFilterTransformer.java?rev=1750584&r1=1750583&r2=1750584&view=diff
==============================================================================
--- maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/resolve/transform/ArtifactIncludeFilterTransformer.java (original)
+++ maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/resolve/transform/ArtifactIncludeFilterTransformer.java Tue Jun 28 20:48:03 2016
@@ -52,11 +52,13 @@ public class ArtifactIncludeFilterTransf
     
     private boolean includeNullScope = true;
     
+    private boolean actTransitivelyPattern = false; 
+    
     /**
      * Used by {@link #transform(ScopeFilter)}
      * 
      * When filtering on artifacts it is possible that the scope is unknown.
-     * Decide if artifact should be included is its scoop is {@code null}, default is {@code true}
+     * Decide if artifact should be included if its scope is {@code null}, default is {@code true}
      * 
      * @param includeNullScope set to {@code false} if {@code null}-scoped Artifacts should not be included
      */
@@ -64,6 +66,21 @@ public class ArtifactIncludeFilterTransf
     {
         this.includeNullScope = includeNullScope;
     }
+    
+    /**
+     * Used by {@link #transform(PatternExclusionsFilter)} and {@link #transform(PatternInclusionsFilter)} Determines
+     * whether the include/exclude patterns will be applied to the transitive path of a given artifact. If {@code true},
+     * and the current artifact is a transitive dependency brought in by another artifact which matches an inclusion or
+     * exclusion pattern, then the current artifact has the same inclusion/exclusion logic applied to it as well.
+     * Default is {@code false}
+     * 
+     * @param actTransitivelyPattern set to {@code true} if this artifact should be included/excluded just like one of
+     *            its ancestors.
+     */
+    public void setActTransitivelyPattern( boolean actTransitivelyPattern )
+    {
+        this.actTransitivelyPattern = actTransitivelyPattern;
+    }
 
     @Override
     public ArtifactFilter transform( final ScopeFilter scopeFilter )
@@ -154,13 +171,13 @@ public class ArtifactIncludeFilterTransf
     @Override
     public ArtifactFilter transform( PatternExclusionsFilter patternExclusionsFilter )
     {
-        return new PatternExcludesArtifactFilter( patternExclusionsFilter.getExcludes() );
+        return new PatternExcludesArtifactFilter( patternExclusionsFilter.getExcludes(), actTransitivelyPattern );
     }
 
     @Override
     public ArtifactFilter transform( PatternInclusionsFilter patternInclusionsFilter )
     {
-        return new PatternIncludesArtifactFilter( patternInclusionsFilter.getIncludes() );
+        return new PatternIncludesArtifactFilter( patternInclusionsFilter.getIncludes(), actTransitivelyPattern );
     }
 
     @Override

Modified: maven/shared/trunk/maven-common-artifact-filters/src/test/java/org/apache/maven/shared/artifact/filter/resolve/transform/ArtifactIncludeFilterTransformerTest.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-common-artifact-filters/src/test/java/org/apache/maven/shared/artifact/filter/resolve/transform/ArtifactIncludeFilterTransformerTest.java?rev=1750584&r1=1750583&r2=1750584&view=diff
==============================================================================
--- maven/shared/trunk/maven-common-artifact-filters/src/test/java/org/apache/maven/shared/artifact/filter/resolve/transform/ArtifactIncludeFilterTransformerTest.java (original)
+++ maven/shared/trunk/maven-common-artifact-filters/src/test/java/org/apache/maven/shared/artifact/filter/resolve/transform/ArtifactIncludeFilterTransformerTest.java Tue Jun 28 20:48:03 2016
@@ -152,6 +152,31 @@ public class ArtifactIncludeFilterTransf
     }
 
     @Test
+    public void testTransformPatternExclusionsFilterActTransitivily()
+        throws Exception
+    {
+        PatternExclusionsFilter filter = new PatternExclusionsFilter( Collections.singletonList( "x:*" ) );
+        
+        transformer.setActTransitivelyPattern( true );
+
+        Artifact parentArtifact = newArtifact( "x:a:v", null );
+        
+        Artifact artifact = newArtifact( "g:a:v", null );
+        
+        artifact.setDependencyTrail( Arrays.asList( parentArtifact.getId(), artifact.getId() ) );
+
+        PatternExcludesArtifactFilter dependencyFilter = (PatternExcludesArtifactFilter) filter.transform( transformer );
+        
+        assertFalse( dependencyFilter.include( artifact ) );
+        
+        transformer.setActTransitivelyPattern( false );
+        
+        dependencyFilter = (PatternExcludesArtifactFilter) filter.transform( transformer );
+
+        assertTrue( dependencyFilter.include( artifact ) );
+    }
+
+    @Test
     public void testTransformPatternInclusionsFilter()
         throws Exception
     {
@@ -165,6 +190,31 @@ public class ArtifactIncludeFilterTransf
     }
     
     @Test
+    public void testTransformPatternInclusionsFilterActTransitivily()
+        throws Exception
+    {
+        PatternInclusionsFilter filter = new PatternInclusionsFilter( Collections.singletonList( "x:*" ) );
+
+        transformer.setActTransitivelyPattern( true );
+        
+        Artifact parentArtifact = newArtifact( "x:a:v", null );
+        
+        Artifact artifact = newArtifact( "g:a:v", null );
+        
+        artifact.setDependencyTrail( Arrays.asList( parentArtifact.getId(), artifact.getId() ) );
+        
+        PatternIncludesArtifactFilter dependencyFilter = (PatternIncludesArtifactFilter) filter.transform( transformer );
+
+        assertTrue( dependencyFilter.include( artifact ) );
+        
+        transformer.setActTransitivelyPattern( false );
+        
+        dependencyFilter = (PatternIncludesArtifactFilter) filter.transform( transformer );
+
+        assertFalse( dependencyFilter.include( artifact ) );
+    }
+    
+    @Test
     public void testTransformAbstractFilter() throws Exception
     {
         AbstractFilter snapshotFilter = new AbstractFilter()