Index: src/main/java/org/apache/maven/artifact/versioning/VersionRange.java =================================================================== --- src/main/java/org/apache/maven/artifact/versioning/VersionRange.java (revision 430686) +++ src/main/java/org/apache/maven/artifact/versioning/VersionRange.java (working copy) @@ -232,7 +232,7 @@ restrictions = intersection( r1, r2 ); } - ArtifactVersion version = null; + ArtifactVersion version = new DefaultArtifactVersion( "RELEASE" ); if ( restrictions.size() > 0 ) { boolean found = false; @@ -246,7 +246,7 @@ version = recommendedVersion; found = true; } - else if ( version == null && restriction.getRecommendedVersion() != null && + else if ( restriction.getRecommendedVersion() != null && r.containsVersion( restriction.getRecommendedVersion() ) ) { // use this if we can, but prefer the original if possible Index: src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java =================================================================== --- src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java (revision 430686) +++ src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java (working copy) @@ -292,10 +292,10 @@ ArtifactResolutionResult res = collect( a ); - ArtifactSpec c = createArtifact( "c", "2.5" ); + ArtifactSpec c = createArtifact( "c", "RELEASE" ); assertEquals( "Check artifact list", createSet( new Object[]{a.artifact, b.artifact, c.artifact} ), res.getArtifacts() ); - assertEquals( "Check version", "2.5", getArtifact( "c", res.getArtifacts() ).getVersion() ); + assertEquals( "Check version", "RELEASE", getArtifact( "c", res.getArtifacts() ).getVersion() ); } public void testIncompatibleRanges() @@ -307,14 +307,12 @@ b.addDependency( "c", "[1.0,2.0]" ); - try - { - ArtifactResolutionResult res = collect( a ); - fail( "Should not succeed collecting, got: " + res.getArtifacts() ); - } - catch ( ArtifactResolutionException expected ) - { - } + ArtifactResolutionResult res = collect( a ); + + ArtifactSpec c = createArtifact( "c", "RELEASE" ); + assertEquals( "Check artifact list", createSet( new Object[]{a.artifact, b.artifact, c.artifact} ), + res.getArtifacts() ); + assertEquals( "Check version", "RELEASE", getArtifact( "c", res.getArtifacts() ).getVersion() ); } public void testUnboundedRangeWhenVersionUnavailable() Index: src/test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java =================================================================== --- src/test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java (revision 430686) +++ src/test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java (working copy) @@ -206,7 +206,7 @@ range1 = VersionRange.createFromVersionSpec( "(1.1,)" ); range2 = VersionRange.createFromVersionSpec( "1.1" ); mergedRange = range1.restrict( range2 ); - assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() ); + assertEquals( CHECK_VERSION_RECOMMENDATION, "RELEASE", mergedRange.getRecommendedVersion().toString() ); restrictions = mergedRange.getRestrictions(); assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() ); restriction = (Restriction) restrictions.get( 0 ); @@ -218,7 +218,7 @@ range1 = VersionRange.createFromVersionSpec( "[1.2,)" ); range2 = VersionRange.createFromVersionSpec( "1.1" ); mergedRange = range1.restrict( range2 ); - assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() ); + assertEquals( CHECK_VERSION_RECOMMENDATION, "RELEASE", mergedRange.getRecommendedVersion().toString() ); restrictions = mergedRange.getRestrictions(); assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() ); restriction = (Restriction) restrictions.get( 0 ); @@ -254,7 +254,7 @@ range1 = VersionRange.createFromVersionSpec( "(,1.1)" ); range2 = VersionRange.createFromVersionSpec( "1.1" ); mergedRange = range1.restrict( range2 ); - assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() ); + assertEquals( CHECK_VERSION_RECOMMENDATION, "RELEASE", mergedRange.getRecommendedVersion().toString() ); restrictions = mergedRange.getRestrictions(); assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() ); restriction = (Restriction) restrictions.get( 0 ); @@ -266,7 +266,7 @@ range1 = VersionRange.createFromVersionSpec( "(,1.0]" ); range2 = VersionRange.createFromVersionSpec( "1.1" ); mergedRange = range1.restrict( range2 ); - assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() ); + assertEquals( CHECK_VERSION_RECOMMENDATION, "RELEASE", mergedRange.getRecommendedVersion().toString() ); restrictions = mergedRange.getRestrictions(); assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() ); restriction = (Restriction) restrictions.get( 0 ); @@ -295,7 +295,7 @@ range1 = VersionRange.createFromVersionSpec( "(,1.0], [1.1,)" ); range2 = VersionRange.createFromVersionSpec( "1.0.5" ); mergedRange = range1.restrict( range2 ); - assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() ); + assertEquals( CHECK_VERSION_RECOMMENDATION, "RELEASE", mergedRange.getRecommendedVersion().toString() ); restrictions = mergedRange.getRestrictions(); assertEquals( CHECK_NUM_RESTRICTIONS, 2, restrictions.size() ); restriction = (Restriction) restrictions.get( 0 ); @@ -312,7 +312,7 @@ range1 = VersionRange.createFromVersionSpec( "(,1.1), (1.1,)" ); range2 = VersionRange.createFromVersionSpec( "1.1" ); mergedRange = range1.restrict( range2 ); - assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() ); + assertEquals( CHECK_VERSION_RECOMMENDATION, "RELEASE", mergedRange.getRecommendedVersion().toString() ); restrictions = mergedRange.getRestrictions(); assertEquals( CHECK_NUM_RESTRICTIONS, 2, restrictions.size() ); restriction = (Restriction) restrictions.get( 0 ); @@ -329,7 +329,7 @@ range1 = VersionRange.createFromVersionSpec( "[1.1,1.3]" ); range2 = VersionRange.createFromVersionSpec( "(1.1,)" ); mergedRange = range1.restrict( range2 ); - assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() ); + assertEquals( CHECK_VERSION_RECOMMENDATION, "RELEASE", mergedRange.getRecommendedVersion().toString() ); restrictions = mergedRange.getRestrictions(); assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() ); restriction = (Restriction) restrictions.get( 0 ); @@ -341,7 +341,7 @@ range1 = VersionRange.createFromVersionSpec( "(,1.3)" ); range2 = VersionRange.createFromVersionSpec( "[1.2,1.3]" ); mergedRange = range1.restrict( range2 ); - assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() ); + assertEquals( CHECK_VERSION_RECOMMENDATION, "RELEASE", mergedRange.getRecommendedVersion().toString() ); restrictions = mergedRange.getRestrictions(); assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() ); restriction = (Restriction) restrictions.get( 0 ); @@ -353,7 +353,7 @@ range1 = VersionRange.createFromVersionSpec( "[1.1,1.3]" ); range2 = VersionRange.createFromVersionSpec( "[1.2,)" ); mergedRange = range1.restrict( range2 ); - assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() ); + assertEquals( CHECK_VERSION_RECOMMENDATION, "RELEASE", mergedRange.getRecommendedVersion().toString() ); restrictions = mergedRange.getRestrictions(); assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() ); restriction = (Restriction) restrictions.get( 0 ); @@ -365,7 +365,7 @@ range1 = VersionRange.createFromVersionSpec( "(,1.3]" ); range2 = VersionRange.createFromVersionSpec( "[1.2,1.4]" ); mergedRange = range1.restrict( range2 ); - assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() ); + assertEquals( CHECK_VERSION_RECOMMENDATION, "RELEASE", mergedRange.getRecommendedVersion().toString() ); restrictions = mergedRange.getRestrictions(); assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() ); restriction = (Restriction) restrictions.get( 0 ); @@ -377,7 +377,7 @@ range1 = VersionRange.createFromVersionSpec( "(1.2,1.3]" ); range2 = VersionRange.createFromVersionSpec( "[1.1,1.4]" ); mergedRange = range1.restrict( range2 ); - assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() ); + assertEquals( CHECK_VERSION_RECOMMENDATION, "RELEASE", mergedRange.getRecommendedVersion().toString() ); restrictions = mergedRange.getRestrictions(); assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() ); restriction = (Restriction) restrictions.get( 0 ); @@ -389,8 +389,7 @@ range1 = VersionRange.createFromVersionSpec( "(1.2,1.3)" ); range2 = VersionRange.createFromVersionSpec( "[1.1,1.4]" ); mergedRange = range1.restrict( range2 ); - assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() ); - restrictions = mergedRange.getRestrictions(); + assertEquals( CHECK_VERSION_RECOMMENDATION, "RELEASE", mergedRange.getRecommendedVersion().toString() ); restrictions = mergedRange.getRestrictions(); assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() ); restriction = (Restriction) restrictions.get( 0 ); assertEquals( CHECK_LOWER_BOUND, "1.2", restriction.getLowerBound().toString() ); @@ -401,7 +400,7 @@ range1 = VersionRange.createFromVersionSpec( "[1.2,1.3)" ); range2 = VersionRange.createFromVersionSpec( "[1.1,1.4]" ); mergedRange = range1.restrict( range2 ); - assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() ); + assertEquals( CHECK_VERSION_RECOMMENDATION, "RELEASE", mergedRange.getRecommendedVersion().toString() ); restrictions = mergedRange.getRestrictions(); assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() ); restriction = (Restriction) restrictions.get( 0 ); @@ -413,7 +412,7 @@ range1 = VersionRange.createFromVersionSpec( "[1.0,1.1]" ); range2 = VersionRange.createFromVersionSpec( "[1.1,1.4]" ); mergedRange = range1.restrict( range2 ); - assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() ); + assertEquals( CHECK_VERSION_RECOMMENDATION, "RELEASE", mergedRange.getRecommendedVersion().toString() ); restrictions = mergedRange.getRestrictions(); assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() ); restriction = (Restriction) restrictions.get( 0 ); @@ -425,14 +424,14 @@ range1 = VersionRange.createFromVersionSpec( "[1.0,1.1)" ); range2 = VersionRange.createFromVersionSpec( "[1.1,1.4]" ); mergedRange = range1.restrict( range2 ); - assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() ); + assertEquals( CHECK_VERSION_RECOMMENDATION, "RELEASE", mergedRange.getRecommendedVersion().toString() ); restrictions = mergedRange.getRestrictions(); assertEquals( CHECK_NUM_RESTRICTIONS, 0, restrictions.size() ); range1 = VersionRange.createFromVersionSpec( "[1.0,1.2],[1.3,1.5]" ); range2 = VersionRange.createFromVersionSpec( "[1.1]" ); mergedRange = range1.restrict( range2 ); - assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() ); + assertEquals( CHECK_VERSION_RECOMMENDATION, "RELEASE", mergedRange.getRecommendedVersion().toString() ); restrictions = mergedRange.getRestrictions(); assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() ); restriction = (Restriction) restrictions.get( 0 ); @@ -444,7 +443,7 @@ range1 = VersionRange.createFromVersionSpec( "[1.0,1.2],[1.3,1.5]" ); range2 = VersionRange.createFromVersionSpec( "[1.4]" ); mergedRange = range1.restrict( range2 ); - assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() ); + assertEquals( CHECK_VERSION_RECOMMENDATION, "RELEASE", mergedRange.getRecommendedVersion().toString() ); restrictions = mergedRange.getRestrictions(); assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() ); restriction = (Restriction) restrictions.get( 0 ); @@ -456,7 +455,7 @@ range1 = VersionRange.createFromVersionSpec( "[1.0,1.2],[1.3,1.5]" ); range2 = VersionRange.createFromVersionSpec( "[1.1,1.4]" ); mergedRange = range1.restrict( range2 ); - assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() ); + assertEquals( CHECK_VERSION_RECOMMENDATION, "RELEASE", mergedRange.getRecommendedVersion().toString() ); restrictions = mergedRange.getRestrictions(); assertEquals( CHECK_NUM_RESTRICTIONS, 2, restrictions.size() ); restriction = (Restriction) restrictions.get( 0 ); @@ -473,7 +472,7 @@ range1 = VersionRange.createFromVersionSpec( "[1.0,1.2),(1.3,1.5]" ); range2 = VersionRange.createFromVersionSpec( "[1.1,1.4]" ); mergedRange = range1.restrict( range2 ); - assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() ); + assertEquals( CHECK_VERSION_RECOMMENDATION, "RELEASE", mergedRange.getRecommendedVersion().toString() ); restrictions = mergedRange.getRestrictions(); assertEquals( CHECK_NUM_RESTRICTIONS, 2, restrictions.size() ); restriction = (Restriction) restrictions.get( 0 ); @@ -490,7 +489,7 @@ range1 = VersionRange.createFromVersionSpec( "[1.0,1.2],[1.3,1.5]" ); range2 = VersionRange.createFromVersionSpec( "(1.1,1.4)" ); mergedRange = range1.restrict( range2 ); - assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() ); + assertEquals( CHECK_VERSION_RECOMMENDATION, "RELEASE", mergedRange.getRecommendedVersion().toString() ); restrictions = mergedRange.getRestrictions(); assertEquals( CHECK_NUM_RESTRICTIONS, 2, restrictions.size() ); restriction = (Restriction) restrictions.get( 0 ); @@ -507,7 +506,7 @@ range1 = VersionRange.createFromVersionSpec( "[1.0,1.2),(1.3,1.5]" ); range2 = VersionRange.createFromVersionSpec( "(1.1,1.4)" ); mergedRange = range1.restrict( range2 ); - assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() ); + assertEquals( CHECK_VERSION_RECOMMENDATION, "RELEASE", mergedRange.getRecommendedVersion().toString() ); restrictions = mergedRange.getRestrictions(); assertEquals( CHECK_NUM_RESTRICTIONS, 2, restrictions.size() ); restriction = (Restriction) restrictions.get( 0 ); @@ -524,28 +523,28 @@ range1 = VersionRange.createFromVersionSpec( "(,1.1),(1.4,)" ); range2 = VersionRange.createFromVersionSpec( "[1.1,1.4]" ); mergedRange = range1.restrict( range2 ); - assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() ); + assertEquals( CHECK_VERSION_RECOMMENDATION, "RELEASE", mergedRange.getRecommendedVersion().toString() ); restrictions = mergedRange.getRestrictions(); assertEquals( CHECK_NUM_RESTRICTIONS, 0, restrictions.size() ); range1 = VersionRange.createFromVersionSpec( "(,1.1],[1.4,)" ); range2 = VersionRange.createFromVersionSpec( "(1.1,1.4)" ); mergedRange = range1.restrict( range2 ); - assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() ); + assertEquals( CHECK_VERSION_RECOMMENDATION, "RELEASE", mergedRange.getRecommendedVersion().toString() ); restrictions = mergedRange.getRestrictions(); assertEquals( CHECK_NUM_RESTRICTIONS, 0, restrictions.size() ); range1 = VersionRange.createFromVersionSpec( "[,1.1],[1.4,]" ); range2 = VersionRange.createFromVersionSpec( "[1.2,1.3]" ); mergedRange = range1.restrict( range2 ); - assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() ); + assertEquals( CHECK_VERSION_RECOMMENDATION, "RELEASE", mergedRange.getRecommendedVersion().toString() ); restrictions = mergedRange.getRestrictions(); assertEquals( CHECK_NUM_RESTRICTIONS, 0, restrictions.size() ); range1 = VersionRange.createFromVersionSpec( "[1.0,1.2],[1.3,1.5]" ); range2 = VersionRange.createFromVersionSpec( "[1.1,1.4],[1.6,]" ); mergedRange = range1.restrict( range2 ); - assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() ); + assertEquals( CHECK_VERSION_RECOMMENDATION, "RELEASE", mergedRange.getRecommendedVersion().toString() ); restrictions = mergedRange.getRestrictions(); assertEquals( CHECK_NUM_RESTRICTIONS, 2, restrictions.size() ); restriction = (Restriction) restrictions.get( 0 ); @@ -562,7 +561,7 @@ range1 = VersionRange.createFromVersionSpec( "[1.0,1.2],[1.3,1.5]" ); range2 = VersionRange.createFromVersionSpec( "[1.1,1.4],[1.5,]" ); mergedRange = range1.restrict( range2 ); - assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() ); + assertEquals( CHECK_VERSION_RECOMMENDATION, "RELEASE", mergedRange.getRecommendedVersion().toString() ); restrictions = mergedRange.getRestrictions(); assertEquals( CHECK_NUM_RESTRICTIONS, 3, restrictions.size() ); restriction = (Restriction) restrictions.get( 0 ); @@ -584,7 +583,7 @@ range1 = VersionRange.createFromVersionSpec( "[1.0,1.2],[1.3,1.7]" ); range2 = VersionRange.createFromVersionSpec( "[1.1,1.4],[1.5,1.6]" ); mergedRange = range1.restrict( range2 ); - assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() ); + assertEquals( CHECK_VERSION_RECOMMENDATION, "RELEASE", mergedRange.getRecommendedVersion().toString() ); restrictions = mergedRange.getRestrictions(); assertEquals( CHECK_NUM_RESTRICTIONS, 3, restrictions.size() ); restriction = (Restriction) restrictions.get( 0 ); @@ -608,7 +607,7 @@ range2 = VersionRange.createFromVersionSpec( "[1.2,1.3]" ); range1 = range1.restrict( range2 ); mergedRange = range1.restrict( range2 ); - assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() ); + assertEquals( CHECK_VERSION_RECOMMENDATION, "RELEASE", mergedRange.getRecommendedVersion().toString() ); restrictions = mergedRange.getRestrictions(); assertEquals( CHECK_NUM_RESTRICTIONS, 0, restrictions.size() ); @@ -616,7 +615,7 @@ range2 = VersionRange.createFromVersionSpec( "[1.2,1.3]" ); range2 = range1.restrict( range2 ); mergedRange = range1.restrict( range2 ); - assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() ); + assertEquals( CHECK_VERSION_RECOMMENDATION, "RELEASE", mergedRange.getRecommendedVersion().toString() ); restrictions = mergedRange.getRestrictions(); assertEquals( CHECK_NUM_RESTRICTIONS, 0, restrictions.size() ); }