org.apache.cocoon.servlet
Class ParanoidClassLoader

java.lang.Object
  extended byjava.lang.ClassLoader
      extended byjava.security.SecureClassLoader
          extended byjava.net.URLClassLoader
              extended byorg.apache.cocoon.servlet.ParanoidClassLoader

public class ParanoidClassLoader
extends URLClassLoader


Constructor Summary
ParanoidClassLoader()
          Default constructor has no parents or initial URLs.
ParanoidClassLoader(ClassLoader parent)
          Alternate constructor to define a parent.
ParanoidClassLoader(URL[] urls)
          Alternate constructor to define initial URLs.
ParanoidClassLoader(URL[] urls, ClassLoader parent)
          Alternate constructor to define a parent and initial URL s.
ParanoidClassLoader(URL[] urls, ClassLoader parent, URLStreamHandlerFactory factory)
          Alternate constructor to define a parent, initial URLs, and a default URLStreamHandlerFactory.
 
Method Summary
 void addDirectory(File file)
          Adds a new directory of class files.
 void addURL(URL url)
          Adds a new URL
 URL getResource(String name)
          Gets a resource from this ClassLoader.
 Class loadClass(String name, boolean resolve)
          Loads the class from this ClassLoader.
static URLClassLoader newInstance(URL[] urls)
          Extends URLClassLoader's initialization methods so we return a ParanoidClassLoad instead.
static URLClassLoader newInstance(URL[] urls, ClassLoader parent)
          Extends URLClassLoader's initialization methods so we return a ParanoidClassLoad instead.
 
Methods inherited from class java.net.URLClassLoader
definePackage, findClass, findResource, findResources, getPermissions, getURLs
 
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, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, 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

ParanoidClassLoader

public ParanoidClassLoader()
Default constructor has no parents or initial URLs.


ParanoidClassLoader

public ParanoidClassLoader(ClassLoader parent)
Alternate constructor to define a parent.


ParanoidClassLoader

public ParanoidClassLoader(URL[] urls)
Alternate constructor to define initial URLs.


ParanoidClassLoader

public ParanoidClassLoader(URL[] urls,
                           ClassLoader parent)
Alternate constructor to define a parent and initial URL s.


ParanoidClassLoader

public ParanoidClassLoader(URL[] urls,
                           ClassLoader parent,
                           URLStreamHandlerFactory factory)
Alternate constructor to define a parent, initial URLs, and a default URLStreamHandlerFactory.

Method Detail

newInstance

public static final URLClassLoader newInstance(URL[] urls)
Extends URLClassLoader's initialization methods so we return a ParanoidClassLoad instead.


newInstance

public static final URLClassLoader newInstance(URL[] urls,
                                               ClassLoader parent)
Extends URLClassLoader's initialization methods so we return a ParanoidClassLoad instead.


loadClass

public final Class loadClass(String name,
                             boolean resolve)
                      throws ClassNotFoundException
Loads the class from this ClassLoader. If the class does not exist in this one, we check the parent. Please note that this is the exact opposite of the ClassLoader spec. We use it to work around inconsistent class loaders from third party vendors.

Parameters:
name - the name of the class
resolve - if true then resolve the class
Returns:
the resulting Class object
Throws:
ClassNotFoundException - if the class could not be found

getResource

public final URL getResource(String name)
Gets a resource from this ClassLoader. If the resource does not exist in this one, we check the parent. Please note that this is the exact opposite of the ClassLoader spec. We use it to work around inconsistent class loaders from third party vendors.

Parameters:
name - of resource

addDirectory

public final void addDirectory(File file)
                        throws IOException
Adds a new directory of class files.

Parameters:
file - for jar or directory
Throws:
IOException

addURL

public void addURL(URL url)
Adds a new URL



Copyright ? 1999-2005 The Apache Software Foundation. All Rights Reserved.