diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/java/com/jogamp/common/os/Platform.java | 22 | ||||
-rw-r--r-- | src/java/jogamp/common/Debug.java | 15 |
2 files changed, 29 insertions, 8 deletions
diff --git a/src/java/com/jogamp/common/os/Platform.java b/src/java/com/jogamp/common/os/Platform.java index 3d255ba..6c582fb 100644 --- a/src/java/com/jogamp/common/os/Platform.java +++ b/src/java/com/jogamp/common/os/Platform.java @@ -41,6 +41,7 @@ import com.jogamp.common.nio.Buffers; import com.jogamp.common.util.JarUtil; import com.jogamp.common.util.cache.TempJarCache; +import jogamp.common.Debug; import jogamp.common.jvm.JVMUtil; import jogamp.common.os.MachineDescriptionRuntime; @@ -50,6 +51,12 @@ import jogamp.common.os.MachineDescriptionRuntime; */ public class Platform { + /** + * System property: 'jogamp.gluegen.UseTempJarCache', defaults to true + */ + public static final boolean USE_TEMP_JAR_CACHE; + private static final String useTempJarCachePropName = "jogamp.gluegen.UseTempJarCache"; + public static final boolean JAVA_SE; public static final boolean LITTLE_ENDIAN; public static final String OS; @@ -190,6 +197,13 @@ public class Platform { os_and_arch = getOSAndArch(OS_TYPE, CPU_ARCH); + USE_TEMP_JAR_CACHE = + AccessController.doPrivileged(new PrivilegedAction<Boolean>() { + public Boolean run() { + return Boolean.valueOf(Debug.getBooleanProperty(true, useTempJarCachePropName, true, AccessController.getContext())); + } + }).booleanValue(); + loadGlueGenRTImpl(); JVMUtil.initSingleton(); @@ -279,13 +293,13 @@ public class Platform { } private static void loadGlueGenRTImpl() { - final String nativeJarName = "gluegen-rt-natives-"+os_and_arch+".jar"; - final String libBaseName = "gluegen-rt"; - final ClassLoader cl = Platform.class.getClassLoader(); + final String libBaseName = "gluegen-rt"; AccessController.doPrivileged(new PrivilegedAction<Object>() { public Object run() { - if(TempJarCache.initSingleton()) { + if(USE_TEMP_JAR_CACHE && TempJarCache.initSingleton()) { + final String nativeJarName = "gluegen-rt-natives-"+os_and_arch+".jar"; + final ClassLoader cl = Platform.class.getClassLoader(); try { final URL jarUrlRoot = JarUtil.getJarURLDirname( JarUtil.getJarURL(Platform.class.getName(), cl) ); diff --git a/src/java/jogamp/common/Debug.java b/src/java/jogamp/common/Debug.java index e425e9c..cf07255 100644 --- a/src/java/jogamp/common/Debug.java +++ b/src/java/jogamp/common/Debug.java @@ -88,8 +88,15 @@ public class Debug { } public static boolean getBooleanProperty(final String property, final boolean jnlpAlias, final AccessControlContext acc) { - Boolean b = Boolean.valueOf(Debug.getProperty(property, jnlpAlias, acc)); - return b.booleanValue(); + return Boolean.valueOf(Debug.getProperty(property, jnlpAlias, acc)).booleanValue(); + } + + public static boolean getBooleanProperty(boolean defaultValue, final String property, final boolean jnlpAlias, final AccessControlContext acc) { + final String valueS = Debug.getProperty(property, jnlpAlias, acc); + if(null != valueS) { + return Boolean.valueOf(Debug.getProperty(property, jnlpAlias, acc)).booleanValue(); + } + return defaultValue; } static boolean isPropertyDefined(final String property, final boolean jnlpAlias) { @@ -107,8 +114,8 @@ public class Debug { public static String getProperty(final String property, final boolean jnlpAlias, final AccessControlContext acc) { String s=null; if(null!=acc && acc.equals(localACC)) { - s = (String) AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { + s = AccessController.doPrivileged(new PrivilegedAction<String>() { + public String run() { String val=null; try { val = System.getProperty(property); |