com.atlassian.plugin.util
Class MultiDelegationClassLoader

java.lang.Object
  extended by java.lang.ClassLoader
      extended by com.atlassian.plugin.util.MultiDelegationClassLoader
Direct Known Subclasses:
TransPluginClassLoader

public abstract class MultiDelegationClassLoader
extends java.lang.ClassLoader

A classloader that searches for classes in a number of delegate classloaders. Search order is (1) the context classloader, (2) the classloader responsible for loading this class, (3) the list of classloaders provided by the implementing class, in list order.


Constructor Summary
MultiDelegationClassLoader()
           
 
Method Summary
protected abstract  java.util.List getClassLoaders()
          Override to return the list of classloaders that this classloader should search to find classes.
 java.net.URL getResource(java.lang.String name)
           
 java.io.InputStream getResourceAsStream(java.lang.String name)
           
 java.lang.Class loadClass(java.lang.String name)
           
 
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findResources, findSystemClass, getPackage, getPackages, getParent, 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

MultiDelegationClassLoader

public MultiDelegationClassLoader()
Method Detail

getClassLoaders

protected abstract java.util.List getClassLoaders()
Override to return the list of classloaders that this classloader should search to find classes. You do not need to add the context classloader or MultiDelegationClassLoader's own classloader, as both will be searched first anyway.

Returns:
the delegate classloaders to search for classes.

getResource

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

getResourceAsStream

public java.io.InputStream getResourceAsStream(java.lang.String name)
Overrides:
getResourceAsStream in class java.lang.ClassLoader

loadClass

public java.lang.Class loadClass(java.lang.String name)
                          throws java.lang.ClassNotFoundException
Overrides:
loadClass in class java.lang.ClassLoader
Throws:
java.lang.ClassNotFoundException


Copyright © 2008 Atlassian Software Systems Pty Ltd. All Rights Reserved.