aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/java/com/jogamp/common/util/VersionUtil.java14
-rw-r--r--src/java/jogamp/common/os/PlatformPropsImpl.java85
2 files changed, 64 insertions, 35 deletions
diff --git a/src/java/com/jogamp/common/util/VersionUtil.java b/src/java/com/jogamp/common/util/VersionUtil.java
index 1e09034..eee3c4e 100644
--- a/src/java/com/jogamp/common/util/VersionUtil.java
+++ b/src/java/com/jogamp/common/util/VersionUtil.java
@@ -73,9 +73,17 @@ public class VersionUtil {
sb.append("Platform: Java Version: ").append(Platform.getJavaVersion()).append(" (").append(Platform.getJavaVersionNumber()).append("u").append(PlatformPropsImpl.JAVA_VERSION_UPDATE).append("), VM: ").append(Platform.getJavaVMName());
sb.append(", Runtime: ").append(Platform.getJavaRuntimeName()).append(Platform.getNewline());
sb.append("Platform: Java Vendor: ").append(Platform.getJavaVendor()).append(", ").append(Platform.getJavaVendorURL());
- sb.append(", JavaSE: ").append(PlatformPropsImpl.JAVA_SE);
- sb.append(", Java9: ").append(PlatformPropsImpl.JAVA_9);
- sb.append(", Java6: ").append(PlatformPropsImpl.JAVA_6);
+ if( PlatformPropsImpl.JAVA_21 ) {
+ sb.append(", Java21");
+ } else if( PlatformPropsImpl.JAVA_17 ) {
+ sb.append(", Java17");
+ } else if( PlatformPropsImpl.JAVA_9 ) {
+ sb.append(", Java9");
+ } else if( PlatformPropsImpl.JAVA_6 ) {
+ sb.append(", Java6");
+ } else if( PlatformPropsImpl.JAVA_SE ) {
+ sb.append(", JavaSE");
+ }
sb.append(", dynamicLib: ").append(PlatformPropsImpl.useDynamicLibraries);
sb.append(", AWT enabled: ").append(Platform.AWT_AVAILABLE);
sb.append(Platform.getNewline()).append(SEPERATOR);
diff --git a/src/java/jogamp/common/os/PlatformPropsImpl.java b/src/java/jogamp/common/os/PlatformPropsImpl.java
index b6cea66..aedf288 100644
--- a/src/java/jogamp/common/os/PlatformPropsImpl.java
+++ b/src/java/jogamp/common/os/PlatformPropsImpl.java
@@ -38,20 +38,6 @@ import com.jogamp.common.util.VersionNumber;
public abstract class PlatformPropsImpl {
static final boolean DEBUG = Debug.debug("Platform");
- /** Selected {@link Platform.OSType#MACOS} or {@link Platform.OSType#IOS} {@link VersionNumber}s. */
- public static class OSXVersion {
- /** OSX Tiger, i.e. 10.4.0 */
- public static final VersionNumber Tiger = new VersionNumber(10,4,0);
- /** OSX Lion, i.e. 10.7.0 */
- public static final VersionNumber Lion = new VersionNumber(10,7,0);
- /** OSX Mavericks, i.e. 10.9.0 */
- public static final VersionNumber Mavericks = new VersionNumber(10,9,0);
- /** OSX Mojave, i.e. 10.14.0 */
- public static final VersionNumber Mojave = new VersionNumber(10,14,0);
- /** OSX Big Sur, i.e. 11.00.0 */
- public static final VersionNumber BigSur = new VersionNumber(11,0,0);
- }
-
/**
* Returns {@code true} if the given {@link CPUType}s and {@link ABIType}s are compatible.
*/
@@ -63,15 +49,6 @@ public abstract class PlatformPropsImpl {
// static initialization order:
//
- /** Version 1.6. As a JVM version, it enables certain JVM 1.6 features. */
- public static final VersionNumber Version16;
- /** Version 1.7. As a JVM version, it enables certain JVM 1.7 features. */
- public static final VersionNumber Version17;
- /** Version 1.8. As a JVM version, it enables certain JVM 1.8 features. */
- public static final VersionNumber Version18;
- /** Version 1.9. As a JVM version, it enables certain JVM 1.9 features. Note the skipped first version number due to JEP 223. */
- public static final VersionNumber Version9;
-
public static final String OS;
public static final String OS_lower;
public static final String OS_VERSION;
@@ -97,10 +74,11 @@ public abstract class PlatformPropsImpl {
* </p>
*/
public static final boolean JAVA_6;
+
/**
* True only if being compatible w/ language level 9, e.g. JRE 9.
* <p>
- * Implies {@link #isJavaSE()} and {@link #JAVA_6}.
+ * Implies {@link #JAVA_6} and {@link #isJavaSE()}
* </p>
* <p>
* Since JRE 9, the version string has dropped the major release number,
@@ -109,6 +87,22 @@ public abstract class PlatformPropsImpl {
*/
public static final boolean JAVA_9;
+ /**
+ * True only if being compatible w/ language level 17, e.g. JRE 17 (LTS).
+ * <p>
+ * Implies {@link #JAVA_9}, {@link #JAVA_6} and {@link #isJavaSE()}
+ * </p>
+ */
+ public static final boolean JAVA_17;
+
+ /**
+ * True only if being compatible w/ language level 21, e.g. JRE 21 (LTS).
+ * <p>
+ * Implies {@link #JAVA_17}, {@link #JAVA_9}, {@link #JAVA_6} and {@link #isJavaSE()}
+ * </p>
+ */
+ public static final boolean JAVA_21;
+
public static final String NEWLINE;
public static final boolean LITTLE_ENDIAN;
@@ -126,11 +120,6 @@ public abstract class PlatformPropsImpl {
public static final boolean useDynamicLibraries;
static {
- Version16 = new VersionNumber(1, 6, 0);
- Version17 = new VersionNumber(1, 7, 0);
- Version18 = new VersionNumber(1, 8, 0);
- Version9 = new VersionNumber(9, 0, 0);
-
// We don't seem to need an AccessController.doPrivileged() block
// here as these system properties are visible even to unsigned Applets.
final boolean isAndroid = AndroidVersion.isAvailable; // also triggers it's static initialization
@@ -158,9 +147,41 @@ public abstract class PlatformPropsImpl {
JAVA_VM_NAME = System.getProperty("java.vm.name");
JAVA_RUNTIME_NAME = getJavaRuntimeNameImpl();
JAVA_SE = initIsJavaSE();
- JAVA_9 = JAVA_SE && JAVA_VERSION_NUMBER.compareTo(Version9) >= 0;
- JAVA_6 = JAVA_SE && ( isAndroid || JAVA_9 || JAVA_VERSION_NUMBER.compareTo(Version16) >= 0 ) ;
-
+ if( JAVA_SE ) {
+ if( JAVA_VERSION_NUMBER.compareTo(new VersionNumber(21, 0, 0)) >= 0 ) {
+ JAVA_21 = true;
+ JAVA_17 = true;
+ JAVA_9 = true;
+ JAVA_6 = true;
+ } else if( JAVA_VERSION_NUMBER.compareTo(new VersionNumber(17, 0, 0)) >= 0 ) {
+ JAVA_21 = false;
+ JAVA_17 = true;
+ JAVA_9 = true;
+ JAVA_6 = true;
+ } else if( JAVA_VERSION_NUMBER.compareTo(new VersionNumber(9, 0, 0)) >= 0 ) {
+ JAVA_21 = false;
+ JAVA_17 = false;
+ JAVA_9 = true;
+ JAVA_6 = true;
+ } else if( isAndroid || JAVA_VERSION_NUMBER.compareTo(new VersionNumber(1, 6, 0)) >= 0 ) {
+ JAVA_21 = false;
+ JAVA_17 = false;
+ JAVA_9 = false;
+ JAVA_6 = true;
+ } else {
+ // we probably don't support anything below 1.6
+ JAVA_21 = false;
+ JAVA_17 = false;
+ JAVA_9 = false;
+ JAVA_6 = false;
+ }
+ } else {
+ // we probably don't support anything below 1.6 or non JavaSE
+ JAVA_21 = false;
+ JAVA_17 = false;
+ JAVA_9 = false;
+ JAVA_6 = false;
+ }
NEWLINE = System.getProperty("line.separator");
OS = System.getProperty("os.name");