Package 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
Description
`ResourceOverridingShadowingClassLoader(ClassLoader enclosingClassLoader)`
Create a new ResourceOverridingShadowingClassLoader, decorating the given ClassLoader.

## Method Summary

Modifier and Type
Method
Description
`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, findClass, findLibrary, findLoadedClass, findResource, findResource, findResources, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### ResourceOverridingShadowingClassLoader

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

Parameters:
  `enclosingClassLoader` - the ClassLoader to decorate

## Method Details

### 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

@Nullable 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`