ehcache

net.sf.ehcache.config
Class CacheConfiguration

java.lang.Object
  extended by net.sf.ehcache.config.CacheConfiguration
All Implemented Interfaces:
java.lang.Cloneable

public class CacheConfiguration
extends java.lang.Object
implements java.lang.Cloneable

A value object used to represent cache configuration.

Construction Patterns

The recommended way of creating a Cache in Ehcache 2.0 and above is to create a CacheConfiguration object and pass it to the Cache constructor. See Cache.Cache(CacheConfiguration).

This class supports setter injection and also the fluent builder pattern. e.g. Cache cache = new Cache(new CacheConfiguration("test2", 1000).eternal(true).memoryStoreEvictionPolicy(MemoryStoreEvictionPolicy.FIFO));

Rather than proliferation of new constructors as new versions of Ehcache come out, it intended to add the new configuration to this class.

Another way to set configuration is declaratively in the ehcache.xml configuration file. e.g.

<cache name="testCache1"
   maxElementsInMemory="10000"
   eternal="false"
   timeToIdleSeconds="3600"
   timeToLiveSeconds="10"
   overflowToDisk="true"
   diskPersistent="true"
   diskExpiryThreadIntervalSeconds="120"
   maxElementsOnDisk="10000"
 />
 

Dynamic Configuration

CacheConfiguration instances retrieved from Cache instances allow the dynamic modification of certain configuration properties. Currently the dynamic properties are: Dynamic changes are however not persistent across cache restarts. On restart the cache configuration will be reloaded from its original source, erasing any changes made previously at runtime.

Version:
$Id: CacheConfiguration.java 1893 2010-02-18 07:34:29Z asingh $
Author:
Greg Luck,
Nested Class Summary
static class CacheConfiguration.BootstrapCacheLoaderFactoryConfiguration
          Configuration for the BootstrapCacheLoaderFactoryConfiguration.
static class CacheConfiguration.CacheEventListenerFactoryConfiguration
          Configuration for the CachePeerListenerFactoryConfiguration.
static class CacheConfiguration.CacheExceptionHandlerFactoryConfiguration
          Configuration for the BootstrapCacheLoaderFactoryConfiguration.
static class CacheConfiguration.CacheExtensionFactoryConfiguration
          Configuration for the CacheExtensionFactoryConfiguration.
static class CacheConfiguration.CacheLoaderFactoryConfiguration
          Configuration for the CacheLoaderFactoryConfiguration.
static class CacheConfiguration.TransactionalMode
          Represents whether the Cache is transactional or not.
 
Field Summary
protected  CacheConfiguration.BootstrapCacheLoaderFactoryConfiguration bootstrapCacheLoaderFactoryConfiguration
          The BootstrapCacheLoaderFactoryConfiguration.
protected  java.util.List<CacheConfiguration.CacheEventListenerFactoryConfiguration> cacheEventListenerConfigurations
          The event listener factories added by BeanUtils.
protected  CacheConfiguration.CacheExceptionHandlerFactoryConfiguration cacheExceptionHandlerFactoryConfiguration
          The CacheExceptionHandlerFactoryConfiguration.
protected  java.util.List<CacheConfiguration.CacheExtensionFactoryConfiguration> cacheExtensionConfigurations
          The cache extension factories added by BeanUtils.
protected  java.util.List<CacheConfiguration.CacheLoaderFactoryConfiguration> cacheLoaderConfigurations
          The cache loader factories added by BeanUtils.
protected  CacheWriterConfiguration cacheWriterConfiguration
          The CacheWriterConfiguration.
protected  boolean clearOnFlush
          Sets whether the MemoryStore should be cleared when flush() is called on the cache - true by default.
static int DEFAULT_DISK_ACCESS_STRIPES
           
static long DEFAULT_EXPIRY_THREAD_INTERVAL_SECONDS
          The default interval between runs of the expiry thread.
static MemoryStoreEvictionPolicy DEFAULT_MEMORY_STORE_EVICTION_POLICY
          The default memory store eviction policy is LRU.
static int DEFAULT_SPOOL_BUFFER_SIZE
          Set a buffer size for the spool of approx 30MB.
protected  int diskAccessStripes
          The number of concurrent disk access stripes.
protected  long diskExpiryThreadIntervalSeconds
          The interval in seconds between runs of the disk expiry thread.
protected  boolean diskPersistent
          For caches that overflow to disk, whether the disk cache persists between CacheManager instances.
protected  int diskSpoolBufferSizeMB
          The size of the disk spool used to buffer writes
protected  java.lang.String diskStorePath
          The path where the disk store is located
protected  boolean eternal
          Sets whether elements are eternal.
protected  java.util.Set<CacheConfigurationListener> listeners
          The listeners for this configuration.
protected  boolean loggingEnabled
          Indicates whether logging is enabled or not.
protected  int maxElementsInMemory
          the maximum objects to be held in the MemoryStore.
protected  int maxElementsOnDisk
          the maximum objects to be held in the DiskStore.
