Package org.apache.commons.vfs.impl
Class VFSClassLoader
java.lang.Object
java.lang.ClassLoader
java.security.SecureClassLoader
org.apache.commons.vfs.impl.VFSClassLoader
A class loader that can load classes and resources from a search path
VFS FileObjects refering both to folders and JAR files. Any FileObject
of type
FileType.FILE
is asumed 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.
- Version:
- $Revision: 480428 $ $Date: 2006-11-29 07:15:24 +0100 (Wed, 29 Nov 2006) $
- Author:
- Brian Olsen
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionVFSClassLoader
(FileObject[] files, FileSystemManager manager) Constructors a new VFSClassLoader for the given files.VFSClassLoader
(FileObject[] files, FileSystemManager manager, 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, ClassLoader parent) Constructors a new VFSClassLoader for the given file. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
Copies the permissions from src to dest.protected Class
Finds and loads the class with the specified name from the search path.protected URL
findResource
(String name) Finds the resource with the specified name from the search path.protected Enumeration
findResources
(String name) Returns an Enumeration of all the resources in the search path with the specified name.protected PermissionCollection
Calls super.getPermissions both for the code source and also adds the permissions granted to the parent layers.Methods inherited from class java.security.SecureClassLoader
defineClass, defineClass
Methods inherited from class java.lang.ClassLoader
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, setSigners
-
Constructor Details
-
VFSClassLoader
Constructors a new VFSClassLoader for the given file.- Parameters:
file
- the file to load the classes and resources from.manager
- the FileManager to use when trying create a layered Jar file system.- Throws:
FileSystemException
-
VFSClassLoader
public VFSClassLoader(FileObject file, FileSystemManager manager, ClassLoader parent) throws FileSystemException Constructors a new VFSClassLoader for the given file.- Parameters:
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.- Throws:
FileSystemException
-
VFSClassLoader
Constructors a new VFSClassLoader for the given files. The files will be searched in the order specified.- Parameters:
files
- the files to load the classes and resources from.manager
- the FileManager to use when trying create a layered Jar file system.- Throws:
FileSystemException
-
VFSClassLoader
public VFSClassLoader(FileObject[] files, FileSystemManager manager, ClassLoader parent) throws FileSystemException Constructors a new VFSClassLoader for the given FileObjects. The FileObjects will be searched in the order specified.- Parameters:
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.- Throws:
FileSystemException
-
-
Method Details
-
findClass
Finds and loads the class with the specified name from the search path.- Overrides:
findClass
in classClassLoader
- Throws:
ClassNotFoundException
- if the class is not found.
-
getPermissions
Calls super.getPermissions both for the code source and also adds the permissions granted to the parent layers.- Overrides:
getPermissions
in classSecureClassLoader
-
copyPermissions
Copies the permissions from src to dest. -
findResource
Finds the resource with the specified name from the search path. This returns null if the resource is not found.- Overrides:
findResource
in classClassLoader
-
findResources
Returns an Enumeration of all the resources in the search path with the specified name. TODO - Implement this.- Overrides:
findResources
in classClassLoader
-