org.springframework.core
Class DecoratingClassLoader

java.lang.Object
  extended by java.lang.ClassLoader
      extended by org.springframework.core.DecoratingClassLoader
Direct Known Subclasses:
OverridingClassLoader, ShadowingClassLoader

public abstract class DecoratingClassLoader
extends ClassLoader

Base class for decorating ClassLoaders such as OverridingClassLoader and ShadowingClassLoader, providing common handling of excluded packages and classes.

Since:
2.5.2
Author:
Juergen Hoeller, Rod Johnson

Constructor Summary
DecoratingClassLoader()
          Create a new DecoratingClassLoader with no parent ClassLoader.
DecoratingClassLoader(ClassLoader parent)
          Create a new DecoratingClassLoader using the given parent ClassLoader for delegation.
 
Method Summary
 void excludeClass(String className)
          Add a class name to exclude from decoration (e.g.
 void excludePackage(String packageName)
          Add a package name to exclude from decoration (e.g.
protected  boolean isExcluded(String className)
          Determine whether the specified class is excluded from decoration by this class loader.
 
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findResources, findSystemClass, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, 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

DecoratingClassLoader

public DecoratingClassLoader()
Create a new DecoratingClassLoader with no parent ClassLoader.


DecoratingClassLoader

public DecoratingClassLoader(ClassLoader parent)
Create a new DecoratingClassLoader using the given parent ClassLoader for delegation.

Method Detail

excludePackage

public void excludePackage(String packageName)
Add a package name to exclude from decoration (e.g. overriding).

Any class whose fully-qualified name starts with the name registered here will be handled by the parent ClassLoader in the usual fashion.

Parameters:
packageName - the package name to exclude

excludeClass

public void excludeClass(String className)
Add a class name to exclude from decoration (e.g. overriding).

Any class name registered here will be handled by the parent ClassLoader in the usual fashion.

Parameters:
className - the class name to exclude

isExcluded

protected boolean isExcluded(String className)
Determine whether the specified class is excluded from decoration by this class loader.

The default implementation checks against excluded packages and classes.

Parameters:
className - the class name to check
Returns:
whether the specified class is eligible
See Also:
excludePackage(java.lang.String), excludeClass(java.lang.String)