protected  MemoryStoreEvictionPolicy memoryStoreEvictionPolicy
          The policy used to evict elements from the MemoryStore.
protected  java.lang.String name
          the name of the cache.
protected  boolean overflowToDisk
          whether elements can overflow to disk when the in-memory cache has reached the set limit.
protected  TerracottaConfiguration terracottaConfiguration
          The TerracottaConfiguration.
protected  long timeToIdleSeconds
          the time to idle for an element before it expires.
protected  long timeToLiveSeconds
          Sets the time to idle for an element before it expires.
 
Constructor Summary
CacheConfiguration(java.lang.String name, int maxElementsInMemory)
          Create a new cache configuration.
 
Method Summary
 void addBootstrapCacheLoaderFactory(CacheConfiguration.BootstrapCacheLoaderFactoryConfiguration factory)
          Allows BeanHandler to add the CacheManagerEventListener to the configuration.
 void addCacheEventListenerFactory(CacheConfiguration.CacheEventListenerFactoryConfiguration factory)
          Used by BeanUtils to add cacheEventListenerFactory elements to the cache configuration.
 void addCacheExceptionHandlerFactory(CacheConfiguration.CacheExceptionHandlerFactoryConfiguration factory)
          Add the CacheExceptionHandlerFactory to the configuration.
 void addCacheExtensionFactory(CacheConfiguration.CacheExtensionFactoryConfiguration factory)
          Used by BeanUtils to add cacheExtensionFactory elements to the cache configuration.
 void addCacheLoaderFactory(CacheConfiguration.CacheLoaderFactoryConfiguration factory)
          Used by BeanUtils to add each cacheLoaderFactory to the cache configuration.
 void addCacheWriter(CacheWriterConfiguration cacheWriterConfiguration)
          Allows BeanHandler to add the CacheWriterConfiguration to the configuration.
 boolean addConfigurationListener(CacheConfigurationListener listener)
          Add a listener to this cache configuration
 void addTerracotta(TerracottaConfiguration terracottaConfiguration)
          Allows BeanHandler to add the TerracottaConfiguration to the configuration.
 CacheConfiguration bootstrapCacheLoaderFactory(CacheConfiguration.BootstrapCacheLoaderFactoryConfiguration factory)
           
 CacheConfiguration cacheEventListenerFactory(CacheConfiguration.CacheEventListenerFactoryConfiguration factory)
           
 CacheConfiguration cacheExceptionHandlerFactory(CacheConfiguration.CacheExceptionHandlerFactoryConfiguration factory)
           
 CacheConfiguration cacheExtensionFactory(CacheConfiguration.CacheExtensionFactoryConfiguration factory)
           
 CacheConfiguration cacheLoaderFactory(CacheConfiguration.CacheLoaderFactoryConfiguration factory)
           
 CacheConfiguration cacheWriter(CacheWriterConfiguration cacheWriterConfiguration)
           
 CacheConfiguration clearOnFlush(boolean clearOnFlush)
          Builder which sets whether the MemoryStore should be cleared when flush() is called on the cache - true by default.
 CacheConfiguration clone()
          Clones this object, following the usual contract.
 CacheConfiguration diskAccessStripes(int stripes)
          Builder which sets the number of disk stripes.
 CacheConfiguration diskExpiryThreadIntervalSeconds(long diskExpiryThreadIntervalSeconds)
          Builder which sets the interval in seconds between runs of the disk expiry thread.
 CacheConfiguration diskPersistent(boolean diskPersistent)
          Builder which sets whether the disk store persists between CacheManager instances.
 CacheConfiguration diskSpoolBufferSizeMB(int diskSpoolBufferSizeMB)
          Builder which sets the disk spool size, which is used to buffer writes to the DiskStore.
 CacheConfiguration diskStorePath(java.lang.String diskStorePath)
          Builder which sets the path that will be used for the disk store.
 CacheConfiguration eternal(boolean eternal)
          Builder which sets whether elements are eternal.
 void freezeConfiguration()
          Freeze this configuration.
 CacheConfiguration.BootstrapCacheLoaderFactoryConfiguration getBootstrapCacheLoaderFactoryConfiguration()
          Accessor
 java.util.List getCacheEventListenerConfigurations()
          Accessor
 CacheConfiguration.CacheExceptionHandlerFactoryConfiguration getCacheExceptionHandlerFactoryConfiguration()
          Accessor
 java.util.List getCacheExtensionConfigurations()
          Accessor
 java.util.List getCacheLoaderConfigurations()
          Accessor
 CacheWriterConfiguration getCacheWriterConfiguration()
          Accessor
 int getDiskAccessStripes()
          Accessor
 long getDiskExpiryThreadIntervalSeconds()
          Accessor
 int getDiskSpoolBufferSizeMB()
          Accessor
 java.lang.String getDiskStorePath()
          Accessor
 int getMaxElementsInMemory()
          Accessor
 int getMaxElementsOnDisk()
          Accessor
 MemoryStoreEvictionPolicy getMemoryStoreEvictionPolicy()
          Accessor
 java.lang.String getName()
          Accessor
 boolean getStatistics()
          Gets whether the cache's statistics will be enabled at startup
 TerracottaConfiguration getTerracottaConfiguration()
          Accessor
 long getTimeToIdleSeconds()
          Accessor
 long getTimeToLiveSeconds()
          Accessor
 CacheConfiguration.TransactionalMode getTransactionalMode()
          To what transactionalMode was the Cache set
 void internalSetCoherent(boolean coherent)
          Intended for internal use only, and subject to change.
 void internalSetDiskCapacity(int capacity)
          Intended for internal use only, and subject to change.
 void internalSetMemCapacity(int capacity)
          Intended for internal use only, and subject to change.
 void internalSetTimeToIdle(long timeToIdle)
          Intended for internal use only, and subject to change.
 void internalSetTimeToLive(long timeToLive)
          Intended for internal use only, and subject to change.
 boolean isClearOnFlush()
          Accessor
 boolean isDiskPersistent()
          Accessor
 boolean isEternal()
          Accessor
 boolean isFrozen()
           
 boolean isLoggingEnabled()
          Only used when cache is clustered with Terracotta
 boolean isOverflowToDisk()
          Accessor
 boolean isTerracottaClustered()
          Helper method to compute whether the cache is clustered or not
 boolean isTransactional()
          Helper method to compute whether the cache is transactional or not
 CacheConfiguration loggingEnabled(boolean enable)
          Builder to enable or disable logging for the cache

