Immutable representation of a dot or '-'-separated digits (such as "1.0.1" or "1.0-52"). {@link VersionNumber}s are {@link Comparable}.
Special tokens
We allow a component to be not just a number, but also "ea", "ea1", "ea2". "ea" is treated as "ea0", and eaN < M for any M > 0.
'*' is also allowed as a component, and '*' > M for any M > 0.
'SNAPSHOT' is also allowed as a component, and "N.SNAPSHOT" is interpreted as "N-1.*"
2.0.* > 2.0.1 > 2.0.1-SNAPSHOT > 2.0.0.99 > 2.0.0 > 2.0.ea > 2.0
@author Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com)
@since 1.139