You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2007/08/14 17:20:23 UTC

svn commit: r565808 - in /maven/components/branches/maven-2.0.x/maven-artifact/src: main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java

Author: jdcasey
Date: Tue Aug 14 08:20:22 2007
New Revision: 565808

URL: http://svn.apache.org/viewvc?view=rev&rev=565808
Log:
[MNG-3046] Applying patch to fix compareTo when buildNumber == 0.

Modified:
    maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java
    maven/components/branches/maven-2.0.x/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java

Modified: maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java?view=diff&rev=565808&r1=565807&r2=565808
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java (original)
+++ maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java Tue Aug 14 08:20:22 2007
@@ -60,11 +60,7 @@
         }
         if ( result == 0 )
         {
-            if ( buildNumber != null || otherVersion.buildNumber != null )
-            {
-                result = compareIntegers( buildNumber, otherVersion.buildNumber );
-            }
-            else if ( qualifier != null )
+            if ( qualifier != null )
             {
                 if ( otherVersion.qualifier != null )
                 {
@@ -95,6 +91,10 @@
             {
                 // otherVersion has a qualifier but we don't, we're newer
                 result = 1;
+            }
+            else if ( buildNumber != null || otherVersion.buildNumber != null )
+            {
+                result = compareIntegers( buildNumber, otherVersion.buildNumber );
             }
         }
         return result;

Modified: maven/components/branches/maven-2.0.x/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java?view=diff&rev=565808&r1=565807&r2=565808
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java (original)
+++ maven/components/branches/maven-2.0.x/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java Tue Aug 14 08:20:22 2007
@@ -247,4 +247,32 @@
         // version = new DefaultArtifactVersion( "1.1-foo-10" );
         // assertTrue( version.compareTo( new DefaultArtifactVersion( "1.1-foo-2" ) ) > 0 );
     }
+    
+    public void testVersionComparingWithBuildNumberZero()
+    {
+        DefaultArtifactVersion v1 = new DefaultArtifactVersion("2.0");
+        DefaultArtifactVersion v2 = new DefaultArtifactVersion("2.0-0");
+        DefaultArtifactVersion v3 = new DefaultArtifactVersion("2.0-alpha1");
+        DefaultArtifactVersion v4 = new DefaultArtifactVersion("2.0-1");
+        
+        // v1 and v2 are equal
+        assertTrue( v1.compareTo(v2) == 0 );
+        assertTrue( v2.compareTo(v1) == 0 );
+        
+        // v1 is newer than v3
+        assertTrue( v1.compareTo(v3) > 0 );
+        assertTrue( v3.compareTo(v1) < 0 );
+        
+        // ergo, v2 should also be newer than v3
+        assertTrue( v2.compareTo(v3) > 0 );
+        assertTrue( v3.compareTo(v1) < 0 );
+        
+        // nonzero build numbers still respected
+        assertTrue( v1.compareTo(v4) < 0 ); // build number one is always newer
+        assertTrue( v4.compareTo(v1) > 0 );
+        assertTrue( v2.compareTo(v4) < 0 ); // same results as v1
+        assertTrue( v4.compareTo(v2) > 0 );
+        assertTrue( v3.compareTo(v4) < 0 ); // qualifier is always older
+        assertTrue( v4.compareTo(v3) > 0 );
+    }
 }