org.springframework.instrument.classloading
Class ResourceOverridingShadowingClassLoader

java.lang.Object
  extended by java.lang.ClassLoader
      extended by org.springframework.core.DecoratingClassLoader
          extended by org.springframework.instrument.classloading.ShadowingClassLoader
              extended by org.springframework.instrument.classloading.ResourceOverridingShadowingClassLoader
Direct Known Subclasses:
OrmXmlOverridingShadowingClassLoader

public class ResourceOverridingShadowingClassLoader
extends ShadowingClassLoader

Subclass of ShadowingClassLoader that overrides attempts to locate certain files.

Since:
2.0
Author:
Rod Johnson, Adrian Colyer

Field Summary
private static java.util.Enumeration<java.net.URL> EMPTY_URL_ENUMERATION
           
private  java.util.Map<java.lang.String,java.lang.String> overrides
          Key is asked for value: value is actual value
 
Fields inherited from class org.springframework.instrument.classloading.ShadowingClassLoader
DEFAULT_EXCLUDED_PACKAGES
 
Constructor Summary
ResourceOverridingShadowingClassLoader(java.lang.ClassLoader enclosingClassLoader)
          Create a new ResourceOverridingShadowingClassLoader, decorating the given ClassLoader.
 
Method Summary
 void copyOverrides(ResourceOverridingShadowingClassLoader other)
          Copy all overrides from the given ClassLoader.
 java.net.URL getResource(java.lang.String requestedPath)
           
 java.io.InputStream getResourceAsStream(java.lang.String requestedPath)
           
 java.util.Enumeration<java.net.URL> getResources(java.lang.String requestedPath)
           
 void override(java.lang.String oldPath, java.lang.String newPath)
          Return the resource (if any) at the new path on an attempt to locate a resource at the old path.
 void suppress(java.lang.String oldPath)
          Ensure that a resource with the given path is not found.
 
Methods inherited from class org.springframework.instrument.classloading.ShadowingClassLoader
addTransformer, copyTransformers, isEligibleForShadowing, loadClass
 
Methods inherited from class org.springframework.core.DecoratingClassLoader
excludeClass, excludePackage, isExcluded
 
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findResources, findSystemClass, getPackage, getPackages, getParent, 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_ENUMERATION

private static final java.util.Enumeration<java.net.URL> EMPTY_URL_ENUMERATION

overrides

private java.util.Map<java.lang.String,java.lang.String> overrides
Key is asked for value: value is actual value

Constructor Detail

ResourceOverridingShadowingClassLoader

public ResourceOverridingShadowingClassLoader(java.lang.ClassLoader enclosingClassLoader)
Create a new ResourceOverridingShadowingClassLoader, decorating the given ClassLoader.

Parameters:
enclosingClassLoader - the ClassLoader to decorate
Method Detail

override

public void override(java.lang.String oldPath,
                     java.lang.String newPath)
Return the resource (if any) at the new path on an attempt to locate a resource at the old path.

Parameters:
oldPath - the path requested
newPath - the actual path to be looked up

suppress

public void suppress(java.lang.String oldPath)
Ensure that a resource with the given path is not found.

Parameters:
oldPath - the path of the resource to hide even if it exists in the parent ClassLoader

copyOverrides

public void copyOverrides(ResourceOverridingShadowingClassLoader other)
Copy all overrides from the given ClassLoader.

Parameters:
other - the other ClassLoader to copy from

getResource

public java.net.URL getResource(java.lang.String requestedPath)
Overrides:
getResource in class ShadowingClassLoader

getResourceAsStream

public java.io.InputStream getResourceAsStream(java.lang.String requestedPath)
Overrides:
getResourceAsStream in class ShadowingClassLoader

getResources

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