Class AgentBuilder.PoolStrategy.WithTypePoolCache.Simple

    • 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 fast TypePool.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

      • 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 many ConcurrentMap 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 as null 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.