public class VFSClassLoader extends java.security.SecureClassLoader
The search path can consist of VFS FileObjects referring both to folders and JAR files. Any FileObject of type FileType.FILE is assumed to be a JAR and is opened by creating a layered file system with the "jar" scheme.
TODO - Test this with signed Jars and a SecurityManager.
| Constructor | Description |
|---|---|
VFSClassLoader(FileObject[] files,
FileSystemManager manager) |
Constructors a new VFSClassLoader for the given files.
|
VFSClassLoader(FileObject[] files,
FileSystemManager manager,
java.lang.ClassLoader parent) |
Constructors a new VFSClassLoader for the given FileObjects.
|
VFSClassLoader(FileObject file,
FileSystemManager manager) |
Constructors a new VFSClassLoader for the given file.
|
VFSClassLoader(FileObject file,
FileSystemManager manager,
java.lang.ClassLoader parent) |
Constructors a new VFSClassLoader for the given file.
|
| Modifier and Type | Method | Description |
|---|---|---|
protected void |
copyPermissions(java.security.PermissionCollection src,
java.security.PermissionCollection dest) |
Copies the permissions from src to dest.
|
protected java.lang.Class<?> |
findClass(java.lang.String name) |
Finds and loads the class with the specified name from the search path.
|
protected java.net.URL |
findResource(java.lang.String name) |
Finds the resource with the specified name from the search path.
|
protected java.util.Enumeration<java.net.URL> |
findResources(java.lang.String name) |
Returns an Enumeration of all the resources in the search path with the specified name.
|
FileObject[] |
getFileObjects() |
Provide access to the file objects this class loader represents.
|
protected java.security.PermissionCollection |
getPermissions(java.security.CodeSource cs) |
Calls super.getPermissions both for the code source and also adds the permissions granted to the parent layers.
|
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSignerspublic VFSClassLoader(FileObject file, FileSystemManager manager) throws FileSystemException
file - the file to load the classes and resources from.manager - the FileManager to use when trying create a layered Jar file system.FileSystemException - if an error occurs.public VFSClassLoader(FileObject file, FileSystemManager manager, java.lang.ClassLoader parent) throws FileSystemException
file - the file to load the classes and resources from.manager - the FileManager to use when trying create a layered Jar file system.parent - the parent class loader for delegation.FileSystemException - if an error occurs.public VFSClassLoader(FileObject[] files, FileSystemManager manager) throws FileSystemException
files - the files to load the classes and resources from.manager - the FileManager to use when trying create a layered Jar file system.FileSystemException - if an error occurs.public VFSClassLoader(FileObject[] files, FileSystemManager manager, java.lang.ClassLoader parent) throws FileSystemException
files - the FileObjects to load the classes and resources from.manager - the FileManager to use when trying create a layered Jar file system.parent - the parent class loader for delegation.FileSystemException - if an error occurs.public FileObject[] getFileObjects()
protected java.lang.Class<?> findClass(java.lang.String name) throws java.lang.ClassNotFoundException
findClass in class java.lang.ClassLoaderjava.lang.ClassNotFoundException - if the class is not found.protected java.security.PermissionCollection getPermissions(java.security.CodeSource cs)
getPermissions in class java.security.SecureClassLoadercs - the CodeSource.protected void copyPermissions(java.security.PermissionCollection src, java.security.PermissionCollection dest)
src - The source PermissionCollection.dest - The destination PermissionCollection.protected java.net.URL findResource(java.lang.String name)
findResource in class java.lang.ClassLoadername - The resource name.protected java.util.Enumeration<java.net.URL> findResources(java.lang.String name) throws java.io.IOException
Gets called from ClassLoader.getResources(String) after parent class loader was questioned.
findResources in class java.lang.ClassLoadername - The resources to find.FileSystemException - if an error occurs.java.io.IOException