Author: hboutemy Date: Tue May 6 13:26:26 2008 New Revision: 653908 URL: http://svn.apache.org/viewvc?rev=653908&view=rev Log: added support for a, b and m aliases for alpha, beta and milestone when followed by a digit (a1, b1 and m1 for example)
Modified: maven/artifact/branches/MNG-3010/src/main/java/org/apache/maven/artifact/versioning/ComparableVersion.java maven/artifact/branches/MNG-3010/src/test/java/org/apache/maven/artifact/versioning/ComparableVersionTest.java Modified: maven/artifact/branches/MNG-3010/src/main/java/org/apache/maven/artifact/versioning/ComparableVersion.java URL: http://svn.apache.org/viewvc/maven/artifact/branches/MNG-3010/src/main/java/org/apache/maven/artifact/versioning/ComparableVersion.java?rev=653908&r1=653907&r2=653908&view=diff ============================================================================== --- maven/artifact/branches/MNG-3010/src/main/java/org/apache/maven/artifact/versioning/ComparableVersion.java (original) +++ maven/artifact/branches/MNG-3010/src/main/java/org/apache/maven/artifact/versioning/ComparableVersion.java Tue May 6 13:26:26 2008 @@ -115,7 +115,7 @@ private static class StringItem implements Item { - private final static String[] QUALIFIERS = { "snapshot", "alpha", "beta", "rc", "", "sp" }; + private final static String[] QUALIFIERS = { "snapshot", "alpha", "beta", "milestone", "rc", "", "sp" }; private final static List _QUALIFIERS = Arrays.asList( QUALIFIERS ); @@ -133,8 +133,24 @@ private String value; - public StringItem( String value ) + public StringItem( String value, boolean followedByDigit ) { + if ( followedByDigit && value.length() == 1 ) + { + // a1 = alpha-1, b1 = beta-1, m1 = milestone-1 + switch ( value.charAt( 0 ) ) + { + case 'a': + value = "alpha"; + break; + case 'b': + value = "beta"; + break; + case 'm': + value = "milestone"; + break; + } + } this.value = ALIASES.getProperty( value , value ); } @@ -359,7 +375,7 @@ { if ( !isDigit && i > startIndex ) { - list.add( new StringItem( version.substring( startIndex, i ) ) ); + list.add( new StringItem( version.substring( startIndex, i ), true ) ); startIndex = i; } @@ -393,7 +409,7 @@ private static Item parseItem( boolean isDigit, String buf ) { - return isDigit ? new IntegerItem( new Integer( buf ) ) : new StringItem( buf ); + return isDigit ? new IntegerItem( new Integer( buf ) ) : new StringItem( buf, false ); } public int compareTo( Object o ) Modified: maven/artifact/branches/MNG-3010/src/test/java/org/apache/maven/artifact/versioning/ComparableVersionTest.java URL: http://svn.apache.org/viewvc/maven/artifact/branches/MNG-3010/src/test/java/org/apache/maven/artifact/versioning/ComparableVersionTest.java?rev=653908&r1=653907&r2=653908&view=diff ============================================================================== --- maven/artifact/branches/MNG-3010/src/test/java/org/apache/maven/artifact/versioning/ComparableVersionTest.java (original) +++ maven/artifact/branches/MNG-3010/src/test/java/org/apache/maven/artifact/versioning/ComparableVersionTest.java Tue May 6 13:26:26 2008 @@ -38,13 +38,13 @@ } private static final String[] VERSIONS_QUALIFIER = { - "1-SNAPSHOT", "1-alpha2snapshot", "1-alpha2", "1-alpha-123", "1-beta-2", "1-beta123", "1-rc", "1-cr2", "1-rc123", - "1", "1-sp", "1-sp2", "1-sp123", "1-abc", "1-def", "1-1-snapshot", "1-1", "1-2", "1-123" + "1-SNAPSHOT", "1-alpha2snapshot", "1-alpha2", "1-alpha-123", "1-beta-2", "1-beta123", "1-m2", "1-m11", "1-rc", + "1-cr2", "1-rc123", "1", "1-sp", "1-sp2", "1-sp123", "1-abc", "1-def", "1-1-snapshot", "1-1", "1-2", "1-123" }; private static final String[] VERSIONS_NUMBER = { "2.0", "2-1", "2.0.a", "2.0.0.a", "2.0.2", "2.0.123", "2.1.0", "2.1-a", "2.1b", "2.1-c", "2.1-1", "2.1.0.1", - "2.2", "2.123", "11", "11b", "11c" + "2.2", "2.123", "11.a2", "11.a11", "11.b2", "11.b11", "11.m2", "11.m11", "11", "11.a", "11b", "11c", "11m" }; private void checkVersionsOrder( String[] versions ) @@ -116,6 +116,11 @@ checkVersionsEqual( "1ga", "1" ); checkVersionsEqual( "1final", "1" ); checkVersionsEqual( "1cr", "1rc" ); + + // special "aliases" a, b and m for alpha, beta and milestone + checkVersionsEqual( "1a1", "1alpha1" ); + checkVersionsEqual( "1b2", "1beta2" ); + checkVersionsEqual( "1m3", "1milestone3" ); } public void testVersionComparing()