You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by br...@apache.org on 2016/09/17 14:35:39 UTC

[1/3] [lang] LANG-1197: Prepare Java 9 detection

Repository: commons-lang
Updated Branches:
  refs/heads/master 9c5062791 -> ad1b72b7e


LANG-1197: Prepare Java 9 detection


Project: http://git-wip-us.apache.org/repos/asf/commons-lang/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-lang/commit/b9f04d9b
Tree: http://git-wip-us.apache.org/repos/asf/commons-lang/tree/b9f04d9b
Diff: http://git-wip-us.apache.org/repos/asf/commons-lang/diff/b9f04d9b

Branch: refs/heads/master
Commit: b9f04d9be3e7ff300520da194fe29ed5c1861787
Parents: afedbae
Author: pascalschumacher <pa...@gmx.net>
Authored: Fri May 20 19:29:20 2016 +0200
Committer: pascalschumacher <pa...@gmx.net>
Committed: Thu Sep 15 19:27:53 2016 +0200

----------------------------------------------------------------------
 .../org/apache/commons/lang3/JavaVersion.java   | 42 ++++++++-----
 .../org/apache/commons/lang3/SystemUtils.java   | 17 +++++-
 .../apache/commons/lang3/JavaVersionTest.java   |  3 +-
 .../apache/commons/lang3/SystemUtilsTest.java   | 63 +++++++++++++++++++-
 4 files changed, 105 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-lang/blob/b9f04d9b/src/main/java/org/apache/commons/lang3/JavaVersion.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/lang3/JavaVersion.java b/src/main/java/org/apache/commons/lang3/JavaVersion.java
index e37d5ba..4dd7e46 100644
--- a/src/main/java/org/apache/commons/lang3/JavaVersion.java
+++ b/src/main/java/org/apache/commons/lang3/JavaVersion.java
@@ -16,6 +16,8 @@
  */
 package org.apache.commons.lang3;
 
+import org.apache.commons.lang3.math.NumberUtils;
+
 /**
  * <p>An enum representing all the versions of the Java specification.
  * This is intended to mirror available values from the
@@ -72,11 +74,18 @@ public enum JavaVersion {
 
     /**
      * Java 1.9.
+     * 
+     * @deprecated As of release 3.5, replaced by {@link #JAVA_9}
+     */
+    JAVA_1_9(9.0f, "9"),
+
+    /**
+     * Java 9
      */
-    JAVA_1_9(1.9f, "1.9"),
+    JAVA_9(9.0f, "9"),
 
     /**
-     * Java 1.x, x &gt; 9. Mainly introduced to avoid to break when a new version of Java is used.
+     * The most recent java version. Mainly introduced to avoid to break when a new version of Java is used.
      */
     JAVA_RECENT(maxVersion(), Float.toString(maxVersion()));
 
