2.2. Instantiating and Starting the Cache
An instance of the
Cache
interface can only be created via a CacheFactory
. This is unlike JBoss Cache 1.x, where an instance of the old TreeCache
class could be directly instantiated.
The
CacheFactory
provides a number of overloaded methods for creating a Cache
, but they all fundamentally do the same thing:
- Gain access to a
Configuration
, either by having one passed in as a method parameter or by parsing XML content and constructing one. The XML content can come from a provided input stream, from a classpath or file system location. See the Chapter 3, Configuration for more on obtaining aConfiguration
. - Instantiate the
Cache
and provide it with a reference to theConfiguration
. - Optionally invoke the cache's
create()
andstart()
methods.
Here is an example of the simplest mechanism for creating and starting a cache, using the default configuration values:
CacheFactory factory = new DefaultCacheFactory(); Cache cache = factory.createCache();
In this example, we tell the
CacheFactory
to find and parse a configuration file on the classpath:
CacheFactory factory = new DefaultCacheFactory(); Cache cache = factory.createCache("cache-configuration.xml");
In this example, we configure the cache from a file, but want to programmatically change a configuration element. So, we tell the factory not to start the cache, and instead do it ourselves:
CacheFactory factory = new DefaultCacheFactory(); Cache cache = factory.createCache("/opt/configurations/cache-configuration.xml", false); Configuration config = cache.getConfiguration(); config.setClusterName(this.getClusterName()); // Have to create and start cache before using it cache.create(); cache.start();