Package net.bytebuddy.agent.builder
Class AgentBuilder.PoolStrategy.WithTypePoolCache.Simple
- java.lang.Object
-
- net.bytebuddy.agent.builder.AgentBuilder.PoolStrategy.WithTypePoolCache
-
- net.bytebuddy.agent.builder.AgentBuilder.PoolStrategy.WithTypePoolCache.Simple
-
- All Implemented Interfaces:
AgentBuilder.PoolStrategy
- Enclosing class:
- AgentBuilder.PoolStrategy.WithTypePoolCache
@Enhance public static class AgentBuilder.PoolStrategy.WithTypePoolCache.Simple extends AgentBuilder.PoolStrategy.WithTypePoolCache
An implementation of a type locatorAgentBuilder.PoolStrategy.WithTypePoolCache
(note documentation of the linked class) that is based on aConcurrentMap
. It is the responsibility of the type locator's user to avoid the type locator from leaking memory.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class net.bytebuddy.agent.builder.AgentBuilder.PoolStrategy.WithTypePoolCache
AgentBuilder.PoolStrategy.WithTypePoolCache.Simple
-
Nested classes/interfaces inherited from interface net.bytebuddy.agent.builder.AgentBuilder.PoolStrategy
AgentBuilder.PoolStrategy.ClassLoading, AgentBuilder.PoolStrategy.Default, AgentBuilder.PoolStrategy.Eager, AgentBuilder.PoolStrategy.WithTypePoolCache
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.concurrent.ConcurrentMap<? super java.lang.ClassLoader,TypePool.CacheProvider>
cacheProviders
The concurrent map that is used for storing a cache provider per class loader.-
Fields inherited from class net.bytebuddy.agent.builder.AgentBuilder.PoolStrategy.WithTypePoolCache
readerMode
-
-
Constructor Summary
Constructors Constructor Description Simple(java.util.concurrent.ConcurrentMap<? super java.lang.ClassLoader,TypePool.CacheProvider> cacheProviders)
Creates a new type locator that caches a cache provider per class loader in a concurrent map.Simple(TypePool.Default.ReaderMode readerMode, java.util.concurrent.ConcurrentMap<? super java.lang.ClassLoader,TypePool.CacheProvider> cacheProviders)
Creates a new type locator that caches a cache provider per class loader in a concurrent map.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.lang.ClassLoader
getBootstrapMarkerLoader()
Returns the class loader to serve as a cache key if a cache provider for the bootstrap class loader is requested.protected TypePool.CacheProvider
locate(java.lang.ClassLoader classLoader)
Locates a cache provider for a given class loader.-
Methods inherited from class net.bytebuddy.agent.builder.AgentBuilder.PoolStrategy.WithTypePoolCache
typePool, typePool
-
-
-
-
Field Detail
-
cacheProviders
private final java.util.concurrent.ConcurrentMap<? super java.lang.ClassLoader,TypePool.CacheProvider> cacheProviders
The concurrent map that is used for storing a cache provider per class loader.
-
-
Constructor Detail
-
Simple
public Simple(java.util.concurrent.ConcurrentMap<? super java.lang.ClassLoader,TypePool.CacheProvider> cacheProviders)
Creates a new type locator that caches a cache provider per class loader in a concurrent map. The type locator uses a fastTypePool.Default.ReaderMode
.- Parameters:
cacheProviders
- The concurrent map that is used for storing a cache provider per class loader.
-
Simple
public Simple(TypePool.Default.ReaderMode readerMode, java.util.concurrent.ConcurrentMap<? super java.lang.ClassLoader,TypePool.CacheProvider> cacheProviders)
Creates a new type locator that caches a cache provider per class loader in a concurrent map.- Parameters:
readerMode
- The reader mode to use for parsing a class file.cacheProviders
- The concurrent map that is used for storing a cache provider per class loader.
-
-
Method Detail
-
locate
protected TypePool.CacheProvider locate(java.lang.ClassLoader classLoader)
Description copied from class:AgentBuilder.PoolStrategy.WithTypePoolCache
Locates a cache provider for a given class loader.- Specified by:
locate
in classAgentBuilder.PoolStrategy.WithTypePoolCache
- Parameters:
classLoader
- The class loader for which to locate a cache. This class loader might benull
to represent the bootstrap loader.- Returns:
- The cache provider to use.
-
getBootstrapMarkerLoader
protected java.lang.ClassLoader getBootstrapMarkerLoader()
Returns the class loader to serve as a cache key if a cache provider for the bootstrap class loader is requested. This class loader is represented by
null
in the JVM which is an invalid value for manyConcurrentMap
implementations.By default,
ClassLoader.getSystemClassLoader()
is used as such a key as any resource location for the bootstrap class loader is performed via the system class loader within Byte Buddy asnull
cannot be queried for resources via method calls such that this does not make a difference.- Returns:
- A class loader to represent the bootstrap class loader.
-
-