public class FactoryFinderCache
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
private static class |
FactoryFinderCache.CacheKey |
Modifier and Type | Field and Description |
---|---|
private static java.util.Map<FactoryFinderCache.CacheKey,java.lang.String> |
CLASS_CACHE |
Constructor and Description |
---|
FactoryFinderCache() |
Modifier and Type | Method and Description |
---|---|
static void |
addCacheEntry(java.lang.ClassLoader classLoader,
java.lang.String factoryId,
java.lang.String factoryClassName)
Called by the container at deployment time to set the name of a given factory, to remove the need for the
implementation to look it up on every call.
|
static void |
clearClassLoader(java.lang.ClassLoader classLoader)
This should be called by the container on undeploy to remove all references to the given class loader
from the cache.
|
static java.lang.String |
loadImplementationClassName(java.lang.String factoryId,
java.lang.ClassLoader classLoader) |
private static final java.util.Map<FactoryFinderCache.CacheKey,java.lang.String> CLASS_CACHE
public static void addCacheEntry(java.lang.ClassLoader classLoader, java.lang.String factoryId, java.lang.String factoryClassName)
classLoader
- The deployments class loaderfactoryId
- The type of factory that is being recorded (at this stage only javax.el.ExpressionFactory has any effectfactoryClassName
- The name of the factory class that is present in the deployment, or null if none is presentpublic static void clearClassLoader(java.lang.ClassLoader classLoader)
classLoader
- The class loader to removepublic static java.lang.String loadImplementationClassName(java.lang.String factoryId, java.lang.ClassLoader classLoader)