This property can be modified dynamically while the cache is operating.

 CacheConfiguration maxElementsInMemory(int maxElementsInMemory)
          Builder that sets the maximum objects to be held in memory (0 = no limit).
 CacheConfiguration maxElementsOnDisk(int maxElementsOnDisk)
          Builder which sets the maximum number elements on Disk.
 CacheConfiguration memoryStoreEvictionPolicy(MemoryStoreEvictionPolicy memoryStoreEvictionPolicy)
          Builder which Sets the eviction policy.
 CacheConfiguration memoryStoreEvictionPolicy(java.lang.String memoryStoreEvictionPolicy)
          Builder that sets the eviction policy.
 CacheConfiguration name(java.lang.String name)
          Builder to set the name of the cache.
 CacheConfiguration overflowToDisk(boolean overflowToDisk)
          Builder which sets whether elements can overflow to disk when the in-memory cache has reached the set limit.
 boolean removeConfigurationListener(CacheConfigurationListener listener)
          Remove the supplied cache configuration listener.
 void setClearOnFlush(boolean clearOnFlush)
          Sets whether the MemoryStore should be cleared when flush() is called on the cache - true by default.
 void setDiskAccessStripes(int stripes)
          Sets the number of disk stripes.
 void setDiskExpiryThreadIntervalSeconds(long diskExpiryThreadIntervalSeconds)
          Sets the interval in seconds between runs of the disk expiry thread.
 void setDiskPersistent(boolean diskPersistent)
          Sets whether the disk store persists between CacheManager instances.
 void setDiskSpoolBufferSizeMB(int diskSpoolBufferSizeMB)
          Sets the disk spool size, which is used to buffer writes to the DiskStore.
 void setDiskStorePath(java.lang.String diskStorePath)
          Sets the path that will be used for the disk store.
 void setEternal(boolean eternal)
          Sets whether elements are eternal.
 void setLoggingEnabled(boolean enable)
          Enables or disables logging for the cache

This property can be modified dynamically while the cache is operating.

 void setMaxElementsInMemory(int maxElementsInMemory)
          Sets the maximum objects to be held in memory (0 = no limit).
 void setMaxElementsOnDisk(int maxElementsOnDisk)
          Sets the maximum number elements on Disk.
 void setMemoryStoreEvictionPolicy(java.lang.String memoryStoreEvictionPolicy)
          Sets the eviction policy.
 void setMemoryStoreEvictionPolicyFromObject(MemoryStoreEvictionPolicy memoryStoreEvictionPolicy)
          Sets the eviction policy.
 void setName(java.lang.String name)
          Sets the name of the cache.
 void setOverflowToDisk(boolean overflowToDisk)
          Sets whether elements can overflow to disk when the in-memory cache has reached the set limit.
 void setStatistics(boolean enabled)
          Sets whether the cache's statistics are enabled.
 void setTimeToIdleSeconds(long timeToIdleSeconds)
          Sets the time to idle for an element before it expires.
 void setTimeToLiveSeconds(long timeToLiveSeconds)
          Sets the time to idle for an element before it expires.
 void setTransactionalMode(java.lang.String transactionalMode)
          Sets the transactionalMode
 CacheConfiguration statistics(boolean statistics)
          Builder which sets whether the cache's statistics are enabled.
 CacheConfiguration terracotta(TerracottaConfiguration terracottaConfiguration)
           
 CacheConfiguration timeToIdleSeconds(long timeToIdleSeconds)
          Builder which sets the time to idle for an element before it expires.
 CacheConfiguration timeToLiveSeconds(long timeToLiveSeconds)
          Builder which sets the time to idle for an element before it expires.
 CacheConfiguration transactionalMode(CacheConfiguration.TransactionalMode transactionalMode)
          Builder which sets the transactionalMode
 CacheConfiguration transactionalMode(java.lang.String transactionalMode)
          Builder which sets the transactionalMode
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_EXPIRY_THREAD_INTERVAL_SECONDS

