Author: rwhitcomb Date: Tue Dec 12 17:09:36 2017 New Revision: 1817937 URL: http://svn.apache.org/viewvc?rev=1817937&view=rev Log: PIVOT-1016: Add more another likely to fail tests of Version parsing taken from the JEP-223 full discussion to make sure we will safely parse these variants.
So, had to make some parsing changes in "Version.decode()" for these new variants to work (or at least to parse successfully). 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=1817937&r1=1817936&r2=1817937&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 17:09:36 2017 @@ -116,18 +116,13 @@ 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) { + String parts[] = string.split("[ +\\-]"); + if (parts.length == 1) { revision = string; } else { - revision = string.substring(0, i); - build = string.substring(i + 1); + int len = parts[0].length(); + revision = string.substring(0, len); + build = string.substring(len + 1); } String[] revisionNumbers = revision.split("\\."); 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=1817937&r1=1817936&r2=1817937&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 17:09:36 2017 @@ -117,5 +117,18 @@ public class VersionTest { String formattedJavaVersion = javaVersion.toString(); System.out.format("Java Runtime version (parsed and formatted): %1$s, raw: %2$s%n", formattedJavaVersion, sysJavaVersion); assertEquals("Java Runtime version", sysJavaVersion, formattedJavaVersion); + + String newJava9Version = "9-ea+19"; + Version newJava9 = Version.decode(newJava9Version); + String newJava9Formatted = newJava9.toString(); + System.out.format("Potential new Java version: %1$s, parsed and formatted: %2$s%n", newJava9Version, newJava9Formatted); + assertEquals(newJava9Formatted, "9.0.0_00-ea+19"); + + String newJava10Version = "10+-ea"; + Version newJava10 = Version.decode(newJava10Version); + String newJava10Formatted = newJava10.toString(); + System.out.format("Potential new Java 10 version: %1$s, parsed and formatted: %2$s%n", newJava10Version, newJava10Formatted); + assertEquals(newJava10Formatted, "10.0.0_00--ea"); + } }