Package org.apache.catalina.loader
Class WebappClassLoader
- java.lang.Object
-
- java.lang.ClassLoader
-
- java.security.SecureClassLoader
-
- java.net.URLClassLoader
-
- org.apache.catalina.loader.WebappClassLoaderBase
-
- org.apache.catalina.loader.WebappClassLoader
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
,Lifecycle
,WebappProperties
,InstrumentableClassLoader
,PermissionCheck
public class WebappClassLoader extends WebappClassLoaderBase
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.catalina.loader.WebappClassLoaderBase
WebappClassLoaderBase.PrivilegedFindClassByName, WebappClassLoaderBase.PrivilegedGetClassLoader, WebappClassLoaderBase.PrivilegedJavaseGetResource
-
Nested classes/interfaces inherited from interface org.apache.catalina.Lifecycle
Lifecycle.SingleUse
-
-
Field Summary
-
Fields inherited from class org.apache.catalina.loader.WebappClassLoaderBase
delegate, loaderPC, parent, permissionList, resourceEntries, resources, securityManager, sm
-
Fields inherited from interface org.apache.catalina.Lifecycle
AFTER_DESTROY_EVENT, AFTER_INIT_EVENT, AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_DESTROY_EVENT, BEFORE_INIT_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, CONFIGURE_START_EVENT, CONFIGURE_STOP_EVENT, PERIODIC_EVENT, START_EVENT, STOP_EVENT
-
-
Constructor Summary
Constructors Constructor Description WebappClassLoader()
WebappClassLoader(java.lang.ClassLoader parent)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description WebappClassLoader
copyWithoutTransformers()
Returns a copy of this class loader without any class file transformers.protected java.lang.Object
getClassLoadingLock(java.lang.String className)
This class loader is not parallel capable so lock on the class loader rather than a per-class lock.-
Methods inherited from class org.apache.catalina.loader.WebappClassLoaderBase
addLifecycleListener, addTransformer, addURL, check, checkStateForClassLoading, checkStateForResourceLoading, clearReferences, copyStateWithoutTransformers, destroy, doDefineClass, filter, findClass, findClassInternal, findLifecycleListeners, findLoadedClass0, findResource, findResources, getClearReferencesHttpClientKeepAliveThread, getClearReferencesLogFactoryRelease, getClearReferencesObjectStreamClassCaches, getClearReferencesRmiTargets, getClearReferencesStopThreads, getClearReferencesStopTimerThreads, getClearReferencesThreadLocals, getContextName, getDelegate, getHostName, getJavaseClassLoader, getPermissions, getResource, getResourceAsStream, getResources, getResources, getServiceName, getSkipMemoryLeakChecksOnJvmShutdown, getState, getStateName, getURLs, getWebappName, hasLoggingConfig, init, isPackageSealed, loadClass, loadClass, modified, refreshPolicy, removeLifecycleListener, removeTransformer, setClearReferencesHttpClientKeepAliveThread, setClearReferencesLogFactoryRelease, setClearReferencesObjectStreamClassCaches, setClearReferencesRmiTargets, setClearReferencesStopThreads, setClearReferencesStopTimerThreads, setClearReferencesThreadLocals, setDelegate, setJavaseClassLoader, setResources, setSkipMemoryLeakChecksOnJvmShutdown, start, stop, toString
-
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findSystemClass, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
-
-
-
Method Detail
-
copyWithoutTransformers
public WebappClassLoader copyWithoutTransformers()
Returns a copy of this class loader without any class file transformers. This is a tool often used by Java Persistence API providers to inspect entity classes in the absence of any instrumentation, something that can't be guaranteed within the context of aClassFileTransformer
'stransform
method.The returned class loader's resource cache will have been cleared so that classes already instrumented will not be retained or returned.
- Returns:
- the transformer-free copy of this class loader.
-
getClassLoadingLock
protected java.lang.Object getClassLoadingLock(java.lang.String className)
This class loader is not parallel capable so lock on the class loader rather than a per-class lock.- Overrides:
getClassLoadingLock
in classjava.lang.ClassLoader
-
-