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.LoaderDefers 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.ClassLoaderdeferTo
-
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 voidaddIgnorePackage(java.lang.String... packagesToIgnore)voidcache(java.lang.Class<?> cls)Register a class to the cache of this classloaderprivate booleandeferConditionMatches(java.lang.String name, java.lang.String packageName)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)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)protected java.lang.Class<?>loadClass(java.lang.String name, boolean resolve)protected abstract java.lang.Class<?>loadModifiedClass(java.lang.String s)(package private) booleanshouldDefer(java.lang.String[] packages, java.lang.String name)private booleanshouldIgnore(java.lang.Iterable<java.lang.String> packages, java.lang.String name)(package private) booleanshouldIgnore(java.lang.String[] packages, java.lang.String name)protected abstract booleanshouldLoadUnmodifiedClass(java.lang.String className)protected booleanshouldModify(java.lang.Iterable<java.lang.String> packages, java.lang.String name)protected abstract booleanshouldModifyClass(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:
loadClassin 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:
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
-
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
-
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.ClassFormatErrorjava.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
-
-