Class SimpleInstrumentableClassLoader
java.lang.Object
java.lang.ClassLoader
org.springframework.core.DecoratingClassLoader
org.springframework.core.OverridingClassLoader
org.springframework.instrument.classloading.SimpleInstrumentableClassLoader
Simplistic implementation of an instrumentable
ClassLoader
.
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
-
Constructor Summary
ConstructorDescriptionCreate a new SimpleInstrumentableClassLoader for the given ClassLoader. -
Method Summary
Modifier and TypeMethodDescriptionvoid
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 Details
-
SimpleInstrumentableClassLoader
Create a new SimpleInstrumentableClassLoader for the given ClassLoader.- Parameters:
parent
- the ClassLoader to build an instrumentable ClassLoader for
-
-
Method Details
-
addTransformer
Add aClassFileTransformer
to be applied by this ClassLoader.- Parameters:
transformer
- theClassFileTransformer
to register
-
transformIfNecessary
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)
-