You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by br...@apache.org on 2005/07/28 09:33:59 UTC

svn commit: r225723 - in /maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse: EclipsePlugin.java EclipseWriter.java

Author: brett
Date: Thu Jul 28 00:33:56 2005
New Revision: 225723

URL: http://svn.apache.org/viewcvs?rev=225723&view=rev
Log:
PR: MNG-549
Submitted by: Kenney Westerhof
make eclipse plugin reactor aware

Modified:
    maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipsePlugin.java
    maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipseWriter.java

Modified: maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipsePlugin.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipsePlugin.java?rev=225723&r1=225722&r2=225723&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipsePlugin.java (original)
+++ maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipsePlugin.java Thu Jul 28 00:33:56 2005
@@ -22,6 +22,7 @@
 import org.apache.maven.project.MavenProject;
 
 import java.io.File;
+import java.util.List;
 
 /**
  * A Maven2 plugin which integrates the use of Maven2 with Eclipse.
@@ -58,6 +59,13 @@
      */
     private ArtifactRepository localRepository;
 
+    /**
+     * @parameter expression="${reactorProjects}"
+     * @required
+     * @readonly
+     */
+    private List reactorProjects;
+
     public EclipsePlugin()
     {
         eclipseWriter = new EclipseWriter();
@@ -97,7 +105,7 @@
                 executedProject = project;
             }
 
-            eclipseWriter.write( project, executedProject );
+            eclipseWriter.write( project, executedProject, reactorProjects );
         }
         catch ( EclipsePluginException e )
         {

Modified: maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipseWriter.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipseWriter.java?rev=225723&r1=225722&r2=225723&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipseWriter.java (original)
+++ maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipseWriter.java Thu Jul 28 00:33:56 2005
@@ -46,7 +46,7 @@
         this.localRepository = localRepository;
     }
 
-    public void write( MavenProject project, MavenProject executedProject )
+    public void write( MavenProject project, MavenProject executedProject, List reactorProjects )
         throws EclipsePluginException
     {
         File basedir = project.getFile().getParentFile();
@@ -61,7 +61,7 @@
 
         writeEclipseProject( basedir, project, map );
 
-        writeEclipseClasspath( basedir, project, executedProject, map );
+        writeEclipseClasspath( basedir, project, executedProject, map, reactorProjects );
 
         System.out.println( "Wrote Eclipse project for " + project.getArtifactId() + " to " + basedir.getAbsolutePath() );
     }
@@ -155,7 +155,7 @@
     // .classpath
     // ----------------------------------------------------------------------
 
-    protected void writeEclipseClasspath( File basedir, MavenProject project, MavenProject executedProject, Map map )
+    protected void writeEclipseClasspath( File basedir, MavenProject project, MavenProject executedProject, Map map, List reactorProjects )
         throws EclipsePluginException
     {
         FileWriter w;
@@ -235,7 +235,7 @@
         {
             Artifact artifact = (Artifact) it.next();
             
-            addDependency( writer, artifact );
+            addDependency( writer, artifact, reactorProjects );
         }
 
         writer.endElement();
@@ -316,24 +316,57 @@
         }
     }
 
-    private void addDependency( XMLWriter writer, Artifact artifact )
+    private void addDependency( XMLWriter writer, Artifact artifact, List reactorProjects )
     {
-        File path = artifact.getFile();
-
+        String path = getProjectPath( reactorProjects, artifact );
+        
+        String kind = path == null ? "var" : "src";
+                
+        // fall-through when no local project could be found in the reactor
         if ( path == null )
         {
-            System.err.println( "The artifacts path was null. Artifact id: " + artifact.getId() );
+            File artifactPath = artifact.getFile();
 
-            return;
+            if ( artifactPath == null )
+            {
+                System.err.println( "The artifacts path was null. Artifact id: " + artifact.getId() );
+    
+                return;
+            }
+            
+            path = "M2_REPO/" + toRelative( localRepository, artifactPath.getPath() );
         }
 
         writer.startElement( "classpathentry" );
 
-        writer.addAttribute( "kind", "var" );
+        writer.addAttribute( "kind", kind );
 
-        writer.addAttribute( "path", "M2_REPO/" + toRelative( localRepository, path.getPath() ) );
+        writer.addAttribute( "path", path );
 
         writer.endElement();
+    }
+    
+    private String getProjectPath( List reactorProjects, Artifact artifact )
+    {
+        if ( reactorProjects == null )
+        {
+            return null;	// we're a single project
+        }
+        
+        for (Iterator it = reactorProjects.iterator(); it.hasNext(); )
+        {
+            MavenProject project = (MavenProject) it.next();
+            
+            if ( project.getGroupId().equals( artifact.getGroupId() )
+                && project.getArtifactId().equals( artifact.getArtifactId() )
+                && project.getVersion().equals( artifact.getVersion() )
+            )
+            {
+                return "/" + project.getArtifactId();
+            }
+        }
+        
+        return null;
     }
 
     private void close( Writer closeable )



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org