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.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidentryAdded(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.
-
Constructor Details
-
ReverseLookupComputingCacheEntryListener
-
-
Method Details
-
entryAdded
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
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
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
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
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.
-