org.apache.axis2.classloader
Class MultiParentClassLoader

java.lang.Object
  extended by java.lang.ClassLoader
      extended by java.security.SecureClassLoader
          extended by java.net.URLClassLoader
              extended by org.apache.axis2.classloader.MultiParentClassLoader

public class MultiParentClassLoader
extends java.net.URLClassLoader

A MultiParentClassLoader is a simple extension of the URLClassLoader that simply changes the single parent class loader model to support a list of parent class loaders. Each operation that accesses a parent, has been replaced with a operation that checks each parent in order. This getParent method of this class will always return null, which may be interpreted by the calling code to mean that this class loader is a direct child of the system class loader.

Version:
$Rev$ $Date$

Constructor Summary
MultiParentClassLoader(java.net.URL[] urls)
          Creates a named class loader with no parents.
MultiParentClassLoader(java.net.URL[] urls, java.lang.ClassLoader parent)
          Creates a named class loader as a child of the specified parent.
MultiParentClassLoader(java.net.URL[] urls, java.lang.ClassLoader[] parents)
          Creates a named class loader as a child of the specified parents.
MultiParentClassLoader(java.net.URL[] urls, java.lang.ClassLoader[] parents, boolean inverseClassLoading, java.util.Collection hiddenClasses, java.util.Collection nonOverridableClasses)
           
MultiParentClassLoader(java.net.URL[] urls, java.lang.ClassLoader[] parents, boolean inverseClassLoading, java.lang.String[] hiddenClasses, java.lang.String[] nonOverridableClasses)
           
MultiParentClassLoader(java.net.URL[] urls, java.lang.ClassLoader[] parents, java.net.URLStreamHandlerFactory factory)
          Creates a named class loader as a child of the specified parents and using the specified URLStreamHandlerFactory for accessing the urls..
MultiParentClassLoader(java.net.URL[] urls, java.lang.ClassLoader parent, boolean inverseClassLoading, java.lang.String[] hiddenClasses, java.lang.String[] nonOverridableClasses)
           
MultiParentClassLoader(java.net.URL[] urls, java.lang.ClassLoader parent, java.net.URLStreamHandlerFactory factory)
          Creates a named class loader as a child of the specified parent and using the specified URLStreamHandlerFactory for accessing the urls..
 
Method Summary
 void addURL(java.net.URL url)
           
 void destroy()
           
 java.util.Enumeration findResources(java.lang.String name)
           
 java.lang.ClassLoader[] getParents()
          Gets the parents of this class loader.
 java.net.URL getResource(java.lang.String name)
           
 boolean isDestroyed()
           
protected  java.lang.Class loadClass(java.lang.String name, boolean resolve)
           
 java.lang.String toString()
           
 
Methods inherited from class java.net.URLClassLoader
definePackage, findClass, findResource, getPermissions, getURLs, newInstance, newInstance
 
Methods inherited from class java.security.SecureClassLoader
defineClass, defineClass
 
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, 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, wait, wait, wait
 

Constructor Detail

MultiParentClassLoader

public MultiParentClassLoader(java.net.URL[] urls)
Creates a named class loader with no parents.

Parameters:
urls - the urls from which this class loader will classes and resources

MultiParentClassLoader

public MultiParentClassLoader(java.net.URL[] urls,
                              java.lang.ClassLoader parent)
Creates a named class loader as a child of the specified parent.

Parameters:
urls - the urls from which this class loader will classes and resources
parent - the parent of this class loader

MultiParentClassLoader

public MultiParentClassLoader(java.net.URL[] urls,
                              java.lang.ClassLoader parent,
                              boolean inverseClassLoading,
                              java.lang.String[] hiddenClasses,
                              java.lang.String[] nonOverridableClasses)

MultiParentClassLoader

public MultiParentClassLoader(java.net.URL[] urls,
                              java.lang.ClassLoader parent,
                              java.net.URLStreamHandlerFactory factory)
Creates a named class loader as a child of the specified parent and using the specified URLStreamHandlerFactory for accessing the urls..

Parameters:
urls - the urls from which this class loader will classes and resources
parent - the parent of this class loader
factory - the URLStreamHandlerFactory used to access the urls

MultiParentClassLoader

public MultiParentClassLoader(java.net.URL[] urls,
                              java.lang.ClassLoader[] parents)
Creates a named class loader as a child of the specified parents.

Parameters:
urls - the urls from which this class loader will classes and resources
parents - the parents of this class loader

MultiParentClassLoader

public MultiParentClassLoader(java.net.URL[] urls,
                              java.lang.ClassLoader[] parents,
                              boolean inverseClassLoading,
                              java.util.Collection hiddenClasses,
                              java.util.Collection nonOverridableClasses)

MultiParentClassLoader

public MultiParentClassLoader(java.net.URL[] urls,
                              java.lang.ClassLoader[] parents,
                              boolean inverseClassLoading,
                              java.lang.String[] hiddenClasses,
                              java.lang.String[] nonOverridableClasses)

MultiParentClassLoader

public MultiParentClassLoader(java.net.URL[] urls,
                              java.lang.ClassLoader[] parents,
                              java.net.URLStreamHandlerFactory factory)
Creates a named class loader as a child of the specified parents and using the specified URLStreamHandlerFactory for accessing the urls..

Parameters:
urls - the urls from which this class loader will classes and resources
parents - the parents of this class loader
factory - the URLStreamHandlerFactory used to access the urls
Method Detail

getParents

public java.lang.ClassLoader[] getParents()
Gets the parents of this class loader.

Returns:
the parents of this class loader

addURL

public void addURL(java.net.URL url)
Overrides:
addURL in class java.net.URLClassLoader

loadClass

protected java.lang.Class loadClass(java.lang.String name,
                                    boolean resolve)
                             throws java.lang.ClassNotFoundException
Overrides:
loadClass in class java.lang.ClassLoader
Throws:
java.lang.ClassNotFoundException

getResource

public java.net.URL getResource(java.lang.String name)
Overrides:
getResource in class java.lang.ClassLoader

findResources

public java.util.Enumeration findResources(java.lang.String name)
                                    throws java.io.IOException
Overrides:
findResources in class java.net.URLClassLoader
Throws:
java.io.IOException

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

isDestroyed

public boolean isDestroyed()

destroy

public void destroy()


Copyright © 2007 Apache Web Services Project. All Rights Reserved.