@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.UsingLookupBOOTSTRAP_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–2023. All rights reserved.