public static final long DEFAULT_EXPIRY_THREAD_INTERVAL_SECONDS
The default interval between runs of the expiry thread.

See Also:
Constant Field Values

DEFAULT_SPOOL_BUFFER_SIZE

public static final int DEFAULT_SPOOL_BUFFER_SIZE
Set a buffer size for the spool of approx 30MB.

See Also:
Constant Field Values

DEFAULT_DISK_ACCESS_STRIPES

public static final int DEFAULT_DISK_ACCESS_STRIPES
See Also:
Constant Field Values

DEFAULT_MEMORY_STORE_EVICTION_POLICY

public static final MemoryStoreEvictionPolicy DEFAULT_MEMORY_STORE_EVICTION_POLICY
The default memory store eviction policy is LRU.


name

protected java.lang.String name
the name of the cache.


maxElementsInMemory

protected int maxElementsInMemory
the maximum objects to be held in the MemoryStore.

0 translates to no-limit.


maxElementsOnDisk

protected int maxElementsOnDisk
the maximum objects to be held in the DiskStore.

0 translates to no-limit.


memoryStoreEvictionPolicy

protected MemoryStoreEvictionPolicy memoryStoreEvictionPolicy
The policy used to evict elements from the MemoryStore. This can be one of:
  1. LRU - least recently used
  2. LFU - Less frequently used
  3. FIFO - first in first out, the oldest element by creation time
The default value is LRU

Since:
1.2

clearOnFlush

protected boolean clearOnFlush
Sets whether the MemoryStore should be cleared when flush() is called on the cache - true by default.


eternal

protected boolean eternal
Sets whether elements are eternal. If eternal, timeouts are ignored and the element is never expired.


timeToIdleSeconds

protected long timeToIdleSeconds
the time to idle for an element before it expires. Is only used if the element is not eternal.A value of 0 means do not check for idling.


timeToLiveSeconds

protected long timeToLiveSeconds
Sets the time to idle for an element before it expires. Is only used if the element is not eternal. This attribute is optional in the configuration. A value of 0 means do not check time to live.


overflowToDisk

protected boolean overflowToDisk
whether elements can overflow to disk when the in-memory cache has reached the set limit.


diskPersistent

protected boolean diskPersistent
For caches that overflow to disk, whether the disk cache persists between CacheManager instances.


diskStorePath

protected java.lang.String diskStorePath
The path where the disk store is located


diskSpoolBufferSizeMB

protected int diskSpoolBufferSizeMB
The size of the disk spool used to buffer writes


diskAccessStripes

protected int diskAccessStripes
The number of concurrent disk access stripes.


diskExpiryThreadIntervalSeconds

protected long diskExpiryThreadIntervalSeconds
The interval in seconds between runs of the disk expiry thread.

2 minutes is the default. This is not the same thing as time to live or time to idle. When the thread runs it checks these things. So this value is how often we check for expiry.


loggingEnabled

protected boolean loggingEnabled
Indicates whether logging is enabled or not. False by default. Only used when cache is clustered with Terracotta.


cacheEventListenerConfigurations

protected volatile java.util.List<CacheConfiguration.CacheEventListenerFactoryConfiguration> cacheEventListenerConfigurations
The event listener factories added by BeanUtils.


cacheExtensionConfigurations

protected volatile java.util.List<CacheConfiguration.CacheExtensionFactoryConfiguration> cacheExtensionConfigurations
The cache extension factories added by BeanUtils.


bootstrapCacheLoaderFactoryConfiguration

protected CacheConfiguration.BootstrapCacheLoaderFactoryConfiguration bootstrapCacheLoaderFactoryConfiguration
The BootstrapCacheLoaderFactoryConfiguration.


cacheExceptionHandlerFactoryConfiguration

protected CacheConfiguration.CacheExceptionHandlerFactoryConfiguration cacheExceptionHandlerFactoryConfiguration
The CacheExceptionHandlerFactoryConfiguration.


terracottaConfiguration

protected TerracottaConfiguration terracottaConfiguration
The TerracottaConfiguration.


cacheWriterConfiguration

protected CacheWriterConfiguration cacheWriterConfiguration
The CacheWriterConfiguration.


cacheLoaderConfigurations

protected volatile java.util.List<CacheConfiguration.CacheLoaderFactoryConfiguration> cacheLoaderConfigurations
The cache loader factories added by BeanUtils.


listeners

