You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by st...@apache.org on 2014/01/07 17:38:11 UTC

git commit: [MNG-3626] Small change to artifact version parsing.

Updated Branches:
  refs/heads/master 61dbaabfb -> 5cf05463a


[MNG-3626] Small change to artifact version parsing.

Applied patch inspired by patch submitted by Paul Gier.

- Substantially rewrote test case to match current testing style

- Changed the patch to ensure that 4 segment number only version number are not affected... would be nice to pick them up but holding that change back for now


Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/5cf05463
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/5cf05463
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/5cf05463

Branch: refs/heads/master
Commit: 5cf05463a42a8e1cea93301d75862066f6fc50eb
Parents: 61dbaab
Author: Stephen Connolly <st...@gmail.com>
Authored: Tue Jan 7 16:37:47 2014 +0000
Committer: Stephen Connolly <st...@gmail.com>
Committed: Tue Jan 7 16:38:01 2014 +0000

----------------------------------------------------------------------
 .../versioning/DefaultArtifactVersion.java      | 34 +++-----------------
 .../versioning/DefaultArtifactVersionTest.java  |  6 ++++
 2 files changed, 10 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/5cf05463/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java
----------------------------------------------------------------------
diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java b/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java
index 856eb13..cf3dc95 100644
--- a/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java
+++ b/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java
@@ -20,6 +20,7 @@ package org.apache.maven.artifact.versioning;
  */
 
 import java.util.StringTokenizer;
+import java.util.regex.Pattern;
 
 /**
  * Default implementation of artifact versioning.
@@ -174,7 +175,8 @@ public class DefaultArtifactVersion
                 }
                 if ( tok.hasMoreTokens() )
                 {
-                    fallback = true;
+                    qualifier = tok.nextToken();
+                    fallback = Pattern.compile("\\d+").matcher( qualifier ).matches();
                 }
 
                 // string tokenzier won't detect these and ignores them
@@ -213,34 +215,6 @@ public class DefaultArtifactVersion
     @Override
     public String toString()
     {
-        StringBuilder buf = new StringBuilder();
-        if ( majorVersion != null )
-        {
-            buf.append( majorVersion );
-        }
-        if ( minorVersion != null )
-        {
-            buf.append( "." );
-            buf.append( minorVersion );
-        }
-        if ( incrementalVersion != null )
-        {
-            buf.append( "." );
-            buf.append( incrementalVersion );
-        }
-        if ( buildNumber != null )
-        {
-            buf.append( "-" );
-            buf.append( buildNumber );
-        }
-        else if ( qualifier != null )
-        {
-            if ( buf.length() > 0 )
-            {
-                buf.append( "-" );
-            }
-            buf.append( qualifier );
-        }
-        return buf.toString();
+        return comparable.toString();
     }
 }

http://git-wip-us.apache.org/repos/asf/maven/blob/5cf05463/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java
----------------------------------------------------------------------
diff --git a/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java b/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java
index 9bb252d..813210b 100644
--- a/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java
+++ b/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java
@@ -71,6 +71,8 @@ public class DefaultArtifactVersionTest
         checkVersionParsing( "1.0.1b" , 0, 0, 0, 0, "1.0.1b" );
         checkVersionParsing( "1.0M2" , 0, 0, 0, 0, "1.0M2" );
         checkVersionParsing( "1.0RC2" , 0, 0, 0, 0, "1.0RC2" );
+        checkVersionParsing( "1.1.2.beta1", 1, 1, 2, 0, "beta1" );
+        checkVersionParsing( "1.7.3.beta1", 1, 7, 3, 0, "beta1" );
         checkVersionParsing( "1.7.3.0" , 0, 0, 0, 0, "1.7.3.0" );
         checkVersionParsing( "1.7.3.0-1" , 0, 0, 0, 0, "1.7.3.0-1" );
         checkVersionParsing( "PATCH-1193602" , 0, 0, 0, 0, "PATCH-1193602" );
@@ -97,6 +99,10 @@ public class DefaultArtifactVersionTest
         assertVersionOlder( "1.0.0", "1.1" );
         assertVersionOlder( "1.1", "1.2.0" );
 
+        assertVersionOlder( "1.1.2.alpha1", "1.1.2" );
+        assertVersionOlder( "1.1.2.alpha1", "1.1.2.beta1" );
+        assertVersionOlder( "1.1.2.beta1", "1.2" );
+
         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" );