org.infinispan.manager
Class AbstractDelegatingEmbeddedCacheManager

java.lang.Object
  extended by org.infinispan.manager.AbstractDelegatingEmbeddedCacheManager
All Implemented Interfaces:
BasicCacheContainer, Lifecycle, CacheContainer, EmbeddedCacheManager, Listenable

public class AbstractDelegatingEmbeddedCacheManager
extends Object
implements EmbeddedCacheManager

This is a convenient base class for implementing a cache manager delegate. The only constructor takes a EmbeddedCacheManager argument, to which each method call is delegated. One can extend this class and only override the method sub-set it is interested in.

Author:
Dan Berindei <dan@infinispan.org>
See Also:
AbstractDelegatingCache, AbstractDelegatingAdvancedCache

Field Summary
protected  EmbeddedCacheManager cm
           
 
Fields inherited from interface org.infinispan.api.BasicCacheContainer
DEFAULT_CACHE_NAME
 
Constructor Summary
AbstractDelegatingEmbeddedCacheManager(EmbeddedCacheManager cm)
           
 
Method Summary
 void addListener(Object listener)
          Adds a listener to the component.
 boolean cacheExists(String cacheName)
          A cache is considered to exist if it has been created and started via one of the CacheContainer.getCache() methods and has not yet been removed via EmbeddedCacheManager.removeCache(String).
 Configuration defineConfiguration(String cacheName, Configuration configurationOverride)
          Defines a named cache's configuration using the following algorithm:

If cache name hasn't been defined before, this method creates a clone of the default cache's configuration, applies a clone of the configuration overrides passed in and returns this configuration instance.

 Configuration defineConfiguration(String cacheName, Configuration configuration)
          Defines a named cache's configuration using the following algorithm:

Unlike previous versions of Infinispan, this method does not build on an existing configuration (default or named).

 Configuration defineConfiguration(String cacheName, String templateCacheName, Configuration configurationOverride)
          Defines a named cache's configuration using the following algorithm:

Regardless of whether the cache name has been defined or not, this method creates a clone of the configuration of the cache whose name matches the given template cache name, then applies a clone of the configuration overrides passed in and finally returns this configuration instance.

 Address getAddress()
           
<K,V> Cache<K,V>
getCache()
          This method overrides the underlying CacheContainer.getCache(), to return a Cache instead of a BasicCache
<K,V> Cache<K,V>
getCache(String cacheName)
          This method overrides the underlying CacheContainer.getCache(String), to return a Cache instead of a BasicCache
<K,V> Cache<K,V>
getCache(String cacheName, boolean createIfAbsent)
          Retrieves a named cache from the system in the same way that CacheContainer.getCache(String) does except that if offers the possibility for the named cache not to be retrieved if it has not yet been started, or if it's been removed after being started.
 Configuration getCacheConfiguration(String name)
          Returns the configuration for the given cache.
 GlobalConfiguration getCacheManagerConfiguration()
          Returns global configuration for this CacheManager
 Set<String> getCacheNames()
          This method returns a collection of caches names which contains the caches that have been defined via XML or programmatically, and the caches that have been created at runtime via this cache manager instance.
 String getClusterName()
           
 Address getCoordinator()
           
 Configuration getDefaultCacheConfiguration()
          Returns default configuration for this CacheManager
 Configuration getDefaultConfiguration()
          Returns default configuration for this CacheManager
 GlobalConfiguration getGlobalConfiguration()
          Returns global configuration for this CacheManager
 Set<Object> getListeners()
           
 List<Address> getMembers()
           
 ComponentStatus getStatus()
           
 Transport getTransport()
           
 boolean isCoordinator()
           
 boolean isDefaultRunning()
          Tests whether the default cache is running.
 boolean isRunning(String cacheName)
          Tests whether a named cache is running.
 void removeCache(String cacheName)
          Removes a cache with the given name from the system.
 void removeListener(Object listener)
          Removes a listener from the component.
 void start()
           
 EmbeddedCacheManager startCaches(String... cacheNames)
          Starts a set of caches in parallel.
 void stop()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

cm

protected EmbeddedCacheManager cm
Constructor Detail

AbstractDelegatingEmbeddedCacheManager

public AbstractDelegatingEmbeddedCacheManager(EmbeddedCacheManager cm)
Method Detail

defineConfiguration

public Configuration defineConfiguration(String cacheName,
                                         Configuration configurationOverride)
Description copied from interface: EmbeddedCacheManager
Defines a named cache's configuration using the following algorithm:

If cache name hasn't been defined before, this method creates a clone of the default cache's configuration, applies a clone of the configuration overrides passed in and returns this configuration instance.

If cache name has been previously defined, this method creates a clone of this cache's existing configuration, applies a clone of the configuration overrides passed in and returns the configuration instance.

The other way to define named cache's configuration is declaratively, in the XML file passed in to the cache manager. This method enables you to override certain properties that have previously been defined via XML.

