Package pro.taskana.common.internal.util
Class ComparableVersion
- java.lang.Object
-
- pro.taskana.common.internal.util.ComparableVersion
-
- All Implemented Interfaces:
Comparable<ComparableVersion>
public class ComparableVersion extends Object implements Comparable<ComparableVersion>
Generic implementation of version comparison. Features:- mixing of '
-' (hyphen) and '.' (dot) separators, - transition between characters and digits also constitutes a separator:
1.0alpha1 => [1, 0, alpha, 1] - unlimited number of version components,
- version components in the text can be digits or strings,
- strings are checked for well-known qualifiers and the qualifier ordering is used for
version ordering. Well-known qualifiers (case insensitive) are:
alphaorabetaorbmilestoneormrcorcrsnapshot(the empty string)orgaorfinalsp
- a hyphen usually precedes a qualifier, and is always less important than something preceded with a dot.
- Author:
- Kenney Westerhof, Hervé Boutemy
- See Also:
- "Versioning" on Maven Wiki
-
-
Constructor Summary
Constructors Constructor Description ComparableVersion(String version)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description intcompareTo(ComparableVersion o)booleanequals(Object o)StringgetCanonical()inthashCode()static voidmain(String... args)Main to test version parsing and comparison.voidparseVersion(String version)StringtoString()
-
-
-
Constructor Detail
-
ComparableVersion
public ComparableVersion(String version)
-
-
Method Detail
-
parseVersion
public final void parseVersion(String version)
-
compareTo
public int compareTo(ComparableVersion o)
- Specified by:
compareToin interfaceComparable<ComparableVersion>
-
getCanonical
public String getCanonical()
-
main
public static void main(String... args)
Main to test version parsing and comparison.To check how "1.2.7" compares to "1.2-SNAPSHOT", for example, you can issue
java -jar ${maven.repo.local}/org/apache/maven/maven-artifact/ ${maven.version}/maven-artifact-${maven.version}.jar "1.2.7" "1.2-SNAPSHOT"command to command line. Result of given command will be something like this:
Display parameters as parsed by Maven (in canonical form) and comparison result: 1. 1.2.7 == 1.2.7 1.2.7 > 1.2-SNAPSHOT 2. 1.2-SNAPSHOT == 1.2-snapshot- Parameters:
args- the version strings to parse and compare. You can pass arbitrary number of version strings and always two adjacent will be compared
-
-