Updated Branches:
  refs/heads/master b99658c94 -> f35698c79

MNG-5552 made classifier part of MavenProject.artifactMap key

Signed-off-by: Igor Fedorenko <ifedore...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/f35698c7
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/f35698c7
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/f35698c7

Branch: refs/heads/master
Commit: f35698c790da5329590d1ceba0502c02f942efdf
Parents: b99658c
Author: Igor Fedorenko <ifedore...@apache.org>
Authored: Tue Dec 17 12:56:36 2013 -0500
Committer: Igor Fedorenko <ifedore...@apache.org>
Committed: Tue Dec 17 12:56:36 2013 -0500

----------------------------------------------------------------------
 .../apache/maven/artifact/ArtifactUtils.java    | 15 ++++++--
 .../PluginParameterExpressionEvaluatorTest.java | 38 ++++++++++++++++++++
 2 files changed, 51 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/f35698c7/maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java
----------------------------------------------------------------------
diff --git 
a/maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java 
b/maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java
index 8efc45c..a373c33 100644
--- a/maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java
+++ b/maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java
@@ -68,11 +68,16 @@ public final class ArtifactUtils
 
     public static String versionlessKey( Artifact artifact )
     {
-        return versionlessKey( artifact.getGroupId(), artifact.getArtifactId() 
);
+        return versionlessKey( artifact.getGroupId(), 
artifact.getArtifactId(), artifact.getClassifier() );
     }
 
     public static String versionlessKey( String groupId, String artifactId )
     {
+        return versionlessKey( groupId, artifactId, null );
+    }
+
+    public static String versionlessKey( String groupId, String artifactId, 
String classifier )
+    {
         if ( groupId == null )
         {
             throw new NullPointerException( "groupId is null" );
@@ -81,7 +86,13 @@ public final class ArtifactUtils
         {
             throw new NullPointerException( "artifactId is null" );
         }
-        return groupId + ":" + artifactId;
+        StringBuilder key = new StringBuilder();
+        key.append( groupId ).append( ':' ).append( artifactId );
+        if ( classifier != null && !"".equals( classifier.trim() ) )
+        {
+            key.append( ':' ).append( classifier );
+        }
+        return key.toString();
     }
 
     public static String key( Artifact artifact )

http://git-wip-us.apache.org/repos/asf/maven/blob/f35698c7/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java
----------------------------------------------------------------------
diff --git 
a/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java
 
b/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java
index 5f6744c..aca8afd 100644
--- 
a/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java
+++ 
b/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java
@@ -22,9 +22,11 @@ package org.apache.maven.plugin;
 import java.io.File;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
+import java.util.Set;
 
 import org.apache.maven.AbstractCoreMavenComponentTestCase;
 import org.apache.maven.artifact.Artifact;
@@ -380,6 +382,28 @@ public class PluginParameterExpressionEvaluatorTest
         assertEquals( "testGroup", result.getGroupId() );
     }
 
+    public void testProjectArtifactMap()
+        throws Exception
+    {
+        Model model = new Model();
+        MavenProject project = new MavenProject( model );
+        Set<Artifact> artifacts = new HashSet<Artifact>();
+        artifacts.add( createArtifact( "testGroup", "testArtifact", "1.0" ) );
+        artifacts.add( createArtifact( "testGroup", "testArtifact", "1.0", 
"testClassifier" ) );
+        project.setArtifacts( artifacts );
+        ExpressionEvaluator ee = createExpressionEvaluator( project, null, new 
Properties() );
+
+        @SuppressWarnings( "unchecked" )
+        Map<String, Artifact> depResults = (Map<String, Artifact>) 
ee.evaluate( "${project.artifactMap}" );
+        assertEquals( 2, depResults.size() );
+        assertNotNull( depResults.get( "testGroup:testArtifact" ) );
+        assertNotNull( depResults.get( "testGroup:testArtifact:testClassifier" 
) );
+
+        assertNull( ( (Artifact) ee.evaluate( 
"${project.artifactMap(testGroup:testArtifact)}" ) ).getClassifier() );
+        assertEquals( "testClassifier",
+                      ( (Artifact) ee.evaluate( 
"${project.artifactMap(testGroup:testArtifact:testClassifier)}" ) 
).getClassifier() );
+    }
+
     private MavenProject createDefaultProject()
     {
         return new MavenProject( new Model() );
@@ -416,6 +440,20 @@ public class PluginParameterExpressionEvaluatorTest
         return factory.createDependencyArtifact( dependency );
     }
 
+    protected Artifact createArtifact( String groupId, String artifactId, 
String version, String classifier )
+        throws Exception
+    {
+        Dependency dependency = new Dependency();
+        dependency.setGroupId( groupId );
+        dependency.setArtifactId( artifactId );
+        dependency.setVersion( version );
+        dependency.setClassifier( classifier );
+        dependency.setType( "jar" );
+        dependency.setScope( "compile" );
+
+        return factory.createDependencyArtifact( dependency );
+    }
+
     private MojoExecution newMojoExecution()
     {
         PluginDescriptor pd = new PluginDescriptor();

Reply via email to