com.jogamp.common.util.cache
Class TempJarCache

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

public class TempJarCache
extends Object


Nested Class Summary
static class TempJarCache.LoadState
           
 
Constructor Summary
TempJarCache()
           
 
Method Summary
static void addAll(Class<?> certClass, URL jarURL)
          Adds all types, native libraries, class files and other files (resources) if not yet added.
static void addClasses(Class<?> certClass, URL jarURL)
          Adds native classes, if not yet added.
static void addNativeLibs(Class<?> certClass, URL jarURL)
          Adds native libraries, if not yet added.
static void addResources(Class<?> certClass, URL jarURL)
          Adds native resources, if not yet added.
static void bootstrapNativeLib(Class<?> certClass, String libBaseName, URL jarURL)
          Bootstrapping version extracting the JAR files root entry containing libBaseName, assuming it's a native library.
static boolean checkClasses(URL jarURL, TempJarCache.LoadState exp)
           
static boolean checkNativeLibs(URL jarURL, TempJarCache.LoadState exp)
           
static boolean checkResources(URL jarURL, TempJarCache.LoadState exp)
           
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()

checkNativeLibs

public static boolean checkNativeLibs(URL jarURL,
                                      TempJarCache.LoadState exp)
                               throws IOException
Throws:
IOException

checkClasses

public static boolean checkClasses(URL jarURL,
                                   TempJarCache.LoadState exp)
                            throws IOException
Throws:
IOException

checkResources

public static boolean checkResources(URL jarURL,
                                     TempJarCache.LoadState exp)
                              throws IOException
Throws:
IOException

addNativeLibs

public static final void addNativeLibs(Class<?> certClass,
                                       URL jarURL)
                                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 - if the jarURL could not be loaded or a previous load attempt failed
SecurityException

addClasses

public static final void addClasses(Class<?> certClass,
                                    URL jarURL)
                             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 - if the jarURL could not be loaded or a previous load attempt failed
SecurityException

addResources

public static final void addResources(Class<?> certClass,
                                      URL jarURL)
                               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 - if the jarURL could not be loaded or a previous load attempt failed
SecurityException

addAll

public static final void addAll(Class<?> certClass,
                                URL jarURL)
                         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 - if the jarURL could not be loaded or a previous load attempt failed
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)
                                     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