From cc76889a6fe96cffb91c9a3aa7934878c0ecd97e Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Fri, 4 May 2012 01:12:25 +0200 Subject: Use ClassLoader to find JNI native libraries. ClassLoader was only used for tool native libraries. NativeLibrary: Expose 'String findLibrary(String libName, ClassLoader loader)', allowing utilization of System.load(loader.findLibrary(libName)). JNILibLoaderBase.loadLibrary(): Add optional ClassLoader argument, used to locate the library DynamicLibraryBundle: Use DynamicLibraryInfo's ClassLoader to find native libraries (tool + jni) --- src/java/com/jogamp/common/os/DynamicLibraryBundle.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'src/java/com/jogamp/common/os/DynamicLibraryBundle.java') diff --git a/src/java/com/jogamp/common/os/DynamicLibraryBundle.java b/src/java/com/jogamp/common/os/DynamicLibraryBundle.java index fc302e9..427f522 100755 --- a/src/java/com/jogamp/common/os/DynamicLibraryBundle.java +++ b/src/java/com/jogamp/common/os/DynamicLibraryBundle.java @@ -42,8 +42,8 @@ import com.jogamp.common.util.RunnableExecutor; /** * Provides bundling of:
*
* An instance provides a complete {@link com.jogamp.common.os.DynamicLookupHelper} * to {@link com.jogamp.gluegen.runtime.ProcAddressTable#reset(com.jogamp.common.os.DynamicLookupHelper) reset} @@ -52,7 +52,7 @@ import com.jogamp.common.util.RunnableExecutor; * */ @@ -251,13 +251,13 @@ public class DynamicLibraryBundle implements DynamicLookupHelper { } toolLibLoadedNumber = 0; - ClassLoader loader = getClass().getClassLoader(); + final ClassLoader cl = info.getClass().getClassLoader(); NativeLibrary lib = null; for (i=0; i < toolLibNames.size(); i++) { final List libNames = toolLibNames.get(i); if( null != libNames && libNames.size() > 0 ) { - lib = loadFirstAvailable(libNames, loader, info.shallLinkGlobal()); + lib = loadFirstAvailable(libNames, cl, info.shallLinkGlobal()); if ( null == lib ) { if(DEBUG) { System.err.println("Unable to load any Tool library of: "+libNames); @@ -285,7 +285,7 @@ public class DynamicLibraryBundle implements DynamicLookupHelper { boolean ignoreError = true; boolean res; try { - res = GlueJNILibLoader.loadLibrary(libName, ignoreError); + res = GlueJNILibLoader.loadLibrary(libName, ignoreError, cl); if(DEBUG && !res) { System.err.println("Info: Could not load JNI/Glue library: "+libName); } @@ -375,8 +375,8 @@ public class DynamicLibraryBundle implements DynamicLookupHelper { /** Inherit access */ static class GlueJNILibLoader extends JNILibLoaderBase { - protected static synchronized boolean loadLibrary(String libname, boolean ignoreError) { - return JNILibLoaderBase.loadLibrary(libname, ignoreError); + protected static synchronized boolean loadLibrary(String libname, boolean ignoreError, ClassLoader cl) { + return JNILibLoaderBase.loadLibrary(libname, ignoreError, cl); } } } -- cgit v1.2.3