Author: rwhitcomb Date: Tue Dec 12 16:19:34 2017 New Revision: 1817927 URL: http://svn.apache.org/viewvc?rev=1817927&view=rev Log: PIVOT-1016: Introduce minimal version parsing changes so that at least the current Java 9 version string will parse without errors. The Version.toString() won't recover the initial string correctly, although all the information parsed is available.
Add a simple test for the current Java 9 version string. Modified: pivot/trunk/core/src/org/apache/pivot/util/Version.java pivot/trunk/core/test/org/apache/pivot/util/test/VersionTest.java Modified: pivot/trunk/core/src/org/apache/pivot/util/Version.java URL: http://svn.apache.org/viewvc/pivot/trunk/core/src/org/apache/pivot/util/Version.java?rev=1817927&r1=1817926&r2=1817927&view=diff ============================================================================== --- pivot/trunk/core/src/org/apache/pivot/util/Version.java (original) +++ pivot/trunk/core/src/org/apache/pivot/util/Version.java Tue Dec 12 16:19:34 2017 @@ -115,11 +115,15 @@ public class Version implements Comparab String revision; // Some "version" strings separate fields with a space + // While Java 9 uses a new scheme where "build" uses a "+" int i = string.indexOf(" "); if (i == -1) { i = string.indexOf("-"); } if (i == -1) { + i = string.indexOf("+"); + } + if (i == -1) { revision = string; } else { revision = string.substring(0, i); @@ -135,7 +139,7 @@ public class Version implements Comparab minorRevision = Short.parseShort(revisionNumbers[1]); if (revisionNumbers.length > 2) { - String[] maintenanceRevisionNumbers = revisionNumbers[2].split("_"); + String[] maintenanceRevisionNumbers = revisionNumbers[2].split("[_\\-]"); if (maintenanceRevisionNumbers.length > 0) { maintenanceRevision = Short.parseShort(maintenanceRevisionNumbers[0]); Modified: pivot/trunk/core/test/org/apache/pivot/util/test/VersionTest.java URL: http://svn.apache.org/viewvc/pivot/trunk/core/test/org/apache/pivot/util/test/VersionTest.java?rev=1817927&r1=1817926&r2=1817927&view=diff ============================================================================== --- pivot/trunk/core/test/org/apache/pivot/util/test/VersionTest.java (original) +++ pivot/trunk/core/test/org/apache/pivot/util/test/VersionTest.java Tue Dec 12 16:19:34 2017 @@ -64,6 +64,13 @@ public class VersionTest { Version v1_0 = new Version(1, 0, 0, 0); assertEquals("version 0 decode", v0, v1_0); assertEquals("version 0 to string", v1_0.toString(), s1_0_0); + + // New Java 9 version number scheme + String j9 = "9.0.1+11"; + Version vj9 = Version.decode(j9); + Version vj9_0 = new Version(9, 0, 1, 0); + assertEquals("Java version 9 decode", vj9, vj9_0); + assertEquals("Java version 9 to string", vj9.toString(), "9.0.1_00-11"); } @Test