|
ehcache | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface CacheEventListener
Allows implementers to register callback methods that will be executed when a cache event occurs. The events include:
Callbacks to these methods are synchronous and unsynchronized. It is the responsibility of the implementer to safely handle the potential performance and thread safety issues depending on what their listener is doing.
Cache also has putQuiet and removeQuiet methods which do not notify listeners.
CacheManagerEventListener
Method Summary | |
---|---|
Object |
clone()
Creates a clone of this listener. |
void |
dispose()
Give the listener a chance to cleanup and free resources when no longer needed |
void |
notifyElementEvicted(Ehcache cache,
Element element)
Called immediately after an element is evicted from the cache. |
void |
notifyElementExpired(Ehcache cache,
Element element)
Called immediately after an element is found to be expired. |
void |
notifyElementPut(Ehcache cache,
Element element)
Called immediately after an element has been put into the cache. |
void |
notifyElementRemoved(Ehcache cache,
Element element)
Called immediately after an attempt to remove an element. |
void |
notifyElementUpdated(Ehcache cache,
Element element)
Called immediately after an element has been put into the cache and the element already existed in the cache. |
void |
notifyRemoveAll(Ehcache cache)
Called during Ehcache.removeAll() to indicate that the all
elements have been removed from the cache in a bulk operation. |
Method Detail |
---|
void notifyElementRemoved(Ehcache cache, Element element) throws CacheException
This notification is received regardless of whether the cache had an element matching the removal key or not. If an element was removed, the element is passed to this method, otherwise a synthetic element, with only the key set is passed in.
This notification is not called for the following special cases:
notifyRemoveAll(net.sf.ehcache.Ehcache)
notifyElementEvicted(net.sf.ehcache.Ehcache, net.sf.ehcache.Element)
cache
- the cache emitting the notificationelement
- the element just deleted, or a synthetic element with just the key set if
no element was removed.
CacheException
void notifyElementPut(Ehcache cache, Element element) throws CacheException
Cache.put(net.sf.ehcache.Element)
method
will block until this method returns.
Implementers may wish to have access to the Element's fields, including value, so the element is provided. Implementers should be careful not to modify the element. The effect of any modifications is undefined.
cache
- the cache emitting the notificationelement
- the element which was just put into the cache.
CacheException
void notifyElementUpdated(Ehcache cache, Element element) throws CacheException
The Cache.put(net.sf.ehcache.Element)
method
will block until this method returns.
Implementers may wish to have access to the Element's fields, including value, so the element is provided. Implementers should be careful not to modify the element. The effect of any modifications is undefined.
cache
- the cache emitting the notificationelement
- the element which was just put into the cache.
CacheException
void notifyElementExpired(Ehcache cache, Element element)
Cache.remove(Object)
method will block until this method returns.
Elements are checked for expiry in ehcache at the following times:
Cache.DEFAULT_EXPIRY_THREAD_INTERVAL_SECONDS
cache
- the cache emitting the notificationelement
- the element that has just expired
Deadlock Warning: expiry will often come from the DiskStore
expiry thread. It holds a lock to the DiskStorea the time the
notification is sent. If the implementation of this method calls into a
synchronized Cache
method and that subsequently calls into
DiskStore a deadlock will result. Accordingly implementers of this method
should not call back into Cache.
void notifyElementEvicted(Ehcache cache, Element element)
In a sense the Element has been removed from the cache, but it is different, thus the separate notification.
cache
- the cache emitting the notificationelement
- the element that has just been evictedvoid notifyRemoveAll(Ehcache cache)
Ehcache.removeAll()
to indicate that the all
elements have been removed from the cache in a bulk operation. The usual
notifyElementRemoved(net.sf.ehcache.Ehcache, net.sf.ehcache.Element)
is not called.
This notification exists because clearing a cache is a special case. It is often not practical to serially process notifications where potentially millions of elements have been bulk deleted.
cache
- the cache emitting the notificationObject clone() throws CloneNotSupportedException
This may not be possible for listeners after they have been initialized. Implementations should throw CloneNotSupportedException if they do not support clone.
CloneNotSupportedException
- if the listener could not be cloned.void dispose()
|
ehcache | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |