org.springframework.instrument.classloading

## Class ResourceOverridingShadowingClassLoader

- java.lang.Object
- - java.lang.ClassLoader
  - - org.springframework.core.DecoratingClassLoader
    - - org.springframework.instrument.classloading.ShadowingClassLoader
      - - org.springframework.instrument.classloading.ResourceOverridingShadowingClassLoader

    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

### Fields inherited from class org.springframework.instrument.classloading.ShadowingClassLoader

`DEFAULT_EXCLUDED_PACKAGES`

### Constructor Summary

Constructors
Constructor and Description
`ResourceOverridingShadowingClassLoader(ClassLoader enclosingClassLoader)` Create a new ResourceOverridingShadowingClassLoader, decorating the given ClassLoader.

### Method Summary

Methods
`void` `copyOverrides(ResourceOverridingShadowingClassLoader other)` Copy all overrides from the given ClassLoader.
`URL` `getResource(String requestedPath)`
`InputStream` `getResourceAsStream(String requestedPath)`
`Enumeration<URL>` `getResources(String requestedPath)`
`void` `override(String oldPath, String newPath)` Return the resource (if any) at the new path on an attempt to locate a resource at the old path.
`void` `suppress(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, getClassLoadingLock, getPackage, getPackages, getParent, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, registerAsParallelCapable, 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

#### ResourceOverridingShadowingClassLoader

    public ResourceOverridingShadowingClassLoader(ClassLoader enclosingClassLoader)

Create a new ResourceOverridingShadowingClassLoader, decorating the given ClassLoader.

Parameters:
  `enclosingClassLoader` - the ClassLoader to decorate

### Method Detail

#### override

    public void override(String oldPath,
                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(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 URL getResource(String requestedPath)

Overrides:
  `getResource` in class `ShadowingClassLoader`

#### getResourceAsStream

    public InputStream getResourceAsStream(String requestedPath)

Overrides:
  `getResourceAsStream` in class `ShadowingClassLoader`

#### getResources

    public Enumeration<URL> getResources(String requestedPath)
                                  throws IOException

Overrides:
  `getResources` in class `ShadowingClassLoader`
Throws:
  `IOException`