public class JNLPClassLoader
extends java.net.URLClassLoader
| Modifier and Type | Class and Description |
|---|---|
static class |
JNLPClassLoader.CodeBaseClassLoader |
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
APPLICATION |
static java.lang.String |
TEMPLATE
Signed JNLP File and Template
|
| Modifier | Constructor and Description |
|---|---|
protected |
JNLPClassLoader(JNLPFile file,
UpdatePolicy policy)
Create a new JNLPClassLoader from the specified file.
|
protected |
JNLPClassLoader(JNLPFile file,
UpdatePolicy policy,
java.lang.String mainName)
Create a new JNLPClassLoader from the specified file.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
activateJars(java.util.List<JARDesc> jars)
Ensures that the list of jars have all been transferred, and
makes them available to the classloader.
|
protected void |
activateNative(JARDesc jar)
Search for and enable any native code contained in a JAR by copying the
native files into the filesystem.
|
protected void |
addAvailable()
Adds whatever resources have already been downloaded in the
background.
|
protected void |
addNativeDirectory(java.io.File nativeDirectory)
Adds the
File to the search path of this JNLPClassLoader
when trying to find a native library |
protected JNLPClassLoader |
addNextResource()
Adds the next unused resource to the classloader.
|
protected void |
addPermission(java.security.Permission p) |
void |
decrementLoaderUseCount()
Decrements loader use count by 1
If count reaches 0, loader is removed from list of available loaders
|
void |
enableCodeBase()
Add applet's codebase URL.
|
protected void |
fillInPartJars(java.util.List<JARDesc> jars)
Adds to the specified list of JARS any other JARs that need
to be loaded at the same time as the JARs specified (ie, are
in the same part).
|
protected java.lang.Class |
findClass(java.lang.String name)
Find the class in this loader or any of its extension loaders.
|
protected java.lang.String |
findLibrary(java.lang.String lib)
Return the absolute path to the native library.
|
protected java.lang.String |
findLibraryExt(java.lang.String lib)
Try to find the library path from another peer classloader.
|
protected java.lang.Class |
findLoadedClassAll(java.lang.String name)
Find the loaded class in this loader or any of its extension loaders.
|
java.net.URL |
findResource(java.lang.String name)
Finds the resource in this, the parent, or the extension
class loaders.
|
java.util.Enumeration<java.net.URL> |
findResources(java.lang.String name)
Find the resources in this, the parent, or the extension
class loaders.
|
java.security.AccessControlContext |
getAccessControlContextForClassLoading()
Returns an appropriate AccessControlContext for loading classes in
the running instance.
|
ApplicationInstance |
getApplication()
Returns the JNLP app for this classloader
|
protected SecurityDesc |
getCodeSourceSecurity(java.net.URL source)
Returns the security descriptor for given code source URL
|
java.lang.String |
getExtensionHREF()
Deprecated.
|
java.lang.String |
getExtensionName()
Deprecated.
|
static JNLPClassLoader |
getInstance(JNLPFile file,
UpdatePolicy policy)
Returns a JNLP classloader for the specified JNLP file.
|
static JNLPClassLoader |
getInstance(JNLPFile file,
UpdatePolicy policy,
java.lang.String mainName)
Returns a JNLP classloader for the specified JNLP file.
|
static JNLPClassLoader |
getInstance(java.net.URL location,
java.lang.String uniqueKey,
Version version,
UpdatePolicy policy,
java.lang.String mainName)
Returns a JNLP classloader for the JNLP file at the specified
location.
|
JNLPFile |
getJNLPFile()
Returns the JNLP file the classloader was created from.
|
protected java.io.File |
getNativeDir()
Return the base directory to store native code files in.
|
protected java.util.List<java.io.File> |
getNativeDirectories()
Returns a list of all directories in the search path of the current classloader
when it tires to find a native library.
|
protected java.security.PermissionCollection |
getPermissions(java.security.CodeSource cs)
Returns the permissions for the CodeSource.
|
protected SecurityDesc |
getSecurity() |
boolean |
getSigning() |
boolean |
hasMainJar()
Returns true if this loader has the main jar
|
java.lang.Class<?> |
loadClass(java.lang.String name)
Find a JAR in the shared 'extension' classloaders, this
classloader, or one of the classloaders for the JNLP file's
extensions.
|
boolean |
resourceAvailableLocally(java.lang.String s)
Returns if the specified resource is available locally from a cached jar
|
void |
setApplication(ApplicationInstance app)
Sets the JNLP app this group is for; can only be called once.
|
addURL, close, definePackage, getResourceAsStream, getURLs, newInstance, newInstanceclearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findLoadedClass, findSystemClass, getClassLoadingLock, getPackage, getPackages, getParent, getResource, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, registerAsParallelCapable, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSignerspublic static final java.lang.String TEMPLATE
public static final java.lang.String APPLICATION
protected JNLPClassLoader(JNLPFile file, UpdatePolicy policy) throws LaunchException
file - the JNLP fileLaunchExceptionprotected JNLPClassLoader(JNLPFile file, UpdatePolicy policy, java.lang.String mainName) throws LaunchException
file - the JNLP filename - of the application's main classLaunchExceptionpublic static JNLPClassLoader getInstance(JNLPFile file, UpdatePolicy policy) throws LaunchException
file - the file to load classes forpolicy - the update policy to use when downloading resourcesLaunchExceptionpublic static JNLPClassLoader getInstance(JNLPFile file, UpdatePolicy policy, java.lang.String mainName) throws LaunchException
file - the file to load classes forpolicy - the update policy to use when downloading resourcesmainName - Overrides the main class name of the applicationLaunchExceptionpublic static JNLPClassLoader getInstance(java.net.URL location, java.lang.String uniqueKey, Version version, UpdatePolicy policy, java.lang.String mainName) throws java.io.IOException, ParseException, LaunchException
location - the file's locationversion - the file's versionpolicy - the update policy to use when downloading resourcesmainName - Overrides the main class name of the applicationjava.io.IOExceptionParseExceptionLaunchExceptionpublic boolean hasMainJar()
public void enableCodeBase()
public void setApplication(ApplicationInstance app)
public ApplicationInstance getApplication()
public JNLPFile getJNLPFile()
protected java.security.PermissionCollection getPermissions(java.security.CodeSource cs)
getPermissions in class java.net.URLClassLoaderprotected void addPermission(java.security.Permission p)
protected void fillInPartJars(java.util.List<JARDesc> jars)
protected void activateJars(java.util.List<JARDesc> jars)
jars - the list of jars to loadprotected void activateNative(JARDesc jar)
protected java.io.File getNativeDir()
protected void addNativeDirectory(java.io.File nativeDirectory)
File to the search path of this JNLPClassLoader
when trying to find a native libraryprotected java.util.List<java.io.File> getNativeDirectories()
protected java.lang.String findLibrary(java.lang.String lib)
findLibrary in class java.lang.ClassLoaderprotected java.lang.String findLibraryExt(java.lang.String lib)
protected java.lang.Class findLoadedClassAll(java.lang.String name)
public java.lang.Class<?> loadClass(java.lang.String name)
throws java.lang.ClassNotFoundException
loadClass in class java.lang.ClassLoaderjava.lang.ClassNotFoundExceptionprotected java.lang.Class findClass(java.lang.String name)
throws java.lang.ClassNotFoundException
findClass in class java.net.URLClassLoaderjava.lang.ClassNotFoundExceptionpublic java.net.URL findResource(java.lang.String name)
findResource in class java.net.URLClassLoaderURL for the resource, or null
if the resource could not be found.public java.util.Enumeration<java.net.URL> findResources(java.lang.String name)
throws java.io.IOException
findResources in class java.net.URLClassLoaderjava.io.IOExceptionpublic boolean resourceAvailableLocally(java.lang.String s)
s - The name of the resourceprotected void addAvailable()
protected JNLPClassLoader addNextResource() throws LaunchException
LaunchException - Thrown if the signed JNLP file, within the main jar, fails to be verified or does not match@Deprecated public java.lang.String getExtensionName()
@Deprecated public java.lang.String getExtensionHREF()
public boolean getSigning()
protected SecurityDesc getSecurity()
protected SecurityDesc getCodeSourceSecurity(java.net.URL source)
source - the origin (remote) url of the codepublic void decrementLoaderUseCount()
java.lang.SecurityException - if caller is not trustedpublic java.security.AccessControlContext getAccessControlContextForClassLoading()