diff --git a/src/changes/changes.xml b/src/changes/changes.xml index 1b7ca9fe7..d344dd707 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -153,6 +153,7 @@ The type attribute can be add,update,fix,remove. Add ExceptionUtils.getRootCauseStackTraceList(Throwable). Add SystemUtils.IS_OS_WINDOWS_11. Add SystemUtils.IS_JAVA_17. + Add SystemUtils.IS_JAVA_18. Bump actions/cache from 2.1.4 to 3.0.4 #742, #752, #764, #833, #867. Bump actions/checkout from 2 to 3 #819, #825, #859. diff --git a/src/main/java/org/apache/commons/lang3/SystemUtils.java b/src/main/java/org/apache/commons/lang3/SystemUtils.java index 12db15573..2b9bec638 100644 --- a/src/main/java/org/apache/commons/lang3/SystemUtils.java +++ b/src/main/java/org/apache/commons/lang3/SystemUtils.java @@ -1070,6 +1070,16 @@ public class SystemUtils { */ public static final boolean IS_JAVA_17 = getJavaVersionMatches("17"); + /** + * Is {@code true} if this is Java version 18 (also 18.x versions). + *

+ * The field will return {@code false} if {@link #JAVA_VERSION} is {@code null}. + *

+ * + * @since 3.13.0 + */ + public static final boolean IS_JAVA_18 = getJavaVersionMatches("18"); + // Operating system checks // ----------------------------------------------------------------------- // These MUST be declared after those above as they depend on the diff --git a/src/test/java/org/apache/commons/lang3/SystemUtilsTest.java b/src/test/java/org/apache/commons/lang3/SystemUtilsTest.java index 61237a232..208997daa 100644 --- a/src/test/java/org/apache/commons/lang3/SystemUtilsTest.java +++ b/src/test/java/org/apache/commons/lang3/SystemUtilsTest.java @@ -75,6 +75,7 @@ public class SystemUtilsTest { assertFalse(SystemUtils.IS_JAVA_15); assertFalse(SystemUtils.IS_JAVA_16); assertFalse(SystemUtils.IS_JAVA_17); + assertFalse(SystemUtils.IS_JAVA_18); } else if (javaVersion.startsWith("1.8")) { assertFalse(SystemUtils.IS_JAVA_1_1); assertFalse(SystemUtils.IS_JAVA_1_2); @@ -94,6 +95,7 @@ public class SystemUtilsTest { assertFalse(SystemUtils.IS_JAVA_15); assertFalse(SystemUtils.IS_JAVA_16); assertFalse(SystemUtils.IS_JAVA_17); + assertFalse(SystemUtils.IS_JAVA_18); } else if (javaVersion.startsWith("9")) { assertFalse(SystemUtils.IS_JAVA_1_1); assertFalse(SystemUtils.IS_JAVA_1_2); @@ -113,6 +115,7 @@ public class SystemUtilsTest { assertFalse(SystemUtils.IS_JAVA_15); assertFalse(SystemUtils.IS_JAVA_16); assertFalse(SystemUtils.IS_JAVA_17); + assertFalse(SystemUtils.IS_JAVA_18); } else if (javaVersion.startsWith("10")) { assertFalse(SystemUtils.IS_JAVA_1_1); assertFalse(SystemUtils.IS_JAVA_1_2); @@ -132,6 +135,7 @@ public class SystemUtilsTest { assertFalse(SystemUtils.IS_JAVA_15); assertFalse(SystemUtils.IS_JAVA_16); assertFalse(SystemUtils.IS_JAVA_17); + assertFalse(SystemUtils.IS_JAVA_18); } else if (javaVersion.startsWith("11")) { assertFalse(SystemUtils.IS_JAVA_1_1); assertFalse(SystemUtils.IS_JAVA_1_2); @@ -151,6 +155,7 @@ public class SystemUtilsTest { assertFalse(SystemUtils.IS_JAVA_15); assertFalse(SystemUtils.IS_JAVA_16); assertFalse(SystemUtils.IS_JAVA_17); + assertFalse(SystemUtils.IS_JAVA_18); } else if (javaVersion.startsWith("12")) { assertFalse(SystemUtils.IS_JAVA_1_1); assertFalse(SystemUtils.IS_JAVA_1_2); @@ -170,6 +175,7 @@ public class SystemUtilsTest { assertFalse(SystemUtils.IS_JAVA_15); assertFalse(SystemUtils.IS_JAVA_16); assertFalse(SystemUtils.IS_JAVA_17); + assertFalse(SystemUtils.IS_JAVA_18); } else if (javaVersion.startsWith("13")) { assertFalse(SystemUtils.IS_JAVA_1_1); assertFalse(SystemUtils.IS_JAVA_1_2); @@ -189,6 +195,7 @@ public class SystemUtilsTest { assertFalse(SystemUtils.IS_JAVA_15); assertFalse(SystemUtils.IS_JAVA_16); assertFalse(SystemUtils.IS_JAVA_17); + assertFalse(SystemUtils.IS_JAVA_18); } else if (javaVersion.startsWith("14")) { assertFalse(SystemUtils.IS_JAVA_1_1); assertFalse(SystemUtils.IS_JAVA_1_2); @@ -208,6 +215,7 @@ public class SystemUtilsTest { assertFalse(SystemUtils.IS_JAVA_15); assertFalse(SystemUtils.IS_JAVA_16); assertFalse(SystemUtils.IS_JAVA_17); + assertFalse(SystemUtils.IS_JAVA_18); } else if (javaVersion.startsWith("15")) { assertFalse(SystemUtils.IS_JAVA_1_1); assertFalse(SystemUtils.IS_JAVA_1_2); @@ -227,6 +235,7 @@ public class SystemUtilsTest { assertTrue(SystemUtils.IS_JAVA_15); assertFalse(SystemUtils.IS_JAVA_16); assertFalse(SystemUtils.IS_JAVA_17); + assertFalse(SystemUtils.IS_JAVA_18); } else if (javaVersion.startsWith("16")) { assertFalse(SystemUtils.IS_JAVA_1_1); assertFalse(SystemUtils.IS_JAVA_1_2); @@ -246,6 +255,7 @@ public class SystemUtilsTest { assertFalse(SystemUtils.IS_JAVA_15); assertTrue(SystemUtils.IS_JAVA_16); assertFalse(SystemUtils.IS_JAVA_17); + assertFalse(SystemUtils.IS_JAVA_18); } else if (javaVersion.startsWith("17")) { assertFalse(SystemUtils.IS_JAVA_1_1); assertFalse(SystemUtils.IS_JAVA_1_2); @@ -265,6 +275,27 @@ public class SystemUtilsTest { assertFalse(SystemUtils.IS_JAVA_15); assertFalse(SystemUtils.IS_JAVA_16); assertTrue(SystemUtils.IS_JAVA_17); + assertFalse(SystemUtils.IS_JAVA_18); + } else if (javaVersion.startsWith("18")) { + assertFalse(SystemUtils.IS_JAVA_1_1); + assertFalse(SystemUtils.IS_JAVA_1_2); + assertFalse(SystemUtils.IS_JAVA_1_3); + assertFalse(SystemUtils.IS_JAVA_1_4); + assertFalse(SystemUtils.IS_JAVA_1_5); + assertFalse(SystemUtils.IS_JAVA_1_6); + assertFalse(SystemUtils.IS_JAVA_1_7); + assertFalse(SystemUtils.IS_JAVA_1_8); + assertFalse(SystemUtils.IS_JAVA_1_9); + assertFalse(SystemUtils.IS_JAVA_9); + assertFalse(SystemUtils.IS_JAVA_10); + assertFalse(SystemUtils.IS_JAVA_11); + assertFalse(SystemUtils.IS_JAVA_12); + assertFalse(SystemUtils.IS_JAVA_13); + assertFalse(SystemUtils.IS_JAVA_14); + assertFalse(SystemUtils.IS_JAVA_15); + assertFalse(SystemUtils.IS_JAVA_16); + assertFalse(SystemUtils.IS_JAVA_17); + assertTrue(SystemUtils.IS_JAVA_18); } else { System.out.println("Can't test IS_JAVA value: " + javaVersion); }