Return-Path: Delivered-To: apmail-maven-commits-archive@www.apache.org Received: (qmail 81850 invoked from network); 20 May 2008 12:03:02 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 20 May 2008 12:03:02 -0000 Received: (qmail 64855 invoked by uid 500); 20 May 2008 12:03:03 -0000 Delivered-To: apmail-maven-commits-archive@maven.apache.org Received: (qmail 64808 invoked by uid 500); 20 May 2008 12:03:03 -0000 Mailing-List: contact commits-help@maven.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@maven.apache.org Delivered-To: mailing list commits@maven.apache.org Received: (qmail 64799 invoked by uid 99); 20 May 2008 12:03:03 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 20 May 2008 05:03:03 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 20 May 2008 12:02:17 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 7B76023889C2; Tue, 20 May 2008 05:02:38 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r658214 - in /maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers: EclipseClasspathWriter.java EclipseProjectWriter.java Date: Tue, 20 May 2008 12:02:38 -0000 To: commits@maven.apache.org From: nicolas@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20080520120238.7B76023889C2@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: nicolas Date: Tue May 20 05:02:38 2008 New Revision: 658214 URL: http://svn.apache.org/viewvc?rev=658214&view=rev Log: MECLIPSE-397 : avoid duplicate entries in eclipse project references when same artifact is used as dependency with multuple classifiers / types Modified: maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseClasspathWriter.java maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseProjectWriter.java Modified: maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseClasspathWriter.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseClasspathWriter.java?rev=658214&r1=658213&r2=658214&view=diff ============================================================================== --- maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseClasspathWriter.java (original) +++ maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseClasspathWriter.java Tue May 20 05:02:38 2008 @@ -45,7 +45,7 @@ /** * Writes eclipse .classpath file. - * + * * @author Trygve Laugstøl * @author Kenney Westerhof * @author Fabrizio Giustina @@ -328,7 +328,7 @@ // TODO if (..magic property equals orderDependencies..) // ---------------------------------------------------------------------- - // Java API dependencies that may complete the classpath container so must + // Java API dependencies that may complete the classpath container so must // be declared BEFORE so that container access rules don't fail // ---------------------------------------------------------------------- IdeDependency[] depsToWrite = config.getDepsOrdered(); @@ -337,13 +337,15 @@ IdeDependency dep = depsToWrite[j]; if ( dep.isJavaApi() ) { - String depId = - dep.getGroupId() + ":" + dep.getArtifactId() + ":" + dep.getClassifier() + ":" + dep.getVersion(); - addDependency( writer, dep ); - addedDependencies.add( depId ); + String depId = getDependencyId( dep ); + if ( !addedDependencies.contains( depId ) ) + { + addDependency( writer, dep ); + addedDependencies.add( depId ); + } } } - + // ---------------------------------------------------------------------- // Container classpath entries // ---------------------------------------------------------------------- @@ -365,12 +367,11 @@ if ( dep.isAddedToClasspath() ) { - String depId = - dep.getGroupId() + ":" + dep.getArtifactId() + ":" + dep.getClassifier() + ":" + dep.getVersion(); - /* avoid duplicates in the classpath for artifacts with different types (like ejbs) */ + String depId = getDependencyId( dep ); + /* avoid duplicates in the classpath for artifacts with different types (like ejbs or test-jars) */ if ( !addedDependencies.contains( depId ) ) { - addDependency( writer, dep ); + addDependency( writer, dep ); addedDependencies.add( depId ); } } @@ -382,6 +383,19 @@ } + private String getDependencyId( IdeDependency dep ) + { + String depId = + dep.getGroupId() + ":" + dep.getArtifactId() + ":" + dep.getClassifier() + ":" + dep.getVersion(); + + if ( dep.isReferencedProject() ) + { + // This dependency will be refered as an eclipse project + depId = dep.getEclipseProjectName(); + } + return depId; + } + protected void addDependency( XMLWriter writer, IdeDependency dep ) throws MojoExecutionException { Modified: maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseProjectWriter.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseProjectWriter.java?rev=658214&r1=658213&r2=658214&view=diff ============================================================================== --- maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseProjectWriter.java (original) +++ maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseProjectWriter.java Tue May 20 05:02:38 2008 @@ -26,6 +26,7 @@ import java.io.OutputStreamWriter; import java.io.Reader; import java.io.Writer; +import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedHashSet; import java.util.List; @@ -47,7 +48,7 @@ /** * Writes eclipse .project file. - * + * * @author Trygve Laugstøl * @author Kenney Westerhof * @author Fabrizio Giustina @@ -188,14 +189,18 @@ // referenced projects should not be added for plugins if ( !config.isPde() ) { + List duplicates = new ArrayList(); for ( int j = 0; j < config.getDepsOrdered().length; j++ ) { IdeDependency dep = config.getDepsOrdered()[j]; - if ( dep.isReferencedProject() ) + // Avoid duplicates entries when same project is refered using multiple types + // (ejb, test-jar ...) + if ( dep.isReferencedProject() && ! duplicates.contains( dep.getEclipseProjectName() )) { writer.startElement( "project" ); //$NON-NLS-1$ writer.writeText( dep.getEclipseProjectName() ); writer.endElement(); + duplicates.add( dep.getEclipseProjectName() ); } } }