public class

JBossLoadTimeWeaver

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

Class Overview

LoadTimeWeaver implementation for JBoss's instrumentable ClassLoader.

NOTE: Requires JBoss AS version 5.0.0 or higher.

NOTE: On JBoss 6.0.0, to avoid the container loading the classes before the application actually starts, one needs to add WEB-INF/jboss-scanning.xml to her archive with the following content:

   <scanning xmlns="urn:jboss:scanning:1.0"/>
 

Thanks to Ales Justin and Marius Bogoevici for the initial prototype.

Summary

Public Constructors
JBossLoadTimeWeaver()
Create a new instance of the JBossLoadTimeWeaver class using the default class loader.
JBossLoadTimeWeaver(ClassLoader classLoader)
Create a new instance of the JBossLoadTimeWeaver class using the supplied ClassLoader.
Public Methods
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.
[Expand]
Inherited Methods
From class java.lang.Object
From interface org.springframework.instrument.classloading.LoadTimeWeaver

Public Constructors

public JBossLoadTimeWeaver ()

Create a new instance of the JBossLoadTimeWeaver class using the default class loader.

public JBossLoadTimeWeaver (ClassLoader classLoader)

Create a new instance of the JBossLoadTimeWeaver class using the supplied ClassLoader.

Parameters
classLoader the ClassLoader to delegate to for weaving (must not be null)

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 ()

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

public 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