You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2008/04/27 21:49:13 UTC
svn commit: r652007 - in /maven/artifact/branches/MNG-3010/src:
main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java
test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java
Author: hboutemy
Date: Sun Apr 27 12:49:11 2008
New Revision: 652007
URL: http://svn.apache.org/viewvc?rev=652007&view=rev
Log:
[MNG-3010] integrated ComparableVersion to DefaultArtifactVersion for comparison and updated unit-tests
Modified:
maven/artifact/branches/MNG-3010/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java
maven/artifact/branches/MNG-3010/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java
Modified: maven/artifact/branches/MNG-3010/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java
URL: http://svn.apache.org/viewvc/maven/artifact/branches/MNG-3010/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java?rev=652007&r1=652006&r2=652007&view=diff
==============================================================================
--- maven/artifact/branches/MNG-3010/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java (original)
+++ maven/artifact/branches/MNG-3010/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java Sun Apr 27 12:49:11 2008
@@ -40,6 +40,8 @@
private String qualifier;
+ private ComparableVersion comparable;
+
public DefaultArtifactVersion( String version )
{
parseVersion( version );
@@ -60,78 +62,7 @@
public int compareTo( Object o )
{
DefaultArtifactVersion otherVersion = (DefaultArtifactVersion) o;
-
- int result = compareIntegers( majorVersion, otherVersion.majorVersion );
- if ( result == 0 )
- {
- result = compareIntegers( minorVersion, otherVersion.minorVersion );
- }
- if ( result == 0 )
- {
- result = compareIntegers( incrementalVersion, otherVersion.incrementalVersion );
- }
- if ( result == 0 )
- {
- if ( ( buildNumber != null ) || ( otherVersion.buildNumber != null ) )
- {
- result = compareIntegers( buildNumber, otherVersion.buildNumber );
- }
- else if ( qualifier != null )
- {
- if ( otherVersion.qualifier != null )
- {
- if ( ( qualifier.length() > otherVersion.qualifier.length() ) &&
- qualifier.startsWith( otherVersion.qualifier ) )
- {
- // here, the longer one that otherwise match is considered older
- result = -1;
- }
- else if ( ( qualifier.length() < otherVersion.qualifier.length() ) &&
- otherVersion.qualifier.startsWith( qualifier ) )
- {
- // here, the longer one that otherwise match is considered older
- result = 1;
- }
- else
- {
- result = qualifier.compareTo( otherVersion.qualifier );
- }
- }
- else
- {
- // otherVersion has no qualifier but we do - that's newer
- result = -1;
- }
- }
- else if ( otherVersion.qualifier != null )
- {
- // otherVersion has a qualifier but we don't, we're newer
- result = 1;
- }
- }
- return result;
- }
-
- private int compareIntegers( Integer i1,
- Integer i2 )
- {
- // treat null as 0 in comparison
- if ( i1 == null ? i2 == null : i1.equals( i2 ) )
- {
- return 0;
- }
- else if ( i1 == null )
- {
- return -i2.intValue();
- }
- else if ( i2 == null )
- {
- return i1.intValue();
- }
- else
- {
- return i1.intValue() - i2.intValue();
- }
+ return this.comparable.compareTo( otherVersion.comparable );
}
public int getMajorVersion()
@@ -161,6 +92,8 @@
public final void parseVersion( String version )
{
+ comparable = new ComparableVersion( version );
+
int index = version.indexOf( "-" );
String part1;
Modified: maven/artifact/branches/MNG-3010/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java
URL: http://svn.apache.org/viewvc/maven/artifact/branches/MNG-3010/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java?rev=652007&r1=652006&r2=652007&view=diff
==============================================================================
--- maven/artifact/branches/MNG-3010/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java (original)
+++ maven/artifact/branches/MNG-3010/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java Sun Apr 27 12:49:11 2008
@@ -93,7 +93,7 @@
assertVersionOlder( "1.0-alpha-1", "1.0" );
assertVersionOlder( "1.0-alpha-1", "1.0-alpha-2" );
- //assertVersionOlder( "1.0-alpha-2", "1.0-alpha-15" );
+ assertVersionOlder( "1.0-alpha-2", "1.0-alpha-15" );
assertVersionOlder( "1.0-alpha-1", "1.0-beta-1" );
assertVersionOlder( "1.0-SNAPSHOT", "1.0-beta-1" );
@@ -108,7 +108,7 @@
assertVersionOlder( "2.0-1", "2.0.1" );
assertVersionOlder( "2.0.1-klm", "2.0.1-lmn" );
- assertVersionOlder( "2.0.1-xyz", "2.0.1" );
+ //assertVersionOlder( "2.0.1-xyz", "2.0.1" );
assertVersionOlder( "2.0.1", "2.0.1-123" );
assertVersionOlder( "2.0.1-xyz", "2.0.1-123" );
@@ -135,25 +135,26 @@
assertVersionOlder( "1.0-SNAPSHOT-SNAPSHOT", "1.0-SNAPSHOT" );
assertVersionOlder( "1.0-alpha-1-SNAPSHOT-SNAPSHOT", "1.0-alpha-1-SNAPSHOT" );
- //assertVersionOlder( "1.0-SNAPSHOT", "1.0-1-SNAPSHOT" );
- //assertVersionOlder( "1.0-1-SNAPSHOT", "1.0-2-SNAPSHOT" );
+ assertVersionOlder( "1.0-SNAPSHOT", "1.0-1-SNAPSHOT" );
+ assertVersionOlder( "1.0-1-SNAPSHOT", "1.0-2-SNAPSHOT" );
//assertVersionEqual( "2.0-0-SNAPSHOT", "2.0-SNAPSHOT" );
- //assertVersionOlder( "2.0-SNAPSHOT", "2.0-1-SNAPSHOT" );
- //assertVersionOlder( "2.0.0-SNAPSHOT", "2.0-1-SNAPSHOT" );
+ assertVersionOlder( "2.0-SNAPSHOT", "2.0-1-SNAPSHOT" );
+ assertVersionOlder( "2.0.0-SNAPSHOT", "2.0-1-SNAPSHOT" );
assertVersionOlder( "2.0-1-SNAPSHOT", "2.0.1-SNAPSHOT" );
assertVersionOlder( "2.0.1-klm-SNAPSHOT", "2.0.1-lmn-SNAPSHOT" );
// assertVersionOlder( "2.0.1-xyz-SNAPSHOT", "2.0.1-SNAPSHOT" );
- //assertVersionOlder( "2.0.1-SNAPSHOT", "2.0.1-123-SNAPSHOT" );
- //assertVersionOlder( "2.0.1-xyz-SNAPSHOT", "2.0.1-123-SNAPSHOT" );
+ assertVersionOlder( "2.0.1-SNAPSHOT", "2.0.1-123-SNAPSHOT" );
+ assertVersionOlder( "2.0.1-xyz-SNAPSHOT", "2.0.1-123-SNAPSHOT" );
}
public void testSnapshotVsReleases()
{
- assertVersionOlder( "1.0-RC1", "1.0-SNAPSHOT" );
- //assertVersionOlder( "1.0-rc1", "1.0-SNAPSHOT" );
- //assertVersionOlder( "1.0-rc-1", "1.0-SNAPSHOT" );
+ //assertVersionOlder( "1.0-RC1", "1.0-SNAPSHOT" ); not feasible if "1.0-SNAPSHOT" < "1.0-beta-1" too
+ assertVersionOlder( "1.0-SNAPSHOT", "1.0-RC1" );
+ assertVersionOlder( "1.0-SNAPSHOT", "1.0-rc1" );
+ assertVersionOlder( "1.0-SNAPSHOT", "1.0-rc-1" );
}
private void assertVersionOlder( String left, String right )