public class TomcatLoadTimeWeaver extends java.lang.Object implements LoadTimeWeaver
LoadTimeWeaver
implementation for Tomcat's
new InstrumentableClassLoader
.
Also capable of handling Spring's TomcatInstrumentableClassLoader when encountered.Modifier and Type | Field and Description |
---|---|
private java.lang.reflect.Method |
addTransformerMethod |
private java.lang.ClassLoader |
classLoader |
private java.lang.reflect.Method |
copyMethod |
private static java.lang.String |
INSTRUMENTABLE_LOADER_CLASS_NAME |
Constructor and Description |
---|
TomcatLoadTimeWeaver() |
TomcatLoadTimeWeaver(java.lang.ClassLoader classLoader) |
Modifier and Type | Method and Description |
---|---|
void |
addTransformer(java.lang.instrument.ClassFileTransformer transformer)
Add a
ClassFileTransformer to be applied by this
LoadTimeWeaver . |
java.lang.ClassLoader |
getInstrumentableClassLoader()
Return a
ClassLoader that supports instrumentation
through AspectJ-style load-time weaving based on user-defined
ClassFileTransformers . |
java.lang.ClassLoader |
getThrowawayClassLoader()
Return a throwaway
ClassLoader , enabling classes to be
loaded and inspected without affecting the parent ClassLoader . |
private static final java.lang.String INSTRUMENTABLE_LOADER_CLASS_NAME
private final java.lang.ClassLoader classLoader
private final java.lang.reflect.Method addTransformerMethod
private final java.lang.reflect.Method copyMethod
public TomcatLoadTimeWeaver()
public TomcatLoadTimeWeaver(java.lang.ClassLoader classLoader)
public void addTransformer(java.lang.instrument.ClassFileTransformer transformer)
LoadTimeWeaver
ClassFileTransformer
to be applied by this
LoadTimeWeaver
.addTransformer
in interface LoadTimeWeaver
transformer
- the ClassFileTransformer
to addpublic java.lang.ClassLoader getInstrumentableClassLoader()
LoadTimeWeaver
ClassLoader
that supports instrumentation
through AspectJ-style load-time weaving based on user-defined
ClassFileTransformers
.
May be the current ClassLoader
, or a ClassLoader
created by this LoadTimeWeaver
instance.
getInstrumentableClassLoader
in interface LoadTimeWeaver
ClassLoader
which will expose
instrumented classes according to the registered transformerspublic java.lang.ClassLoader getThrowawayClassLoader()
LoadTimeWeaver
ClassLoader
, enabling classes to be
loaded and inspected without affecting the parent ClassLoader
.
Should not return the same instance of the ClassLoader
returned from an invocation of LoadTimeWeaver.getInstrumentableClassLoader()
.
getThrowawayClassLoader
in interface LoadTimeWeaver
ClassLoader
; should return
a new instance for each call, with no existing state