com.jogamp.common.util.cache
Class TempJarCache

java.lang.Object
  extended by com.jogamp.common.util.cache.TempJarCache

public class TempJarCache
extends Object


Constructor Summary
TempJarCache()
           
 
Method Summary
static void addAll(Class<?> certClass, URL jarURL, ClassLoader cl)
          Adds all types, native libraries, class files and other files (resources) if not yet added.
static void addClasses(Class<?> certClass, URL jarURL, ClassLoader cl)
          Adds native classes, if not yet added.
static void addNativeLibs(Class<?> certClass, URL jarURL, ClassLoader cl)
          Adds native libraries, if not yet added.
static void addResources(Class<?> certClass, URL jarURL, ClassLoader cl)
          Adds native resources, if not yet added.
static void bootstrapNativeLib(Class<?> certClass, String libBaseName, URL jarURL, ClassLoader cl)
          Bootstrapping version extracting the JAR files root entry containing libBaseName, assuming it's a native library.
static boolean containsClasses(URL jarURL)
           
static boolean containsNativeLibs(URL jarURL)
           
static boolean containsResources(URL jarURL)
           
static String findLibrary(String libName)
           
static String findResource(String name)
          TODO class access pending needs Classloader.defineClass(..) access, ie.
static URL getResource(String name)
           
static TempFileCache getTempFileCache()
           
static boolean initSingleton()
          Documented way to kick off static initialization.
static boolean isInitialized()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TempJarCache

public TempJarCache()
Method Detail

initSingleton

public static boolean initSingleton()
Documented way to kick off static initialization.

Returns:
true is static initialization was successful

isInitialized

public static boolean isInitialized()
Returns:
true if this class has been properly initialized, ie. is in use, otherwise false.

getTempFileCache

public static TempFileCache getTempFileCache()

containsNativeLibs

public static boolean containsNativeLibs(URL jarURL)
                                  throws IOException
Throws:
IOException

containsClasses

public static boolean containsClasses(URL jarURL)
                               throws IOException
Throws:
IOException

containsResources

public static boolean containsResources(URL jarURL)
                                 throws IOException
Throws:
IOException

addNativeLibs

public static final void addNativeLibs(Class<?> certClass,
                                       URL jarURL,
                                       ClassLoader cl)
                                throws IOException,
                                       SecurityException
Adds native libraries, if not yet added.

Parameters:
certClass - if class is certified, the JarFile entries needs to have the same certificate
jarURL -
Throws:
IOException
SecurityException

addClasses

public static final void addClasses(Class<?> certClass,
                                    URL jarURL,
                                    ClassLoader cl)
                             throws IOException,
                                    SecurityException
Adds native classes, if not yet added. TODO class access pending needs Classloader.defineClass(..) access, ie. own derivation - will do when needed ..

Parameters:
certClass - if class is certified, the JarFile entries needs to have the same certificate
jarFile -
Throws:
IOException
SecurityException

addResources

public static final void addResources(Class<?> certClass,
                                      URL jarURL,
                                      ClassLoader cl)
                               throws IOException,
                                      SecurityException
Adds native resources, if not yet added.

Parameters:
certClass - if class is certified, the JarFile entries needs to have the same certificate
jarFile -
Throws:
IOException
SecurityException

addAll

public static final void addAll(Class<?> certClass,
                                URL jarURL,
                                ClassLoader cl)
                         throws IOException,
                                SecurityException
Adds all types, native libraries, class files and other files (resources) if not yet added. TODO class access pending needs Classloader.defineClass(..) access, ie. own derivation - will do when needed ..

Parameters:
certClass - if class is certified, the JarFile entries needs to have the same certificate
jarFile -
Throws:
IOException
SecurityException

findLibrary

public static final String findLibrary(String libName)

findResource

public static final String findResource(String name)
TODO class access pending needs Classloader.defineClass(..) access, ie. own derivation - will do when needed .. public static Class findClass(String name, ClassLoader cl) throws IOException, ClassFormatError { checkInitialized(); final File f = new File(nativeTmpFileCache.getTempDir(), IOUtil.getClassFileName(name)); if(f.exists()) { Class.forName(fname, initialize, loader) URL url = new URL(f.getAbsolutePath()); byte[] b = IOUtil.copyStream2ByteArray(new BufferedInputStream( url.openStream() )); MyClassLoader mcl = new MyClassLoader(cl); return mcl.defineClass(name, b, 0, b.length); } return null; }


getResource

public static final URL getResource(String name)
                             throws MalformedURLException
Throws:
MalformedURLException

bootstrapNativeLib

public static final void bootstrapNativeLib(Class<?> certClass,
                                            String libBaseName,
                                            URL jarURL,
                                            ClassLoader cl)
                                     throws IOException,
                                            SecurityException
Bootstrapping version extracting the JAR files root entry containing libBaseName, assuming it's a native library. This is used to get the 'gluegen-rt' native library, hence bootstrapping.

Parameters:
certClass - if class is certified, the JarFile entries needs to have the same certificate
Throws:
IOException
SecurityException