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");
+
     }
 }


Reply via email to