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.
-
Nested Class Summary
Nested classes/interfaces inherited from class javassist.Loader
javassist.Loader.Simple
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final ConcurrentMap<String,
SoftReference<Class<?>>> (package private) String[]
(package private) ClassLoader
Fields inherited from class javassist.Loader
doDelegation
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
addIgnorePackage
(String... packagesToIgnore) void
Register a class to the cache of this classloaderprivate boolean
deferConditionMatches
(String name, String packageName) protected URL
findResource
(String name) Finds the resource with the specified name on the search path.protected Enumeration<URL>
findResources
(String name) getResources
(String name) protected Class<?>
protected abstract Class<?>
(package private) boolean
shouldDefer
(String[] packages, String name) private boolean
shouldIgnore
(Iterable<String> packages, String name) (package private) boolean
shouldIgnore
(String[] packages, String name) protected abstract boolean
shouldLoadUnmodifiedClass
(String className) protected boolean
shouldModify
(Iterable<String> packages, String name) protected abstract boolean
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
-
Field Details
-
classes
-
deferPackages
String[] deferPackages -
deferTo
ClassLoader deferTo
-
-
Constructor Details
-
DeferSupportingClassLoader
DeferSupportingClassLoader(ClassLoader classloader, String[] deferPackages)
-
-
Method Details
-
addIgnorePackage
-
loadClass
- Overrides:
loadClass
in classjavassist.Loader
- Throws:
ClassNotFoundException
-
shouldDefer
-
deferConditionMatches
-
shouldIgnore
-
shouldIgnore
-
findResource
Finds the resource with the specified name on the search path.- Overrides:
findResource
in classClassLoader
- Parameters:
name
- the name of the resource- Returns:
- a
URL
for the resource, ornull
if the resource could not be found.
-
findResources
- Overrides:
findResources
in classClassLoader
- Throws:
IOException
-
getResource
- Overrides:
getResource
in classClassLoader
-
getResourceAsStream
- Overrides:
getResourceAsStream
in classClassLoader
-
getResources
- Overrides:
getResources
in classClassLoader
- Throws:
IOException
-
shouldModify
-
loadModifiedClass
protected abstract Class<?> loadModifiedClass(String s) throws ClassFormatError, ClassNotFoundException -
shouldModifyClass
-
shouldLoadUnmodifiedClass
-
cache
Register a class to the cache of this classloader
-