Class SimpleInstrumentableClassLoader
- java.lang.Object
- java.lang.ClassLoader
- org.springframework.core.DecoratingClassLoader
- org.springframework.core.OverridingClassLoader
- org.springframework.instrument.classloading.SimpleInstrumentableClassLoader
@UsesJava7 public class SimpleInstrumentableClassLoader extends OverridingClassLoader
Simplistic implementation of an instrumentableClassLoader
.Usable in tests and standalone environments.
- Since:
- 2.0
- Author:
- Rod Johnson, Costin Leau
Field Summary
Fields inherited from class org.springframework.core.OverridingClassLoader
DEFAULT_EXCLUDED_PACKAGES
Fields inherited from class org.springframework.core.DecoratingClassLoader
parallelCapableClassLoaderAvailable
Constructor Summary
Constructors Constructor Description SimpleInstrumentableClassLoader(ClassLoader parent)
Create a new SimpleInstrumentableClassLoader for the given ClassLoader.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addTransformer(ClassFileTransformer transformer)
Add aClassFileTransformer
to be applied by this ClassLoader.protected byte[]
transformIfNecessary(String name, byte[] bytes)
Transformation hook to be implemented by subclasses.Methods inherited from class org.springframework.core.OverridingClassLoader
isEligibleForOverriding, loadBytesForClass, loadClass, loadClass, loadClassForOverriding, openStreamForClass
Methods inherited from class org.springframework.core.DecoratingClassLoader
excludeClass, excludePackage, isExcluded
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findClass, findLibrary, findLoadedClass, findResource, findResource, findResources, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
Constructor Detail
SimpleInstrumentableClassLoader
public SimpleInstrumentableClassLoader(ClassLoader parent)
Create a new SimpleInstrumentableClassLoader for the given ClassLoader.- Parameters:
parent
- the ClassLoader to build an instrumentable ClassLoader for
Method Detail
addTransformer
public void addTransformer(ClassFileTransformer transformer)
Add aClassFileTransformer
to be applied by this ClassLoader.- Parameters:
transformer
- theClassFileTransformer
to register
transformIfNecessary
protected byte[] transformIfNecessary(String name, byte[] bytes)
Description copied from class:OverridingClassLoader
Transformation hook to be implemented by subclasses.The default implementation simply returns the given bytes as-is.
- Overrides:
transformIfNecessary
in classOverridingClassLoader
- Parameters:
name
- the fully-qualified name of the class being transformedbytes
- the raw bytes of the class- Returns:
- the transformed bytes (never
null
; same as the input bytes if the transformation produced no changes)