Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.commons.vfs.impl
Class VFSClassLoader

    java.lang.Object
      java.lang.ClassLoader
          java.security.SecureClassLoader
              org.apache.commons.vfs.impl.VFSClassLoader

public class VFSClassLoader
extends SecureClassLoader

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 (Mi, 29 Nov 2006) $
Author:
  Brian Olsen
See Also:
  `FileSystemManager.createFileSystem(java.lang.String, org.apache.commons.vfs.FileObject)`

Constructor Summary
`VFSClassLoader(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
`protected void` | `copyPermissions(PermissionCollection src, PermissionCollection dest)` Copies the permissions from src to dest.
`protected Class` | `findClass(String name)` 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` | `getPermissions(CodeSource cs)` 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`

Methods inherited from class java.lang.ClassLoader
`clearAssertionStatus, defineClass, defineClass, defineClass, definePackage, findLibrary, findLoadedClass, findSystemClass, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, loadClass, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### VFSClassLoader

    public VFSClassLoader(FileObject file,
                          FileSystemManager manager)
                   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.

### 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.

### VFSClassLoader

    public VFSClassLoader(FileObject[] files,
                          FileSystemManager manager)
                   throws FileSystemException

  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.

### 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.

Method Detail

### findClass

    protected Class findClass(String name)
                       throws ClassNotFoundException

  Finds and loads the class with the specified name from the search path.

  Throws:
    `ClassNotFoundException` - if the class is not found.

### getPermissions

    protected PermissionCollection getPermissions(CodeSource cs)

  Calls super.getPermissions both for the code source and also adds the permissions granted to the parent layers.

### copyPermissions

    protected void copyPermissions(PermissionCollection src,
                                   PermissionCollection dest)

  Copies the permissions from src to dest.

### findResource

    protected URL findResource(String name)

  Finds the resource with the specified name from the search path. This returns null if the resource is not found.

### findResources

    protected Enumeration findResources(String name)

  Returns an Enumeration of all the resources in the search path with the specified name. TODO - Implement this.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2002-2006 The Apache Software Foundation. All Rights Reserved.