protected volatile java.util.Set<CacheConfigurationListener> listeners
The listeners for this configuration.

Constructor Detail

CacheConfiguration

public CacheConfiguration(java.lang.String name,
                          int maxElementsInMemory)
Create a new cache configuration.

Parameters:
name - the name of the cache. Note that "default" is a reserved name for the defaultCache.
maxElementsInMemory - the maximum number of elements in memory, before they are evicted (0 == no limit)
Method Detail

clone

public CacheConfiguration clone()
Clones this object, following the usual contract.

Overrides:
clone in class java.lang.Object
Returns:
a copy, which independent other than configurations than cannot change.

setName

public final void setName(java.lang.String name)
Sets the name of the cache.

Parameters:
name - the cache name. This must be unique. The / character is illegal. The # character does not work with RMI replication.

name

public final CacheConfiguration name(java.lang.String name)
Builder to set the name of the cache.

Parameters:
name - the cache name. This must be unique. The / character is illegal. The # character does not work with RMI replication.
Returns:
this configuration instance
See Also:
setName(String)

setLoggingEnabled

public final void setLoggingEnabled(boolean enable)
Enables or disables logging for the cache

This property can be modified dynamically while the cache is operating. Only used when cache is clustered with Terracotta

Parameters:
enable - If true, enables logging otherwise disables logging

loggingEnabled

public final CacheConfiguration loggingEnabled(boolean enable)
Builder to enable or disable logging for the cache

This property can be modified dynamically while the cache is operating. Only used when cache is clustered with Terracotta

Parameters:
enable - If true, enables logging otherwise disables logging
Returns:
this configuration instance
See Also:
setLoggingEnabled(boolean)

setMaxElementsInMemory

public final void setMaxElementsInMemory(int maxElementsInMemory)
Sets the maximum objects to be held in memory (0 = no limit).

This property can be modified dynamically while the cache is operating.

Parameters:
maxElementsInMemory - The maximum number of elements in memory, before they are evicted (0 == no limit)

maxElementsInMemory

public final CacheConfiguration maxElementsInMemory(int maxElementsInMemory)
Builder that sets the maximum objects to be held in memory (0 = no limit).

This property can be modified dynamically while the cache is operating.

Parameters:
maxElementsInMemory - The maximum number of elements in memory, before they are evicted (0 == no limit)
Returns:
this configuration instance

setMemoryStoreEvictionPolicy

public final void setMemoryStoreEvictionPolicy(java.lang.String memoryStoreEvictionPolicy)
Sets the eviction policy. An invalid argument will set it to null.

Parameters:
memoryStoreEvictionPolicy - a String representation of the policy. One of "LRU", "LFU" or "FIFO".

memoryStoreEvictionPolicy

public final CacheConfiguration memoryStoreEvictionPolicy(java.lang.String memoryStoreEvictionPolicy)
Builder that sets the eviction policy. An invalid argument will set it to null.

Parameters:
memoryStoreEvictionPolicy - a String representation of the policy. One of "LRU", "LFU" or "FIFO".
Returns:
this configuration instance
See Also:
setMemoryStoreEvictionPolicy(String)

setMemoryStoreEvictionPolicyFromObject

public final void setMemoryStoreEvictionPolicyFromObject(MemoryStoreEvictionPolicy memoryStoreEvictionPolicy)
Sets the eviction policy. This method has a strange name to workaround a problem with XML parsing.


memoryStoreEvictionPolicy

public final CacheConfiguration memoryStoreEvictionPolicy(MemoryStoreEvictionPolicy memoryStoreEvictionPolicy)
Builder which Sets the eviction policy. An invalid argument will set it to null.

Returns:
this configuration instance
See Also:
setMemoryStoreEvictionPolicyFromObject(MemoryStoreEvictionPolicy)

setClearOnFlush

public final void setClearOnFlush(boolean clearOnFlush)
Sets whether the MemoryStore should be cleared when flush() is called on the cache - true by default.

Parameters:
clearOnFlush - true to clear on flush

clearOnFlush

public final CacheConfiguration clearOnFlush(boolean clearOnFlush)
Builder which sets whether the MemoryStore should be cleared when flush() is called on the cache - true by default.

Parameters:
clearOnFlush - true to clear on flush
Returns:
this configuration instance
See Also:
setClearOnFlush(boolean)

setEternal

public final void setEternal(boolean eternal)
Sets whether elements are eternal. If eternal, timeouts are ignored and the element is never expired. False by default.

Parameters:
eternal - true for eternal

eternal

public final CacheConfiguration eternal(boolean eternal)
Builder which sets whether elements are eternal. If eternal, timeouts are ignored and the element is never expired. False by default.

Parameters:
eternal - true for eternal
Returns:
this configuration instance
See Also:
setEternal(boolean)

setTimeToIdleSeconds

public final void setTimeToIdleSeconds(long timeToIdleSeconds)
Sets the time to idle for an element before it expires. Is only used if the element is not eternal. This can be overidden in Element

