@HashCodeAndEqualsPlugin.Enhance protected static class ClassLoadingStrategy.Default.InjectionDispatcher extends Object implements ClassLoadingStrategy.Configurable<ClassLoader>
A class loading strategy which applies a class loader injection while applying a given ProtectionDomain
on class injection.
Important: Class injection requires access to JVM internal methods that are sealed by security managers and the Java Platform module system. Since Java 11, access to these methods is no longer feasible unless those packages are explicitly opened.
ClassLoadingStrategy.Configurable<S extends ClassLoader>, ClassLoadingStrategy.Default, ClassLoadingStrategy.ForBootstrapInjection, ClassLoadingStrategy.ForJnaInjection, ClassLoadingStrategy.ForUnsafeInjection, ClassLoadingStrategy.UsingLookup
BOOTSTRAP_LOADER, NO_PROTECTION_DOMAIN
Modifier | Constructor and Description |
---|---|
protected |
InjectionDispatcher()
Creates a new injection dispatcher.
|
Modifier and Type | Method and Description |
---|---|
ClassLoadingStrategy.Configurable<ClassLoader> |
allowExistingTypes()
Determines if this class loading strategy should not throw an exception when attempting to load a class that
was already loaded.
|
Map<TypeDescription,Class<?>> |
load(ClassLoader classLoader,
Map<TypeDescription,byte[]> types)
Loads a given collection of classes given their binary representation.
|
ClassLoadingStrategy.Configurable<ClassLoader> |
opened()
With an opened class loading strategy, it is assured that types can be added to the class loader, either by
indirect injection using this strategy or by creating a class loader that explicitly supports injection.
|
ClassLoadingStrategy.Configurable<ClassLoader> |
with(PackageDefinitionStrategy packageDefinitionStrategy)
Defines the supplied package definition strategy to be used for defining packages.
|
ClassLoadingStrategy.Configurable<ClassLoader> |
with(ProtectionDomain protectionDomain)
Overrides the implicitly set default
ProtectionDomain with an explicit one. |
protected InjectionDispatcher()
public Map<TypeDescription,Class<?>> load(@MaybeNull ClassLoader classLoader, Map<TypeDescription,byte[]> types)
load
in interface ClassLoadingStrategy<ClassLoader>
classLoader
- The class loader to used for loading the classes.types
- Byte array representations of the types to be loaded mapped by their descriptions,
where an iteration order defines an order in which they are supposed to be loaded,
if relevant.public ClassLoadingStrategy.Configurable<ClassLoader> with(ProtectionDomain protectionDomain)
ProtectionDomain
with an explicit one.with
in interface ClassLoadingStrategy.Configurable<ClassLoader>
protectionDomain
- The protection domain to apply or null
if no protection domain is set.ProtectionDomain
.public ClassLoadingStrategy.Configurable<ClassLoader> with(PackageDefinitionStrategy packageDefinitionStrategy)
with
in interface ClassLoadingStrategy.Configurable<ClassLoader>
packageDefinitionStrategy
- The package definer to be used.public ClassLoadingStrategy.Configurable<ClassLoader> allowExistingTypes()
allowExistingTypes
in interface ClassLoadingStrategy.Configurable<ClassLoader>
public ClassLoadingStrategy.Configurable<ClassLoader> opened()
opened
in interface ClassLoadingStrategy.Configurable<ClassLoader>
Copyright © 2014–2025. All rights reserved.