[ https://issues.apache.org/jira/browse/LANG-1342?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16065494#comment-16065494 ]
Simon Spero commented on LANG-1342: ----------------------------------- Of course, JEP 223 is a little non-semantic-versiony on the semantics of specification.version . A minor version may include non-breaking api changes from MR of specifications, but those versions aren't specification versions. {panel:title=Minor} $MINOR --- The minor version number, incremented for a minor update release that may contain compatible bug fixes, revisions to standard APIs mandated by a Maintenance Release of the relevant Platform Specification, and implementation features outside the scope of that Specification such as new JDK-specific APIs, additional service providers, new garbage collectors, and ports to new hardware architectures. {panel} *Major (GA)* {noformat} java.version 1.9.0 9 java.runtime.version 1.9.0-b100 9+100 java.vm.version 1.9.0-b100 9+100 java.specification.version 1.9 9 java.vm.specification.version 1.9 9 {noformat} *Minor #1 (GA)* {noformat} java.version 1.9.0_20 9.1.2 java.runtime.version 1.9.0_20-b62 9.1.2+62 java.vm.version 1.9.0_20-b62 9.1.2+62 java.specification.version 1.9 9 java.vm.specification.version 1.9 9 {noformat} > JavaVersion is not consistent with JEP-223 > ------------------------------------------ > > Key: LANG-1342 > URL: https://issues.apache.org/jira/browse/LANG-1342 > Project: Commons Lang > Issue Type: Bug > Components: lang.* > Affects Versions: 3.6 > Reporter: Simon Spero > Priority: Minor > > [JEP 223: New Version-String Syntax|http://openjdk.java.net/jeps/223] > introduces a new syntax for version strings. > This syntax is sort-of not incompatible with JavaVersion in 3.5, but this is > likely to change as soon as someone finds a bug in JDK 9 after it's released. > There is a third specified version number component for security releases. > Unlike the rest of the full version string, this component is significant for > ordering, and cannot reliably be mapped to float. > JEP 223 defines some regular expressions. It also defines an api class > (java.lang.Runtime.Version). This class can't be used directly (since it's > new with JDK-9), and the API can't be directly emulated, as it requires > java.lang.Optional. However, it's not rocket science (it is however regular > expressions, so now you have problems 2.0). > I'll take a crack at a class implementing JEP-223 Versions and try to get > them to play with JavaVersion. > The existing mapping to float is unsuited to minor versions, so there has to > be some new hackery for java 9 even for two components. ( JDK 9.11 should > be > JDK 9.2 ) > Since there's no java minor releases yet, there's a bit of freedom. If the > range of minor and patch versions is restricted to values between 0 and 99 > there should be a way to make things work. > Ideally the floaty stuff can be deprecated for removal before that matters. -- This message was sent by Atlassian JIRA (v6.4.14#64029)