This property can be modified dynamically while the cache is operating.

Parameters:
timeToIdleSeconds - the default amount of time to live for an element from its last accessed or modified date

timeToIdleSeconds

public final CacheConfiguration timeToIdleSeconds(long timeToIdleSeconds)
Builder which sets the time to idle for an element before it expires. Is only used if the element is not eternal. This default can be overridden in Element

This property can be modified dynamically while the cache is operating.

Parameters:
timeToIdleSeconds - the default amount of time to live for an element from its last accessed or modified date
Returns:
this configuration instance
See Also:
setTimeToIdleSeconds(long)

setTimeToLiveSeconds

public final void setTimeToLiveSeconds(long timeToLiveSeconds)
Sets the time to idle for an element before it expires. Is only used if the element is not eternal. This default can be overridden in Element

This property can be modified dynamically while the cache is operating.

Parameters:
timeToLiveSeconds - the default amount of time to live for an element from its creation date

timeToLiveSeconds

public final CacheConfiguration timeToLiveSeconds(long timeToLiveSeconds)
Builder which sets the time to idle for an element before it expires. Is only used if the element is not eternal. This default can be overridden in Element

This property can be modified dynamically while the cache is operating.

Parameters:
timeToLiveSeconds - the default amount of time to live for an element from its creation date
Returns:
this configuration instance
See Also:
setTimeToLiveSeconds(long)

setOverflowToDisk

public final void setOverflowToDisk(boolean overflowToDisk)
Sets whether elements can overflow to disk when the in-memory cache has reached the set limit.

Parameters:
overflowToDisk - whether to use the disk store

overflowToDisk

public final CacheConfiguration overflowToDisk(boolean overflowToDisk)
Builder which sets whether elements can overflow to disk when the in-memory cache has reached the set limit.

Parameters:
overflowToDisk - whether to use the disk store
Returns:
this configuration instance
See Also:
setOverflowToDisk(boolean)

setDiskPersistent

public final void setDiskPersistent(boolean diskPersistent)
Sets whether the disk store persists between CacheManager instances. Note that this operates independently of overflowToDisk.

Parameters:
diskPersistent - whether to persist the cache to disk between JVM restarts

diskPersistent

public final CacheConfiguration diskPersistent(boolean diskPersistent)
Builder which sets whether the disk store persists between CacheManager instances. Note that this operates independently of overflowToDisk.

Parameters:
diskPersistent - whether to persist the cache to disk between JVM restarts.
Returns:
this configuration instance
See Also:
setDiskPersistent(boolean)

setDiskStorePath

public final void setDiskStorePath(java.lang.String diskStorePath)
Sets the path that will be used for the disk store.

Parameters:
diskStorePath - this parameter is ignored. CacheManager sets it using setter injection.

diskStorePath

public final CacheConfiguration diskStorePath(java.lang.String diskStorePath)
Builder which sets the path that will be used for the disk store.

Parameters:
diskStorePath - this parameter is ignored. CacheManager sets it using setter injection.
Returns:
this configuration instance
See Also:
setDiskStorePath(String)

setDiskSpoolBufferSizeMB

public void setDiskSpoolBufferSizeMB(int diskSpoolBufferSizeMB)
Sets the disk spool size, which is used to buffer writes to the DiskStore. If not set it defaults to DEFAULT_SPOOL_BUFFER_SIZE

Parameters:
diskSpoolBufferSizeMB - a positive number

diskSpoolBufferSizeMB

public final CacheConfiguration diskSpoolBufferSizeMB(int diskSpoolBufferSizeMB)
Builder which sets the disk spool size, which is used to buffer writes to the DiskStore. If not set it defaults to DEFAULT_SPOOL_BUFFER_SIZE

Parameters:
diskSpoolBufferSizeMB - a positive number
Returns:
this configuration instance
See Also:
setDiskSpoolBufferSizeMB(int)

setDiskAccessStripes

public void setDiskAccessStripes(int stripes)
Sets the number of disk stripes. RandomAccessFiles used to access the data file. By default there is one stripe.

Parameters:
stripes - number of stripes (rounded up to a power-of-2)

diskAccessStripes

public final CacheConfiguration diskAccessStripes(int stripes)
Builder which sets the number of disk stripes. RandomAccessFiles used to access the data file. By default there is one stripe.

Returns:
this configuration instance
See Also:
setDiskAccessStripes(int)

setMaxElementsOnDisk

public void setMaxElementsOnDisk(int maxElementsOnDisk)
Sets the maximum number elements on Disk. 0 means unlimited.

This property can be modified dynamically while the cache is operating.

Parameters:
maxElementsOnDisk - the maximum number of Elements to allow on the disk. 0 means unlimited.

maxElementsOnDisk

public final CacheConfiguration maxElementsOnDisk(int maxElementsOnDisk)
Builder which sets the maximum number elements on Disk. 0 means unlimited.

This property can be modified dynamically while the cache is operating.

