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 TypeMethodDescriptionvoid
entryAdded
(K key, V value, NodeID initiator) An entry was added to the cache.void
entryEvicted
(K key, V oldValue, NodeID nodeID) An entry was evicted from the cache.void
entryRemoved
(K key, V oldValue, NodeID initiator) An entry was removed from the cache.void
entryUpdated
(K key, V oldValue, V newValue, NodeID nodeID) An entry was updated in the cache.void
mapCleared
(NodeID nodeID) The cache was cleared.void
mapEvicted
(NodeID nodeID) The cache was evicted.
-
Constructor Details
-
ReverseLookupComputingCacheEntryListener
-
-
Method Details
-
entryAdded
Description copied from interface:ClusteredCacheEntryListener
An entry was added to the cache.- Specified by:
entryAdded
in 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:ClusteredCacheEntryListener
An entry was removed from the cache.- Specified by:
entryRemoved
in 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:ClusteredCacheEntryListener
An entry was updated in the cache.- Specified by:
entryUpdated
in 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:ClusteredCacheEntryListener
An entry was evicted from the cache.- Specified by:
entryEvicted
in 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:ClusteredCacheEntryListener
The cache was cleared.- Specified by:
mapCleared
in interfaceClusteredCacheEntryListener<K,
V> - Parameters:
nodeID
- identifier of the node on which the cache modification occurred.
-
mapEvicted
Description copied from interface:ClusteredCacheEntryListener
The cache was evicted.- Specified by:
mapEvicted
in interfaceClusteredCacheEntryListener<K,
V> - Parameters:
nodeID
- identifier of the node on which the cache modification occurred.
-