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.ClassLoaderDefers 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<?>>>classesprivate MockClassLoaderConfigurationconfiguration(package private) java.lang.ClassLoaderdeferToprivate 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 voidcache(java.lang.Class<?> cls)Register a class to the cache of this classloaderprivate java.lang.Class<?>findLoadedClass1(java.lang.String name)protected java.net.URLfindResource(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.ObjectgetClassLoadingLock(java.lang.String className)MockClassLoaderConfigurationgetConfiguration()java.net.URLgetResource(java.lang.String s)java.io.InputStreamgetResourceAsStream(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 booleanshouldDefer(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:
getResourcein classjava.lang.ClassLoader
-
getResourceAsStream
public java.io.InputStream getResourceAsStream(java.lang.String s)
- Overrides:
getResourceAsStreamin classjava.lang.ClassLoader
-
getResources
public java.util.Enumeration<java.net.URL> getResources(java.lang.String name) throws java.io.IOException- Overrides:
getResourcesin 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.ClassFormatErrorjava.lang.ClassNotFoundException
-
loadClass
protected java.lang.Class<?> loadClass(java.lang.String name, boolean resolve) throws java.lang.ClassNotFoundException- Overrides:
loadClassin classjava.lang.ClassLoader- Throws:
java.lang.ClassNotFoundException
-
getClassLoadingLock
protected java.lang.Object getClassLoadingLock(java.lang.String className)
- Overrides:
getClassLoadingLockin 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:
findResourcein classjava.lang.ClassLoader- Parameters:
name- the name of the resource- Returns:
- a
URLfor the resource, ornullif the resource could not be found.
-
findResources
protected java.util.Enumeration<java.net.URL> findResources(java.lang.String name) throws java.io.IOException- Overrides:
findResourcesin 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)
-
-