public interface CacheExtension
CacheExtensions are tied into the Cache lifecycle. For that reason this interface has the lifecycle methods.
CacheExtensions are created using the CacheExtensionFactory which has a
createCacheCacheExtension()
method which takes as a parameter a Cache and
properties. It can thus call back into any public method on Cache, including, of course,
the load methods.
CacheExtensions are suitable for timing services, where you want to create a timer to
perform cache operations. The other way of adding Cache behaviour is to decorate a cache.
See BlockingCache
for an example of how to do
this.
Because a CacheExtension holds a reference to a Cache, the CacheExtension can do things such as registering a CacheEventListener or even a CacheManagerEventListener, all from within a CacheExtension, creating more opportunities for customisation.
Modifier and Type | Method and Description |
---|---|
CacheExtension |
clone(Ehcache cache)
Creates a clone of this extension.
|
void |
dispose()
Providers may be doing all sorts of exotic things and need to be able to clean up on
dispose.
|
Status |
getStatus() |
void |
init()
Notifies providers to initialise themselves.
|
void init()
This method is called during the Cache's initialise method after it has changed it's status to alive. Cache operations are legal in this method.
CacheException
void dispose() throws CacheException
Cache operations are illegal when this method is called. The cache itself is partly disposed when this method is called.
CacheException
CacheExtension clone(Ehcache cache) throws CloneNotSupportedException
Implementations should throw CloneNotSupportedException if they do not support clone but that will stop them from being used with defaultCache.
cache
- the cache extendedCloneNotSupportedException
- if the extension could not be cloned.Status getStatus()
Copyright © 2003–2015 Terracotta, Inc.. All rights reserved.