Package org.jivesoftware.util.cache
Class ReverseLookupComputingCacheEntryListener<K,V>
- java.lang.Object
-
- org.jivesoftware.util.cache.ReverseLookupComputingCacheEntryListener<K,V>
-
- All Implemented Interfaces:
ClusteredCacheEntryListener<K,V>
public class ReverseLookupComputingCacheEntryListener<K,V> extends Object implements ClusteredCacheEntryListener<K,V>
Cache entry listener implementation that maintains a reverse lookup map for the cache that is being observed, which is used to identify what cluster nodes are the logical owner of a particular cache entry. This information is typically useful in scenarios where a cluster node drops out of the cluster requiring the remaining nodes to have to inform their connected entities of what resources have become unavailable. This implementation uses a function (to be provided in the constructor) to calculate what cluster nodes 'own' a corresponding entry. The function operates on the value of the cache. It is therefor required that listeners of this type are registered using a configuration that includes entry values to be included in the event invocation. Null values are not supported.
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidentryAdded(K key, V value, NodeID initiator)An entry was added to the cache.voidentryEvicted(K key, V oldValue, NodeID nodeID)An entry was evicted from the cache.voidentryRemoved(K key, V oldValue, NodeID initiator)An entry was removed from the cache.voidentryUpdated(K key, V oldValue, V newValue, NodeID nodeID)An entry was updated in the cache.voidmapCleared(NodeID nodeID)The cache was cleared.voidmapEvicted(NodeID nodeID)The cache was evicted.
-
-
-
Method Detail
-
entryAdded
public void entryAdded(@Nonnull K key, @Nullable V value, @Nonnull NodeID initiator)Description copied from interface:ClusteredCacheEntryListenerAn entry was added to the cache.- Specified by:
entryAddedin interfaceClusteredCacheEntryListener<K,V>- Parameters:
key- The key of the entry that was added.value- The (optional) value of the entry that was added.initiator- identifier of the node on which the cache modification occurred.
-
entryRemoved
public void entryRemoved(@Nonnull K key, @Nullable V oldValue, @Nonnull NodeID initiator)Description copied from interface:ClusteredCacheEntryListenerAn entry was removed from the cache.- Specified by:
entryRemovedin interfaceClusteredCacheEntryListener<K,V>- Parameters:
key- The key of the entry that was removed.oldValue- The (optional) value of the entry that was removed.initiator- identifier of the node on which the cache modification occurred.
-
entryUpdated
public void entryUpdated(@Nonnull K key, @Nullable V oldValue, @Nullable V newValue, @Nonnull NodeID nodeID)Description copied from interface:ClusteredCacheEntryListenerAn entry was updated in the cache.- Specified by:
entryUpdatedin interfaceClusteredCacheEntryListener<K,V>- Parameters:
key- The key of the entry that was changed.oldValue- The (optional) value of the entry prior to the update.newValue- The (optional) value of the entry after to the update.nodeID- identifier of the node on which the cache modification occurred.
-
entryEvicted
public void entryEvicted(@Nonnull K key, @Nullable V oldValue, @Nonnull NodeID nodeID)Description copied from interface:ClusteredCacheEntryListenerAn entry was evicted from the cache.- Specified by:
entryEvictedin interfaceClusteredCacheEntryListener<K,V>- Parameters:
key- The key of the entry that was evicted.oldValue- The (optional) value of the entry that was removed.nodeID- identifier of the node on which the cache modification occurred.
-
mapCleared
public void mapCleared(@Nonnull NodeID nodeID)Description copied from interface:ClusteredCacheEntryListenerThe cache was cleared.- Specified by:
mapClearedin interfaceClusteredCacheEntryListener<K,V>- Parameters:
nodeID- identifier of the node on which the cache modification occurred.
-
mapEvicted
public void mapEvicted(@Nonnull NodeID nodeID)Description copied from interface:ClusteredCacheEntryListenerThe cache was evicted.- Specified by:
mapEvictedin interfaceClusteredCacheEntryListener<K,V>- Parameters:
nodeID- identifier of the node on which the cache modification occurred.
-
-