You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2008/03/06 02:02:37 UTC
svn commit: r634097 - in
/maven/components/branches/maven-2.0.x/maven-artifact/src:
main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java
Author: brianf
Date: Wed Mar 5 17:02:28 2008
New Revision: 634097
URL: http://svn.apache.org/viewvc?rev=634097&view=rev
Log:
MNG-2123: new form of the unit test that expressed the issue seen in the IT
Modified:
maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
maven/components/branches/maven-2.0.x/maven-artifact/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java
Modified: maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java?rev=634097&r1=634096&r2=634097&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java (original)
+++ maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java Wed Mar 5 17:02:28 2008
@@ -196,10 +196,10 @@
//MNG-2123: if the previous node was not a range, then it wouldn't have any available
//versions. We just clobbered the selected version above. (why? i have no idea.)
//So since we are here and this is ranges we must go figure out the version (for a third time...)
- if ( resetArtifact.getVersion() == null && resetArtifact.getVersionRange() != null)
+ if ( resetArtifact.getVersion() == null && resetArtifact.getVersionRange() != null )
{
- //go find the version. This is a total hack. See previous comment.
+ // go find the version. This is a total hack. See previous comment.
List versions = resetArtifact.getAvailableVersions();
if ( versions == null )
{
@@ -219,8 +219,9 @@
remoteRepositories, e );
}
}
+ //end hack
resetArtifact.selectVersion( resetArtifact.getVersionRange().matchVersion(
- resetArtifact.getAvailableVersions() ).toString() );
+ resetArtifact.getAvailableVersions() ).toString() );
fireEvent( ResolutionListener.SELECT_VERSION_FROM_RANGE, listeners, resetNodes[j] );
}
}
Modified: maven/components/branches/maven-2.0.x/maven-artifact/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-artifact/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java?rev=634097&r1=634096&r2=634097&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-artifact/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java (original)
+++ maven/components/branches/maven-2.0.x/maven-artifact/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java Wed Mar 5 17:02:28 2008
@@ -368,30 +368,56 @@
}
public void testInCompatibleRecommendedVersion()
- throws ArtifactResolutionException, InvalidVersionSpecificationException
-{
-
- //this test puts two dependencies on C with 3.2 and [1.0,3.0] as the version.
- //it puts 2.5 and 3.0 in the pretend repo...we should get back 3.0
- ArtifactSpec a = createArtifactSpec( "a", "1.0" );
- ArtifactSpec b = a.addDependency( "b", "1.0" );
- ArtifactSpec b1 = a.addDependency( "b1", "1.0" );
- b.addDependency( "c", "3.2" );
- b1.addDependency( "c", "[1.0,3.0]" );
-
- //put it in the repo
- ArtifactSpec c = createArtifactSpec( "c", "3.0" );
- source.addArtifact( createArtifactSpec( "c", "2.5" ));
- source.addArtifact( createArtifactSpec( "c", "3.0" ));
- source.addArtifact( createArtifactSpec( "c", "3.2" ));
-
-
- ArtifactResolutionResult res = collect( a );
-
- assertEquals( "Check artifact list", createSet( new Object[] { a.artifact, b.artifact,b1.artifact,c.artifact } ),
- res.getArtifacts() );
- assertEquals( "Check version", "3.0", getArtifact( "c", res.getArtifacts() ).getVersion() );
-}
+ throws ArtifactResolutionException, InvalidVersionSpecificationException
+ {
+
+ // this test puts two dependencies on C with 3.2 and [1.0,3.0] as the version.
+ // it puts 2.5 and 3.0 in the pretend repo...we should get back 3.0
+ ArtifactSpec a = createArtifactSpec( "a", "1.0" );
+ ArtifactSpec b = a.addDependency( "b", "1.0" );
+ ArtifactSpec b1 = a.addDependency( "b1", "1.0" );
+ b.addDependency( "c", "3.2" );
+ b1.addDependency( "c", "[1.0,3.0]" );
+
+ // put it in the repo
+ ArtifactSpec c = createArtifactSpec( "c", "3.0" );
+ source.addArtifact( createArtifactSpec( "c", "2.5" ) );
+ source.addArtifact( createArtifactSpec( "c", "3.0" ) );
+ source.addArtifact( createArtifactSpec( "c", "3.2" ) );
+
+ ArtifactResolutionResult res = collect( a );
+
+ assertEquals( "Check artifact list",
+ createSet( new Object[] { a.artifact, b.artifact, b1.artifact, c.artifact } ), res.getArtifacts() );
+ assertEquals( "Check version", "3.0", getArtifact( "c", res.getArtifacts() ).getVersion() );
+ }
+
+ //MNG-2123: this version of the test caused the crash seen in the IT. It was
+ //only happening if the first dependency was not a range but the second one was.
+ public void testInCompatibleRecommendedVersion2()
+ throws ArtifactResolutionException, InvalidVersionSpecificationException
+ {
+
+ // this test puts two dependencies on C with 3.2 and [1.0,3.0] as the version.
+ // it puts 2.5 and 3.0 in the pretend repo...we should get back 3.0
+ ArtifactSpec a = createArtifactSpec( "a", "1.0" );
+ ArtifactSpec b = a.addDependency( "b", "1.0" );
+ ArtifactSpec b1 = a.addDependency( "b1", "1.0" );
+ b1.addDependency( "c", "3.2" );
+ b.addDependency( "c", "[1.0,3.0]" );
+
+ // put it in the repo
+ ArtifactSpec c = createArtifactSpec( "c", "3.0" );
+ source.addArtifact( createArtifactSpec( "c", "2.5" ) );
+ source.addArtifact( createArtifactSpec( "c", "3.0" ) );
+ source.addArtifact( createArtifactSpec( "c", "3.2" ) );
+
+ ArtifactResolutionResult res = collect( a );
+
+ assertEquals( "Check artifact list",
+ createSet( new Object[] { a.artifact, b.artifact, b1.artifact, c.artifact } ), res.getArtifacts() );
+ assertEquals( "Check version", "3.0", getArtifact( "c", res.getArtifacts() ).getVersion() );
+ }
public void testIncompatibleRanges()
throws ArtifactResolutionException, InvalidVersionSpecificationException