Interface LoadTimeWeaver

All Known Implementing Classes:
DefaultContextLoadTimeWeaver, GlassFishLoadTimeWeaver, InstrumentationLoadTimeWeaver, JBossLoadTimeWeaver, ReflectiveLoadTimeWeaver, SimpleLoadTimeWeaver, TomcatLoadTimeWeaver

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:
  • Method Details

    • 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