Author: brett
Date: Tue Jul 19 01:41:28 2005
New Revision: 219631
URL: http://svn.apache.org/viewcvs?rev=219631&view=rev
Log:
PR: MNG-505
test for correct ordering and overlap
Modified:
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/VersionRange.java
maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java
Modified:
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/VersionRange.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/VersionRange.java?rev=219631&r1=219630&r2=219631&view=diff
==============================================================================
---
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/VersionRange.java
(original)
+++
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/VersionRange.java
Tue Jul 19 01:41:28 2005
@@ -54,6 +54,8 @@
List restrictions = new ArrayList();
String process = spec;
ArtifactVersion version = null;
+ ArtifactVersion upperBound = null;
+ ArtifactVersion lowerBound = null;
while ( process.startsWith( "[" ) || process.startsWith( "(" ) )
{
@@ -74,7 +76,20 @@
throw new InvalidVersionSpecificationException( "Unbounded
range: " + spec );
}
- restrictions.add( parseRestriction( process.substring( 0, index +
1 ) ) );
+ Restriction restriction = parseRestriction( process.substring( 0,
index + 1 ) );
+ if ( lowerBound == null )
+ {
+ lowerBound = restriction.getLowerBound();
+ }
+ if ( upperBound != null )
+ {
+ if ( restriction.getLowerBound() == null ||
restriction.getLowerBound().compareTo( upperBound ) < 0 )
+ {
+ throw new InvalidVersionSpecificationException( "Ranges
overlap: " + spec );
+ }
+ }
+ restrictions.add( restriction );
+ upperBound = restriction.getUpperBound();
process = process.substring( index + 1 ).trim();
@@ -141,6 +156,11 @@
if ( upperBound.length() > 0 )
{
upperVersion = new DefaultArtifactVersion( upperBound );
+ }
+
+ if ( upperVersion != null && lowerVersion != null &&
upperVersion.compareTo( lowerVersion ) < 0 )
+ {
+ throw new InvalidVersionSpecificationException( "Range defies
version ordering: " + spec );
}
restriction = new Restriction( lowerVersion, lowerBoundInclusive,
upperVersion, upperBoundInclusive );
Modified:
maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java?rev=219631&r1=219630&r2=219631&view=diff
==============================================================================
---
maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java
(original)
+++
maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java
Tue Jul 19 01:41:28 2005
@@ -124,15 +124,14 @@
checkInvalidRange( "(1.0,1.0]" );
checkInvalidRange( "[1.0,1.0)" );
checkInvalidRange( "(1.0,1.0)" );
+ checkInvalidRange( "[1.1,1.0]" );
checkInvalidRange( "[1.0,1.2),1.3" );
-/* TODO: not testing this presently
// overlap
checkInvalidRange( "[1.0,1.2),(1.1,1.3]" );
// overlap
checkInvalidRange( "[1.1,1.3),(1.0,1.2]" );
// ordering
checkInvalidRange( "(1.1,1.2],[1.0,1.1)" );
-*/
}
public void testIntersections()
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]