public class TomcatInstrumentableClassLoader extends WebappClassLoader
To be registered using a
Loader
tag
in Tomcat's Context
definition in the server.xml
file, with the Spring-provided "spring-instrument-tomcat.jar"
file deployed into Tomcat's "lib" directory. The required configuration tag looks as follows:
<Loader loaderClass="org.springframework.instrument.classloading.tomcat.TomcatInstrumentableClassLoader"/>
Typically used in combination with a
org.springframework.instrument.classloading.ReflectiveLoadTimeWeaver
defined in the Spring application context. The addTransformer
and
getThrowawayClassLoader
methods mirror the corresponding methods
in the LoadTimeWeaver interface, as expected by ReflectiveLoadTimeWeaver.
NOTE: Requires Apache Tomcat version 6.0 or higher, as of Spring 4.0.
This class is not intended to work on Tomcat 8.0+; please rely on Tomcat's own
InstrumentableClassLoader
facility instead, as autodetected by Spring's
org.springframework.instrument.classloading.tomcat.TomcatLoadTimeWeaver
.
addTransformer(java.lang.instrument.ClassFileTransformer)
,
getThrowawayClassLoader()
,
org.springframework.instrument.classloading.ReflectiveLoadTimeWeaver
,
org.springframework.instrument.classloading.tomcat.TomcatLoadTimeWeaver
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) |
protected org.apache.catalina.loader.ResourceEntry |
findResourceInternal(String name,
String path,
boolean manifestRequired) |
ClassLoader |
getThrowawayClassLoader()
Delegate for LoadTimeWeaver's
getThrowawayClassLoader method. |
String |
toString() |
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findResources, findSystemClass, getClassLoadingLock, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, loadClass, registerAsParallelCapable, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
public 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.org.springframework.instrument.classloading.LoadTimeWeaver#addTransformer
,
org.springframework.instrument.classloading.ReflectiveLoadTimeWeaver
public ClassLoader getThrowawayClassLoader()
getThrowawayClassLoader
method.
Typically called through ReflectiveLoadTimeWeaver.org.springframework.instrument.classloading.LoadTimeWeaver#getThrowawayClassLoader
,
org.springframework.instrument.classloading.ReflectiveLoadTimeWeaver
protected org.apache.catalina.loader.ResourceEntry findResourceInternal(String name, String path)
findResourceInternal
in class WebappClassLoader
protected org.apache.catalina.loader.ResourceEntry findResourceInternal(String name, String path, boolean manifestRequired)
findResourceInternal
in class WebappClassLoader