com.atlassian.plugin.util
Class ChainingClassLoader

java.lang.Object
  extended by java.lang.ClassLoader
      extended by com.atlassian.plugin.util.ChainingClassLoader

public class ChainingClassLoader
extends java.lang.ClassLoader

A class loader that delegates to a list of class loaders. The order is important as classes and resources will be loaded from the first classloader that can load them. This class is optimized for a small number of classloaders.

Since:
2.6.0

Constructor Summary
ChainingClassLoader(java.lang.ClassLoader... classLoaders)
          Constructs a chaining classloader
ChainingClassLoader(java.util.Map<java.lang.String,java.lang.String> resourceRedirects, java.lang.ClassLoader... classLoaders)
          Constructs a classloader that overrides certain resources
 
Method Summary
 void clearAssertionStatus()
           
 java.net.URL getResource(java.lang.String name)
           
 java.io.InputStream getResourceAsStream(java.lang.String name)
           
 java.util.Enumeration<java.net.URL> getResources(java.lang.String name)
           
 java.lang.Class loadClass(java.lang.String name)
           
 void setClassAssertionStatus(java.lang.String className, boolean enabled)
           
 void setDefaultAssertionStatus(boolean enabled)
           
 void setPackageAssertionStatus(java.lang.String packageName, boolean enabled)
           
 
Methods inherited from class java.lang.ClassLoader
defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findResources, findSystemClass, getPackage, getPackages, getParent, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, resolveClass, setSigners
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ChainingClassLoader

public ChainingClassLoader(java.lang.ClassLoader... classLoaders)
Constructs a chaining classloader

Parameters:
classLoaders - The classloaders to delegate to, in order

ChainingClassLoader

public ChainingClassLoader(java.util.Map<java.lang.String,java.lang.String> resourceRedirects,
                           java.lang.ClassLoader... classLoaders)
Constructs a classloader that overrides certain resources

Parameters:
resourceRedirects - The map of resources to redirect
classLoaders - The classloaders to delegate to, in order
Method Detail

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

getResources

public java.util.Enumeration<java.net.URL> getResources(java.lang.String name)
                                                 throws java.io.IOException
Overrides:
getResources in class java.lang.ClassLoader
Throws:
java.io.IOException

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

setDefaultAssertionStatus

public void setDefaultAssertionStatus(boolean enabled)
Overrides:
setDefaultAssertionStatus in class java.lang.ClassLoader

setPackageAssertionStatus

public void setPackageAssertionStatus(java.lang.String packageName,
                                      boolean enabled)
Overrides:
setPackageAssertionStatus in class java.lang.ClassLoader

setClassAssertionStatus

public void setClassAssertionStatus(java.lang.String className,
                                    boolean enabled)
Overrides:
setClassAssertionStatus in class java.lang.ClassLoader

clearAssertionStatus

public void clearAssertionStatus()
Overrides:
clearAssertionStatus in class java.lang.ClassLoader


Copyright © 2012 Atlassian. All Rights Reserved.