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 ) );
+ }
+
}