Author: jdcasey Date: Fri Jul 15 12:04:20 2005 New Revision: 219234 URL: http://svn.apache.org/viewcvs?rev=219234&view=rev Log: Resolving: MNG-482
To use the new artifact map for either the project or the current plugin from your mojo, simply use one of the following expressions: ${plugin.artifactMap} ${project.artifactMap} The artifacts in these maps are keyed using org.apache.maven.artifact.ArtifactUtils.versionlessKey( String groupId, String artifactId ) (found in the maven-artifact project). Added: maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java (with props) Modified: maven/components/trunk/maven-mboot2/src/main/java/MBoot.java maven/components/trunk/maven-plugin-descriptor/pom.xml maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptor.java maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java Added: maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java?rev=219234&view=auto ============================================================================== --- maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java (added) +++ maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java Fri Jul 15 12:04:20 2005 @@ -0,0 +1,40 @@ +package org.apache.maven.artifact; + +import java.util.Collection; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +public final class ArtifactUtils +{ + + private ArtifactUtils() + { + } + + public static String versionlessKey( Artifact artifact ) + { + return versionlessKey( artifact.getGroupId(), artifact.getArtifactId() ); + } + + public static String versionlessKey( String groupId, String artifactId ) + { + return groupId + ":" + artifactId; + } + + public static Map artifactMap( Collection artifacts ) + { + Map artifactMap = new HashMap(); + + for ( Iterator it = artifacts.iterator(); it.hasNext(); ) + { + Artifact artifact = (Artifact) it.next(); + + artifactMap.put( versionlessKey( artifact ), artifact ); + } + + return artifactMap; + } + +} Propchange: maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Modified: maven/components/trunk/maven-mboot2/src/main/java/MBoot.java URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-mboot2/src/main/java/MBoot.java?rev=219234&r1=219233&r2=219234&view=diff ============================================================================== --- maven/components/trunk/maven-mboot2/src/main/java/MBoot.java (original) +++ maven/components/trunk/maven-mboot2/src/main/java/MBoot.java Fri Jul 15 12:04:20 2005 @@ -38,7 +38,7 @@ public class MBoot { String[] builds = new String[]{"maven-model", "maven-settings", "maven-monitor", "maven-plugin-api", - "maven-plugin-descriptor", "maven-artifact", "maven-artifact-manager", "maven-artifact-test", + "maven-artifact", "maven-plugin-descriptor", "maven-artifact-manager", "maven-artifact-test", "maven-plugin-mapping", "maven-script/maven-script-beanshell", "maven-script/maven-script-marmalade", "maven-project", "maven-profile", "maven-plugin-registry", "maven-reporting/maven-reporting-api", "maven-core", "maven-archiver", Modified: maven/components/trunk/maven-plugin-descriptor/pom.xml URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-descriptor/pom.xml?rev=219234&r1=219233&r2=219234&view=diff ============================================================================== --- maven/components/trunk/maven-plugin-descriptor/pom.xml (original) +++ maven/components/trunk/maven-plugin-descriptor/pom.xml Fri Jul 15 12:04:20 2005 @@ -16,6 +16,11 @@ <version>2.0-beta-1-SNAPSHOT</version> </dependency> <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-artifact</artifactId> + <version>2.0-beta-1-SNAPSHOT</version> + </dependency> + <dependency> <groupId>plexus</groupId> <artifactId>plexus-container-default</artifactId> <version>1.0-alpha-4</version> Modified: maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptor.java URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptor.java?rev=219234&r1=219233&r2=219234&view=diff ============================================================================== --- maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptor.java (original) +++ maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptor.java Fri Jul 15 12:04:20 2005 @@ -20,6 +20,8 @@ import org.codehaus.plexus.util.IOUtil; import org.codehaus.plexus.util.xml.pull.XmlPullParserException; import org.codehaus.classworlds.ClassRealm; +import org.apache.maven.artifact.Artifact; +import org.apache.maven.artifact.ArtifactUtils; import org.apache.maven.plugin.lifecycle.LifecycleConfiguration; import org.apache.maven.plugin.lifecycle.Lifecycle; import org.apache.maven.plugin.lifecycle.io.xpp3.LifecycleMappingsXpp3Reader; @@ -60,6 +62,9 @@ private ClassRealm classRealm; + // calculated on-demand. + private Map artifactMap; + // ---------------------------------------------------------------------- // // ---------------------------------------------------------------------- @@ -216,6 +221,19 @@ public void setArtifacts( List artifacts ) { this.artifacts = artifacts; + + // clear the calculated artifactMap + artifactMap = null; + } + + public Map getArtifactMap() + { + if ( artifactMap == null ) + { + artifactMap = ArtifactUtils.artifactMap( getArtifacts() ); + } + + return artifactMap; } public boolean equals( Object object ) Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java?rev=219234&r1=219233&r2=219234&view=diff ============================================================================== --- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java (original) +++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java Fri Jul 15 12:04:20 2005 @@ -17,6 +17,7 @@ */ import org.apache.maven.artifact.Artifact; +import org.apache.maven.artifact.ArtifactUtils; import org.apache.maven.artifact.DependencyResolutionRequiredException; import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.model.Build; @@ -49,6 +50,7 @@ import java.util.Collections; import java.util.Iterator; import java.util.List; +import java.util.Map; import java.util.Properties; import java.util.Set; @@ -105,6 +107,9 @@ private Artifact artifact; + // calculated. + private Map artifactMap; + public MavenProject( Model model ) { this.model = model; @@ -782,11 +787,24 @@ public void setArtifacts( Set artifacts ) { this.artifacts = artifacts; + + // flush the calculated artifactMap + artifactMap = null; } public Set getArtifacts() { return artifacts; + } + + public Map getArtifactMap() + { + if ( artifactMap == null ) + { + artifactMap = ArtifactUtils.artifactMap( getArtifacts() ); + } + + return artifactMap; } public void setPluginArtifacts( Set pluginArtifacts ) --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]