MNG-5552 made classifier part of MavenProject.artifactMap key

Signed-off-by: Igor Fedorenko <ifedorenko@apache.org>
This commit is contained in:
Igor Fedorenko 2013-12-17 12:56:36 -05:00
parent b99658c943
commit f35698c790
2 changed files with 51 additions and 2 deletions

View File

@ -68,10 +68,15 @@ 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 )
{
@ -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 )

View File

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