net.sourceforge.jnlp.runtime
public class JNLPClassLoader extends java.net.URLClassLoader
Modifier and Type | Class and Description |
---|---|
static class |
JNLPClassLoader.CodeBaseClassLoader |
static class |
JNLPClassLoader.DownloadAction
Actions to specify how cache is to be managed
|
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, definePackage, getURLs, newInstance, newInstance
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findLoadedClass, findSystemClass, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
public static final java.lang.String TEMPLATE
public static final java.lang.String APPLICATION
protected JNLPClassLoader(JNLPFile file, UpdatePolicy policy) throws LaunchException
file
- the JNLP fileLaunchException
protected JNLPClassLoader(JNLPFile file, UpdatePolicy policy, java.lang.String mainName) throws LaunchException
file
- the JNLP filepolicy
- the UpdatePolicy for this class loadermainName
- name of the application's main classLaunchException
public static JNLPClassLoader getInstance(JNLPFile file, UpdatePolicy policy) throws LaunchException
file
- the file to load classes forpolicy
- the update policy to use when downloading resourcesLaunchException
public 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 applicationLaunchException
public 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.IOException
ParseException
LaunchException
public 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.URLClassLoader
protected 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.ClassLoader
protected 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.ClassLoader
java.lang.ClassNotFoundException
protected java.lang.Class findClass(java.lang.String name) throws java.lang.ClassNotFoundException
findClass
in class java.net.URLClassLoader
java.lang.ClassNotFoundException
public java.net.URL findResource(java.lang.String name)
findResource
in class java.net.URLClassLoader
URL
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.URLClassLoader
java.io.IOException
public 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()