Passing a brand new Configuration instance as configuration override without having called any of its setters will effectively return the named cache's configuration since no overrides where passed to it.

Specified by:
defineConfiguration in interface EmbeddedCacheManager
Parameters:
cacheName - name of cache whose configuration is being defined
configurationOverride - configuration overrides to use
Returns:
a cloned configuration instance

defineConfiguration

public Configuration defineConfiguration(String cacheName,
                                         String templateCacheName,
                                         Configuration configurationOverride)
Description copied from interface: EmbeddedCacheManager
Defines a named cache's configuration using the following algorithm:

Regardless of whether the cache name has been defined or not, this method creates a clone of the configuration of the cache whose name matches the given template cache name, then applies a clone of the configuration overrides passed in and finally returns this configuration instance.

The other way to define named cache's configuration is declaratively, in the XML file passed in to the cache manager. This method enables you to override certain properties that have previously been defined via XML.

Passing a brand new Configuration instance as configuration override without having called any of its setters will effectively return the named cache's configuration since no overrides where passed to it.

If templateName is null or there isn't any named cache with that name, this methods works exactly like EmbeddedCacheManager.defineConfiguration(String, Configuration) in the sense that the base configuration used is the default cache configuration.

Specified by:
defineConfiguration in interface EmbeddedCacheManager
Parameters:
cacheName - name of cache whose configuration is being defined
templateCacheName - name of cache to which to which apply overrides if cache name has not been previously defined
configurationOverride - configuration overrides to use
Returns:
a cloned configuration instance

defineConfiguration

public Configuration defineConfiguration(String cacheName,
                                         Configuration configuration)
Description copied from interface: EmbeddedCacheManager
Defines a named cache's configuration using the following algorithm:

Unlike previous versions of Infinispan, this method does not build on an existing configuration (default or named). If you want this behavior, then use ConfigurationBuilder.read(org.infinispan.configuration.cache.Configuration).

The other way to define named cache's configuration is declaratively, in the XML file passed in to the cache manager. This method enables you to override certain properties that have previously been defined via XML.

Passing a brand new Configuration instance as configuration override without having called any of its setters will effectively return the named cache's configuration since no overrides where passed to it.

Specified by:
defineConfiguration in interface EmbeddedCacheManager
Parameters:
cacheName - name of cache whose configuration is being defined
configuration - configuration overrides to use
Returns:
a cloned configuration instance

getClusterName

public String getClusterName()
Specified by:
getClusterName in interface EmbeddedCacheManager
Returns:
the name of the cluster. Null if running in local mode.

getMembers

public List<Address> getMembers()
Specified by:
getMembers in interface EmbeddedCacheManager
Returns:
the addresses of all the members in the cluster.

getAddress

public Address getAddress()
Specified by:
getAddress in interface EmbeddedCacheManager
Returns:
the address of the local node

getCoordinator

public Address getCoordinator()
Specified by:
getCoordinator in interface EmbeddedCacheManager
Returns:
the address of the cluster's coordinator

isCoordinator

public boolean isCoordinator()
Specified by:
isCoordinator in interface EmbeddedCacheManager
Returns:
whether the local node is the cluster's coordinator

getStatus

public ComponentStatus getStatus()
Specified by:
getStatus in interface EmbeddedCacheManager
Returns:
the status of the cache manager

getGlobalConfiguration

public GlobalConfiguration getGlobalConfiguration()
Description copied from interface: EmbeddedCacheManager
Returns global configuration for this CacheManager

Specified by:
getGlobalConfiguration in interface EmbeddedCacheManager
Returns:
the global configuration object associated to this CacheManager

getDefaultConfiguration

public Configuration getDefaultConfiguration()
Description copied from interface: EmbeddedCacheManager
Returns default configuration for this CacheManager

Specified by:
getDefaultConfiguration in interface EmbeddedCacheManager
Returns:
the default configuration associated with this CacheManager

getDefaultCacheConfiguration

public Configuration getDefaultCacheConfiguration()
Description copied from interface: EmbeddedCacheManager
Returns default configuration for this CacheManager

Specified by:
getDefaultCacheConfiguration in interface EmbeddedCacheManager
Returns:
the default configuration associated with this CacheManager

getCacheManagerConfiguration

public GlobalConfiguration getCacheManagerConfiguration()
Description copied from interface: EmbeddedCacheManager
Returns global configuration for this CacheManager

Specified by:
getCacheManagerConfiguration in interface EmbeddedCacheManager
Returns:
the global configuration object associated to this CacheManager

getCacheConfiguration

public Configuration getCacheConfiguration(String name)
Description copied from interface: EmbeddedCacheManager
Returns the configuration for the given cache.

Specified by:
getCacheConfiguration in interface EmbeddedCacheManager
Returns:
the configuration for the given cache or null if no such cache is defined

getCacheNames

