Package org.jivesoftware.util.cache
Class ReverseLookupUpdatingCacheEntryListener<K,V>
- java.lang.Object
-
- org.jivesoftware.util.cache.ReverseLookupUpdatingCacheEntryListener<K,V>
-
- All Implemented Interfaces:
ClusteredCacheEntryListener<K,V>
public class ReverseLookupUpdatingCacheEntryListener<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 node is 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 assumes that the cluster node on which the cache entry change originates is the owner of the corresponding entry (cache entry updates are ignored).
-
-
Constructor Summary
Constructors Constructor Description ReverseLookupUpdatingCacheEntryListener(ConcurrentMap<NodeID,Set<K>> reverseCacheRepresentation)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidentryAdded(K key, V value, NodeID nodeID)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 nodeID)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 Detail
-
ReverseLookupUpdatingCacheEntryListener
public ReverseLookupUpdatingCacheEntryListener(@Nonnull ConcurrentMap<NodeID,Set<K>> reverseCacheRepresentation)
-
-
Method Detail
-
entryAdded
public void entryAdded(@Nonnull K key, @Nullable V value, @Nonnull NodeID nodeID)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.nodeID- identifier of the node on which the cache modification occurred.
-
entryRemoved
public void entryRemoved(@Nonnull K key, @Nullable V oldValue, @Nonnull NodeID nodeID)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.nodeID- 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.
-
-