Parameters:
maxElementsOnDisk - the maximum number of Elements to allow on the disk. 0 means unlimited.
Returns:
this configuration instance
See Also:
setMaxElementsOnDisk(int)

setDiskExpiryThreadIntervalSeconds

public final void setDiskExpiryThreadIntervalSeconds(long diskExpiryThreadIntervalSeconds)
Sets the interval in seconds between runs of the disk expiry thread.

2 minutes is the default. This is not the same thing as time to live or time to idle. When the thread runs it checks these things. So this value is how often we check for expiry.


diskExpiryThreadIntervalSeconds

public final CacheConfiguration diskExpiryThreadIntervalSeconds(long diskExpiryThreadIntervalSeconds)
Builder which sets the interval in seconds between runs of the disk expiry thread.

2 minutes is the default. This is not the same thing as time to live or time to idle. When the thread runs it checks these things. So this value is how often we check for expiry.

Returns:
this configuration instance
See Also:
setDiskExpiryThreadIntervalSeconds(long)

freezeConfiguration

public void freezeConfiguration()
Freeze this configuration. Any subsequent changes will throw a CacheException


isFrozen

public boolean isFrozen()
Returns:
true is this configuration is frozen - it cannot be changed dynamically.

addCacheEventListenerFactory

public final void addCacheEventListenerFactory(CacheConfiguration.CacheEventListenerFactoryConfiguration factory)
Used by BeanUtils to add cacheEventListenerFactory elements to the cache configuration.


cacheEventListenerFactory

public final CacheConfiguration cacheEventListenerFactory(CacheConfiguration.CacheEventListenerFactoryConfiguration factory)
Returns:
this configuration instance
See Also:
addCacheEventListenerFactory(CacheEventListenerFactoryConfiguration)

addCacheExtensionFactory

public final void addCacheExtensionFactory(CacheConfiguration.CacheExtensionFactoryConfiguration factory)
Used by BeanUtils to add cacheExtensionFactory elements to the cache configuration.


cacheExtensionFactory

public final CacheConfiguration cacheExtensionFactory(CacheConfiguration.CacheExtensionFactoryConfiguration factory)
Returns:
this configuration instance
See Also:
addCacheExtensionFactory(CacheExtensionFactoryConfiguration)

addBootstrapCacheLoaderFactory

public final void addBootstrapCacheLoaderFactory(CacheConfiguration.BootstrapCacheLoaderFactoryConfiguration factory)
Allows BeanHandler to add the CacheManagerEventListener to the configuration.


bootstrapCacheLoaderFactory

public final CacheConfiguration bootstrapCacheLoaderFactory(CacheConfiguration.BootstrapCacheLoaderFactoryConfiguration factory)
Returns:
this configuration instance
See Also:
addBootstrapCacheLoaderFactory(BootstrapCacheLoaderFactoryConfiguration)

addCacheExceptionHandlerFactory

public final void addCacheExceptionHandlerFactory(CacheConfiguration.CacheExceptionHandlerFactoryConfiguration factory)
Add the CacheExceptionHandlerFactory to the configuration.

Note that this will not have any effect when creating a cache solely through its constructed. The exception handler will only be taken into account when ConfigurationHelper is used, for example through CacheManager.


cacheExceptionHandlerFactory

public final CacheConfiguration cacheExceptionHandlerFactory(CacheConfiguration.CacheExceptionHandlerFactoryConfiguration factory)
Returns:
this configuration instance
See Also:
addCacheExceptionHandlerFactory(CacheExceptionHandlerFactoryConfiguration)

addCacheLoaderFactory

public final void addCacheLoaderFactory(CacheConfiguration.CacheLoaderFactoryConfiguration factory)
Used by BeanUtils to add each cacheLoaderFactory to the cache configuration.

Parameters:
factory -

cacheLoaderFactory

public final CacheConfiguration cacheLoaderFactory(CacheConfiguration.CacheLoaderFactoryConfiguration factory)
Returns:
this configuration instance
See Also:
addCacheLoaderFactory(CacheLoaderFactoryConfiguration)

addTerracotta

public final void addTerracotta(TerracottaConfiguration terracottaConfiguration)
Allows BeanHandler to add the TerracottaConfiguration to the configuration.


terracotta

public final CacheConfiguration terracotta(TerracottaConfiguration terracottaConfiguration)
Returns:
this configuration instance
See Also:
addTerracotta(TerracottaConfiguration)

addCacheWriter

public final void addCacheWriter(CacheWriterConfiguration cacheWriterConfiguration)
Allows BeanHandler to add the CacheWriterConfiguration to the configuration.


cacheWriter

public final CacheConfiguration cacheWriter(CacheWriterConfiguration cacheWriterConfiguration)
Returns:
this configuration instance
See Also:
addCacheWriter(CacheWriterConfiguration)

setTransactionalMode

public final void setTransactionalMode(java.lang.String transactionalMode)
Sets the transactionalMode

Parameters:
transactionalMode - OFF or XA

transactionalMode

