Package org.powermock.core.classloader
Class DeferSupportingClassLoader
- java.lang.Object
-
- java.lang.ClassLoader
-
- org.powermock.core.classloader.DeferSupportingClassLoader
-
- Direct Known Subclasses:
MockClassLoader
abstract class DeferSupportingClassLoader extends java.lang.ClassLoader
Defers classloading of system classes to a delegate.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.concurrent.ConcurrentMap<java.lang.String,java.lang.ref.SoftReference<java.lang.Class<?>>>
classes
private MockClassLoaderConfiguration
configuration
(package private) java.lang.ClassLoader
deferTo
private java.util.concurrent.ConcurrentMap<java.lang.String,java.lang.Object>
parallelLockMap
-
Constructor Summary
Constructors Constructor Description DeferSupportingClassLoader(java.lang.ClassLoader classloader, MockClassLoaderConfiguration configuration)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
cache(java.lang.Class<?> cls)
Register a class to the cache of this classloaderprivate java.lang.Class<?>
findLoadedClass1(java.lang.String name)
protected java.net.URL
findResource(java.lang.String name)
Finds the resource with the specified name on the search path.protected java.util.Enumeration<java.net.URL>
findResources(java.lang.String name)
protected java.lang.Object
getClassLoadingLock(java.lang.String className)
MockClassLoaderConfiguration
getConfiguration()
java.net.URL
getResource(java.lang.String s)
java.io.InputStream
getResourceAsStream(java.lang.String s)
java.util.Enumeration<java.net.URL>
getResources(java.lang.String name)
private java.lang.Class<?>
loadByDeferClassLoader(java.lang.String name)
protected java.lang.Class<?>
loadClass(java.lang.String name, boolean resolve)
private java.lang.Class<?>
loadClass1(java.lang.String name, boolean resolve)
protected abstract java.lang.Class<?>
loadClassByThisClassLoader(java.lang.String s)
private boolean
shouldDefer(java.lang.String name)
-
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findClass, findLibrary, findLoadedClass, findResource, findSystemClass, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
-
-
-
Field Detail
-
classes
private final java.util.concurrent.ConcurrentMap<java.lang.String,java.lang.ref.SoftReference<java.lang.Class<?>>> classes
-
parallelLockMap
private final java.util.concurrent.ConcurrentMap<java.lang.String,java.lang.Object> parallelLockMap
-
configuration
private final MockClassLoaderConfiguration configuration
-
deferTo
java.lang.ClassLoader deferTo
-
-
Constructor Detail
-
DeferSupportingClassLoader
DeferSupportingClassLoader(java.lang.ClassLoader classloader, MockClassLoaderConfiguration configuration)
-
-
Method Detail
-
getResource
public java.net.URL getResource(java.lang.String s)
- Overrides:
getResource
in classjava.lang.ClassLoader
-
getResourceAsStream
public java.io.InputStream getResourceAsStream(java.lang.String s)
- Overrides:
getResourceAsStream
in classjava.lang.ClassLoader
-
getResources
public java.util.Enumeration<java.net.URL> getResources(java.lang.String name) throws java.io.IOException
- Overrides:
getResources
in classjava.lang.ClassLoader
- Throws:
java.io.IOException
-
getConfiguration
public MockClassLoaderConfiguration getConfiguration()
-
cache
public void cache(java.lang.Class<?> cls)
Register a class to the cache of this classloader
-
loadClassByThisClassLoader
protected abstract java.lang.Class<?> loadClassByThisClassLoader(java.lang.String s) throws java.lang.ClassFormatError, java.lang.ClassNotFoundException
- Throws:
java.lang.ClassFormatError
java.lang.ClassNotFoundException
-
loadClass
protected java.lang.Class<?> loadClass(java.lang.String name, boolean resolve) throws java.lang.ClassNotFoundException
- Overrides:
loadClass
in classjava.lang.ClassLoader
- Throws:
java.lang.ClassNotFoundException
-
getClassLoadingLock
protected java.lang.Object getClassLoadingLock(java.lang.String className)
- Overrides:
getClassLoadingLock
in classjava.lang.ClassLoader
-
findResource
protected java.net.URL findResource(java.lang.String name)
Finds the resource with the specified name on the search path.- Overrides:
findResource
in classjava.lang.ClassLoader
- Parameters:
name
- the name of the resource- Returns:
- a
URL
for the resource, ornull
if the resource could not be found.
-
findResources
protected java.util.Enumeration<java.net.URL> findResources(java.lang.String name) throws java.io.IOException
- Overrides:
findResources
in classjava.lang.ClassLoader
- Throws:
java.io.IOException
-
loadClass1
private java.lang.Class<?> loadClass1(java.lang.String name, boolean resolve) throws java.lang.ClassNotFoundException
- Throws:
java.lang.ClassNotFoundException
-
loadByDeferClassLoader
private java.lang.Class<?> loadByDeferClassLoader(java.lang.String name) throws java.lang.ClassNotFoundException
- Throws:
java.lang.ClassNotFoundException
-
shouldDefer
private boolean shouldDefer(java.lang.String name)
-
findLoadedClass1
private java.lang.Class<?> findLoadedClass1(java.lang.String name)
-
-