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 inherited from class net.bytebuddy.agent.builder.AgentBuilder.PoolStrategy.WithTypePoolCache
readerMode
-
-
Constructor Summary
Constructors Constructor Description Simple(ConcurrentMap<? super 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, ConcurrentMap<? super 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 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(ClassLoader classLoader)
Locates a cache provider for a given class loader.-
Methods inherited from class net.bytebuddy.agent.builder.AgentBuilder.PoolStrategy.WithTypePoolCache
typePool
-
-
-
-
Constructor Detail
-
Simple
public Simple(ConcurrentMap<? super 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, ConcurrentMap<? super 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(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 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.
-
-