summaryrefslogtreecommitdiffstats
path: root/src/java/jogamp/common/os/PlatformPropsImpl.java
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2014-02-16 06:32:39 +0100
committerSven Gothel <[email protected]>2014-02-16 06:32:39 +0100
commit86bdae8ce26d291c0096ed500581239dd2a87125 (patch)
treea4f262d90399db0b3c6a8ed9f64f17520231b914 /src/java/jogamp/common/os/PlatformPropsImpl.java
parent680b54bae4d59a6650a50e98edcd896ca9fe91a9 (diff)
Bug 958 - Add support for OpenJDK version notation
Manu <[email protected]>: In OpenJDK, Java version notation is a little different from Oracle JDK one: OpenJDK uses "-u" instead of "_" to separate the version number from the update number, i.e. "1.7.0-u60-b04" vs "1.7.0_60-ea". That would be nice to take this into account in the static initializer of jogamp.common.os.PlatformPropsImpl class. You could simply replace the line: final int usIdx = JAVA_VERSION.lastIndexOf("_"); by: final int usIdx = JAVA_VERSION.replace("-u", "_").lastIndexOf("_"); If you want to program it better, you can also test the "java.runtime.name" property that returns "OpenJDK Runtime Environment" for OpenJDK. See also bug #944 https://jogamp.org/bugzilla/show_bug.cgi?id=944 +++ Done .. avoding the replace op.
Diffstat (limited to 'src/java/jogamp/common/os/PlatformPropsImpl.java')
-rw-r--r--src/java/jogamp/common/os/PlatformPropsImpl.java13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/java/jogamp/common/os/PlatformPropsImpl.java b/src/java/jogamp/common/os/PlatformPropsImpl.java
index f3b7ace..0965185 100644
--- a/src/java/jogamp/common/os/PlatformPropsImpl.java
+++ b/src/java/jogamp/common/os/PlatformPropsImpl.java
@@ -97,9 +97,16 @@ public abstract class PlatformPropsImpl {
JAVA_VERSION = System.getProperty("java.version");
JAVA_VERSION_NUMBER = new VersionNumber(JAVA_VERSION);
{
- final int usIdx = JAVA_VERSION.lastIndexOf("_");
- if( usIdx > 0 ) {
- final String buildS = Platform.JAVA_VERSION.substring(usIdx+1);
+ int usIdx = JAVA_VERSION.lastIndexOf("-u"); // OpenJDK update notation
+ int usOff;
+ if( 0 < usIdx ) {
+ usOff = 2;
+ } else {
+ usIdx = JAVA_VERSION.lastIndexOf("_"); // Oracle update notation
+ usOff = 1;
+ }
+ if( 0 < usIdx ) {
+ final String buildS = Platform.JAVA_VERSION.substring(usIdx+usOff);
final VersionNumber update = new VersionNumber(buildS);
JAVA_VERSION_UPDATE = update.getMajor();
} else {