public class

InstrumentationLoadTimeWeaver

extends Object
implements LoadTimeWeaver
java.lang.Object
   ↳ org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver

Class Overview

LoadTimeWeaver relying on VM Instrumentation.

Start the JVM specifying the Java agent to be used, like as follows:

-javaagent:path/to/org.springframework.instrument.jar

where org.springframework.instrument.jar is a JAR file containing the InstrumentationSavingAgent class, as shipped with Spring.

In Eclipse, for example, set the "Run configuration"'s JVM args to be of the form:

-javaagent:${project_loc}/lib/org.springframework.instrument.jar

Summary

Public Constructors
InstrumentationLoadTimeWeaver()
Create a new InstrumentationLoadTimeWeaver for the default ClassLoader.
InstrumentationLoadTimeWeaver(ClassLoader classLoader)
Create a new InstrumentationLoadTimeWeaver for the given ClassLoader.
Public Methods
void addTransformer(ClassFileTransformer transformer)
Add a ClassFileTransformer to be applied by this LoadTimeWeaver.
ClassLoader getInstrumentableClassLoader()
We have the ability to weave the current class loader when starting the JVM in this way, so the instrumentable class loader will always be the current loader.
ClassLoader getThrowawayClassLoader()
This implementation always returns a SimpleThrowawayClassLoader.
static boolean isInstrumentationAvailable()
Check whether an Instrumentation instance is available for the current VM.
void removeTransformers()
Remove all registered transformers, in inverse order of registration.
[Expand]
Inherited Methods
From class java.lang.Object
From interface org.springframework.instrument.classloading.LoadTimeWeaver

Public Constructors

public InstrumentationLoadTimeWeaver ()

Create a new InstrumentationLoadTimeWeaver for the default ClassLoader.

public InstrumentationLoadTimeWeaver (ClassLoader classLoader)

Create a new InstrumentationLoadTimeWeaver for the given ClassLoader.

Parameters
classLoader the ClassLoader that registered transformers are supposed to apply to

Public Methods

public void addTransformer (ClassFileTransformer transformer)

Add a ClassFileTransformer to be applied by this LoadTimeWeaver.

Parameters
transformer the ClassFileTransformer to add

public ClassLoader getInstrumentableClassLoader ()

We have the ability to weave the current class loader when starting the JVM in this way, so the instrumentable class loader will always be the current loader.

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

public ClassLoader getThrowawayClassLoader ()

This implementation always returns a SimpleThrowawayClassLoader.

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

public static boolean isInstrumentationAvailable ()

Check whether an Instrumentation instance is available for the current VM.

See Also
  • #getInstrumentation()

public void removeTransformers ()

Remove all registered transformers, in inverse order of registration.