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 2008/05/29 19:41:01 UTC

svn commit: r661417 - in /maven/artifact/trunk/src: main/java/org/apache/maven/artifact/versioning/ComparableVersion.java test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java

Author: jdcasey
Date: Thu May 29 10:41:01 2008
New Revision: 661417

URL: http://svn.apache.org/viewvc?rev=661417&view=rev
Log:
[MARTIFACT-18]  Use BigInteger for version parsing.

Modified:
    maven/artifact/trunk/src/main/java/org/apache/maven/artifact/versioning/ComparableVersion.java
    maven/artifact/trunk/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java

Modified: maven/artifact/trunk/src/main/java/org/apache/maven/artifact/versioning/ComparableVersion.java
URL: http://svn.apache.org/viewvc/maven/artifact/trunk/src/main/java/org/apache/maven/artifact/versioning/ComparableVersion.java?rev=661417&r1=661416&r2=661417&view=diff
==============================================================================
--- maven/artifact/trunk/src/main/java/org/apache/maven/artifact/versioning/ComparableVersion.java (original)
+++ maven/artifact/trunk/src/main/java/org/apache/maven/artifact/versioning/ComparableVersion.java Thu May 29 10:41:01 2008
@@ -19,13 +19,14 @@
  * under the License.
  */
 
+import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Iterator;
 import java.util.List;
 import java.util.ListIterator;
-import java.util.Properties;
 import java.util.Locale;
+import java.util.Properties;
 import java.util.Stack;
 
 /**
@@ -63,11 +64,20 @@
     private static class IntegerItem
         implements Item
     {
-        private Integer value;
+    	private static final BigInteger BigInteger_ZERO = new BigInteger( "0" );
+
+        private final BigInteger value;
+
+        public static final IntegerItem ZERO = new IntegerItem();
+
+        private IntegerItem()
+        {
+        	this.value = BigInteger_ZERO;
+        }
 
-        public IntegerItem( Integer i )
+        public IntegerItem( String str )
         {
-            this.value = i;
+            this.value = new BigInteger( str );
         }
 
         public int getType()
@@ -77,14 +87,14 @@
 
         public boolean isNull()
         {
-            return (value == 0 );
+            return BigInteger_ZERO.equals( value );
         }
 
         public int compareTo( Item item )
         {
             if ( item == null )
             {
-                return value == 0 ? 0 : 1; // 1.0 == 1, 1.1 > 1
+                return BigInteger_ZERO.equals( value ) ? 0 : 1; // 1.0 == 1, 1.1 > 1
             }
 
             switch ( item.getType() )
@@ -337,7 +347,7 @@
             {
                 if ( i == startIndex )
                 {
-                    list.add( new IntegerItem( 0 ) );
+                    list.add( IntegerItem.ZERO );
                 }
                 else
                 {
@@ -349,7 +359,7 @@
             {
                 if ( i == startIndex )
                 {
-                    list.add( new IntegerItem( 0 ) );
+                    list.add( IntegerItem.ZERO );
                 }
                 else
                 {
@@ -409,7 +419,7 @@
 
     private static Item parseItem( boolean isDigit, String buf )
     {
-        return isDigit ? new IntegerItem( new Integer( buf ) ) : new StringItem( buf, false );
+        return isDigit ? new IntegerItem( buf ) : new StringItem( buf, false );
     }
 
     public int compareTo( Object o )

Modified: maven/artifact/trunk/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java
URL: http://svn.apache.org/viewvc/maven/artifact/trunk/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java?rev=661417&r1=661416&r2=661417&view=diff
==============================================================================
--- maven/artifact/trunk/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java (original)
+++ maven/artifact/trunk/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java Thu May 29 10:41:01 2008
@@ -76,6 +76,10 @@
         checkVersionParsing( "1.7.3.0-1" , 0, 0, 0, 0, "1.7.3.0-1" );
         checkVersionParsing( "PATCH-1193602" , 0, 0, 0, 0, "PATCH-1193602" );
         checkVersionParsing( "5.0.0alpha-2006020117" , 0, 0, 0, 0, "5.0.0alpha-2006020117" );
+
+        checkVersionParsing( "1.2.3.200705301630" , 0, 0, 0, 0, "1.2.3.200705301630" );
+        checkVersionParsing( "1.2.3-200705301630" , 1, 2, 3, 0, "200705301630" );
+
     }
 
     public void testVersionComparing()
@@ -112,6 +116,9 @@
 
         assertVersionOlder( "2.0.1", "2.0.1-123" );
         assertVersionOlder( "2.0.1-xyz", "2.0.1-123" );
+
+        assertVersionOlder( "1.2.3-10000000000", "1.2.3-10000000001" );
+        assertVersionOlder( "1.2.3-1", "1.2.3-10000000001" );
     }
 
     public void testVersionSnapshotComparing()