@ManagedObject public class CachingWebAppClassLoader extends WebAppClassLoader
getResource(String)
results.
Specifically this ClassLoader caches not found classes and resources,
which can greatly increase performance for applications that search
for resources.WebAppClassLoader.Context
Modifier and Type | Field and Description |
---|---|
private java.util.concurrent.ConcurrentHashMap<java.lang.String,java.net.URL> |
_cache |
private java.util.Set<java.lang.String> |
_notFound |
private static Logger |
LOG |
Constructor and Description |
---|
CachingWebAppClassLoader(java.lang.ClassLoader parent,
WebAppClassLoader.Context context) |
CachingWebAppClassLoader(WebAppClassLoader.Context context) |
Modifier and Type | Method and Description |
---|---|
void |
clearCache() |
java.net.URL |
getResource(java.lang.String name)
Get a resource from the classloader
NOTE: this method provides a convenience of hacking off a leading /
should one be present.
|
java.lang.Class<?> |
loadClass(java.lang.String name) |
java.lang.String |
toString() |
addClassFileTransformer, addClassPath, addClassPath, addJars, addTransformer, close, findClass, foundClass, getContext, getName, getPermissions, getResources, isServerClass, isSystemClass, loadAsResource, loadClass, removeClassFileTransformer, removeTransformer, runWithServerClassAccess, setName
addURL, definePackage, findResource, findResources, getResourceAsStream, getURLs, newInstance, newInstance
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findLibrary, findLoadedClass, findSystemClass, getClassLoadingLock, getPackage, getPackages, getParent, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, registerAsParallelCapable, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
private static final Logger LOG
private final java.util.Set<java.lang.String> _notFound
private final java.util.concurrent.ConcurrentHashMap<java.lang.String,java.net.URL> _cache
public CachingWebAppClassLoader(java.lang.ClassLoader parent, WebAppClassLoader.Context context) throws java.io.IOException
java.io.IOException
public CachingWebAppClassLoader(WebAppClassLoader.Context context) throws java.io.IOException
java.io.IOException
public java.net.URL getResource(java.lang.String name)
WebAppClassLoader
getResource
in class WebAppClassLoader
public java.lang.Class<?> loadClass(java.lang.String name) throws java.lang.ClassNotFoundException
loadClass
in class java.lang.ClassLoader
java.lang.ClassNotFoundException
@ManagedOperation public void clearCache()
public java.lang.String toString()
toString
in class WebAppClassLoader