public static class ByteArrayClassLoader.ChildFirst extends ByteArrayClassLoader
A ByteArrayClassLoader
which 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.
Modifier and Type | Class and Description |
---|---|
protected static class |
ByteArrayClassLoader.ChildFirst.PrependingEnumeration
An enumeration that prepends an element to another enumeration and skips the last element of the provided enumeration.
|
ByteArrayClassLoader.ChildFirst, ByteArrayClassLoader.ClassDefinitionAction, ByteArrayClassLoader.EmptyEnumeration, ByteArrayClassLoader.PackageLookupStrategy, ByteArrayClassLoader.PersistenceHandler, ByteArrayClassLoader.SingletonEnumeration, ByteArrayClassLoader.SynchronizationStrategy
InjectionClassLoader.Strategy
Modifier and Type | Field and Description |
---|---|
private static java.lang.String |
CLASS_FILE_SUFFIX
The suffix of files in the Java class file format.
|
accessControlContext, classFileTransformer, packageDefinitionStrategy, persistenceHandler, protectionDomain, SYNCHRONIZATION_STRATEGY, typeDefinitions, URL_SCHEMA
Constructor and Description |
---|
ChildFirst(java.lang.ClassLoader parent,
boolean sealed,
java.util.Map<java.lang.String,byte[]> typeDefinitions)
Creates a new child-first byte array class loader.
|
ChildFirst(java.lang.ClassLoader parent,
boolean sealed,
java.util.Map<java.lang.String,byte[]> typeDefinitions,
ByteArrayClassLoader.PersistenceHandler persistenceHandler)
Creates a new child-first byte array class loader.
|
ChildFirst(java.lang.ClassLoader parent,
boolean sealed,
java.util.Map<java.lang.String,byte[]> typeDefinitions,
java.security.ProtectionDomain protectionDomain,
ByteArrayClassLoader.PersistenceHandler persistenceHandler,
PackageDefinitionStrategy packageDefinitionStrategy)
Creates a new child-first byte array class loader.
|
ChildFirst(java.lang.ClassLoader parent,
boolean sealed,
java.util.Map<java.lang.String,byte[]> typeDefinitions,
java.security.ProtectionDomain protectionDomain,
ByteArrayClassLoader.PersistenceHandler persistenceHandler,
PackageDefinitionStrategy packageDefinitionStrategy,
java.lang.instrument.ClassFileTransformer classFileTransformer)
Creates a new child-first byte array class loader.
|
ChildFirst(java.lang.ClassLoader parent,
java.util.Map<java.lang.String,byte[]> typeDefinitions)
Creates a new child-first byte array class loader.
|
ChildFirst(java.lang.ClassLoader parent,
java.util.Map<java.lang.String,byte[]> typeDefinitions,
ByteArrayClassLoader.PersistenceHandler persistenceHandler)
Creates a new child-first byte array class loader.
|
ChildFirst(java.lang.ClassLoader parent,
java.util.Map<java.lang.String,byte[]> typeDefinitions,
java.security.ProtectionDomain protectionDomain,
ByteArrayClassLoader.PersistenceHandler persistenceHandler,
PackageDefinitionStrategy packageDefinitionStrategy)
Creates a new child-first byte array class loader.
|
ChildFirst(java.lang.ClassLoader parent,
java.util.Map<java.lang.String,byte[]> typeDefinitions,
java.security.ProtectionDomain protectionDomain,
ByteArrayClassLoader.PersistenceHandler persistenceHandler,
PackageDefinitionStrategy packageDefinitionStrategy,
java.lang.instrument.ClassFileTransformer classFileTransformer)
Creates a new child-first byte array class loader.
|
Modifier and Type | Method and Description |
---|---|
java.net.URL |
getResource(java.lang.String name) |
java.util.Enumeration<java.net.URL> |
getResources(java.lang.String name) |
private boolean |
isShadowed(java.lang.String resourceName)
Checks if a resource name represents a class file of a class that was loaded by this class loader.
|
static java.util.Map<TypeDescription,java.lang.Class<?>> |
load(java.lang.ClassLoader classLoader,
java.util.Map<TypeDescription,byte[]> types)
Loads a given set of class descriptions and their binary representations using a child-first class loader.
|
static java.util.Map<TypeDescription,java.lang.Class<?>> |
load(java.lang.ClassLoader classLoader,
java.util.Map<TypeDescription,byte[]> types,
java.security.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 java.lang.Class<?> |
loadClass(java.lang.String name,
boolean resolve) |
doDefineClasses, findClass, findResource, findResources
defineClass, defineClasses, isSealed
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
private static final java.lang.String CLASS_FILE_SUFFIX
public ChildFirst(java.lang.ClassLoader parent, java.util.Map<java.lang.String,byte[]> typeDefinitions)
parent
- The ClassLoader
that is the parent of this class loader.typeDefinitions
- A map of fully qualified class names pointing to their binary representations.public ChildFirst(java.lang.ClassLoader parent, boolean sealed, java.util.Map<java.lang.String,byte[]> typeDefinitions)
parent
- The ClassLoader
that is the parent of this class loader.sealed
- true
if this class loader is sealed.typeDefinitions
- A map of fully qualified class names pointing to their binary representations.public ChildFirst(java.lang.ClassLoader parent, java.util.Map<java.lang.String,byte[]> typeDefinitions, ByteArrayClassLoader.PersistenceHandler persistenceHandler)
parent
- The ClassLoader
that 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.public ChildFirst(java.lang.ClassLoader parent, boolean sealed, java.util.Map<java.lang.String,byte[]> typeDefinitions, ByteArrayClassLoader.PersistenceHandler persistenceHandler)
parent
- The ClassLoader
that is the parent of this class loader.sealed
- true
if 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.public ChildFirst(java.lang.ClassLoader parent, java.util.Map<java.lang.String,byte[]> typeDefinitions, java.security.ProtectionDomain protectionDomain, ByteArrayClassLoader.PersistenceHandler persistenceHandler, PackageDefinitionStrategy packageDefinitionStrategy)
parent
- The ClassLoader
that 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 where null
references an implicit protection domain.persistenceHandler
- The persistence handler of this class loader.packageDefinitionStrategy
- The package definer to be queried for package definitions.public ChildFirst(java.lang.ClassLoader parent, boolean sealed, java.util.Map<java.lang.String,byte[]> typeDefinitions, java.security.ProtectionDomain protectionDomain, ByteArrayClassLoader.PersistenceHandler persistenceHandler, PackageDefinitionStrategy packageDefinitionStrategy)
parent
- The ClassLoader
that is the parent of this class loader.sealed
- true
if this class loader is sealed.typeDefinitions
- A map of fully qualified class names pointing to their binary representations.protectionDomain
- The protection domain to apply where null
references an implicit protection domain.persistenceHandler
- The persistence handler of this class loader.packageDefinitionStrategy
- The package definer to be queried for package definitions.public ChildFirst(java.lang.ClassLoader parent, java.util.Map<java.lang.String,byte[]> typeDefinitions, java.security.ProtectionDomain protectionDomain, ByteArrayClassLoader.PersistenceHandler persistenceHandler, PackageDefinitionStrategy packageDefinitionStrategy, java.lang.instrument.ClassFileTransformer classFileTransformer)
parent
- The ClassLoader
that 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 where null
references 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.public ChildFirst(java.lang.ClassLoader parent, boolean sealed, java.util.Map<java.lang.String,byte[]> typeDefinitions, java.security.ProtectionDomain protectionDomain, ByteArrayClassLoader.PersistenceHandler persistenceHandler, PackageDefinitionStrategy packageDefinitionStrategy, java.lang.instrument.ClassFileTransformer classFileTransformer)
parent
- The ClassLoader
that is the parent of this class loader.sealed
- true
if this class loader is sealed.typeDefinitions
- A map of fully qualified class names pointing to their binary representations.protectionDomain
- The protection domain to apply where null
references 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.public static java.util.Map<TypeDescription,java.lang.Class<?>> load(java.lang.ClassLoader classLoader, java.util.Map<TypeDescription,byte[]> types)
classLoader
- The parent class loader.types
- The unloaded types to be loaded.public static java.util.Map<TypeDescription,java.lang.Class<?>> load(java.lang.ClassLoader classLoader, java.util.Map<TypeDescription,byte[]> types, java.security.ProtectionDomain protectionDomain, ByteArrayClassLoader.PersistenceHandler persistenceHandler, PackageDefinitionStrategy packageDefinitionStrategy, boolean forbidExisting, boolean sealed)
classLoader
- The parent class loader.types
- The unloaded types to be loaded.protectionDomain
- The protection domain to apply where null
references an implicit protection domain.persistenceHandler
- The persistence handler of the created class loader.packageDefinitionStrategy
- The package definer to be queried for package definitions.forbidExisting
- true
if the class loading should throw an exception if a class was already loaded by a parent class loader.sealed
- true
if the class loader should be sealed.protected java.lang.Class<?> loadClass(java.lang.String name, boolean resolve) throws java.lang.ClassNotFoundException
loadClass
in class java.lang.ClassLoader
java.lang.ClassNotFoundException
public java.net.URL getResource(java.lang.String name)
getResource
in class java.lang.ClassLoader
public java.util.Enumeration<java.net.URL> getResources(java.lang.String name) throws java.io.IOException
getResources
in class java.lang.ClassLoader
java.io.IOException
private boolean isShadowed(java.lang.String resourceName)
resourceName
- The resource name of the class to be exposed as its class file.true
if this class represents a class that is being loaded by this class loader.