public class TomcatInstrumentableClassLoader
extends org.apache.catalina.loader.WebappClassLoader
To be registered using a
<a href="http://tomcat.apache.org/tomcat-5.5-doc/config/loader.html">Loader</a> tag
in Tomcat's <a href="http://tomcat.apache.org/tomcat-5.5-doc/config/context.html">Context</a>
definition in the server.xml file, with the Spring-provided "spring-instrument-tomcat.jar"
file deployed into Tomcat's "server/lib" (for Tomcat 5.x) or "lib" (for Tomcat 6.x) directory.
The required configuration tag looks as follows:
<Loader loaderClass="org.springframework.instrument.classloading.tomcat.TomcatInstrumentableClassLoader"/>
Typically used in combination with a
ReflectiveLoadTimeWeaver
defined in the Spring application context. The addTransformer and
getThrowawayClassLoader methods mirror the corresponding methods
in the LoadTimeWeaver interface, as expected by ReflectiveLoadTimeWeaver.
See the PetClinic sample application for a full example of this ClassLoader in action.
NOTE: Requires Apache Tomcat version 5.0 or higher.
addTransformer(java.lang.instrument.ClassFileTransformer),
getThrowawayClassLoader(),
ReflectiveLoadTimeWeaverallPermission, delegate, loaderPC, needConvert, packageTriggersDeny, packageTriggersPermit, parent, permissionList, resourceEntries, resources, securityManager, smAFTER_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 and Description |
|---|
TomcatInstrumentableClassLoader()
Create a new
TomcatInstrumentableClassLoader using the
current context class loader. |
TomcatInstrumentableClassLoader(ClassLoader parent)
Create a new
TomcatInstrumentableClassLoader with the
supplied class loader as parent. |
| Modifier and Type | Method and Description |
|---|---|
void |
addTransformer(ClassFileTransformer transformer)
Delegate for LoadTimeWeaver's
addTransformer method. |
protected org.apache.catalina.loader.ResourceEntry |
findResourceInternal(String name,
String path,
boolean manifestRequired) |
ClassLoader |
getThrowawayClassLoader()
Delegate for LoadTimeWeaver's
getThrowawayClassLoader method. |
String |
toString() |
copyWithoutTransformers, getClassLoadingLockaddLifecycleListener, addURL, checkStateForClassLoading, checkStateForResourceLoading, clearReferences, copyStateWithoutTransformers, destroy, doDefineClass, filter, findClass, findClassInternal, findLifecycleListeners, findLoadedClass0, findLoadedResource, findResource, findResources, getClearReferencesHttpClientKeepAliveThread, getClearReferencesLogFactoryRelease, getClearReferencesStatic, getClearReferencesStopThreads, getClearReferencesStopTimerThreads, getContextName, getDelegate, getHostName, getJavaseClassLoader, getPermissions, getResource, getResourceAsStream, getResources, getServiceName, getState, getStateName, getURLs, getWebappName, init, isPackageSealed, loadClass, loadClass, modified, refreshPolicy, removeLifecycleListener, removeTransformer, setClearReferencesHttpClientKeepAliveThread, setClearReferencesLogFactoryRelease, setClearReferencesStatic, setClearReferencesStopThreads, setClearReferencesStopTimerThreads, setDelegate, setJavaseClassLoader, setResources, start, stop, validateclose, definePackage, newInstance, newInstancedefineClass, defineClassclearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findLibrary, findLoadedClass, findSystemClass, getPackage, getPackages, getParent, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, registerAsParallelCapable, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSignerspublic TomcatInstrumentableClassLoader()
TomcatInstrumentableClassLoader using the
current context class loader.public TomcatInstrumentableClassLoader(ClassLoader parent)
TomcatInstrumentableClassLoader with the
supplied class loader as parent.parent - the parent ClassLoader to be usedpublic void addTransformer(ClassFileTransformer transformer)
addTransformer method.
Typically called through ReflectiveLoadTimeWeaver.addTransformer in interface org.apache.tomcat.InstrumentableClassLoaderaddTransformer in class org.apache.catalina.loader.WebappClassLoaderBaseLoadTimeWeaver.addTransformer(java.lang.instrument.ClassFileTransformer),
ReflectiveLoadTimeWeaverpublic ClassLoader getThrowawayClassLoader()
getThrowawayClassLoader method.
Typically called through ReflectiveLoadTimeWeaver.protected org.apache.catalina.loader.ResourceEntry findResourceInternal(String name, String path, boolean manifestRequired)
findResourceInternal in class org.apache.catalina.loader.WebappClassLoaderBasepublic String toString()
toString in class org.apache.catalina.loader.WebappClassLoaderBaseCopyright © 2016. All rights reserved.