public abstract class DeferSupportingClassLoader
extends javassist.Loader
Modifier and Type | Field and 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 and Description |
---|
DeferSupportingClassLoader(java.lang.ClassLoader classloader,
java.lang.String[] deferPackages) |
Modifier and Type | Method and Description |
---|---|
void |
addIgnorePackage(java.lang.String... packagesToIgnore) |
void |
cache(java.lang.Class<?> cls)
Register a class to the cache of this classloader
|
private 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) |
addTranslator, delegateLoadingOf, delegateToParent, findClass, loadClassByDelegation, main, run, run, setClassPool, setDomain
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findLibrary, findLoadedClass, findSystemClass, getClassLoadingLock, getPackage, getPackages, getParent, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, registerAsParallelCapable, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
private final java.util.concurrent.ConcurrentMap<java.lang.String,java.lang.ref.SoftReference<java.lang.Class<?>>> classes
java.lang.String[] deferPackages
java.lang.ClassLoader deferTo
DeferSupportingClassLoader(java.lang.ClassLoader classloader, java.lang.String[] deferPackages)
public void addIgnorePackage(java.lang.String... packagesToIgnore)
protected java.lang.Class<?> loadClass(java.lang.String name, boolean resolve) throws java.lang.ClassNotFoundException
loadClass
in class javassist.Loader
java.lang.ClassNotFoundException
boolean shouldDefer(java.lang.String[] packages, java.lang.String name)
private boolean deferConditionMatches(java.lang.String name, java.lang.String packageName)
private boolean shouldIgnore(java.lang.Iterable<java.lang.String> packages, java.lang.String name)
boolean shouldIgnore(java.lang.String[] packages, java.lang.String name)
protected java.net.URL findResource(java.lang.String name)
findResource
in class java.lang.ClassLoader
name
- the name of the resourceURL
for the resource, or null
if the
resource could not be found.protected java.util.Enumeration<java.net.URL> findResources(java.lang.String name) throws java.io.IOException
findResources
in class java.lang.ClassLoader
java.io.IOException
public java.net.URL getResource(java.lang.String s)
getResource
in class java.lang.ClassLoader
public java.io.InputStream getResourceAsStream(java.lang.String s)
getResourceAsStream
in class java.lang.ClassLoader
public java.util.Enumeration<java.net.URL> getResources(java.lang.String name) throws java.io.IOException
getResources
in class java.lang.ClassLoader
java.io.IOException
protected boolean shouldModify(java.lang.Iterable<java.lang.String> packages, java.lang.String name)
protected abstract java.lang.Class<?> loadModifiedClass(java.lang.String s) throws java.lang.ClassFormatError, java.lang.ClassNotFoundException
java.lang.ClassFormatError
java.lang.ClassNotFoundException
protected abstract boolean shouldModifyClass(java.lang.String s)
protected abstract boolean shouldLoadUnmodifiedClass(java.lang.String className)
public void cache(java.lang.Class<?> cls)