public class SimpleInstrumentableClassLoader extends OverridingClassLoader
ClassLoader.
Usable in tests and standalone environments.
DEFAULT_EXCLUDED_PACKAGES| Constructor and Description |
|---|
SimpleInstrumentableClassLoader(ClassLoader parent)
Create a new SimpleInstrumentableClassLoader for the given ClassLoader.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addTransformer(ClassFileTransformer transformer)
Add a
ClassFileTransformer to be applied by this ClassLoader. |
protected byte[] |
transformIfNecessary(String name,
byte[] bytes)
Transformation hook to be implemented by subclasses.
|
isEligibleForOverriding, loadBytesForClass, loadClass, loadClass, loadClassForOverriding, openStreamForClassexcludeClass, excludePackage, isExcludedclearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findResources, findSystemClass, getClassLoadingLock, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, registerAsParallelCapable, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSignerspublic SimpleInstrumentableClassLoader(@Nullable ClassLoader parent)
parent - the ClassLoader to build an instrumentable ClassLoader forpublic void addTransformer(ClassFileTransformer transformer)
ClassFileTransformer to be applied by this ClassLoader.transformer - the ClassFileTransformer to registerprotected byte[] transformIfNecessary(String name, byte[] bytes)
OverridingClassLoaderThe default implementation simply returns the given bytes as-is.
transformIfNecessary in class OverridingClassLoadername - the fully-qualified name of the class being transformedbytes - the raw bytes of the classnull;
same as the input bytes if the transformation produced no changes)