Class ExtensibleConfigurableCacheFactory
- java.lang.Object
-
- com.tangosol.util.Base
-
- com.tangosol.net.ExtensibleConfigurableCacheFactory
-
- All Implemented Interfaces:
ConfigurableCacheFactory
public class ExtensibleConfigurableCacheFactory extends Base implements ConfigurableCacheFactory
ExtensibleConfigurableCacheFactory provides a facility to access caches declared in a "coherence-cache-config.xsd" compliant configuration file.It is strongly recommended that developers get a ConfigurableCacheFactory instance via CacheFactory.getCacheFactoryBuilder().getConfigurableCacheFactory(), rather than instantiate an ExtensibleConfigurableCacheFactory instance directly.
There are various ways of using this factory:
ExtensibleConfigurableCacheFactory.Dependencies deps = ExtensibleConfigurableCacheFactory.DependenciesHelper.newInstance("my-cache-config.xml"); ExtensibleConfigurableCacheFactory factory = new ExtensibleConfigurableCacheFactory(deps); ... ClassLoader loader = getClass().getClassLoader(); NamedCache cacheOne = factory.ensureCache("one", loader); NamedCache cacheTwo = factory.ensureCache("two", loader);Another option is using the static version of the "ensureCache" call:ClassLoader loader = getClass().getClassLoader(); NamedCache cacheOne = CacheFactory.getCache("one", loader);which uses an instance of ConfigurableCacheFactory obtained byCacheFactory.getConfigurableCacheFactory().- Since:
- Coherence 12.1.2
- Author:
- gg 2003.05.26, pfm 2012.12.19
- See Also:
CacheFactory.getCache(String, ClassLoader, NamedCache.Option...)
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.tangosol.util.Base
Base.LoggingWriter
-
-
Field Summary
Fields Modifier and Type Field Description static StringCACHE_FACTORYThe name of the replaceable parameter representing a cache factory.static StringCACHE_NAMEThe name of the replaceable parameter representing the cache name.static StringCACHE_REFThe name of the replaceable parameter representing a cache reference.static StringCLASS_LOADERThe name of the replaceable parameter representing the class loader.protected com.tangosol.net.events.internal.ConfigurableCacheFactoryDispatcherf_dispatcherConfigurableCacheFactoryDispatcher linked to this cache factory.protected com.tangosol.net.internal.ScopedCacheReferenceStoref_storeStore that holds cache references scoped by class loader and optionally, if configured, Subject.protected com.tangosol.net.internal.ScopedReferenceStore<NamedTopic>f_storeTopicsStore that holdsNamedTopicreferences scoped by class loader and optionally, if configured, Subject.static StringFILE_CFG_CACHEThe default configuration file name.protected booleanm_fActivatedIndicates whether this factory has been activated.protected booleanm_fDisposedIndicates whether this factory has been disposed.protected Map<Service,String>m_mapServicesMap used to hold references to services that are ensured by this factory where values are non-scoped service names.protected Set<BackingMapManager>m_setManagerA Set of BackingMapManager instances registered by this factory.static HashMap<String,Integer>MAP_SCHEMETYPE_BY_SCHEMENAMEThe mappings from scheme name to scheme type.static StringMGR_CONTEXTThe name of the replaceable parameter representing the backing map manager context.static intSCHEME_CLASSThe custom class scheme.static intSCHEME_DISKDeprecated.As of Coherence 3.0, replaced bySCHEME_EXTERNALandSCHEME_EXTERNAL_PAGEDstatic intSCHEME_DISTRIBUTEDThe distributed cache scheme.static intSCHEME_EXTERNALThe external scheme.static intSCHEME_EXTERNAL_PAGEDThe paged-external scheme.static intSCHEME_FLASHJOURNALThe flash journal cache scheme.static intSCHEME_INVOCATIONThe invocation service scheme.static intSCHEME_LOCALThe local cache scheme.static intSCHEME_NEARThe near cache scheme.static intSCHEME_OPTIMISTICThe optimistic cache scheme.static intSCHEME_OVERFLOWThe overflow map scheme.static intSCHEME_PROXYThe proxy service scheme.static intSCHEME_RAMJOURNALThe ram journal cache scheme.static intSCHEME_READ_WRITE_BACKINGThe read write backing map scheme.static StringSCHEME_REFThe name of the replaceable parameter representing a scheme reference.static intSCHEME_REMOTE_CACHEThe remote cache scheme.static intSCHEME_REMOTE_INVOCATIONThe remote invocation scheme.static intSCHEME_REPLICATEDThe replicated cache scheme.static intSCHEME_TRANSACTIONALThe transactional cache scheme.static intSCHEME_UNKNOWNThe unknown scheme type.static intSCHEME_VERSIONED_BACKINGThe versioned backing map scheme.static intSCHEME_VERSIONED_NEARThe versioned near cache scheme.
-
Constructor Summary
Constructors Constructor Description ExtensibleConfigurableCacheFactory(ExtensibleConfigurableCacheFactory.Dependencies dependencies)Constructs anExtensibleConfigurableCacheFactoryusing the specifiedExtensibleConfigurableCacheFactory.Dependencies.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidactivate()Activate prepares the factory to be used within a container and should be called before any other factory method.protected voidassertNotDisposed()ThrowsIllegalStateExceptionif this factory has been disposed via invocation ofdispose().protected static voidcheckPermission(NamedCache cache)Check if the current user is allowed to "join" the cache.protected static voidcheckPermission(NamedCollection collection)Check if the current user is allowed to "join" to the collection.protected static voidcheckPermission(Service service, String sName)Check if the current user is allowed to "join" the data structure with the specified name.protected voidconfigure()Performs final configuration of anExtensibleConfigurableCacheFactoryinstance prior to it being used by Coherence.ParameterResolvercreateParameterResolver(ClassLoader loader, BackingMapManagerContext ctxBMM)Return the ParameterResolver that has been initialized with the built-in Coherence parameters.voiddestroyCache(NamedCache cache)Release and destroy this instance of NamedCache.voiddestroyTopic(NamedTopic<?> topic)Release and destroy this instance ofNamedTopic.voiddispose()Dispose of this factory.<K,V>
NamedCache<K,V>ensureCache(String sCacheName, ClassLoader loader, NamedMap.Option... options)Ensure an cache for the given name, classloader and options.ServiceensureService(ServiceScheme scheme)Ensure the service for the specified scheme then start the service if it isn't running.ServiceensureService(String sServiceName)Ensure a service for the given name.<V> NamedTopic<V>ensureTopic(String sName, ClassLoader loader, NamedCollection.Option... options)Ensure an Object-based topic for the given name.CacheConfiggetCacheConfig()Return theCacheConfigthat contains the configuration used by this factory.protected ClassLoadergetConfigClassLoader()Return the class loader used to load the configuration for this factory.InterceptorRegistrygetInterceptorRegistry()Return theInterceptorRegistryfor this factory.<M extends ResourceMapping>
ParameterResolvergetParameterResolver(String sResourceName, Class<M> clzResourceMapping, ClassLoader loader, BackingMapManagerContext ctxBMM)Return the ParameterResolver that has been initialized with the built-in Coherence parameters.ParameterResolvergetParameterResolver(String sCacheName, ClassLoader loader, BackingMapManagerContext ctxBMM)Return the ParameterResolver that has been initialized with the built-in Coherence parameters.protected longgetRequestTimeout(ServiceScheme scheme)Return the request timeout determined by theServiceScheme.ResourceRegistrygetResourceRegistry()Return theResourceRegistryfor this factory.StringgetScopeName()Return the scope name for this ConfigurableCacheFactory.Map<Service,String>getServiceMap()Return a map of services that were successfully started by this factory where values are corresponding non-scoped service names.booleanisActive()Returnstrueif thisExtensibleConfigurableCacheFactoryis activated.booleanisCacheActive(String sCacheName, ClassLoader loader)Validate whether a cache with the given name is active in the context of the givenClassLoader.booleanisDisposed()Return true if this factory has been disposed via invocation ofdispose().booleanisTopicActive(String sTopicName, ClassLoader loader)Validate whether a topic with the given name is active in the context of the givenClassLoader.protected voidregisterBackingMapManager(BackingMapManager mgr)Register the specified BackingMapManager as a "valid" one.protected voidrelease(BinaryStore store)Release all resources associated with the specified binary store.protected voidrelease(CacheLoader loader)Release all resources associated with the specified loader.protected voidrelease(Map map, Map mapListeners)Release all resources associated with the specified backing map.voidreleaseCache(NamedCache cache)Release a cache and its associated resources.protected voidreleaseCache(NamedCache cache, boolean fDestroy)Release a cache managed by this factory, optionally destroying it.voidreleaseTopic(NamedTopic<?> topic)Release aNamedTopicand its associated resources.protected voidsetConfigClassLoader(ClassLoader loader)Set the class loader used to load the configuration for this factory.protected voidstartService(Service service)Start the givenService.voidstartServices()Start all services that are declared as requiring an "autostart".protected static inttranslateStandardSchemeType(String sScheme)Translate the scheme name into the scheme type.protected voidvalidateBackingMapManager(CacheService service)Ensures that the backing map manager of the specified service was configured by this (or equivalent) factory.-
Methods inherited from class com.tangosol.util.Base
azzert, azzert, azzert, azzertFailed, breakLines, breakLines, capitalize, checkNotEmpty, checkNotNull, checkRange, computeSafeWaitTime, decimalValue, dup, dup, ensureBigDecimal, ensureClassLoader, ensureRuntimeException, ensureRuntimeException, equals, equalsDeep, err, err, err, err, err, escape, formatDateTime, getCallerStackFrame, getCommonMonitor, getCommonMonitor, getCommonMonitor, getContextClassLoader, getContextClassLoader, getDeepMessage, getErr, getLastSafeTimeMillis, getLog, getMaxDecDigits, getMaxHexDigits, getOriginalException, getOut, getProcessRandom, getRandom, getRandomBinary, getRandomBinary, getRandomString, getSafeTimeMillis, getStackFrame, getStackFrames, getStackTrace, getStackTrace, getStackTrace, getThreadFactory, getTimeZone, getUpTimeMillis, hashCode, hexValue, indentString, indentString, isDecimal, isHex, isLogEcho, isOctal, log, log, log, log, log, makeInteger, makeLong, makeThread, mergeArray, mergeBooleanArray, mergeByteArray, mergeCharArray, mergeDoubleArray, mergeFloatArray, mergeIntArray, mergeLongArray, mod, mod, newHashMap, newHashMap, newHashSet, newHashSet, octalValue, out, out, out, out, out, pad, parseBandwidth, parseBandwidth, parseDelimitedString, parseHex, parseHex, parseMemorySize, parseMemorySize, parsePercentage, parseTime, parseTime, parseTimeNanos, parseTimeNanos, printStackTrace, randomize, randomize, randomize, randomize, read, read, read, read, read, read, read, replace, setErr, setLog, setLogEcho, setOut, sleep, toBandwidthString, toBandwidthString, toCharEscape, toCrc, toCrc, toCrc, toCrc, toCrc, toDecString, toDelimitedString, toDelimitedString, toDelimitedString, toDelimitedString, toHex, toHex, toHexDump, toHexEscape, toHexEscape, toHexEscape, toHexEscape, toHexString, toMemorySizeString, toMemorySizeString, toQuotedCharEscape, toQuotedStringEscape, toSqlString, toString, toString, toStringEscape, toUnicodeEscape, trace, trace, trace, trace, trace, trace, trace, trace, trace, truncateString, truncateString, wait
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.tangosol.net.ConfigurableCacheFactory
ensureCache, ensureTopic, ensureTypedCache
-
-
-
-
Field Detail
-
FILE_CFG_CACHE
public static final String FILE_CFG_CACHE
The default configuration file name.- See Also:
- Constant Field Values
-
CACHE_NAME
public static final String CACHE_NAME
The name of the replaceable parameter representing the cache name.- See Also:
- Constant Field Values
-
CLASS_LOADER
public static final String CLASS_LOADER
The name of the replaceable parameter representing the class loader.- See Also:
- Constant Field Values
-
MGR_CONTEXT
public static final String MGR_CONTEXT
The name of the replaceable parameter representing the backing map manager context.- See Also:
- Constant Field Values
-
SCHEME_REF
public static final String SCHEME_REF
The name of the replaceable parameter representing a scheme reference.- See Also:
- Constant Field Values
-
CACHE_REF
public static final String CACHE_REF
The name of the replaceable parameter representing a cache reference.- See Also:
- Constant Field Values
-
CACHE_FACTORY
public static final String CACHE_FACTORY
The name of the replaceable parameter representing a cache factory.- See Also:
- Constant Field Values
-
SCHEME_UNKNOWN
public static final int SCHEME_UNKNOWN
The unknown scheme type.- See Also:
- Constant Field Values
-
SCHEME_REPLICATED
public static final int SCHEME_REPLICATED
The replicated cache scheme.- See Also:
- Constant Field Values
-
SCHEME_OPTIMISTIC
public static final int SCHEME_OPTIMISTIC
The optimistic cache scheme.- See Also:
- Constant Field Values
-
SCHEME_DISTRIBUTED
public static final int SCHEME_DISTRIBUTED
The distributed cache scheme.- See Also:
- Constant Field Values
-
SCHEME_NEAR
public static final int SCHEME_NEAR
The near cache scheme.- See Also:
- Constant Field Values
-
SCHEME_VERSIONED_NEAR
public static final int SCHEME_VERSIONED_NEAR
The versioned near cache scheme.- See Also:
- Constant Field Values
-
SCHEME_LOCAL
public static final int SCHEME_LOCAL
The local cache scheme.- See Also:
- Constant Field Values
-
SCHEME_OVERFLOW
public static final int SCHEME_OVERFLOW
The overflow map scheme.- See Also:
- Constant Field Values
-
SCHEME_DISK
public static final int SCHEME_DISK
Deprecated.As of Coherence 3.0, replaced bySCHEME_EXTERNALandSCHEME_EXTERNAL_PAGEDThe disk scheme.- See Also:
- Constant Field Values
-
SCHEME_EXTERNAL
public static final int SCHEME_EXTERNAL
The external scheme.- See Also:
- Constant Field Values
-
SCHEME_EXTERNAL_PAGED
public static final int SCHEME_EXTERNAL_PAGED
The paged-external scheme.- See Also:
- Constant Field Values
-
SCHEME_CLASS
public static final int SCHEME_CLASS
The custom class scheme.- See Also:
- Constant Field Values
-
SCHEME_READ_WRITE_BACKING
public static final int SCHEME_READ_WRITE_BACKING
The read write backing map scheme.- See Also:
- Constant Field Values
-
SCHEME_VERSIONED_BACKING
public static final int SCHEME_VERSIONED_BACKING
The versioned backing map scheme.- See Also:
- Constant Field Values
-
SCHEME_INVOCATION
public static final int SCHEME_INVOCATION
The invocation service scheme.- See Also:
- Constant Field Values
-
SCHEME_PROXY
public static final int SCHEME_PROXY
The proxy service scheme.- See Also:
- Constant Field Values
-
SCHEME_REMOTE_CACHE
public static final int SCHEME_REMOTE_CACHE
The remote cache scheme.- See Also:
- Constant Field Values
-
SCHEME_REMOTE_INVOCATION
public static final int SCHEME_REMOTE_INVOCATION
The remote invocation scheme.- See Also:
- Constant Field Values
-
SCHEME_TRANSACTIONAL
public static final int SCHEME_TRANSACTIONAL
The transactional cache scheme.- See Also:
- Constant Field Values
-
SCHEME_FLASHJOURNAL
public static final int SCHEME_FLASHJOURNAL
The flash journal cache scheme.- See Also:
- Constant Field Values
-
SCHEME_RAMJOURNAL
public static final int SCHEME_RAMJOURNAL
The ram journal cache scheme.- See Also:
- Constant Field Values
-
MAP_SCHEMETYPE_BY_SCHEMENAME
public static final HashMap<String,Integer> MAP_SCHEMETYPE_BY_SCHEMENAME
The mappings from scheme name to scheme type.
-
f_store
protected final com.tangosol.net.internal.ScopedCacheReferenceStore f_store
Store that holds cache references scoped by class loader and optionally, if configured, Subject.
-
f_storeTopics
protected final com.tangosol.net.internal.ScopedReferenceStore<NamedTopic> f_storeTopics
Store that holdsNamedTopicreferences scoped by class loader and optionally, if configured, Subject.
-
f_dispatcher
protected final com.tangosol.net.events.internal.ConfigurableCacheFactoryDispatcher f_dispatcher
ConfigurableCacheFactoryDispatcher linked to this cache factory.
-
m_mapServices
protected Map<Service,String> m_mapServices
Map used to hold references to services that are ensured by this factory where values are non-scoped service names.
-
m_setManager
protected Set<BackingMapManager> m_setManager
A Set of BackingMapManager instances registered by this factory.Note: we rely on the BackingMapManager classes *not* to override the hashCode() and equals() methods.
-
m_fActivated
protected boolean m_fActivated
Indicates whether this factory has been activated.
-
m_fDisposed
protected boolean m_fDisposed
Indicates whether this factory has been disposed.
-
-
Constructor Detail
-
ExtensibleConfigurableCacheFactory
public ExtensibleConfigurableCacheFactory(ExtensibleConfigurableCacheFactory.Dependencies dependencies)
Constructs anExtensibleConfigurableCacheFactoryusing the specifiedExtensibleConfigurableCacheFactory.Dependencies.- Parameters:
dependencies- theExtensibleConfigurableCacheFactory.Dependencies
-
-
Method Detail
-
ensureCache
public <K,V> NamedCache<K,V> ensureCache(String sCacheName, ClassLoader loader, NamedMap.Option... options)
Description copied from interface:ConfigurableCacheFactoryEnsure an cache for the given name, classloader and options.- Specified by:
ensureCachein interfaceConfigurableCacheFactory- Parameters:
sCacheName- the cache nameloader- ClassLoader that should be used to deserialize objects in the cacheoptions- theNamedMap.Options- Returns:
- a NamedCache created
-
releaseCache
public void releaseCache(NamedCache cache)
Release a cache and its associated resources.Releasing a cache makes it no longer usable, but does not affect the cache itself. In other words, all other references to the cache will still be valid, and the cache data is not affected by releasing the reference. Any attempt to use the released cache reference afterword will result in an exception.
- Specified by:
releaseCachein interfaceConfigurableCacheFactory- Parameters:
cache- the cache to release
-
destroyCache
public void destroyCache(NamedCache cache)
Release and destroy this instance of NamedCache.Warning: This method is used to completely destroy the specified cache across the cluster. All references in the entire cluster to this cache will be invalidated, the cached data will be cleared, and all internal and associated resources will be released.
- Specified by:
destroyCachein interfaceConfigurableCacheFactory- Parameters:
cache- the cache to release
-
ensureTopic
public <V> NamedTopic<V> ensureTopic(String sName, ClassLoader loader, NamedCollection.Option... options)
Ensure an Object-based topic for the given name.- Specified by:
ensureTopicin interfaceConfigurableCacheFactory- Parameters:
sName- the topic nameloader- ClassLoader that should be used to deserialize objects in the cacheoptions- theNamedCollection.Options to control any optional topic configuration- Returns:
- a NamedTopic created
-
ensureService
public Service ensureService(String sServiceName)
Ensure a service for the given name.- Specified by:
ensureServicein interfaceConfigurableCacheFactory- Parameters:
sServiceName- the service name- Returns:
- a Service created
-
activate
public void activate()
Activate prepares the factory to be used within a container and should be called before any other factory method.- Specified by:
activatein interfaceConfigurableCacheFactory
-
dispose
public void dispose()
Dispose of this factory. This will stop all services that were started by this factory and dispose of all resources registered viaConfigurableCacheFactory.getResourceRegistry(). This factory may not be used after invoking dispose.- Specified by:
disposein interfaceConfigurableCacheFactory
-
getResourceRegistry
public ResourceRegistry getResourceRegistry()
Return theResourceRegistryfor this factory.- Specified by:
getResourceRegistryin interfaceConfigurableCacheFactory- Returns:
- the ResourceRegistry for this factory
-
getInterceptorRegistry
public InterceptorRegistry getInterceptorRegistry()
Return theInterceptorRegistryfor this factory.EventInterceptors registered with this registry will be scoped to services and caches created by this factory.- Specified by:
getInterceptorRegistryin interfaceConfigurableCacheFactory- Returns:
- the
InterceptorRegistryfor this factory
-
isActive
public boolean isActive()
Returnstrueif thisExtensibleConfigurableCacheFactoryis activated.- Specified by:
isActivein interfaceConfigurableCacheFactory- Returns:
trueif thisExtensibleConfigurableCacheFactoryis activated
-
getScopeName
public String getScopeName()
Return the scope name for this ConfigurableCacheFactory. If specified, this name will be used as a prefix for the name of all services created by this factory.- Specified by:
getScopeNamein interfaceConfigurableCacheFactory- Returns:
- the scope name for this ConfigurableCacheFactory; may be null
-
getRequestTimeout
protected long getRequestTimeout(ServiceScheme scheme)
Return the request timeout determined by theServiceScheme.- Parameters:
scheme- the scheme that determines the request timeout- Returns:
- the request timeout
-
isDisposed
public boolean isDisposed()
Return true if this factory has been disposed via invocation ofdispose().- Specified by:
isDisposedin interfaceConfigurableCacheFactory- Returns:
- true if this factory has been disposed
-
assertNotDisposed
protected void assertNotDisposed()
ThrowsIllegalStateExceptionif this factory has been disposed via invocation ofdispose().
-
configure
protected void configure()
Performs final configuration of anExtensibleConfigurableCacheFactoryinstance prior to it being used by Coherence.This method is called by the
ExtensibleConfigurableCacheFactoryconstructor, just after the internal state has been initialized and before theExtensibleConfigurableCacheFactoryinstance is returned to the caller.This method allows those that need to sub-class an
ExtensibleConfigurableCacheFactoryto override the final stages of configuration. Anyone overriding this method must be sure to call super.configure() in order to ensure correction configuration semantics.
-
ensureService
public Service ensureService(ServiceScheme scheme)
Ensure the service for the specified scheme then start the service if it isn't running.- Parameters:
scheme- the scheme referring to the service- Returns:
- the corresponding Service
-
getCacheConfig
public CacheConfig getCacheConfig()
Return theCacheConfigthat contains the configuration used by this factory.- Returns:
- the CacheConfig
-
translateStandardSchemeType
protected static int translateStandardSchemeType(String sScheme)
Translate the scheme name into the scheme type. Valid scheme types are any of the SCHEME_* constants.- Parameters:
sScheme- the scheme name- Returns:
- the scheme type
-
startServices
public void startServices()
Start all services that are declared as requiring an "autostart".
-
getServiceMap
public Map<Service,String> getServiceMap()
Return a map of services that were successfully started by this factory where values are corresponding non-scoped service names.Note, that this method returns a copy of the underlying map
-
startService
protected void startService(Service service)
Start the givenService. Extensions of this class can override this method to provide pre/post start functionality.- Parameters:
service- theServiceto start
-
setConfigClassLoader
protected void setConfigClassLoader(ClassLoader loader)
Set the class loader used to load the configuration for this factory.- Parameters:
loader- the class loader to use for loading the configuration
-
getConfigClassLoader
protected ClassLoader getConfigClassLoader()
Return the class loader used to load the configuration for this factory.- Returns:
- the class loader to use for loading the configuration
-
checkPermission
protected static void checkPermission(NamedCache cache)
Check if the current user is allowed to "join" the cache.- Parameters:
cache- the cache
-
checkPermission
protected static void checkPermission(NamedCollection collection)
Check if the current user is allowed to "join" to the collection.- Parameters:
collection- the collection
-
checkPermission
protected static void checkPermission(Service service, String sName)
Check if the current user is allowed to "join" the data structure with the specified name.- Parameters:
service- the servicesName- the data structure name
-
getParameterResolver
public ParameterResolver getParameterResolver(String sCacheName, ClassLoader loader, BackingMapManagerContext ctxBMM)
Return the ParameterResolver that has been initialized with the built-in Coherence parameters. Schemes may use expressions (macros) and the resolver contains the parameters that are defined in the cache mapping needed to translate those expressions into values.- Parameters:
sCacheName- the cache nameloader- the ClassLoaderctxBMM- the BackingMapManagerContext- Returns:
- the ParameterResolver
-
getParameterResolver
public <M extends ResourceMapping> ParameterResolver getParameterResolver(String sResourceName, Class<M> clzResourceMapping, ClassLoader loader, BackingMapManagerContext ctxBMM)
Return the ParameterResolver that has been initialized with the built-in Coherence parameters. Schemes may use expressions (macros) and the resolver contains the parameters that are defined in the cache mapping needed to translate those expressions into values.- Parameters:
sResourceName- the resource nameclzResourceMapping- resource typeloader- the ClassLoaderctxBMM- the BackingMapManagerContext- Returns:
- the ParameterResolver
- Since:
- 14.1.1.0
-
createParameterResolver
public ParameterResolver createParameterResolver(ClassLoader loader, BackingMapManagerContext ctxBMM)
Return the ParameterResolver that has been initialized with the built-in Coherence parameters. Schemes may use expressions (macros) and the resolver contains the parameters that are defined for components defined at a scheme level and not a cache level.- Parameters:
loader- the ClassLoaderctxBMM- the BackingMapManagerContext- Returns:
- the ParameterResolver
-
registerBackingMapManager
protected void registerBackingMapManager(BackingMapManager mgr)
Register the specified BackingMapManager as a "valid" one. That registry is used to identify services configured and started by this factory and prevent accidental usage of (potentially incompatible) cache services with the same name created by other factories.- Parameters:
mgr- a BackingMapManager instance instantiated by this factory
-
validateBackingMapManager
protected void validateBackingMapManager(CacheService service) throws IllegalStateException
Ensures that the backing map manager of the specified service was configured by this (or equivalent) factory. This validation is performed to prevent accidental usage of (potentially incompatible) cache services with the same name created by other factories.- Parameters:
service- the CacheService to validate- Throws:
IllegalStateException- if the backing map for the provided service does not reference the expected factory
-
release
protected void release(Map map, Map mapListeners)
Release all resources associated with the specified backing map.- Parameters:
map- the map being releasedmapListeners- map of registered map listeners keyed by the corresponding map references
-
release
protected void release(CacheLoader loader)
Release all resources associated with the specified loader.- Parameters:
loader- the cache loader being released
-
release
protected void release(BinaryStore store)
Release all resources associated with the specified binary store.- Parameters:
store- the binary store being released
-
releaseCache
protected void releaseCache(NamedCache cache, boolean fDestroy)
Release a cache managed by this factory, optionally destroying it.- Parameters:
cache- the cache to releasefDestroy- true to destroy the cache as well
-
releaseTopic
public void releaseTopic(NamedTopic<?> topic)
Release aNamedTopicand its associated resources.Releasing a topic makes it no longer usable, but does not affect the topic itself. In other words, all other references to the topic will still be valid, and the topic data is not affected by releasing the reference. Any attempt to use the released topic reference afterword will result in an exception.
- Specified by:
releaseTopicin interfaceConfigurableCacheFactory- Parameters:
topic- the topic to release
-
destroyTopic
public void destroyTopic(NamedTopic<?> topic)
Release and destroy this instance ofNamedTopic.Warning: This method is used to completely destroy the specified topic across the cluster. All references in the entire cluster to this topic will be invalidated, the topic data will be cleared, and all internal and associated resources will be released.
- Specified by:
destroyTopicin interfaceConfigurableCacheFactory- Parameters:
topic- the topic to release
-
isCacheActive
public boolean isCacheActive(String sCacheName, ClassLoader loader)
Validate whether a cache with the given name is active in the context of the givenClassLoader. The ClassLoader should be the same as provided to a previous call toConfigurableCacheFactory.ensureCache(String, ClassLoader, NamedCache.Option...).- Specified by:
isCacheActivein interfaceConfigurableCacheFactory- Parameters:
sCacheName- the cache nameloader- the ClassLoader used to originally obtain the cache- Returns:
- true if cache is active in context of the provided ClassLoader
-
isTopicActive
public boolean isTopicActive(String sTopicName, ClassLoader loader)
Validate whether a topic with the given name is active in the context of the givenClassLoader. The ClassLoader should be the same as provided to a previous call toConfigurableCacheFactory.ensureTopic(String, ClassLoader, NamedTopic.Option...).- Specified by:
isTopicActivein interfaceConfigurableCacheFactory- Parameters:
sTopicName- the topic nameloader- the ClassLoader used to originally obtain the topic- Returns:
- true if topic is active in context of the provided ClassLoader
-
-