Author: rfscholte
Date: Thu Aug  6 21:45:27 2015
New Revision: 1694577

URL: http://svn.apache.org/r1694577
Log:
Also pick up exclusions when available (i.e. only via Aether)

Modified:
    
maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/resolve/transform/ArtifactIncludeNode.java
    
maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/resolve/transform/EclipseAetherNode.java
    
maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/resolve/transform/SonatypeAetherNode.java
    
maven/shared/trunk/maven-common-artifact-filters/src/test/java/org/apache/maven/shared/artifact/filter/resolve/transform/EclipseAetherNodeTest.java
    
maven/shared/trunk/maven-common-artifact-filters/src/test/java/org/apache/maven/shared/artifact/filter/resolve/transform/SonatypeAetherNodeTest.java

Modified: 
maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/resolve/transform/ArtifactIncludeNode.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/ArtifactIncludeNode.java?rev=1694577&r1=1694576&r2=1694577&view=diff
==============================================================================
--- 
maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/resolve/transform/ArtifactIncludeNode.java
 (original)
+++ 
maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/resolve/transform/ArtifactIncludeNode.java
 Thu Aug  6 21:45:27 2015
@@ -37,6 +37,13 @@ class ArtifactIncludeNode implements Nod
         this.artifact = artifact;
     }
     
+    /**
+     * Note: an artifact doesn't contain exclusion information, so it won't be 
available here.
+     * When required switch to filtering based on Aether
+     * 
+     * @see EclipseAetherNode
+     * @see SonatypeAetherNode
+     */
     @Override
     public Dependency getDependency()
     {
@@ -48,7 +55,8 @@ class ArtifactIncludeNode implements Nod
         mavenDependency.setType( artifact.getType() );
         mavenDependency.setScope( artifact.getScope() );
         mavenDependency.setOptional( artifact.isOptional() );
-
+        // no setExcludes possible
+        
         return mavenDependency;
     }
 

Modified: 
maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/resolve/transform/EclipseAetherNode.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/EclipseAetherNode.java?rev=1694577&r1=1694576&r2=1694577&view=diff
==============================================================================
--- 
maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/resolve/transform/EclipseAetherNode.java
 (original)
+++ 
maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/resolve/transform/EclipseAetherNode.java
 Thu Aug  6 21:45:27 2015
@@ -19,10 +19,14 @@ package org.apache.maven.shared.artifact
  * under the License.
  */
 
+import java.util.ArrayList;
+import java.util.List;
+
 import org.apache.maven.shared.artifact.filter.resolve.Node;
 import org.eclipse.aether.artifact.ArtifactProperties;
 import org.eclipse.aether.graph.Dependency;
 import org.eclipse.aether.graph.DependencyNode;
+import org.eclipse.aether.graph.Exclusion;
 
 /**
  * Adapter of an Eclipse Aether DependencyNode for common Node 
@@ -62,6 +66,24 @@ class EclipseAetherNode implements Node
         {
             mavenDependency.setOptional( nodeDependency.isOptional() );
         }
+        if ( nodeDependency.getExclusions() != null )
+        {
+            List<org.apache.maven.model.Exclusion> mavenExclusions =
+                new ArrayList<org.apache.maven.model.Exclusion>( 
nodeDependency.getExclusions().size() );
+
+            for ( Exclusion aetherExclusion : nodeDependency.getExclusions() )
+            {
+                org.apache.maven.model.Exclusion mavenExclusion = new 
org.apache.maven.model.Exclusion();
+
+                mavenExclusion.setGroupId( aetherExclusion.getGroupId() );
+                mavenExclusion.setArtifactId( aetherExclusion.getArtifactId() 
);
+                // that's all folks, although Aether has more metadata
+
+                mavenExclusions.add( mavenExclusion );
+            }
+
+            mavenDependency.setExclusions( mavenExclusions );
+        }
 
         return mavenDependency;
     }

Modified: 
maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/resolve/transform/SonatypeAetherNode.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/SonatypeAetherNode.java?rev=1694577&r1=1694576&r2=1694577&view=diff
==============================================================================
--- 
maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/resolve/transform/SonatypeAetherNode.java
 (original)
+++ 
maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/resolve/transform/SonatypeAetherNode.java
 Thu Aug  6 21:45:27 2015
@@ -19,9 +19,13 @@ package org.apache.maven.shared.artifact
  * under the License.
  */
 
