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]

Reply via email to