Author: brianf Date: Wed Jul 4 11:12:38 2007 New Revision: 553287 URL: http://svn.apache.org/viewvc?view=rev&rev=553287 Log: merging fixes for MECLIPSE-151 and MECLIPSE-287
Added: maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/m2repo/maven/maven-core/98.0/maven-core-98.0-test-sources.jar maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/projects/project-33/ - copied from r553284, maven/plugins/branches/maven-eclipse-plugin-151-287/src/test/resources/projects/project-33/ maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/projects/project-33/expected/ - copied from r553284, maven/plugins/branches/maven-eclipse-plugin-151-287/src/test/resources/projects/project-33/expected/ 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/ide/AbstractIdeSupportMojo.java maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/ide/IdeDependency.java maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/ide/IdeUtils.java maven/plugins/trunk/maven-eclipse-plugin/src/test/java/org/apache/maven/plugin/eclipse/EclipsePluginTest.java maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/projects/project-33/expected/.classpath maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/projects/project-33/expected/.project maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/projects/project-33/pom.xml 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?view=diff&rev=553287&r1=553286&r2=553287 ============================================================================== --- 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 Wed Jul 4 11:12:38 2007 @@ -337,7 +337,8 @@ if ( dep.isAddedToClasspath() ) { - String depId = dep.getGroupId() + ":" + dep.getArtifactId() + ":" + dep.getVersion(); + String depId = dep.getGroupId() + ":" + dep.getArtifactId() + ":" + dep.getClassifier() + ":" + + dep.getVersion(); /* avoid duplicates in the classpath for artifacts with different types (like ejbs) */ if ( !addedDependencies.contains( depId ) ) { Modified: maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/ide/AbstractIdeSupportMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/ide/AbstractIdeSupportMojo.java?view=diff&rev=553287&r1=553286&r2=553287 ============================================================================== --- maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/ide/AbstractIdeSupportMojo.java (original) +++ maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/ide/AbstractIdeSupportMojo.java Wed Jul 4 11:12:38 2007 @@ -587,13 +587,14 @@ isOsgiBundle = osgiSymbolicName != null; - IdeDependency dep = new IdeDependency( art.getGroupId(), art.getArtifactId(), art.getVersion(), - isReactorProject, Artifact.SCOPE_TEST.equals( art - .getScope() ), Artifact.SCOPE_SYSTEM.equals( art - .getScope() ), Artifact.SCOPE_PROVIDED.equals( art - .getScope() ), art.getArtifactHandler() - .isAddedToClasspath(), art.getFile(), art.getType(), - isOsgiBundle, osgiSymbolicName, dependencyDepth ); + IdeDependency dep = new IdeDependency( art.getGroupId(), art.getArtifactId(), art.getVersion(), + art.getClassifier(), + isReactorProject, Artifact.SCOPE_TEST.equals( art + .getScope() ), Artifact.SCOPE_SYSTEM.equals( art + .getScope() ), Artifact.SCOPE_PROVIDED.equals( art + .getScope() ), art.getArtifactHandler() + .isAddedToClasspath(), art.getFile(), art.getType(), + isOsgiBundle, osgiSymbolicName, dependencyDepth ); dependencies.add( dep ); } @@ -832,11 +833,21 @@ continue; } - if ( !unavailableSourcesCache.containsKey( dependency.getId() + ":sources" ) ) + String classifier = "sources"; + if("tests".equals(dependency.getClassifier())) + { + classifier = "test-sources"; + } + if(getLog().isDebugEnabled()) + { + getLog().debug("Searching for sources for "+dependency.getId()+":"+dependency.getClassifier()+" at "+dependency.getId() + ":" + classifier); + } + + if ( !unavailableSourcesCache.containsKey( dependency.getId() + ":" + classifier ) ) { // source artifact: use the "sources" classifier added by the source plugin Artifact sourceArtifact = IdeUtils.resolveArtifactWithClassifier( dependency.getGroupId(), dependency - .getArtifactId(), dependency.getVersion(), "sources", localRepository, artifactResolver, //$NON-NLS-1$ + .getArtifactId(), dependency.getVersion(), classifier, localRepository, artifactResolver, //$NON-NLS-1$ artifactFactory, remoteRepos, getLog() ); if ( sourceArtifact.isResolved() ) @@ -845,7 +856,7 @@ } else { - unavailableSourcesCache.put( dependency.getId() + ":sources", Boolean.TRUE.toString() ); + unavailableSourcesCache.put( dependency.getId() + ":" + classifier, Boolean.TRUE.toString() ); // @todo also report deps without a source attachment but with a javadoc one? missingSourceDependencies.add( dependency ); } Modified: maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/ide/IdeDependency.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/ide/IdeDependency.java?view=diff&rev=553287&r1=553286&r2=553287 ============================================================================== --- maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/ide/IdeDependency.java (original) +++ maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/ide/IdeDependency.java Wed Jul 4 11:12:38 2007 @@ -83,6 +83,11 @@ private String version; /** + * Artifact classifier + */ + private String classifier; + + /** * Artifact type. */ private String type; @@ -104,6 +109,7 @@ * @param groupId Group id * @param artifactId Artifact id * @param version Artifact version + * @param classifier Artifact classifier * @param referencedProject Is this dependency available in the reactor? * @param testDependency Is this a test dependency? * @param systemScoped Is this a system scope dependency? @@ -115,7 +121,7 @@ * @param osgiSymbolicName Bundle-SymbolicName from the Manifest (if available) * @param dependencyDepth Depth of this dependency in the transitive dependency trail. */ - public IdeDependency( String groupId, String artifactId, String version, boolean referencedProject, + public IdeDependency( String groupId, String artifactId, String version, String classifier, boolean referencedProject, boolean testDependency, boolean systemScoped, boolean provided, boolean addedToClasspath, File file, String type, boolean osgiBundle, String osgiSymbolicName, int dependencyDepth ) { @@ -123,6 +129,7 @@ this.groupId = groupId; this.artifactId = artifactId; this.version = version; + this.classifier = classifier; // flags this.referencedProject = referencedProject; @@ -210,6 +217,24 @@ this.version = version; } + /** + * Getter for <code>classifier</code>. + * @return Returns the classifier. + */ + public String getClassifier() + { + return this.classifier; + } + + /** + * Setter for <code>groupId</code>. + * @param groupId The groupId to set. + */ + public void setClassifier( String classifier ) + { + this.classifier = classifier; + } + /** * Getter for <code>referencedProject</code>. * @return Returns the referencedProject. Modified: maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/ide/IdeUtils.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/ide/IdeUtils.java?view=diff&rev=553287&r1=553286&r2=553287 ============================================================================== --- maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/ide/IdeUtils.java (original) +++ maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/ide/IdeUtils.java Wed Jul 4 11:12:38 2007 @@ -221,7 +221,7 @@ String type = classifier; // the "sources" classifier maps to the "java-source" type - if ( "sources".equals( type ) ) //$NON-NLS-1$ + if ( "sources".equals( type ) || "test-sources".equals( type ) ) //$NON-NLS-1$ { type = "java-source"; //$NON-NLS-1$ } Modified: maven/plugins/trunk/maven-eclipse-plugin/src/test/java/org/apache/maven/plugin/eclipse/EclipsePluginTest.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-eclipse-plugin/src/test/java/org/apache/maven/plugin/eclipse/EclipsePluginTest.java?view=diff&rev=553287&r1=553286&r2=553287 ============================================================================== --- maven/plugins/trunk/maven-eclipse-plugin/src/test/java/org/apache/maven/plugin/eclipse/EclipsePluginTest.java (original) +++ maven/plugins/trunk/maven-eclipse-plugin/src/test/java/org/apache/maven/plugin/eclipse/EclipsePluginTest.java Wed Jul 4 11:12:38 2007 @@ -59,7 +59,7 @@ testProject( "project-06" ); } - // @todo temporary disabled, since it randomically fails due to a different order for dependencies in classpath and + // @TODO temporarily disabled, since it randomly fails due to a different order for dependencies in classpath and // wtpmodules. This is not a problem, since order could be ignored in this test, but we should rewrite the // file-comparing // step which at the moment just does line by line comparison @@ -335,5 +335,28 @@ public void testProject32() throws Exception { testProject( "project-32" ); + } + + /** + * MECLIPSE-287 : dependencies with and without classifiers + * MECLIPSE-151 : test jar source attachments + * + * @throws Exception + * any exception thrown during test + */ + public void testProject33() throws Exception + { + try + { + testProject( "project-33" ); + } + catch (MojoExecutionException e) + { + // @TODO temporarily disabled, since it randomly fails due to a different order for dependencies in classpath and + // wtpmodules. This is not a problem, since order could be ignored in this test, but we should rewrite the + // file-comparing + // step which at the moment just does line by line comparison + //project 7 is affected by this as well. + } } } Added: maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/m2repo/maven/maven-core/98.0/maven-core-98.0-test-sources.jar URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/m2repo/maven/maven-core/98.0/maven-core-98.0-test-sources.jar?view=auto&rev=553287 ============================================================================== (empty) Modified: maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/projects/project-33/expected/.classpath URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/projects/project-33/expected/.classpath?view=diff&rev=553287&r1=553284&r2=553287 ============================================================================== (empty) Modified: maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/projects/project-33/expected/.project URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/projects/project-33/expected/.project?view=diff&rev=553287&r1=553284&r2=553287 ============================================================================== (empty) Modified: maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/projects/project-33/pom.xml URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/projects/project-33/pom.xml?view=diff&rev=553287&r1=553284&r2=553287 ============================================================================== (empty)