org.springframework.instrument.classloading
Interface LoadTimeWeaver

All Known Implementing Classes:
DefaultContextLoadTimeWeaver, GlassFishLoadTimeWeaver, InstrumentationLoadTimeWeaver, OC4JLoadTimeWeaver, ReflectiveLoadTimeWeaver, SimpleLoadTimeWeaver, WebLogicLoadTimeWeaver

public interface LoadTimeWeaver

Defines the contract for adding one or more ClassFileTransformers to a ClassLoader.

Implementations may operate on the current context ClassLoader or expose their own instrumentable ClassLoader.

Since:
2.0
Author:
Rod Johnson, Costin Leau
See Also:
ClassFileTransformer

Method Summary
 void addTransformer(ClassFileTransformer transformer)
          Add a ClassFileTransformer to be applied by this LoadTimeWeaver.
 ClassLoader getInstrumentableClassLoader()
          Return a ClassLoader that supports instrumentation through AspectJ-style load-time weaving based on user-defined ClassFileTransformers.
 ClassLoader getThrowawayClassLoader()
          Return a throwaway ClassLoader, enabling classes to be loaded and inspected without affecting the parent ClassLoader.
 

Method Detail

addTransformer

void addTransformer(ClassFileTransformer transformer)
Add a ClassFileTransformer to be applied by this LoadTimeWeaver.

Parameters:
transformer - the ClassFileTransformer to add

getInstrumentableClassLoader

ClassLoader getInstrumentableClassLoader()
Return a 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.

Returns:
the ClassLoader which will expose instrumented classes according to the registered transformers

getThrowawayClassLoader

ClassLoader getThrowawayClassLoader()
Return a throwaway 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 getInstrumentableClassLoader().

Returns:
a temporary throwaway ClassLoader; should return a new instance for each call, with no existing state