Author: rfscholte
Date: Tue Aug  4 22:03:33 2015
New Revision: 1694116

URL: http://svn.apache.org/r1694116
Log:
Also pick up optional

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/ArtifactIncludeNodeTest.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=1694116&r1=1694115&r2=1694116&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
 Tue Aug  4 22:03:33 2015
@@ -47,6 +47,7 @@ class ArtifactIncludeNode implements Nod
         mavenDependency.setClassifier( artifact.getClassifier() );
         mavenDependency.setType( artifact.getType() );
         mavenDependency.setScope( artifact.getScope() );
+        mavenDependency.setOptional( artifact.isOptional() );
 
         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=1694116&r1=1694115&r2=1694116&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
 Tue Aug  4 22:03:33 2015
@@ -57,6 +57,11 @@ class EclipseAetherNode implements Node
         mavenDependency.setClassifier( 
nodeDependency.getArtifact().getClassifier() );
         mavenDependency.setType( nodeDependency.getArtifact().getProperty( 
ArtifactProperties.TYPE, null ) );
         mavenDependency.setScope( nodeDependency.getScope() );
+        // Eclipse Aether supports three-valued logic
+        if ( nodeDependency.getOptional() != null )
+        {
+            mavenDependency.setOptional( nodeDependency.isOptional() );
+        }
 
         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=1694116&r1=1694115&r2=1694116&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
 Tue Aug  4 22:03:33 2015
@@ -58,6 +58,7 @@ class SonatypeAetherNode implements Node
         mavenDependency.setClassifier( 
nodeDependency.getArtifact().getClassifier() );
         mavenDependency.setType( nodeDependency.getArtifact().getProperty( 
ArtifactProperties.TYPE, null ) );
         mavenDependency.setScope( nodeDependency.getScope() );
+        mavenDependency.setOptional( nodeDependency.isOptional() );
 
         return mavenDependency;
     }

Modified: 
maven/shared/trunk/maven-common-artifact-filters/src/test/java/org/apache/maven/shared/artifact/filter/resolve/transform/ArtifactIncludeNodeTest.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/ArtifactIncludeNodeTest.java?rev=1694116&r1=1694115&r2=1694116&view=diff
==============================================================================
--- 
maven/shared/trunk/maven-common-artifact-filters/src/test/java/org/apache/maven/shared/artifact/filter/resolve/transform/ArtifactIncludeNodeTest.java
 (original)
+++ 
maven/shared/trunk/maven-common-artifact-filters/src/test/java/org/apache/maven/shared/artifact/filter/resolve/transform/ArtifactIncludeNodeTest.java
 Tue Aug  4 22:03:33 2015
@@ -22,9 +22,11 @@ package org.apache.maven.shared.artifact
 import static org.junit.Assert.assertEquals;
 
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.versioning.VersionRange;
 import org.apache.maven.model.Dependency;
 import org.apache.maven.plugin.testing.ArtifactStubFactory;
 import org.apache.maven.shared.artifact.filter.resolve.Node;
+import org.eclipse.aether.graph.DependencyNode;
 import org.junit.Test;
 
 public class ArtifactIncludeNodeTest
@@ -90,21 +92,71 @@ public class ArtifactIncludeNodeTest
         assertEquals( "s", dependency.getScope() );
     }
 
