Package org.powermock.core.classloader
Class DeferSupportingClassLoader
- java.lang.Object
-
- java.lang.ClassLoader
-
- javassist.Loader
-
- org.powermock.core.classloader.DeferSupportingClassLoader
-
- Direct Known Subclasses:
MockClassLoader
public abstract class DeferSupportingClassLoader extends javassist.Loader
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
(package private) java.lang.String[]
deferPackages
(package private) java.lang.ClassLoader
deferTo
-
Constructor Summary
Constructors Constructor Description DeferSupportingClassLoader(java.lang.ClassLoader classloader, java.lang.String[] deferPackages)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
addIgnorePackage(java.lang.String... packagesToIgnore)
void
cache(java.lang.Class<?> cls)
Register a class to the cache of this classloaderprivate boolean
deferConditionMatches(java.lang.String name, java.lang.String packageName)
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)
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)
protected java.lang.Class<?>
loadClass(java.lang.String name, boolean resolve)
protected abstract java.lang.Class<?>
loadModifiedClass(java.lang.String s)
(package private) boolean
shouldDefer(java.lang.String[] packages, java.lang.String name)
private boolean
shouldIgnore(java.lang.Iterable<java.lang.String> packages, java.lang.String name)
(package private) boolean
shouldIgnore(java.lang.String[] packages, java.lang.String name)
protected abstract boolean
shouldLoadUnmodifiedClass(java.lang.String className)
protected boolean
shouldModify(java.lang.Iterable<java.lang.String> packages, java.lang.String name)
protected abstract boolean
shouldModifyClass(java.lang.String s)
-
Methods inherited from class javassist.Loader
addTranslator, delegateLoadingOf, delegateToParent, findClass, loadClassByDelegation, main, run, run, setClassPool, setDomain
-
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
-
-
-
Method Detail
-
addIgnorePackage
public void addIgnorePackage(java.lang.String... packagesToIgnore)
-
loadClass
protected java.lang.Class<?> loadClass(java.lang.String name, boolean resolve) throws java.lang.ClassNotFoundException
- Overrides:
loadClass
in classjavassist.Loader
- Throws:
java.lang.ClassNotFoundException
-
shouldDefer
boolean shouldDefer(java.lang.String[] packages, java.lang.String name)
-
deferConditionMatches
private boolean deferConditionMatches(java.lang.String name, java.lang.String packageName)
-
shouldIgnore
private boolean shouldIgnore(java.lang.Iterable<java.lang.String> packages, java.lang.String name)
-
shouldIgnore
boolean shouldIgnore(java.lang.String[] packages, java.lang.String name)
-
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
-
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
-
shouldModify
protected boolean shouldModify(java.lang.Iterable<java.lang.String> packages, java.lang.String name)
-
loadModifiedClass
protected abstract java.lang.Class<?> loadModifiedClass(java.lang.String s) throws java.lang.ClassFormatError, java.lang.ClassNotFoundException
- Throws:
java.lang.ClassFormatError
java.lang.ClassNotFoundException
-
shouldModifyClass
protected abstract boolean shouldModifyClass(java.lang.String s)
-
shouldLoadUnmodifiedClass
protected abstract boolean shouldLoadUnmodifiedClass(java.lang.String className)
-
cache
public void cache(java.lang.Class<?> cls)
Register a class to the cache of this classloader
-
-