org.infinispan.manager
Interface CacheManager

All Superinterfaces:
Lifecycle, Listenable
All Known Implementing Classes:
DefaultCacheManager

public interface CacheManager
extends Lifecycle, Listenable

A CacheManager is the primary mechanism for retrieving a Cache instance, and is often used as a starting point to using the Cache.

CacheManagers are heavyweight objects, and we foresee no more than one CacheManager being used per JVM (unless specific configuration requirements require more than one; but either way, this would be a minimal and finite number of instances).

Constructing a CacheManager is done via one of its constructors, which optionally take in a Configuration or a path or URL to a configuration XML file.

Lifecycle - CacheManagers have a lifecycle (it implements Lifecycle) and the default constructors also call Lifecycle.start(). Overloaded versions of the constructors are available, that do not start the CacheManager, although it must be kept in mind that CacheManagers need to be started before they can be used to create Cache instances.

Once constructed, CacheManagers should be made available to any component that requires a Cache, via JNDI or via some other mechanism such as an IoC container.

You obtain Cache instances from the CacheManager by using one of the overloaded getCache(), methods. Note that with getCache(), there is no guarantee that the instance you get is brand-new and empty, since caches are named and shared. Because of this, the CacheManager also acts as a repository of Caches, and is an effective mechanism of looking up or creating Caches on demand.

When the system shuts down, it should call Lifecycle.stop() on the CacheManager. This will ensure all caches within its scope are properly stopped as well.

Sample usage: CacheManager manager = CacheManager.getInstance("my-config-file.xml"); Cache entityCache = manager.getCache("myEntityCache"); entityCache.put("aPerson", new Person());

Configuration myNewConfiguration = new Configuration(); myNewConfiguration.setCacheMode(Configuration.CacheMode.LOCAL); manager.defineCache("myLocalCache", myNewConfiguration); Cache localCache = manager.getCache("myLocalCache");

Since:
4.0
Author:
Manik Surtani (manik@jboss.org)

Method Summary
 void defineCache(String cacheName, Configuration configurationOverride)
          Defines a named cache.
 Address getAddress()
           
<K,V> Cache<K,V>
getCache()
          Retrieves the default cache associated with this cache manager.
<K,V> Cache<K,V>
getCache(String cacheName)
          Retrieves a named cache from the system.
 String getClusterName()
           
 List<Address> getMembers()
           
 ComponentStatus getStatus()
           
 boolean isCoordinator()
           
 
Methods inherited from interface org.infinispan.lifecycle.Lifecycle
start, stop
 
Methods inherited from interface org.infinispan.notifications.Listenable
addListener, getListeners, removeListener
 

Method Detail

defineCache

void defineCache(String cacheName,
                 Configuration configurationOverride)
                 throws DuplicateCacheNameException
Defines a named cache. Named caches can be defined by using this method, in which case the configuration passed in is used to override the default configuration used when this cache manager instance was created.

The other way to define named caches is declaratively, in the XML file passed in to the cache manager.

A combination of approaches may also be used, provided the names do not conflict.

Parameters:
cacheName - name of cache to define
configurationOverride - configuration overrides to use
Throws:
DuplicateCacheNameException - if the name is already in use.

getCache

<K,V> Cache<K,V> getCache()
Retrieves the default cache associated with this cache manager.

As such, this method is always guaranteed to return the default cache.

Returns:
the default cache.

getCache

<K,V> Cache<K,V> getCache(String cacheName)
Retrieves a named cache from the system. If the cache has been previously created with the same name, the running cache instance is returned. Otherwise, this method attempts to create the cache first.

When creating a new cache, this method will use the configuration passed in to the CacheManager on construction, as a template, and then optionally apply any overrides previously defined for the named cache using the defineCache(String, org.infinispan.config.Configuration) method, or declared in the configuration file.

Parameters:
cacheName - name of cache to retrieve
Returns:
a cache instance identified by cacheName

getClusterName

String getClusterName()
Returns:
the name of the cluster. Null if running in local mode.

getMembers

List<Address> getMembers()

getAddress

Address getAddress()

isCoordinator

boolean isCoordinator()

getStatus

ComponentStatus getStatus()


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