public final CacheConfiguration transactionalMode(java.lang.String transactionalMode)
Builder which sets the transactionalMode

Parameters:
transactionalMode - one of OFF or XA
Returns:
this configuration instance
See Also:
setTransactionalMode(String)

transactionalMode

public final CacheConfiguration transactionalMode(CacheConfiguration.TransactionalMode transactionalMode)
Builder which sets the transactionalMode

Parameters:
transactionalMode - one of OFF or XA enum values
Returns:
this configuration instance
See Also:
setTransactionalMode(String)

setStatistics

public final void setStatistics(boolean enabled)
Sets whether the cache's statistics are enabled. at startup


statistics

public final CacheConfiguration statistics(boolean statistics)
Builder which sets whether the cache's statistics are enabled.

Returns:
this configuration instance
See Also:
setStatistics(boolean)

getStatistics

public final boolean getStatistics()
Gets whether the cache's statistics will be enabled at startup


getName

public java.lang.String getName()
Accessor


getMaxElementsInMemory

public int getMaxElementsInMemory()
Accessor


getMaxElementsOnDisk

public int getMaxElementsOnDisk()
Accessor


getMemoryStoreEvictionPolicy

public MemoryStoreEvictionPolicy getMemoryStoreEvictionPolicy()
Accessor


isClearOnFlush

public boolean isClearOnFlush()
Accessor


isEternal

public boolean isEternal()
Accessor


getTimeToIdleSeconds

public long getTimeToIdleSeconds()
Accessor


getTimeToLiveSeconds

public long getTimeToLiveSeconds()
Accessor


isOverflowToDisk

public boolean isOverflowToDisk()
Accessor


isDiskPersistent

public boolean isDiskPersistent()
Accessor


getDiskStorePath

public java.lang.String getDiskStorePath()
Accessor


getDiskSpoolBufferSizeMB

public int getDiskSpoolBufferSizeMB()
Accessor


getDiskExpiryThreadIntervalSeconds

public long getDiskExpiryThreadIntervalSeconds()
Accessor


getDiskAccessStripes

public int getDiskAccessStripes()
Accessor


isLoggingEnabled

public boolean isLoggingEnabled()
Only used when cache is clustered with Terracotta

Returns:
true if logging is enabled otherwise false

getCacheEventListenerConfigurations

public java.util.List getCacheEventListenerConfigurations()
Accessor


getCacheExtensionConfigurations

public java.util.List getCacheExtensionConfigurations()
Accessor

Returns:
the configuration

getCacheLoaderConfigurations

public java.util.List getCacheLoaderConfigurations()
Accessor

Returns:
the configuration

getBootstrapCacheLoaderFactoryConfiguration

public CacheConfiguration.BootstrapCacheLoaderFactoryConfiguration getBootstrapCacheLoaderFactoryConfiguration()
Accessor

Returns:
the configuration

getCacheExceptionHandlerFactoryConfiguration

public CacheConfiguration.CacheExceptionHandlerFactoryConfiguration getCacheExceptionHandlerFactoryConfiguration()
Accessor

Returns:
the configuration

getTerracottaConfiguration

public TerracottaConfiguration getTerracottaConfiguration()
Accessor

Returns:
the terracotta configuration

getCacheWriterConfiguration

public CacheWriterConfiguration getCacheWriterConfiguration()
Accessor

Returns:
the writer configuration

isTerracottaClustered

public boolean isTerracottaClustered()
Helper method to compute whether the cache is clustered or not

Returns:
True if the <terracotta/> element exists with clustered="true"

getTransactionalMode

public final CacheConfiguration.TransactionalMode getTransactionalMode()
To what transactionalMode was the Cache set

Returns:
transactionaMode

isTransactional

public boolean isTransactional()
Helper method to compute whether the cache is transactional or not

Returns:
true if transactionalMode="XA"

addConfigurationListener

public boolean addConfigurationListener(CacheConfigurationListener listener)
Add a listener to this cache configuration

Parameters:
listener - listener instance to add
Returns:
true if a listener was added

removeConfigurationListener

public boolean removeConfigurationListener(CacheConfigurationListener listener)
Remove the supplied cache configuration listener.

Parameters:
listener - listener to remove
Returns:
true if a listener was removed

internalSetTimeToIdle

public void internalSetTimeToIdle(long timeToIdle)
Intended for internal use only, and subject to change. This is required so that changes in store implementation's config (probably from other nodes) can propagate up to here


internalSetTimeToLive

public void internalSetTimeToLive(long timeToLive)
Intended for internal use only, and subject to change.


internalSetMemCapacity

public void internalSetMemCapacity(int capacity)
Intended for internal use only, and subject to change.


internalSetDiskCapacity

public void internalSetDiskCapacity(int capacity)
Intended for internal use only, and subject to change.


internalSetCoherent

public void internalSetCoherent(boolean coherent)
Intended for internal use only, and subject to change. This is called from the store implementations to reflect the new coherent value

Parameters:
coherent - true for coherent

ehcache

true