public Set<String> getCacheNames()
Description copied from interface: EmbeddedCacheManager
This method returns a collection of caches names which contains the caches that have been defined via XML or programmatically, and the caches that have been created at runtime via this cache manager instance. If no named caches are registered or no caches have been created, this method returns an empty set. The default cache is never included in this set of cache names.

Specified by:
getCacheNames in interface EmbeddedCacheManager
Returns:
an immutable set of non-default named caches registered or created with this cache manager.

isRunning

public boolean isRunning(String cacheName)
Description copied from interface: EmbeddedCacheManager
Tests whether a named cache is running.

Specified by:
isRunning in interface EmbeddedCacheManager
Parameters:
cacheName - name of cache to test.
Returns:
true if the named cache exists and is running; false otherwise.

isDefaultRunning

public boolean isDefaultRunning()
Description copied from interface: EmbeddedCacheManager
Tests whether the default cache is running.

Specified by:
isDefaultRunning in interface EmbeddedCacheManager
Returns:
true if the default cache is running; false otherwise.

cacheExists

public boolean cacheExists(String cacheName)
Description copied from interface: EmbeddedCacheManager
A cache is considered to exist if it has been created and started via one of the CacheContainer.getCache() methods and has not yet been removed via EmbeddedCacheManager.removeCache(String).

In environments when caches are continuously created and removed, this method offers the possibility to find out whether a cache has either, not been started, or if it was started, whether it's been removed already or not.

Specified by:
cacheExists in interface EmbeddedCacheManager
Returns:
true if the cache with the given name has not yet been started, or if it was started, whether it's been removed or not.

getCache

public <K,V> Cache<K,V> getCache(String cacheName,
                                 boolean createIfAbsent)
Description copied from interface: EmbeddedCacheManager
Retrieves a named cache from the system in the same way that CacheContainer.getCache(String) does except that if offers the possibility for the named cache not to be retrieved if it has not yet been started, or if it's been removed after being started.

Specified by:
getCache in interface EmbeddedCacheManager
Parameters:
cacheName - name of cache to retrieve
createIfAbsent - if false, the named cache will not be retrieved if it hasn't been retrieved previously or if it's been removed. If true, this methods works just like CacheContainer.getCache(String)
Returns:
null if no named cache exists as per rules set above, otherwise returns a cache instance identified by cacheName

startCaches

public EmbeddedCacheManager startCaches(String... cacheNames)
Description copied from interface: EmbeddedCacheManager
Starts a set of caches in parallel. Infinispan doesn't yet support asymmetric clusters (that is, two nodes having different sets of caches running). Calling this method on application/application server startup with all your cache names will ensure that the cluster is symmetric.

Specified by:
startCaches in interface EmbeddedCacheManager
Parameters:
cacheNames - the names of the caches to start

removeCache

public void removeCache(String cacheName)
Description copied from interface: EmbeddedCacheManager
Removes a cache with the given name from the system. This is a cluster wide operation that results not only in stopping the cache with the given name in all nodes in the cluster, but also deletes its contents both in memory and in any backing cache store.

Specified by:
removeCache in interface EmbeddedCacheManager
Parameters:
cacheName - name of cache to remove

getTransport

public Transport getTransport()
Specified by:
getTransport in interface EmbeddedCacheManager

getCache

public <K,V> Cache<K,V> getCache()
Description copied from interface: CacheContainer
This method overrides the underlying CacheContainer.getCache(), to return a Cache instead of a BasicCache

Specified by:
getCache in interface BasicCacheContainer
Specified by:
getCache in interface CacheContainer
Returns:
the default cache.

getCache

public <K,V> Cache<K,V> getCache(String cacheName)
Description copied from interface: CacheContainer
This method overrides the underlying CacheContainer.getCache(String), to return a Cache instead of a BasicCache

Specified by:
getCache in interface BasicCacheContainer
Specified by:
getCache in interface CacheContainer
Parameters:
cacheName - name of cache to retrieve
Returns:
a cache instance identified by cacheName

start

public void start()
Specified by:
start in interface Lifecycle

stop

public void stop()
Specified by:
stop in interface Lifecycle

addListener

public void addListener(Object listener)
Description copied from interface: Listenable
Adds a listener to the component. Typically, listeners would need to be annotated with Listener and further to that, contain methods annotated appropriately, otherwise the listener will not be registered.

See the Listener annotation for more information.

Specified by:
addListener in interface Listenable
Parameters:
listener - must not be null.

removeListener

public void removeListener(Object listener)
Description copied from interface: Listenable
Removes a listener from the component.

Specified by:
removeListener in interface Listenable
Parameters:
listener - listener to remove. Must not be null.

getListeners

public Set<Object> getListeners()
Specified by:
getListeners in interface Listenable
Returns:
a set of all listeners registered on this component.

-->

Copyright © 2012 JBoss, a division of Red Hat. All Rights Reserved.