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
    Modifier and Type | Method and 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, 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`