public class

WeavingTransformer

extends Object
java.lang.Object
   ↳ org.springframework.instrument.classloading.WeavingTransformer

Class Overview

ClassFileTransformer-based weaver, allowing for a list of transformers to be applied on a class byte array. Normally used inside class loaders.

Note: This class is deliberately implemented for minimal external dependencies, since it is included in weaver jars (to be deployed into application servers).

Summary

Public Constructors
WeavingTransformer(ClassLoader classLoader)
Create a new WeavingTransformer for the given class loader.
Public Methods
void addTransformer(ClassFileTransformer transformer)
Add a class file transformer to be applied by this weaver.
byte[] transformIfNecessary(String className, String internalName, byte[] bytes, ProtectionDomain pd)
Apply transformation on a given class byte definition.
byte[] transformIfNecessary(String className, byte[] bytes)
Apply transformation on a given class byte definition.
[Expand]
Inherited Methods
From class java.lang.Object

Public Constructors

public WeavingTransformer (ClassLoader classLoader)

Create a new WeavingTransformer for the given class loader.

Parameters
classLoader the ClassLoader to build a transformer for

Public Methods

public void addTransformer (ClassFileTransformer transformer)

Add a class file transformer to be applied by this weaver.

Parameters
transformer the class file transformer to register

public byte[] transformIfNecessary (String className, String internalName, byte[] bytes, ProtectionDomain pd)

Apply transformation on a given class byte definition. The method will always return a non-null byte array (if no transformation has taken place the array content will be identical to the original one).

Parameters
className the full qualified name of the class in dot format (i.e. some.package.SomeClass)
internalName class name internal name in / format (i.e. some/package/SomeClass)
bytes class byte definition
pd protection domain to be used (can be null)
Returns
  • (possibly transformed) class byte definition

public byte[] transformIfNecessary (String className, byte[] bytes)

Apply transformation on a given class byte definition. The method will always return a non-null byte array (if no transformation has taken place the array content will be identical to the original one).

Parameters
className the full qualified name of the class in dot format (i.e. some.package.SomeClass)
bytes class byte definition
Returns
  • (possibly transformed) class byte definition