+    @Test
+    public void testOptional() throws Exception
+    {
+        Node node = new ArtifactIncludeNode( newArtifact( "g:a:pom:v", null, 
null ) );
+        
+        assertEquals( "false", node.getDependency().getOptional()  );
+        assertEquals( false, node.getDependency().isOptional()  );
+        
+        node = new ArtifactIncludeNode( newArtifact( "g:a:pom:v", null, true ) 
);
+        assertEquals( "true", node.getDependency().getOptional()  );
+        assertEquals( true, node.getDependency().isOptional()  );
+
+        node = new ArtifactIncludeNode( newArtifact( "g:a:pom:v", null, false 
) );
+        assertEquals( "false", node.getDependency().getOptional()  );
+        assertEquals( false, node.getDependency().isOptional()  );
+    }
+
     private Artifact newArtifact( String coor, String scope )
         throws Exception
     {
+        return newArtifact( coor, scope, null );
+    }
+
+    private Artifact newArtifact( String coor, String scope, Boolean optional )
+        throws Exception
+    {
         String[] gav = coor.split( ":" );
+        String groupId = gav[0];
+        String artifactId = gav[1];
+        String version = null;
+        String classifier = null;
+        String type = null;
+
         if ( gav.length == 3 )
         {
-            return artifactFactory.createArtifact( gav[0], gav[1], gav[2], 
scope );
+            version = gav[2];
+        }
+        else if ( gav.length == 4 )
+        {
+            type = gav[2];
+            version = gav[3];
+        }        
+        else if ( gav.length == 5 )
+        {
+            type = gav[2];
+            classifier = gav[3];
+            version = gav[4];
+        }        
+        
+        if( optional != null )
+        {
+            VersionRange versionRange = VersionRange.createFromVersion( 
version );
+            return artifactFactory.createArtifact( groupId, artifactId, 
versionRange, scope, type, classifier, optional );
+        }
+        else if ( gav.length == 3 )
+        {
+            return artifactFactory.createArtifact( groupId, artifactId, 
version, scope );
         }
         else if ( gav.length == 4 )
         {
-            return artifactFactory.createArtifact( gav[0], gav[1], gav[3], 
scope, gav[2], null );
+            return artifactFactory.createArtifact( groupId, artifactId, 
version, scope, type, null );
         }
         else if ( gav.length == 5 )
         {
-            return artifactFactory.createArtifact( gav[0], gav[1], gav[4], 
scope, gav[2], gav[3] );
+            return artifactFactory.createArtifact( groupId, artifactId, 
version, scope, type, classifier );
         }
         else
         {

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=1694116&r1=1694115&r2=1694116&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
 Tue Aug  4 22:03:33 2015
@@ -74,8 +74,32 @@ public class EclipseAetherNodeTest
         assertEquals( null, mavenDependency.getType() );
         assertEquals( "s", mavenDependency.getScope() );
     }
-    private DependencyNode newDependencyNode( String string, String scope )
+
+    @Test
+    public void testOptional()
     {
-        return new DefaultDependencyNode( new Dependency( new DefaultArtifact( 
string ), scope ) );
+        Node node = new EclipseAetherNode( newDependencyNode( "g:a:v", null, 
null ) );
+        
+        assertEquals( null, node.getDependency().getOptional()  );
+        assertEquals( false, node.getDependency().isOptional()  );
+        
+        node = new EclipseAetherNode( newDependencyNode( "g:a:v", null, true ) 
);
+        assertEquals( "true", node.getDependency().getOptional()  );
+        assertEquals( true, node.getDependency().isOptional()  );
+
+        node = new EclipseAetherNode( newDependencyNode( "g:a:v", null, false 
) );
+        assertEquals( "false", node.getDependency().getOptional()  );
+        assertEquals( false, node.getDependency().isOptional()  );
     }
+
+    private DependencyNode newDependencyNode( String coor, String scope )
+    {
+        return new DefaultDependencyNode( new Dependency( new DefaultArtifact( 
coor ), scope ) );
+    }
+    
+    private DependencyNode newDependencyNode( String coor, String scope, 
Boolean optional )
+    {
+        return new DefaultDependencyNode( new Dependency( new DefaultArtifact( 
coor ), scope, optional ) );
+    }
+
 }

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=1694116&r1=1694115&r2=1694116&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
 Tue Aug  4 22:03:33 2015
@@ -75,8 +75,31 @@ public class SonatypeAetherNodeTest
         assertEquals( "s", mavenDependency.getScope() );
     }
     
+    @Test
+    public void testOptional()
+    {
+        Node node = new SonatypeAetherNode( newDependencyNode( "g:a:v", null ) 
);
+        
+        assertEquals( "false", node.getDependency().getOptional()  );
+        assertEquals( false, node.getDependency().isOptional()  );
+        
+        node = new SonatypeAetherNode( newDependencyNode( "g:a:v", null, true 
) );
+        assertEquals( "true", node.getDependency().getOptional()  );
+        assertEquals( true, node.getDependency().isOptional()  );
+
+        node = new SonatypeAetherNode( newDependencyNode( "g:a:v", null, false 
) );
+        assertEquals( "false", node.getDependency().getOptional()  );
+        assertEquals( false, node.getDependency().isOptional()  );
+    }
+
     private DependencyNode newDependencyNode( String string, String scope )
     {
         return new DefaultDependencyNode( new Dependency( new DefaultArtifact( 
string ), scope ) );
     }
+    
+    private DependencyNode newDependencyNode( String coor, String scope, 
boolean optional )
+    {
+        return new DefaultDependencyNode( new Dependency( new DefaultArtifact( 
coor ), scope, optional ) );
+    }
+
 }


Reply via email to