org.springframework.instrument.classloading.websphere

## Class WebSphereLoadTimeWeaver

- java.lang.Object
- - org.springframework.instrument.classloading.websphere.WebSphereLoadTimeWeaver

All Implemented Interfaces:
  LoadTimeWeaver

    public class WebSphereLoadTimeWeaver
    extends Object
    implements LoadTimeWeaver

`LoadTimeWeaver` implementation for WebSphere's instrumentable ClassLoader. Compatible with WebSphere 7 as well as 8.

Since:
  3.1
Author:
  Costin Leau

### Constructor Summary

Constructors
Constructor and Description
`WebSphereLoadTimeWeaver()` Create a new instance of the `WebSphereLoadTimeWeaver` class using the default `class loader`.
`WebSphereLoadTimeWeaver(ClassLoader classLoader)` Create a new instance of the `WebSphereLoadTimeWeaver` class using the supplied `ClassLoader`.

### Method Summary

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`.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### WebSphereLoadTimeWeaver

    public WebSphereLoadTimeWeaver()

Create a new instance of the `WebSphereLoadTimeWeaver` class using the default `class loader`.

See Also:
  `ClassUtils.getDefaultClassLoader()`

#### WebSphereLoadTimeWeaver

    public WebSphereLoadTimeWeaver(ClassLoader classLoader)

Create a new instance of the `WebSphereLoadTimeWeaver` class using the supplied `ClassLoader`.

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

### Method Detail

#### addTransformer

    public void addTransformer(ClassFileTransformer transformer)

Description copied from interface: `LoadTimeWeaver`
Add a `ClassFileTransformer` to be applied by this `LoadTimeWeaver`.

Specified by:
  `addTransformer` in interface `LoadTimeWeaver`
Parameters:
  `transformer` - the `ClassFileTransformer` to add

#### getInstrumentableClassLoader

    public ClassLoader getInstrumentableClassLoader()

Description copied from interface: `LoadTimeWeaver`
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.

Specified by:
  `getInstrumentableClassLoader` in interface `LoadTimeWeaver`
Returns:
  the `ClassLoader` which will expose instrumented classes according to the registered transformers

#### getThrowawayClassLoader

    public ClassLoader getThrowawayClassLoader()

Description copied from interface: `LoadTimeWeaver`
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 `LoadTimeWeaver.getInstrumentableClassLoader()`.

Specified by:
  `getThrowawayClassLoader` in interface `LoadTimeWeaver`
Returns:
  a temporary throwaway `ClassLoader`; should return a new instance for each call, with no existing state