mirror of https://github.com/apache/maven.git
[MNG-2988] Ranges with inclusive upper bounds are not validated against metadata
Submitted by: Mark Hobson Merged from: maven-2.0.x branch r545150 git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@545156 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
0c1b689e52
commit
d20f6c96fe
|
@ -34,8 +34,6 @@ import java.util.List;
|
||||||
*/
|
*/
|
||||||
public class VersionRange
|
public class VersionRange
|
||||||
{
|
{
|
||||||
private final ArtifactVersion RELEASE = new DefaultArtifactVersion( "RELEASE" );
|
|
||||||
|
|
||||||
private final ArtifactVersion recommendedVersion;
|
private final ArtifactVersion recommendedVersion;
|
||||||
|
|
||||||
private final List restrictions;
|
private final List restrictions;
|
||||||
|
@ -469,16 +467,8 @@ public class VersionRange
|
||||||
{
|
{
|
||||||
throw new OverConstrainedVersionException( "The artifact has no valid ranges", artifact );
|
throw new OverConstrainedVersionException( "The artifact has no valid ranges", artifact );
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
Restriction restriction = (Restriction) restrictions.get( restrictions.size() - 1 );
|
|
||||||
|
|
||||||
version = restriction.getUpperBound();
|
version = null;
|
||||||
if ( version == null )
|
|
||||||
{
|
|
||||||
version = RELEASE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return version;
|
return version;
|
||||||
}
|
}
|
||||||
|
@ -497,15 +487,6 @@ public class VersionRange
|
||||||
{
|
{
|
||||||
throw new OverConstrainedVersionException( "The artifact has no valid ranges", artifact );
|
throw new OverConstrainedVersionException( "The artifact has no valid ranges", artifact );
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
Restriction restriction = (Restriction) restrictions.get( restrictions.size() - 1 );
|
|
||||||
|
|
||||||
if ( restriction.getUpperBound() != null )
|
|
||||||
{
|
|
||||||
value = restriction.isUpperBoundInclusive();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
|
@ -292,10 +292,10 @@ public class DefaultArtifactCollectorTest
|
||||||
ArtifactSpec b = a.addDependency( "b", "1.0" );
|
ArtifactSpec b = a.addDependency( "b", "1.0" );
|
||||||
a.addDependency( "c", "[2.0,2.5]" );
|
a.addDependency( "c", "[2.0,2.5]" );
|
||||||
b.addDependency( "c", "[1.0,3.0]" );
|
b.addDependency( "c", "[1.0,3.0]" );
|
||||||
|
ArtifactSpec c = createArtifact( "c", "2.5" );
|
||||||
|
|
||||||
ArtifactResolutionResult res = collect( a );
|
ArtifactResolutionResult res = collect( a );
|
||||||
|
|
||||||
ArtifactSpec c = createArtifact( "c", "2.5" );
|
|
||||||
assertEquals( "Check artifact list", createSet( new Object[]{a.artifact, b.artifact, c.artifact} ),
|
assertEquals( "Check artifact list", createSet( new Object[]{a.artifact, b.artifact, c.artifact} ),
|
||||||
res.getArtifacts() );
|
res.getArtifacts() );
|
||||||
assertEquals( "Check version", "2.5", getArtifact( "c", res.getArtifacts() ).getVersion() );
|
assertEquals( "Check version", "2.5", getArtifact( "c", res.getArtifacts() ).getVersion() );
|
||||||
|
|
|
@ -23,6 +23,8 @@ import junit.framework.TestCase;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.maven.artifact.Artifact;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests version range construction.
|
* Tests version range construction.
|
||||||
*
|
*
|
||||||
|
@ -44,9 +46,15 @@ public class VersionRangeTest
|
||||||
|
|
||||||
private static final String CHECK_VERSION_RECOMMENDATION = "check version recommended";
|
private static final String CHECK_VERSION_RECOMMENDATION = "check version recommended";
|
||||||
|
|
||||||
|
private static final String CHECK_SELECTED_VERSION_KNOWN = "check selected version known";
|
||||||
|
|
||||||
|
private static final String CHECK_SELECTED_VERSION = "check selected version";
|
||||||
|
|
||||||
public void testRange()
|
public void testRange()
|
||||||
throws InvalidVersionSpecificationException
|
throws InvalidVersionSpecificationException, OverConstrainedVersionException
|
||||||
{
|
{
|
||||||
|
Artifact artifact = null;
|
||||||
|
|
||||||
VersionRange range = VersionRange.createFromVersionSpec( "(,1.0]" );
|
VersionRange range = VersionRange.createFromVersionSpec( "(,1.0]" );
|
||||||
List restrictions = range.getRestrictions();
|
List restrictions = range.getRestrictions();
|
||||||
assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() );
|
assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() );
|
||||||
|
@ -56,6 +64,8 @@ public class VersionRangeTest
|
||||||
assertEquals( CHECK_UPPER_BOUND, "1.0", restriction.getUpperBound().toString() );
|
assertEquals( CHECK_UPPER_BOUND, "1.0", restriction.getUpperBound().toString() );
|
||||||
assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
|
assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
|
||||||
assertNull( CHECK_VERSION_RECOMMENDATION, range.getRecommendedVersion() );
|
assertNull( CHECK_VERSION_RECOMMENDATION, range.getRecommendedVersion() );
|
||||||
|
assertFalse( CHECK_SELECTED_VERSION_KNOWN, range.isSelectedVersionKnown( artifact ) );
|
||||||
|
assertNull( CHECK_SELECTED_VERSION, range.getSelectedVersion( artifact ) );
|
||||||
|
|
||||||
range = VersionRange.createFromVersionSpec( "1.0" );
|
range = VersionRange.createFromVersionSpec( "1.0" );
|
||||||
assertEquals( CHECK_VERSION_RECOMMENDATION, "1.0", range.getRecommendedVersion().toString() );
|
assertEquals( CHECK_VERSION_RECOMMENDATION, "1.0", range.getRecommendedVersion().toString() );
|
||||||
|
@ -66,6 +76,8 @@ public class VersionRangeTest
|
||||||
assertFalse( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
|
assertFalse( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
|
||||||
assertNull( CHECK_UPPER_BOUND, restriction.getUpperBound() );
|
assertNull( CHECK_UPPER_BOUND, restriction.getUpperBound() );
|
||||||
assertFalse( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
|
assertFalse( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
|
||||||
|
assertTrue( CHECK_SELECTED_VERSION_KNOWN, range.isSelectedVersionKnown( artifact ) );
|
||||||
|
assertEquals( CHECK_SELECTED_VERSION, "1.0", range.getSelectedVersion( artifact ).toString() );
|
||||||
|
|
||||||
range = VersionRange.createFromVersionSpec( "[1.0]" );
|
range = VersionRange.createFromVersionSpec( "[1.0]" );
|
||||||
restrictions = range.getRestrictions();
|
restrictions = range.getRestrictions();
|
||||||
|
@ -76,6 +88,8 @@ public class VersionRangeTest
|
||||||
assertEquals( CHECK_UPPER_BOUND, "1.0", restriction.getUpperBound().toString() );
|
assertEquals( CHECK_UPPER_BOUND, "1.0", restriction.getUpperBound().toString() );
|
||||||
assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
|
assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
|
||||||
assertNull( CHECK_VERSION_RECOMMENDATION, range.getRecommendedVersion() );
|
assertNull( CHECK_VERSION_RECOMMENDATION, range.getRecommendedVersion() );
|
||||||
|
assertFalse( CHECK_SELECTED_VERSION_KNOWN, range.isSelectedVersionKnown( artifact ) );
|
||||||
|
assertNull( CHECK_SELECTED_VERSION, range.getSelectedVersion( artifact ) );
|
||||||
|
|
||||||
range = VersionRange.createFromVersionSpec( "[1.2,1.3]" );
|
range = VersionRange.createFromVersionSpec( "[1.2,1.3]" );
|
||||||
restrictions = range.getRestrictions();
|
restrictions = range.getRestrictions();
|
||||||
|
@ -86,6 +100,8 @@ public class VersionRangeTest
|
||||||
assertEquals( CHECK_UPPER_BOUND, "1.3", restriction.getUpperBound().toString() );
|
assertEquals( CHECK_UPPER_BOUND, "1.3", restriction.getUpperBound().toString() );
|
||||||
assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
|
assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
|
||||||
assertNull( CHECK_VERSION_RECOMMENDATION, range.getRecommendedVersion() );
|
assertNull( CHECK_VERSION_RECOMMENDATION, range.getRecommendedVersion() );
|
||||||
|
assertFalse( CHECK_SELECTED_VERSION_KNOWN, range.isSelectedVersionKnown( artifact ) );
|
||||||
|
assertNull( CHECK_SELECTED_VERSION, range.getSelectedVersion( artifact ) );
|
||||||
|
|
||||||
range = VersionRange.createFromVersionSpec( "[1.0,2.0)" );
|
range = VersionRange.createFromVersionSpec( "[1.0,2.0)" );
|
||||||
restrictions = range.getRestrictions();
|
restrictions = range.getRestrictions();
|
||||||
|
@ -96,6 +112,8 @@ public class VersionRangeTest
|
||||||
assertEquals( CHECK_UPPER_BOUND, "2.0", restriction.getUpperBound().toString() );
|
assertEquals( CHECK_UPPER_BOUND, "2.0", restriction.getUpperBound().toString() );
|
||||||
assertFalse( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
|
assertFalse( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
|
||||||
assertNull( CHECK_VERSION_RECOMMENDATION, range.getRecommendedVersion() );
|
assertNull( CHECK_VERSION_RECOMMENDATION, range.getRecommendedVersion() );
|
||||||
|
assertFalse( CHECK_SELECTED_VERSION_KNOWN, range.isSelectedVersionKnown( artifact ) );
|
||||||
|
assertNull( CHECK_SELECTED_VERSION, range.getSelectedVersion( artifact ) );
|
||||||
|
|
||||||
range = VersionRange.createFromVersionSpec( "[1.5,)" );
|
range = VersionRange.createFromVersionSpec( "[1.5,)" );
|
||||||
restrictions = range.getRestrictions();
|
restrictions = range.getRestrictions();
|
||||||
|
@ -106,6 +124,8 @@ public class VersionRangeTest
|
||||||
assertNull( CHECK_UPPER_BOUND, restriction.getUpperBound() );
|
assertNull( CHECK_UPPER_BOUND, restriction.getUpperBound() );
|
||||||
assertFalse( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
|
assertFalse( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
|
||||||
assertNull( CHECK_VERSION_RECOMMENDATION, range.getRecommendedVersion() );
|
assertNull( CHECK_VERSION_RECOMMENDATION, range.getRecommendedVersion() );
|
||||||
|
assertFalse( CHECK_SELECTED_VERSION_KNOWN, range.isSelectedVersionKnown( artifact ) );
|
||||||
|
assertNull( CHECK_SELECTED_VERSION, range.getSelectedVersion( artifact ) );
|
||||||
|
|
||||||
range = VersionRange.createFromVersionSpec( "(,1.0],[1.2,)" );
|
range = VersionRange.createFromVersionSpec( "(,1.0],[1.2,)" );
|
||||||
restrictions = range.getRestrictions();
|
restrictions = range.getRestrictions();
|
||||||
|
@ -122,6 +142,8 @@ public class VersionRangeTest
|
||||||
assertNull( CHECK_UPPER_BOUND, restriction.getUpperBound() );
|
assertNull( CHECK_UPPER_BOUND, restriction.getUpperBound() );
|
||||||
assertFalse( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
|
assertFalse( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
|
||||||
assertNull( CHECK_VERSION_RECOMMENDATION, range.getRecommendedVersion() );
|
assertNull( CHECK_VERSION_RECOMMENDATION, range.getRecommendedVersion() );
|
||||||
|
assertFalse( CHECK_SELECTED_VERSION_KNOWN, range.isSelectedVersionKnown( artifact ) );
|
||||||
|
assertNull( CHECK_SELECTED_VERSION, range.getSelectedVersion( artifact ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testInvalidRanges()
|
public void testInvalidRanges()
|
||||||
|
|
Loading…
Reference in New Issue