Author: brett
Date: Tue Aug  9 02:18:08 2005
New Revision: 231016

URL: http://svn.apache.org/viewcvs?rev=231016&view=rev
Log:
if a version part has a leading 0, fallback to string comparison but to retain 
the extra 0.

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

Modified: 
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java?rev=231016&r1=231015&r2=231016&view=diff
==============================================================================
--- 
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java
 (original)
+++ 
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java
 Tue Aug  9 02:18:08 2005
@@ -163,7 +163,14 @@
         {
             try
             {
-                buildNumber = Integer.valueOf( part2 );
+                if ( part2.length() == 1 || !part2.startsWith( "0" ) )
+                {
+                    buildNumber = Integer.valueOf( part2 );
+                }
+                else
+                {
+                    qualifier = part2;
+                }
             }
             catch ( NumberFormatException e )
             {
@@ -185,35 +192,49 @@
         }
         else
         {
+            boolean fallback = false;
             StringTokenizer tok = new StringTokenizer( part1, "." );
             try
             {
-                majorVersion = Integer.valueOf( tok.nextToken() );
+                majorVersion = getNextIntegerToken( tok );
                 if ( tok.hasMoreTokens() )
                 {
-                    minorVersion = Integer.valueOf( tok.nextToken() );
+                    minorVersion = getNextIntegerToken( tok );
                 }
                 if ( tok.hasMoreTokens() )
                 {
-                    incrementalVersion = Integer.valueOf( tok.nextToken() );
+                    incrementalVersion = getNextIntegerToken( tok );
                 }
                 if ( tok.hasMoreTokens() )
                 {
-                    // qualifier is the whole version, including "-"
-                    qualifier = version;
-                    majorVersion = null;
-                    minorVersion = null;
-                    incrementalVersion = null;
+                    fallback = true;
                 }
             }
             catch ( NumberFormatException e )
             {
+                fallback = true;
+            }
+
+            if ( fallback )
+            {
                 // qualifier is the whole version, including "-"
                 qualifier = version;
                 majorVersion = null;
                 minorVersion = null;
+                incrementalVersion = null;
             }
         }
+    }
+
+    private static Integer getNextIntegerToken( StringTokenizer tok )
+    {
+
+        String s = tok.nextToken();
+        if ( s.length() > 1 && s.startsWith( "0" ) )
+        {
+            throw new NumberFormatException( "Number part has a leading 0: '" 
+ s + "'" );
+        }
+        return Integer.valueOf( s );
     }
 
     public String toString()

Modified: 
maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java?rev=231016&r1=231015&r2=231016&view=diff
==============================================================================
--- 
maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java
 (original)
+++ 
maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java
 Tue Aug  9 02:18:08 2005
@@ -105,6 +105,13 @@
         assertEquals( "check incremental version", 0, 
version.getIncrementalVersion() );
         assertEquals( "check build number", 0, version.getBuildNumber() );
         assertEquals( "check qualifier", "1.7.3.0", version.getQualifier() );
+
+        version = new DefaultArtifactVersion( "0.09" );
+        assertEquals( "check major version", 0, version.getMajorVersion() );
+        assertEquals( "check minor version", 0, version.getMinorVersion() );
+        assertEquals( "check incremental version", 0, 
version.getIncrementalVersion() );
+        assertEquals( "check build number", 0, version.getBuildNumber() );
+        assertEquals( "check qualifier", "0.09", version.getQualifier() );
     }
 
     public void testVersionComparing()



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to