org.jboss.util.loading
Class DelegatingClassLoader

java.lang.Object
  extended byjava.lang.ClassLoader
      extended byjava.security.SecureClassLoader
          extended byjava.net.URLClassLoader
              extended byorg.jboss.util.loading.DelegatingClassLoader
Direct Known Subclasses:
LoaderRepositoryClassLoader (src)

public class DelegatingClassLoader
extends java.net.URLClassLoader

A URL classloader that delegates to its parent, avoiding synchronization. A standard flag is provided so it can be used as a parent class, but later subclassed and to revert to standard class loading if the subclass wants to load classes.


Field Summary
static java.net.URL[] EMPTY_URL_ARRAY
          The value returned by getURLs.
protected  boolean standard
          Whether to use standard loading
 
Constructor Summary
DelegatingClassLoader(java.lang.ClassLoader parent)
          Constructor
DelegatingClassLoader(java.lang.ClassLoader parent, java.net.URLStreamHandlerFactory factory)
          Constructor
 
Method Summary
protected  java.lang.Class loadClass(java.lang.String className, boolean resolve)
          Load a class, by asking the parent
 
Methods inherited from class java.net.URLClassLoader
addURL, definePackage, findClass, findResource, findResources, getPermissions, getURLs, newInstance, newInstance
 
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, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

EMPTY_URL_ARRAY

public static final java.net.URL[] EMPTY_URL_ARRAY
The value returned by getURLs.


standard

protected boolean standard
Whether to use standard loading

Constructor Detail

DelegatingClassLoader

public DelegatingClassLoader(java.lang.ClassLoader parent)
Constructor

Parameters:
parent - the parent classloader, cannot be null.

DelegatingClassLoader

public DelegatingClassLoader(java.lang.ClassLoader parent,
                             java.net.URLStreamHandlerFactory factory)
Constructor

Parameters:
factory - the url stream factory.
Method Detail

loadClass

protected java.lang.Class loadClass(java.lang.String className,
                                    boolean resolve)
                             throws java.lang.ClassNotFoundException
Load a class, by asking the parent

Parameters:
className - the class name to load
resolve - whether to link the class
Returns:
the loaded class
Throws:
java.lang.ClassNotFoundException - when the class could not be found