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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]