@@ -156,8 +165,8 @@ public enum JavaVersion {
             return JAVA_1_7;
         } else if ("1.8".equals(nom)) {
             return JAVA_1_8;
-        } else if ("1.9".equals(nom)) {
-            return JAVA_1_9;
+        } else if ("9".equals(nom)) {
+            return JAVA_9;
         }
         if (nom == null) {
             return null;
@@ -187,33 +196,34 @@ public enum JavaVersion {
     }
 
     /**
-     * Gets the Java Version from the system or 2.0 if the {@code java.version} system property is not set.
+     * Gets the Java Version from the system or 99.0 if the {@code java.specification.version} system property is not set.
      * 
-     * @return the value of {@code java.version} system property or 2.0 if it is not set.
+     * @return the value of {@code java.specification.version} system property or 99.0 if it is not set.
      */
     private static float maxVersion() {
-        final float v = toFloatVersion(System.getProperty("java.version", "2.0"));
+        final float v = toFloatVersion(System.getProperty("java.specification.version", "99.0"));
         if (v > 0) {
             return v;
         }
-        return 2f;
+        return 99f;
     }
 
     /**
      * Parses a float value from a String.
      * 
      * @param value the String to parse.
-     * @return the float value represented by teh string or -1 if the given String can not be parsed.
+     * @return the float value represented by the string or -1 if the given String can not be parsed.
      */
     private static float toFloatVersion(final String value) {
-        final String[] toParse = value.split("\\.");
-        if (toParse.length >= 2) {
-            try {
-                return Float.parseFloat(toParse[0] + '.' + toParse[1]);
-            } catch (final NumberFormatException nfe) {
-                // no-op, let use default
+        final int defaultReturnValue = -1;
+        if (value.contains(".")) {
+            final String[] toParse = value.split("\\.");
+            if (toParse.length >= 2) {
+                return NumberUtils.toFloat(toParse[0] + '.' + toParse[1], defaultReturnValue);
             }
+        } else {
+            return NumberUtils.toFloat(value, defaultReturnValue);
         }
-        return -1;
+        return defaultReturnValue;
     }
 }

http://git-wip-us.apache.org/repos/asf/commons-lang/blob/b9f04d9b/src/main/java/org/apache/commons/lang3/SystemUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/lang3/SystemUtils.java b/src/main/java/org/apache/commons/lang3/SystemUtils.java
index ef1d43a..e89e647 100644
--- a/src/main/java/org/apache/commons/lang3/SystemUtils.java
+++ b/src/main/java/org/apache/commons/lang3/SystemUtils.java
@@ -953,8 +953,23 @@ public class SystemUtils {
      * </p>
      *
      * @since 3.4
+     * 
+     * @deprecated As of release 3.5, replaced by {@link #IS_JAVA_9}
      */
-    public static final boolean IS_JAVA_1_9 = getJavaVersionMatches("1.9");
+    @Deprecated
+    public static final boolean IS_JAVA_1_9 = getJavaVersionMatches("9");
+
+    /**
+     * <p>
+     * Is {@code true} if this is Java version 9 (also 9.x versions).
+     * </p>
+     * <p>
+     * The field will return {@code false} if {@link #JAVA_VERSION} is {@code null}.
+     * </p>
+     *
+     * @since 3.5
+     */
+    public static final boolean IS_JAVA_9 = getJavaVersionMatches("9");
 
     // Operating system checks
     // -----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/commons-lang/blob/b9f04d9b/src/test/java/org/apache/commons/lang3/JavaVersionTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/lang3/JavaVersionTest.java b/src/test/java/org/apache/commons/lang3/JavaVersionTest.java
index 8833318..943aac3 100644
--- a/src/test/java/org/apache/commons/lang3/JavaVersionTest.java
+++ b/src/test/java/org/apache/commons/lang3/JavaVersionTest.java
@@ -32,6 +32,7 @@ import static org.apache.commons.lang3.JavaVersion.JAVA_1_6;
 import static org.apache.commons.lang3.JavaVersion.JAVA_1_7;
 import static org.apache.commons.lang3.JavaVersion.JAVA_1_8;
 import static org.apache.commons.lang3.JavaVersion.JAVA_1_9;
+import static org.apache.commons.lang3.JavaVersion.JAVA_9;
 import static org.apache.commons.lang3.JavaVersion.get;
 import static org.apache.commons.lang3.JavaVersion.getJavaVersion;
 
@@ -51,7 +52,7 @@ public class JavaVersionTest {
         assertEquals("1.6 failed", JAVA_1_6, get("1.6"));
         assertEquals("1.7 failed", JAVA_1_7, get("1.7"));
         assertEquals("1.8 failed", JAVA_1_8, get("1.8"));
-        assertEquals("1.9 failed", JAVA_1_9, get("1.9"));
+        assertEquals("9 failed", JAVA_9, get("9"));
         assertEquals("1.10 failed", JAVA_RECENT, get("1.10"));
         // assertNull("2.10 unexpectedly worked", get("2.10"));
         assertEquals("Wrapper method failed", get("1.5"), getJavaVersion("1.5"));

http://git-wip-us.apache.org/repos/asf/commons-lang/blob/b9f04d9b/src/test/java/org/apache/commons/lang3/SystemUtilsTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/lang3/SystemUtilsTest.java b/src/test/java/org/apache/commons/lang3/SystemUtilsTest.java
index cac20cd..9b61442 100644
--- a/src/test/java/org/apache/commons/lang3/SystemUtilsTest.java
+++ b/src/test/java/org/apache/commons/lang3/SystemUtilsTest.java
@@ -92,8 +92,9 @@ public class SystemUtilsTest {
     }
 
     @Test
+    @SuppressWarnings("deprecation")
     public void testIS_JAVA() {
-        final String javaVersion = System.getProperty("java.version");
+        final String javaVersion = System.getProperty("java.specification.name");
         if (javaVersion == null) {
             assertFalse(SystemUtils.IS_JAVA_1_1);
             assertFalse(SystemUtils.IS_JAVA_1_2);
@@ -104,6 +105,7 @@ public class SystemUtilsTest {
             assertFalse(SystemUtils.IS_JAVA_1_7);
             assertFalse(SystemUtils.IS_JAVA_1_8);
             assertFalse(SystemUtils.IS_JAVA_1_9);
+            assertFalse(SystemUtils.IS_JAVA_9);
         } else if (javaVersion.startsWith("1.1")) {
             assertTrue(SystemUtils.IS_JAVA_1_1);
             assertFalse(SystemUtils.IS_JAVA_1_2);
@@ -114,6 +116,7 @@ public class SystemUtilsTest {
             assertFalse(SystemUtils.IS_JAVA_1_7);
             assertFalse(SystemUtils.IS_JAVA_1_8);
             assertFalse(SystemUtils.IS_JAVA_1_9);
+            assertFalse(SystemUtils.IS_JAVA_9);
         } else if (javaVersion.startsWith("1.2")) {
             assertFalse(SystemUtils.IS_JAVA_1_1);
             assertTrue(SystemUtils.IS_JAVA_1_2);
@@ -124,6 +127,7 @@ public class SystemUtilsTest {
             assertFalse(SystemUtils.IS_JAVA_1_7);
             assertFalse(SystemUtils.IS_JAVA_1_8);
             assertFalse(SystemUtils.IS_JAVA_1_9);
+            assertFalse(SystemUtils.IS_JAVA_9);
         } else if (javaVersion.startsWith("1.3")) {
             assertFalse(SystemUtils.IS_JAVA_1_1);
             assertFalse(SystemUtils.IS_JAVA_1_2);
@@ -134,6 +138,7 @@ public class SystemUtilsTest {
             assertFalse(SystemUtils.IS_JAVA_1_7);
             assertFalse(SystemUtils.IS_JAVA_1_8);
             assertFalse(SystemUtils.IS_JAVA_1_9);
+            assertFalse(SystemUtils.IS_JAVA_9);
         } else if (javaVersion.startsWith("1.4")) {
             assertFalse(SystemUtils.IS_JAVA_1_1);
             assertFalse(SystemUtils.IS_JAVA_1_2);
@@ -144,6 +149,7 @@ public class SystemUtilsTest {
             assertFalse(SystemUtils.IS_JAVA_1_7);
             assertFalse(SystemUtils.IS_JAVA_1_8);
             assertFalse(SystemUtils.IS_JAVA_1_9);
+            assertFalse(SystemUtils.IS_JAVA_9);
         } else if (javaVersion.startsWith("1.5")) {
             assertFalse(SystemUtils.IS_JAVA_1_1);
             assertFalse(SystemUtils.IS_JAVA_1_2);
@@ -154,6 +160,7 @@ public class SystemUtilsTest {
             assertFalse(SystemUtils.IS_JAVA_1_7);
             assertFalse(SystemUtils.IS_JAVA_1_8);
             assertFalse(SystemUtils.IS_JAVA_1_9);
+            assertFalse(SystemUtils.IS_JAVA_9);
         } else if (javaVersion.startsWith("1.6")) {
             assertFalse(SystemUtils.IS_JAVA_1_1);
             assertFalse(SystemUtils.IS_JAVA_1_2);
@@ -164,6 +171,7 @@ public class SystemUtilsTest {
             assertFalse(SystemUtils.IS_JAVA_1_7);
             assertFalse(SystemUtils.IS_JAVA_1_8);
             assertFalse(SystemUtils.IS_JAVA_1_9);
+            assertFalse(SystemUtils.IS_JAVA_9);
         } else if (javaVersion.startsWith("1.7")) {
             assertFalse(SystemUtils.IS_JAVA_1_1);
             assertFalse(SystemUtils.IS_JAVA_1_2);
@@ -174,6 +182,7 @@ public class SystemUtilsTest {
             assertTrue(SystemUtils.IS_JAVA_1_7);
             assertFalse(SystemUtils.IS_JAVA_1_8);
             assertFalse(SystemUtils.IS_JAVA_1_9);
+            assertFalse(SystemUtils.IS_JAVA_9);
         } else if (javaVersion.startsWith("1.8")) {
             assertFalse(SystemUtils.IS_JAVA_1_1);
             assertFalse(SystemUtils.IS_JAVA_1_2);
@@ -184,7 +193,8 @@ public class SystemUtilsTest {
             assertFalse(SystemUtils.IS_JAVA_1_7);
             assertTrue(SystemUtils.IS_JAVA_1_8);
             assertFalse(SystemUtils.IS_JAVA_1_9);
-        } else if (javaVersion.startsWith("1.9")) {
+            assertFalse(SystemUtils.IS_JAVA_9);
+        } else if (javaVersion.startsWith("9")) {
             assertFalse(SystemUtils.IS_JAVA_1_1);
             assertFalse(SystemUtils.IS_JAVA_1_2);
             assertFalse(SystemUtils.IS_JAVA_1_3);
@@ -194,6 +204,7 @@ public class SystemUtilsTest {
             assertFalse(SystemUtils.IS_JAVA_1_7);
             assertFalse(SystemUtils.IS_JAVA_1_8);
             assertTrue(SystemUtils.IS_JAVA_1_9);
+            assertTrue(SystemUtils.IS_JAVA_9);
         } else {
             System.out.println("Can't test IS_JAVA value: "+javaVersion);
         }
@@ -262,6 +273,8 @@ public class SystemUtilsTest {
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
         javaVersion = "";
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
@@ -271,6 +284,8 @@ public class SystemUtilsTest {
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
         javaVersion = "1.0";
         assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
@@ -280,6 +295,8 @@ public class SystemUtilsTest {
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
         javaVersion = "1.1";
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
         assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
@@ -289,6 +306,8 @@ public class SystemUtilsTest {
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
         javaVersion = "1.2";
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
@@ -298,6 +317,8 @@ public class SystemUtilsTest {
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
         javaVersion = "1.3.0";
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
@@ -307,6 +328,8 @@ public class SystemUtilsTest {
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
         javaVersion = "1.3.1";
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
@@ -316,6 +339,8 @@ public class SystemUtilsTest {
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
         javaVersion = "1.4.0";
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
@@ -325,6 +350,8 @@ public class SystemUtilsTest {
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
         javaVersion = "1.4.1";
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
@@ -334,6 +361,8 @@ public class SystemUtilsTest {
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
         javaVersion = "1.4.2";
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
@@ -343,6 +372,8 @@ public class SystemUtilsTest {
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
         javaVersion = "1.5.0";
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
@@ -352,6 +383,8 @@ public class SystemUtilsTest {
         assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
         javaVersion = "1.6.0";
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
@@ -361,6 +394,8 @@ public class SystemUtilsTest {
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
         assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
         javaVersion = "1.7.0";
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
@@ -370,6 +405,30 @@ public class SystemUtilsTest {
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
         assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
+        javaVersion = "1.8.0";
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
+        assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
+        javaVersion = "9";
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
+        assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
+        assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
     }
 
     @Test


[3/3] [lang] Merge branch 'LANG-1197'

Posted by br...@apache.org.
Merge branch 'LANG-1197'


Project: http://git-wip-us.apache.org/repos/asf/commons-lang/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-lang/commit/ad1b72b7
Tree: http://git-wip-us.apache.org/repos/asf/commons-lang/tree/ad1b72b7
Diff: http://git-wip-us.apache.org/repos/asf/commons-lang/diff/ad1b72b7

Branch: refs/heads/master
Commit: ad1b72b7ece0166c5fbe0c6136213589eeed9945
Parents: 9c50627 69da8ce
Author: Benedikt Ritter <br...@apache.org>
Authored: Sat Sep 17 16:35:23 2016 +0200
Committer: Benedikt Ritter <br...@apache.org>
Committed: Sat Sep 17 16:35:23 2016 +0200

----------------------------------------------------------------------
 src/changes/changes.xml                         |  1 +
 .../org/apache/commons/lang3/JavaVersion.java   | 42 ++++++++-----
 .../org/apache/commons/lang3/SystemUtils.java   | 17 +++++-
 .../apache/commons/lang3/JavaVersionTest.java   |  3 +-
 .../apache/commons/lang3/SystemUtilsTest.java   | 63 +++++++++++++++++++-
 5 files changed, 106 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-lang/blob/ad1b72b7/src/changes/changes.xml
----------------------------------------------------------------------
diff --cc src/changes/changes.xml
index d6ac6db,884dd8b..b1c99ff
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@@ -46,30 -22,7 +46,31 @@@ The <action> type attribute can be add,
    <body>
  
    <release version="3.5" date="tba" description="tba">
+     <action issue="LANG-1197" type="update" dev="pschumacher" >Prepare Java 9 detection</action>
 +    <action issue="LANG-1252" type="fix" dev="chtompki" due-to="Rob Tompkins">Rename NumberUtils.isNumber, isCreatable to better reflect createNumber. Also, accommodated for "+" symbol as prefix in isCreatable and isNumber.</action>
 +    <action issue="LANG-1262" type="update" dev="pschumacher" due-to="Ruslan Cheremin">CompareToBuilder.append(Object, Object, Comparator) method is too big to be inlined</action>
 +    <action issue="LANG-1230" type="fix" dev="pschumacher" due-to="Philippe Marschall">Remove unnecessary synchronization from registry lookup in EqualsBuilder and HashCodeBuilder</action>
 +    <action issue="LANG-1224" type="add" dev="pschumacher" due-to="Caleb Cushing">Extend RandomStringUtils with methods that generate strings between a min and max length</action>
 +    <action issue="LANG-1214" type="fix" dev="pschumacher" due-to="Henry Tung">Handle "void" in ClassUtils.getClass()</action>
 +    <action issue="LANG-1250" type="fix" dev="pschumacher" due-to="Glease Wang">SerializationUtils#deserialize has unnecessary code and a comment for that</action>
 +    <action issue="LANG-1259" type="update" dev="britter" due-to="Dominik Stadler">JavaDoc for ArrayUtils.isNotEmpty() is slightly misleading</action>
 +    <action issue="LANG-1257" type="add" dev="ggregory" due-to="Gary Gregory">Add APIs StringUtils.wrapIfMissing(String, char|String)</action>
 +    <action issue="LANG-1190" type="fix" dev="pschumacher" due-to="pschumacher">TypeUtils.isAssignable throws NullPointerException when fromType has type variables and toType generic superclass specifies type variable</action>
 +    <action issue="LANG-1226" type="fix" dev="pschumacher" due-to="pschumacher">StringUtils#normalizeSpace does not trim the string anymore</action>
 +    <action issue="LANG-1251" type="fix" dev="pschumacher" due-to="Takuya Ueshin">SerializationUtils.ClassLoaderAwareObjectInputStream should use static initializer to initialize primitiveTypes map</action>
 +    <action issue="LANG-1253" type="add" dev="ggregory" due-to="adilek">[GitHub issue #170] Add RandomUtils#nextBoolean() method</action>
 +    <action issue="LANG-1247" type="update" dev="chas" due-to="Benoit Wiart">FastDatePrinter generates extra Date objects</action>
 +    <action issue="LANG-1018" type="fix" dev="pschumacher" due-to="Nick Manley">Fix precision loss on NumberUtils.createNumber(String)</action>
 +    <action issue="LANG-1229" type="update" dev="pschumacher" due-to="Ruslan Cheremin">HashCodeBuilder.append(Object,Object) is too big to be inlined, which prevents whole builder to be scalarized</action>
 +    <action issue="LANG-1085" type="add" dev="oheger" due-to="oheger / kinow">Add a circuit breaker implementation</action>
 +    <action issue="LANG-1013" type="add" dev="pschumacher" due-to="Thiago Andrade">Add StringUtils.truncate()</action>
 +    <action issue="LANG-1195" type="add" dev="pschumacher" due-to="Derek C. Ashmore">Enhance MethodUtils to allow invocation of private methods</action>
 +    <action issue="LANG-1199" type="fix" dev="pschumacher" due-to="M. Steiger">Fix implementation of StringUtils.getJaroWinklerDistance()</action>
 +    <action issue="LANG-1244" type="fix" dev="pschumacher" due-to="jjbankert">Fix dead links in StringUtils.getLevenshteinDistance() javadoc</action>
 +    <action issue="LANG-1242" type="fix" dev="pschumacher" due-to="Neal Stewart">"\u2284":"&nsub;" mapping missing from EntityArrays#HTML40_EXTENDED_ESCAPE</action>
 +    <action issue="LANG-1243" type="update" dev="sebb">Simplify ArrayUtils removeElements by using new decrementAndGet() method</action>
 +    <action issue="LANG-1189" type="add" dev="sebb" due-to="haiyang li / Matthew Bartenschlag ">Add getAndIncrement/getAndDecrement/getAndAdd/incrementAndGet/decrementAndGet/addAndGet in Mutable* classes</action>
 +    <action issue="LANG-1240" type="update" dev="pschumacher" due-to="zhanhb">Optimize BitField constructor implementation</action>
      <action issue="LANG-1206" type="update" dev="pschumacher" due-to="Mohammed Alfallaj">Improve CharSetUtils.squeeze() performance</action>
      <action issue="LANG-1225" type="add" dev="pschumacher" due-to="Caleb Cushing">Add RandomStringUtils#randomGraph and #randomPrint which match corresponding regular expression class</action>
      <action issue="LANG-901" type="fix" dev="pschumacher" due-to="Matthew Bartenschlag">StringUtils#startsWithAny/endsWithAny is case sensitive - documented as case insensitive</action>


[2/3] [lang] Add LANG-1197 to changes.xml

Posted by br...@apache.org.
Add LANG-1197 to changes.xml


Project: http://git-wip-us.apache.org/repos/asf/commons-lang/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-lang/commit/69da8cec
Tree: http://git-wip-us.apache.org/repos/asf/commons-lang/tree/69da8cec
Diff: http://git-wip-us.apache.org/repos/asf/commons-lang/diff/69da8cec

Branch: refs/heads/master
Commit: 69da8cece06b96ea8b1b40c5ccafbd4f284e52b5
Parents: b9f04d9
Author: Benedikt Ritter <br...@apache.org>
Authored: Sat Sep 17 16:33:08 2016 +0200
Committer: Benedikt Ritter <br...@apache.org>
Committed: Sat Sep 17 16:33:08 2016 +0200

----------------------------------------------------------------------
 src/changes/changes.xml | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-lang/blob/69da8cec/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index a03b992..884dd8b 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -22,6 +22,7 @@
   <body>
 
   <release version="3.5" date="tba" description="tba">
+    <action issue="LANG-1197" type="update" dev="pschumacher" >Prepare Java 9 detection</action>
     <action issue="LANG-1206" type="update" dev="pschumacher" due-to="Mohammed Alfallaj">Improve CharSetUtils.squeeze() performance</action>
     <action issue="LANG-1225" type="add" dev="pschumacher" due-to="Caleb Cushing">Add RandomStringUtils#randomGraph and #randomPrint which match corresponding regular expression class</action>
     <action issue="LANG-901" type="fix" dev="pschumacher" due-to="Matthew Bartenschlag">StringUtils#startsWithAny/endsWithAny is case sensitive - documented as case insensitive</action>