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.SynchronizationStrategyInjectionClassLoader.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, findResourcesdefineClass, defineClasses, isSealedclearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findLibrary, findLoadedClass, findSystemClass, getClassLoadingLock, getPackage, getPackages, getParent, getResourceAsStream, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, registerAsParallelCapable, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSignersprivate 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.ClassLoaderjava.lang.ClassNotFoundExceptionpublic java.net.URL getResource(java.lang.String name)
getResource in class java.lang.ClassLoaderpublic java.util.Enumeration<java.net.URL> getResources(java.lang.String name)
throws java.io.IOException
getResources in class java.lang.ClassLoaderjava.io.IOExceptionprivate 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.