diff options
author | Gary Gregory <garydgregory@gmail.com> | 2024-05-30 08:28:38 -0400 |
---|---|---|
committer | Gary Gregory <garydgregory@gmail.com> | 2024-05-30 08:28:38 -0400 |
commit | d0bb31bc10ac0e16f47840550860ca26f01c5595 (patch) | |
tree | 40faac81190163327d3cc9cf7a631160be101f23 | |
parent | 28e826894c359fcb993b598dce7633dcc593c8a9 (diff) | |
download | apache-commons-lang-d0bb31bc10ac0e16f47840550860ca26f01c5595.tar.gz |
Add SystemUtils.IS_OS_ANDROID
-rw-r--r-- | src/changes/changes.xml | 1 | ||||
-rw-r--r-- | src/main/java/org/apache/commons/lang3/SystemUtils.java | 14 | ||||
-rw-r--r-- | src/test/java/org/apache/commons/lang3/SystemUtilsTest.java | 10 |
3 files changed, 23 insertions, 2 deletions
diff --git a/src/changes/changes.xml b/src/changes/changes.xml index 30d88df81..129bb71ea 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -66,6 +66,7 @@ The <action> type attribute can be add,update,fix,remove. <action type="add" dev="ggregory" due-to="Gary Gregory">Add SystemProperties constants and methods for system properties as of Java 22.</action> <action type="add" dev="ggregory" due-to="Gary Gregory">Add MethodUtils.getMethodObject(Class, String, Class...).</action> <action issue="LANG-1733" type="add" dev="ggregory" due-to="Jongjin Bae, Gary Gregory">Add null-safe Consumers.accept() and Functions.apply() #1215.</action> + <action type="add" dev="ggregory" due-to="Gary Gregory">Add SystemUtils.IS_OS_ANDROID.</action> <!-- FIX --> <action type="fix" dev="ggregory" due-to="Miklós Karakó, Gary Gregory">Improve Javadoc in ExceptionUtils #1136.</action> <action type="fix" dev="ggregory" due-to="Saiharshith Karuneegar Ramesh, Gary Gregory">Fixed two non-deterministic tests in EnumUtilsTest.java #1131.</action> diff --git a/src/main/java/org/apache/commons/lang3/SystemUtils.java b/src/main/java/org/apache/commons/lang3/SystemUtils.java index 6dbdffc22..70c9a8d2c 100644 --- a/src/main/java/org/apache/commons/lang3/SystemUtils.java +++ b/src/main/java/org/apache/commons/lang3/SystemUtils.java @@ -1145,6 +1145,20 @@ public class SystemUtils { public static final boolean IS_OS_AIX = getOsMatchesName("AIX"); /** + * Is {@code true} if this is Android. + * + * <p> + * See https://developer.android.com/reference/java/lang/System#getProperties(). + * </p> + * <p> + * This value is initialized when the class is loaded. + * </p> + * + * @since 3.15.0 + */ + public static final boolean IS_OS_ANDROID = SystemProperties.getJavaVendor().contains("Android"); + + /** * Is {@code true} if this is HP-UX. * * <p> diff --git a/src/test/java/org/apache/commons/lang3/SystemUtilsTest.java b/src/test/java/org/apache/commons/lang3/SystemUtilsTest.java index a27c7c3ca..8618d6744 100644 --- a/src/test/java/org/apache/commons/lang3/SystemUtilsTest.java +++ b/src/test/java/org/apache/commons/lang3/SystemUtilsTest.java @@ -151,11 +151,13 @@ public class SystemUtilsTest extends AbstractLangTest { assertFalse(SystemUtils.IS_OS_LINUX); assertFalse(SystemUtils.IS_OS_MAC_OSX); } else if (osName.startsWith("Windows")) { - assertFalse(SystemUtils.IS_OS_UNIX); assertTrue(SystemUtils.IS_OS_WINDOWS); + assertFalse(SystemUtils.IS_OS_ANDROID); + assertFalse(SystemUtils.IS_OS_UNIX); } else if (osName.startsWith("Solaris")) { assertTrue(SystemUtils.IS_OS_SOLARIS); assertTrue(SystemUtils.IS_OS_UNIX); + assertFalse(SystemUtils.IS_OS_ANDROID); assertFalse(SystemUtils.IS_OS_WINDOWS); } else if (osName.toLowerCase(Locale.ENGLISH).startsWith("linux")) { assertTrue(SystemUtils.IS_OS_LINUX); @@ -164,21 +166,25 @@ public class SystemUtilsTest extends AbstractLangTest { } else if (osName.startsWith("Mac OS X")) { assertTrue(SystemUtils.IS_OS_MAC_OSX); assertTrue(SystemUtils.IS_OS_UNIX); + assertFalse(SystemUtils.IS_OS_ANDROID); assertFalse(SystemUtils.IS_OS_WINDOWS); } else if (osName.startsWith("OS/2")) { assertTrue(SystemUtils.IS_OS_OS2); assertFalse(SystemUtils.IS_OS_UNIX); + assertFalse(SystemUtils.IS_OS_ANDROID); assertFalse(SystemUtils.IS_OS_WINDOWS); } else if (osName.startsWith("SunOS")) { assertTrue(SystemUtils.IS_OS_SUN_OS); assertTrue(SystemUtils.IS_OS_UNIX); + assertFalse(SystemUtils.IS_OS_ANDROID); assertFalse(SystemUtils.IS_OS_WINDOWS); } else if (osName.startsWith("FreeBSD")) { assertTrue(SystemUtils.IS_OS_FREE_BSD); assertTrue(SystemUtils.IS_OS_UNIX); + assertFalse(SystemUtils.IS_OS_ANDROID); assertFalse(SystemUtils.IS_OS_WINDOWS); } else { - System.out.println("Can't test IS_OS value: " + osName); + System.err.println("Can't test IS_OS_ value: " + osName); } } |