commit 23ec994d65329f239f17322ad23510a77e709534 Author: Sven Gothel Date: Thu Jul 19 21:16:38 2012 +0200 Minor cleanup of JavaEmitter commit 2fbad155b38a32f2fb4f8989ffd3ea3dc71f2915 Author: Sven Gothel Date: Thu Jul 5 15:04:18 2012 +0200 IOUtil: Better resource location debug info; RunnableTask adds 'flush()' method to flush a pending task (lock that is). commit 834b9e530e652b7ff7c5e222720bce3ad2b11c5f Author: Sven Gothel Date: Wed Jun 27 04:18:53 2012 +0200 Lock Cleanup (API Change) - LockExt -> ThreadLock - clarifying semantics (API Change) - ThreadLock: Remove isOwner(), use isOwner(Thread.currentThread) - adding @Override commit 9a71703904ebfec343fb2c7266343d37a2e4c3db Author: Sven Gothel Date: Tue Jun 26 10:39:23 2012 +0200 Implement Bug #598 - JOGL ALL JAR File Change incl. it's Native Jar URL Derivation +++ JNILibLoaderBase.addNativeJarLibs(..): Add API doc JNILibLoaderBase: "addNativeJarLibs(Class classFromJavaJar, String allNativeJarBaseName, String[] atomicNativeJarBaseNames)" -> "addNativeJarLibs(Class[] classesFromJavaJars, String singleJarMarker, String[] stripBasenameSuffixes)" Derive the 'all' (1st choice) native JAR URL solely on the given class's JAR URL. Examples: JOCL: // only: jocl.jar -> jocl-natives-'os.and.arch'.jar addNativeJarLibs(new Class[] { JOCLJNILibLoader.class }, null, null ); JOGL: final ClassLoader cl = GLProfile.class.getClassLoader(); // either: [jogl-all.jar, jogl-all-noawt.jar, jogl-all-mobile.jar] -> jogl-all-natives-.jar // or: nativewindow-core.jar -> nativewindow-natives-.jar, // jogl-core.jar -> jogl-natives-.jar, // (newt-core.jar -> newt-natives-.jar)? (if available) final String newtFactoryClassName = "com.jogamp.newt.NewtFactory"; final Class[] classesFromJavaJars = new Class[] { NWJNILibLoader.class, GLProfile.class, null }; if( ReflectionUtil.isClassAvailable(newtFactoryClassName, cl) ) { classesFromJavaJars[2] = ReflectionUtil.getClass(newtFactoryClassName, false, cl); } JNILibLoaderBase.addNativeJarLibs(classesFromJavaJars, "-all", new String[] { "-noawt", "-mobile", "-core" } ); Efficiency / Performance: - Reduced JAR URL lookup calls JarUtil.getJarURL(..) - JNILibLoaderBase, Platform, JarUtil - Attempt loading Jar files (native, class, ..) only once - TempJarCache Code Cleanup (IOUtil, JarUtil, : - IOException if not found - IllegalArgumentException if null argument +++ jogamp.android-launcher.jar -> jogamp-android-launcher.jar +++ commit 2a10f604b65f12ae5e8987bfa73cffcc1d5f796e Author: Sven Gothel Date: Thu Jun 21 20:30:53 2012 +0200 Fix Bug 591: Fix 'jnlp.' aliasing of PropertyAccess.getProperty(..): Usually you set a property like jogamp.debug.IOUtil jogamp.debug=all to enable either IOUtil debugging or all debugging. In case you use Applets or JNLP you cannot use above property namespace, since it's considered insecure. GlueGen would allow you to use an 'jnlp.' alias, e.g.: jnlp.jogamp.debug.IOUtil jnlp.jogamp.debug=all The latter are secure properties and will be passed to the invoked JVM. All properties requested by PropertyAccess.getProperty(..) shall be aliased w/ 'jnlp.' (prepend 'jnlp.'), if no value could be found with the given key. commit cf37c7469593b111017e80fd9d618c2eb6c235a5 Author: Sven Gothel Date: Thu Jun 21 20:17:45 2012 +0200 Fix IOUtil: Query FileOutputStream constructor for each use (don't cache), utilizing default SecurityManager validation.