The Spring Framework

## org.springframework.instrument.classloading.glassfish
Class GlassFishLoadTimeWeaver

    java.lang.Object
      org.springframework.instrument.classloading.glassfish.GlassFishLoadTimeWeaver

All Implemented Interfaces:
  LoadTimeWeaver

    public class GlassFishLoadTimeWeaver

extends Object
implements LoadTimeWeaver

`LoadTimeWeaver` implementation for GlassFish's `InstrumentableClassLoader`.

Since:
  2.0.1
Author:
  Costin Leau, Juergen Hoeller
See Also:
  `InstrumentableClassLoader`

Constructor Summary
`GlassFishLoadTimeWeaver()` Create a new instance of the `GlassFishLoadTimeWeaver` class using the default `ClassLoader`.
`GlassFishLoadTimeWeaver(ClassLoader classLoader)` Create a new instance of the `GlassFishLoadTimeWeaver` class.

Method Summary
`void` `addTransformer(ClassFileTransformer transformer)` Add a `ClassFileTransformer` to be applied by this `LoadTimeWeaver`.
`protected com.sun.enterprise.loader.InstrumentableClassLoader` `determineClassLoader(ClassLoader classLoader)` Determine the GlassFish `InstrumentableClassLoader` for the given `ClassLoader`.
`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

### GlassFishLoadTimeWeaver

    public GlassFishLoadTimeWeaver()

  Create a new instance of the `GlassFishLoadTimeWeaver` class using the default `ClassLoader`.

  See Also:
    `GlassFishLoadTimeWeaver(ClassLoader)`

### GlassFishLoadTimeWeaver

    public GlassFishLoadTimeWeaver(ClassLoader classLoader)

  Create a new instance of the `GlassFishLoadTimeWeaver` class.

  Parameters:
    `classLoader` - the specific `ClassLoader` to use; must not be `null`
  Throws:
    `IllegalArgumentException` - if the supplied `classLoader` is `null`; or if the supplied `classLoader` is not an `InstrumentableClassLoader`

Method Detail

### determineClassLoader

    protected com.sun.enterprise.loader.InstrumentableClassLoader determineClassLoader(ClassLoader classLoader)

  Determine the GlassFish `InstrumentableClassLoader` for the given `ClassLoader`.

  Parameters:
    `classLoader` - the `ClassLoader` to check
  Returns:
    the `InstrumentableClassLoader`, or `null` if none found

### 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

The Spring Framework

Copyright © 2002-2008 The Spring Framework.