You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by br...@apache.org on 2005/07/19 10:43:59 UTC
svn commit: r219631 - in /maven/components/trunk/maven-artifact/src:
main/java/org/apache/maven/artifact/versioning/VersionRange.java
test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java
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: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org