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();