+import java.util.ArrayList;
+import java.util.List;
+
 import org.apache.maven.shared.artifact.filter.resolve.Node;
 import org.sonatype.aether.graph.Dependency;
 import org.sonatype.aether.graph.DependencyNode;
+import org.sonatype.aether.graph.Exclusion;
 import org.sonatype.aether.util.artifact.ArtifactProperties;
 
 /**
@@ -59,6 +63,24 @@ class SonatypeAetherNode implements Node
         mavenDependency.setType( nodeDependency.getArtifact().getProperty( 
ArtifactProperties.TYPE, null ) );
         mavenDependency.setScope( nodeDependency.getScope() );
         mavenDependency.setOptional( nodeDependency.isOptional() );
+        if ( nodeDependency.getExclusions() != null )
+        {
+            List<org.apache.maven.model.Exclusion> mavenExclusions =
+                new ArrayList<org.apache.maven.model.Exclusion>( 
nodeDependency.getExclusions().size() );
+
+            for ( Exclusion aetherExclusion : nodeDependency.getExclusions() )
+            {
+                org.apache.maven.model.Exclusion mavenExclusion = new 
org.apache.maven.model.Exclusion();
+
+                mavenExclusion.setGroupId( aetherExclusion.getGroupId() );
+                mavenExclusion.setArtifactId( aetherExclusion.getArtifactId() 
);
+                // that's all folks, although Aether has more metadata
+
+                mavenExclusions.add( mavenExclusion );
+            }
+
+            mavenDependency.setExclusions( mavenExclusions );
+        }
 
         return mavenDependency;
     }

Modified: 
maven/shared/trunk/maven-common-artifact-filters/src/test/java/org/apache/maven/shared/artifact/filter/resolve/transform/EclipseAetherNodeTest.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/EclipseAetherNodeTest.java?rev=1694577&r1=1694576&r2=1694577&view=diff
==============================================================================
--- 
maven/shared/trunk/maven-common-artifact-filters/src/test/java/org/apache/maven/shared/artifact/filter/resolve/transform/EclipseAetherNodeTest.java
 (original)
+++ 
maven/shared/trunk/maven-common-artifact-filters/src/test/java/org/apache/maven/shared/artifact/filter/resolve/transform/EclipseAetherNodeTest.java
 Thu Aug  6 21:45:27 2015
@@ -21,11 +21,16 @@ package org.apache.maven.shared.artifact
 
 import static org.junit.Assert.assertEquals;
 
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+
 import org.apache.maven.shared.artifact.filter.resolve.Node;
 import org.eclipse.aether.artifact.DefaultArtifact;
 import org.eclipse.aether.graph.DefaultDependencyNode;
 import org.eclipse.aether.graph.Dependency;
 import org.eclipse.aether.graph.DependencyNode;
+import org.eclipse.aether.graph.Exclusion;
 import org.junit.Test;
 
 public class EclipseAetherNodeTest
@@ -78,7 +83,7 @@ public class EclipseAetherNodeTest
     @Test
     public void testOptional()
     {
-        Node node = new EclipseAetherNode( newDependencyNode( "g:a:v", null, 
null ) );
+        Node node = new EclipseAetherNode( newDependencyNode( "g:a:v", null, 
(Boolean) null ) );
         
         assertEquals( null, node.getDependency().getOptional()  );
         assertEquals( false, node.getDependency().isOptional()  );
@@ -91,6 +96,17 @@ public class EclipseAetherNodeTest
         assertEquals( "false", node.getDependency().getOptional()  );
         assertEquals( false, node.getDependency().isOptional()  );
     }
+    
+    @Test
+    public void testExclusions()
+    {
+        Node node = new EclipseAetherNode( newDependencyNode( "g:a:v", null, 
Collections.singletonList( "eg:ea" ) ) );
+        assertEquals( 1, node.getDependency().getExclusions().size() );
+        
+        org.apache.maven.model.Exclusion mavenExclusion = 
node.getDependency().getExclusions().get( 0 );
+        assertEquals( "eg", mavenExclusion.getGroupId() );
+        assertEquals( "ea", mavenExclusion.getArtifactId() );
+    }
 
     private DependencyNode newDependencyNode( String coor, String scope )
     {
@@ -102,4 +118,19 @@ public class EclipseAetherNodeTest
         return new DefaultDependencyNode( new Dependency( new DefaultArtifact( 
coor ), scope, optional ) );
     }
 
+    private DependencyNode newDependencyNode( String coor, String scope, 
Collection<String> exclusions )
+    {
+        Dependency dependency = new Dependency( new DefaultArtifact( coor ), 
scope );
+        
+        Collection<Exclusion> aetherExclusions = new ArrayList<Exclusion>( 
exclusions.size() );
+        for ( String exclusion : exclusions )
+        {
+            String[] ga = exclusion.split( ":" );
+            aetherExclusions.add( new Exclusion( ga[0], ga[1], null, null ) );
+        }
+        dependency = dependency.setExclusions( aetherExclusions );
+        
+        return new DefaultDependencyNode( dependency );
+    }
+
 }

Modified: 
maven/shared/trunk/maven-common-artifact-filters/src/test/java/org/apache/maven/shared/artifact/filter/resolve/transform/SonatypeAetherNodeTest.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/SonatypeAetherNodeTest.java?rev=1694577&r1=1694576&r2=1694577&view=diff
==============================================================================
--- 
maven/shared/trunk/maven-common-artifact-filters/src/test/java/org/apache/maven/shared/artifact/filter/resolve/transform/SonatypeAetherNodeTest.java
 (original)
+++ 
maven/shared/trunk/maven-common-artifact-filters/src/test/java/org/apache/maven/shared/artifact/filter/resolve/transform/SonatypeAetherNodeTest.java
 Thu Aug  6 21:45:27 2015
@@ -21,10 +21,15 @@ package org.apache.maven.shared.artifact
 
 import static org.junit.Assert.assertEquals;
 
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+
 import org.apache.maven.shared.artifact.filter.resolve.Node;
 import org.junit.Test;
 import org.sonatype.aether.graph.Dependency;
 import org.sonatype.aether.graph.DependencyNode;
+import org.sonatype.aether.graph.Exclusion;
 import org.sonatype.aether.util.artifact.DefaultArtifact;
 import org.sonatype.aether.util.graph.DefaultDependencyNode;
 
@@ -92,6 +97,17 @@ public class SonatypeAetherNodeTest
         assertEquals( false, node.getDependency().isOptional()  );
     }
 
+    @Test
+    public void testExclusions()
+    {
+        Node node = new SonatypeAetherNode( newDependencyNode( "g:a:v", null, 
Collections.singletonList( "eg:ea" ) ) );
+        assertEquals( 1, node.getDependency().getExclusions().size() );
+        
+        org.apache.maven.model.Exclusion mavenExclusion = 
node.getDependency().getExclusions().get( 0 );
+        assertEquals( "eg", mavenExclusion.getGroupId() );
+        assertEquals( "ea", mavenExclusion.getArtifactId() );
+    }
+
     private DependencyNode newDependencyNode( String string, String scope )
     {
         return new DefaultDependencyNode( new Dependency( new DefaultArtifact( 
string ), scope ) );
@@ -102,4 +118,18 @@ public class SonatypeAetherNodeTest
         return new DefaultDependencyNode( new Dependency( new DefaultArtifact( 
coor ), scope, optional ) );
     }
 
+    private DependencyNode newDependencyNode( String coor, String scope, 
Collection<String> exclusions )
+    {
+        Dependency dependency = new Dependency( new DefaultArtifact( coor ), 
scope );
+        
+        Collection<Exclusion> aetherExclusions = new ArrayList<Exclusion>( 
exclusions.size() );
+        for ( String exclusion : exclusions )
+        {
+            String[] ga = exclusion.split( ":" );
+            aetherExclusions.add( new Exclusion( ga[0], ga[1], null, null ) );
+        }
+        dependency = dependency.setExclusions( aetherExclusions );
+        
+        return new DefaultDependencyNode( dependency );
+    }
 }


Reply via email to