Package net.bytebuddy.dynamic.loading
Class ByteArrayClassLoader.ChildFirst
- java.lang.Object
-
- java.lang.ClassLoader
-
- net.bytebuddy.dynamic.loading.InjectionClassLoader
-
- net.bytebuddy.dynamic.loading.ByteArrayClassLoader
-
- net.bytebuddy.dynamic.loading.ByteArrayClassLoader.ChildFirst
-
- Enclosing class:
- ByteArrayClassLoader
public static class ByteArrayClassLoader.ChildFirst extends ByteArrayClassLoader
A
ByteArrayClassLoaderwhich applies child-first semantics for the given type definitions.Important: Package definitions remain their parent-first semantics as loaded package definitions do not expose their class loaders. Also, it is not possible to make this class or its subclass parallel-capable as the loading strategy is overridden.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classByteArrayClassLoader.ChildFirst.PrependingEnumerationAn enumeration that prepends an element to another enumeration and skips the last element of the provided enumeration.-
Nested classes/interfaces inherited from class net.bytebuddy.dynamic.loading.ByteArrayClassLoader
ByteArrayClassLoader.ChildFirst, ByteArrayClassLoader.ClassDefinitionAction, ByteArrayClassLoader.EmptyEnumeration, ByteArrayClassLoader.PackageLookupStrategy, ByteArrayClassLoader.PersistenceHandler, ByteArrayClassLoader.SingletonEnumeration, ByteArrayClassLoader.SynchronizationStrategy
-
Nested classes/interfaces inherited from class net.bytebuddy.dynamic.loading.InjectionClassLoader
InjectionClassLoader.Strategy
-
-
Field Summary
-
Fields inherited from class net.bytebuddy.dynamic.loading.ByteArrayClassLoader
accessControlContext, classFileTransformer, packageDefinitionStrategy, persistenceHandler, protectionDomain, SYNCHRONIZATION_STRATEGY, typeDefinitions, URL_SCHEMA
-
-
Constructor Summary
Constructors Constructor Description ChildFirst(ClassLoader parent, boolean sealed, Map<String,byte[]> typeDefinitions)Creates a new child-first byte array class loader.ChildFirst(ClassLoader parent, boolean sealed, Map<String,byte[]> typeDefinitions, ProtectionDomain protectionDomain, ByteArrayClassLoader.PersistenceHandler persistenceHandler, PackageDefinitionStrategy packageDefinitionStrategy)Creates a new child-first byte array class loader.ChildFirst(ClassLoader parent, boolean sealed, Map<String,byte[]> typeDefinitions, ProtectionDomain protectionDomain, ByteArrayClassLoader.PersistenceHandler persistenceHandler, PackageDefinitionStrategy packageDefinitionStrategy, ClassFileTransformer classFileTransformer)Creates a new child-first byte array class loader.ChildFirst(ClassLoader parent, boolean sealed, Map<String,byte[]> typeDefinitions, ByteArrayClassLoader.PersistenceHandler persistenceHandler)Creates a new child-first byte array class loader.ChildFirst(ClassLoader parent, Map<String,byte[]> typeDefinitions)Creates a new child-first byte array class loader.ChildFirst(ClassLoader parent, Map<String,byte[]> typeDefinitions, ProtectionDomain protectionDomain, ByteArrayClassLoader.PersistenceHandler persistenceHandler, PackageDefinitionStrategy packageDefinitionStrategy)Creates a new child-first byte array class loader.ChildFirst(ClassLoader parent, Map<String,byte[]> typeDefinitions, ProtectionDomain protectionDomain, ByteArrayClassLoader.PersistenceHandler persistenceHandler, PackageDefinitionStrategy packageDefinitionStrategy, ClassFileTransformer classFileTransformer)Creates a new child-first byte array class loader.ChildFirst(ClassLoader parent, Map<String,byte[]> typeDefinitions, ByteArrayClassLoader.PersistenceHandler persistenceHandler)Creates a new child-first byte array class loader.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description URLgetResource(String name)Enumeration<URL>getResources(String name)static Map<TypeDescription,Class<?>>load(ClassLoader classLoader, Map<TypeDescription,byte[]> types)Loads a given set of class descriptions and their binary representations using a child-first class loader.static Map<TypeDescription,Class<?>>load(ClassLoader classLoader, Map<TypeDescription,byte[]> types, ProtectionDomain protectionDomain, ByteArrayClassLoader.PersistenceHandler persistenceHandler, PackageDefinitionStrategy packageDefinitionStrategy, boolean forbidExisting, boolean sealed)Loads a given set of class descriptions and their binary representations using a child-first class loader.protected Class<?>loadClass(String name, boolean resolve)-
Methods inherited from class net.bytebuddy.dynamic.loading.ByteArrayClassLoader
doDefineClasses, findClass, findResource, findResources
-
Methods inherited from class net.bytebuddy.dynamic.loading.InjectionClassLoader
defineClass, defineClasses, isSealed
-
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findLibrary, findLoadedClass, findSystemClass, getClassLoadingLock, getPackage, getPackages, getParent, getResourceAsStream, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, registerAsParallelCapable, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
-
-
-
Constructor Detail
-
ChildFirst
public ChildFirst(ClassLoader parent, Map<String,byte[]> typeDefinitions)
Creates a new child-first byte array class loader.- Parameters:
parent- TheClassLoaderthat is the parent of this class loader.typeDefinitions- A map of fully qualified class names pointing to their binary representations.
-
ChildFirst
public ChildFirst(ClassLoader parent, boolean sealed, Map<String,byte[]> typeDefinitions)
Creates a new child-first byte array class loader.- Parameters:
parent- TheClassLoaderthat is the parent of this class loader.sealed-trueif this class loader is sealed.typeDefinitions- A map of fully qualified class names pointing to their binary representations.
-
ChildFirst
public ChildFirst(ClassLoader parent, Map<String,byte[]> typeDefinitions, ByteArrayClassLoader.PersistenceHandler persistenceHandler)
Creates a new child-first byte array class loader.- Parameters:
parent- TheClassLoaderthat is the parent of this class loader.typeDefinitions- A map of fully qualified class names pointing to their binary representations.persistenceHandler- The persistence handler of this class loader.
-
ChildFirst
public ChildFirst(ClassLoader parent, boolean sealed, Map<String,byte[]> typeDefinitions, ByteArrayClassLoader.PersistenceHandler persistenceHandler)
Creates a new child-first byte array class loader.- Parameters:
parent- TheClassLoaderthat is the parent of this class loader.sealed-trueif this class loader is sealed.typeDefinitions- A map of fully qualified class names pointing to their binary representations.persistenceHandler- The persistence handler of this class loader.
-
ChildFirst
public ChildFirst(ClassLoader parent, Map<String,byte[]> typeDefinitions, ProtectionDomain protectionDomain, ByteArrayClassLoader.PersistenceHandler persistenceHandler, PackageDefinitionStrategy packageDefinitionStrategy)
Creates a new child-first byte array class loader.- Parameters:
parent- TheClassLoaderthat is the parent of this class loader.typeDefinitions- A map of fully qualified class names pointing to their binary representations.protectionDomain- The protection domain to apply wherenullreferences an implicit protection domain.persistenceHandler- The persistence handler of this class loader.packageDefinitionStrategy- The package definer to be queried for package definitions.
-
ChildFirst
public ChildFirst(ClassLoader parent, boolean sealed, Map<String,byte[]> typeDefinitions, ProtectionDomain protectionDomain, ByteArrayClassLoader.PersistenceHandler persistenceHandler, PackageDefinitionStrategy packageDefinitionStrategy)
Creates a new child-first byte array class loader.- Parameters:
parent- TheClassLoaderthat is the parent of this class loader.sealed-trueif this class loader is sealed.typeDefinitions- A map of fully qualified class names pointing to their binary representations.protectionDomain- The protection domain to apply wherenullreferences an implicit protection domain.persistenceHandler- The persistence handler of this class loader.packageDefinitionStrategy- The package definer to be queried for package definitions.
-
ChildFirst
public ChildFirst(ClassLoader parent, Map<String,byte[]> typeDefinitions, ProtectionDomain protectionDomain, ByteArrayClassLoader.PersistenceHandler persistenceHandler, PackageDefinitionStrategy packageDefinitionStrategy, ClassFileTransformer classFileTransformer)
Creates a new child-first byte array class loader.- Parameters:
parent- TheClassLoaderthat is the parent of this class loader.typeDefinitions- A map of fully qualified class names pointing to their binary representations.protectionDomain- The protection domain to apply wherenullreferences an implicit protection domain.persistenceHandler- The persistence handler of this class loader.packageDefinitionStrategy- The package definer to be queried for package definitions.classFileTransformer- The class file transformer to apply on loaded classes.
-
ChildFirst
public ChildFirst(ClassLoader parent, boolean sealed, Map<String,byte[]> typeDefinitions, ProtectionDomain protectionDomain, ByteArrayClassLoader.PersistenceHandler persistenceHandler, PackageDefinitionStrategy packageDefinitionStrategy, ClassFileTransformer classFileTransformer)
Creates a new child-first byte array class loader.- Parameters:
parent- TheClassLoaderthat is the parent of this class loader.sealed-trueif this class loader is sealed.typeDefinitions- A map of fully qualified class names pointing to their binary representations.protectionDomain- The protection domain to apply wherenullreferences an implicit protection domain.persistenceHandler- The persistence handler of this class loader.packageDefinitionStrategy- The package definer to be queried for package definitions.classFileTransformer- The class file transformer to apply on loaded classes.
-
-
Method Detail
-
load
public static Map<TypeDescription,Class<?>> load(ClassLoader classLoader, Map<TypeDescription,byte[]> types)
Loads a given set of class descriptions and their binary representations using a child-first class loader.- Parameters:
classLoader- The parent class loader.types- The unloaded types to be loaded.- Returns:
- A map of the given type descriptions pointing to their loaded representations.
-
load
public static Map<TypeDescription,Class<?>> load(ClassLoader classLoader, Map<TypeDescription,byte[]> types, ProtectionDomain protectionDomain, ByteArrayClassLoader.PersistenceHandler persistenceHandler, PackageDefinitionStrategy packageDefinitionStrategy, boolean forbidExisting, boolean sealed)
Loads a given set of class descriptions and their binary representations using a child-first class loader.- Parameters:
classLoader- The parent class loader.types- The unloaded types to be loaded.protectionDomain- The protection domain to apply wherenullreferences an implicit protection domain.persistenceHandler- The persistence handler of the created class loader.packageDefinitionStrategy- The package definer to be queried for package definitions.forbidExisting-trueif the class loading should throw an exception if a class was already loaded by a parent class loader.sealed-trueif the class loader should be sealed.- Returns:
- A map of the given type descriptions pointing to their loaded representations.
-
loadClass
protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException
- Overrides:
loadClassin classClassLoader- Throws:
ClassNotFoundException
-
getResource
public URL getResource(String name)
- Overrides:
getResourcein classClassLoader
-
getResources
public Enumeration<URL> getResources(String name) throws IOException
- Overrides:
getResourcesin classClassLoader- Throws:
IOException
-
-