This is an automated email from the ASF dual-hosted git repository.
jensdeppe pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/develop by this push:
new 3a8044a GEODE-10191: Radish RENAME and RESTORE create notification
events (#7537)
3a8044a is described below
commit 3a8044aeec9d492182c4bf1a4a311fdc382a393d
Author: Jens Deppe <[email protected]>
AuthorDate: Thu Mar 31 20:26:59 2022 -0700
GEODE-10191: Radish RENAME and RESTORE create notification events (#7537)
- Both of these commands have the ability to create events to satisfy
BLPOP.
- Introduce a NotificationEvent enum which is passed to fireEvent.
- Previously the RedisCommandType was being passed, but this does not
work for RENAME which creates RENAME_FROM and RENAME_TO events. In the
future, other commands will need to create multiple events too.
---
.../list/AbstractBLPopIntegrationTest.java | 32 ++++++++++++++++++++++
.../internal/eventing/EventDistributorTest.java | 3 +-
.../apache/geode/codeAnalysis/excludedClasses.txt | 1 +
.../executor/key/AbstractRenameExecutor.java | 2 +-
.../commands/executor/key/RestoreExecutor.java | 2 ++
.../redis/internal/data/AbstractRedisData.java | 10 +++++--
.../geode/redis/internal/data/NullRedisData.java | 3 +-
.../geode/redis/internal/data/NullRedisList.java | 6 ++--
.../geode/redis/internal/data/RedisData.java | 3 +-
.../geode/redis/internal/data/RedisList.java | 6 ++--
.../internal/eventing/BlockingCommandListener.java | 3 +-
.../redis/internal/eventing/EventDistributor.java | 5 ++--
.../redis/internal/eventing/EventListener.java | 5 ++--
.../redis/internal/eventing/EventResponse.java | 3 +-
.../{EventResponse.java => NotificationEvent.java} | 25 ++++++++---------
.../internal/netty/ExecutionHandlerContext.java | 5 ++--
16 files changed, 75 insertions(+), 39 deletions(-)
diff --git
a/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/list/AbstractBLPopIntegrationTest.java
b/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/list/AbstractBLPopIntegrationTest.java
index fd9b12a..f4d2fea 100755
---
a/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/list/AbstractBLPopIntegrationTest.java
+++
b/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/list/AbstractBLPopIntegrationTest.java
@@ -163,6 +163,38 @@ public abstract class AbstractBLPopIntegrationTest
implements RedisIntegrationTe
}
@Test
+ public void testBLPopWhenValueGetsCreated_withRename() throws Exception {
+ String initialName = "{tag}initial";
+ String changedName = "{tag}changed";
+ jedis.lpush(initialName, "value1", "value2");
+
+ Future<List<String>> future = executor.submit(() -> jedis.blpop(10,
changedName));
+ awaitEventDistributorSize(1);
+
+ jedis.rename(initialName, changedName);
+
+ assertThat(future.get()).containsExactly(changedName, "value2");
+ assertThat(jedis.lpop(changedName)).isEqualTo("value1");
+ }
+
+ @Test
+ public void testBLPopWhenValueGetsCreated_withRestore() throws Exception {
+ String key = "key";
+ jedis.lpush(key, "value1", "value2");
+
+ byte[] dumpBytes = jedis.dump(key);
+ jedis.del(key);
+
+ Future<List<String>> future = executor.submit(() -> jedis.blpop(10, key));
+ awaitEventDistributorSize(1);
+
+ jedis.restore(key, 0, dumpBytes);
+
+ assertThat(future.get()).containsExactly(key, "value2");
+ assertThat(jedis.lpop(key)).isEqualTo("value1");
+ }
+
+ @Test
public void testConcurrentBLPop() throws Exception {
int totalElements = 10_000;
List<Object> accumulated = Collections.synchronizedList(new
ArrayList<>(totalElements + 2));
diff --git
a/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/eventing/EventDistributorTest.java
b/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/eventing/EventDistributorTest.java
index d8a4d1c..b7a3cb6 100644
---
a/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/eventing/EventDistributorTest.java
+++
b/geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/eventing/EventDistributorTest.java
@@ -27,7 +27,6 @@ import java.util.stream.Collectors;
import org.junit.Test;
import org.apache.geode.redis.ConcurrentLoopingThreads;
-import org.apache.geode.redis.internal.commands.RedisCommandType;
import org.apache.geode.redis.internal.data.RedisKey;
public class EventDistributorTest {
@@ -45,7 +44,7 @@ public class EventDistributorTest {
}
@Override
- public EventResponse process(RedisCommandType commandType, RedisKey key) {
+ public EventResponse process(NotificationEvent notificationEvent, RedisKey
key) {
fired += 1;
return EventResponse.REMOVE_AND_STOP;
}
diff --git
a/geode-for-redis/src/integrationTest/resources/org/apache/geode/codeAnalysis/excludedClasses.txt
b/geode-for-redis/src/integrationTest/resources/org/apache/geode/codeAnalysis/excludedClasses.txt
index 29d0c21..4948102 100644
---
a/geode-for-redis/src/integrationTest/resources/org/apache/geode/codeAnalysis/excludedClasses.txt
+++
b/geode-for-redis/src/integrationTest/resources/org/apache/geode/codeAnalysis/excludedClasses.txt
@@ -16,6 +16,7 @@
org/apache/geode/redis/internal/data/collections/SizeableByteArrayList
org/apache/geode/redis/internal/data/collections/SizeableBytes2ObjectOpenCustomHashMapWithCursor
org/apache/geode/redis/internal/data/collections/SizeableObjectOpenCustomHashSetWithCursor
org/apache/geode/redis/internal/eventing/EventResponse
+org/apache/geode/redis/internal/eventing/NotificationEvent
org/apache/geode/redis/internal/pubsub/Publisher$PublishFunction
org/apache/geode/redis/internal/services/cluster/RedisMemberInfoRetrievalFunction
org/apache/geode/redis/internal/services/locking/StripedExecutorService$State
diff --git
a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/commands/executor/key/AbstractRenameExecutor.java
b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/commands/executor/key/AbstractRenameExecutor.java
index c7aef9c..855320e 100644
---
a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/commands/executor/key/AbstractRenameExecutor.java
+++
b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/commands/executor/key/AbstractRenameExecutor.java
@@ -56,7 +56,7 @@ public abstract class AbstractRenameExecutor implements
CommandExecutor {
return context.lockedExecuteInTransaction(oldKey, keysToLock,
() -> context.getRedisData(oldKey)
- .rename(context.getRegion(), oldKey, newKey, ifTargetNotExists));
+ .rename(context, oldKey, newKey, ifTargetNotExists));
}
protected RedisResponse getNoSuchKeyResponse() {
diff --git
a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/commands/executor/key/RestoreExecutor.java
b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/commands/executor/key/RestoreExecutor.java
index 48bc42d..d683481 100644
---
a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/commands/executor/key/RestoreExecutor.java
+++
b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/commands/executor/key/RestoreExecutor.java
@@ -31,6 +31,7 @@ import org.apache.geode.redis.internal.data.AbstractRedisData;
import org.apache.geode.redis.internal.data.RedisData;
import org.apache.geode.redis.internal.data.RedisKey;
import org.apache.geode.redis.internal.data.RedisKeyExistsException;
+import org.apache.geode.redis.internal.eventing.NotificationEvent;
import org.apache.geode.redis.internal.netty.Coder;
import org.apache.geode.redis.internal.netty.ExecutionHandlerContext;
@@ -103,6 +104,7 @@ public class RestoreExecutor implements CommandExecutor {
RedisData value = data.restore(dataBytes, options.isReplace());
((AbstractRedisData) value).setExpirationTimestampNoDelta(expireAt);
context.getRegion().put(key, value);
+ context.fireEvent(NotificationEvent.RESTORE, key);
return null;
});
}
diff --git
a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/AbstractRedisData.java
b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/AbstractRedisData.java
index d0b4cdb..6f2692c 100644
---
a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/AbstractRedisData.java
+++
b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/AbstractRedisData.java
@@ -72,6 +72,8 @@ import
org.apache.geode.redis.internal.data.delta.ReplaceByteAtOffset;
import org.apache.geode.redis.internal.data.delta.SetByteArray;
import org.apache.geode.redis.internal.data.delta.SetByteArrayAndTimestamp;
import org.apache.geode.redis.internal.data.delta.SetTimestamp;
+import org.apache.geode.redis.internal.eventing.NotificationEvent;
+import org.apache.geode.redis.internal.netty.ExecutionHandlerContext;
import org.apache.geode.redis.internal.services.RegionProvider;
public abstract class AbstractRedisData implements RedisData {
@@ -133,9 +135,9 @@ public abstract class AbstractRedisData implements
RedisData {
}
@Override
- public boolean rename(Region<RedisKey, RedisData> region, RedisKey oldKey,
RedisKey newKey,
+ public boolean rename(ExecutionHandlerContext context, RedisKey oldKey,
RedisKey newKey,
boolean ifTargetNotExists) {
-
+ Region<RedisKey, RedisData> region = context.getRegion();
if (ifTargetNotExists) {
try {
region.create(newKey, this, primaryMoveReadLockAcquired);
@@ -150,6 +152,10 @@ public abstract class AbstractRedisData implements
RedisData {
region.destroy(oldKey, primaryMoveReadLockAcquired);
} catch (EntryNotFoundException ignore) {
}
+
+ context.fireEvent(NotificationEvent.RENAME_FROM, oldKey);
+ context.fireEvent(NotificationEvent.RENAME_TO, newKey);
+
return true;
}
diff --git
a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/NullRedisData.java
b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/NullRedisData.java
index 978397b..4b11d7c 100644
---
a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/NullRedisData.java
+++
b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/NullRedisData.java
@@ -25,6 +25,7 @@ import org.apache.geode.cache.Region;
import org.apache.geode.internal.serialization.DeserializationContext;
import org.apache.geode.internal.serialization.KnownVersion;
import org.apache.geode.internal.serialization.SerializationContext;
+import org.apache.geode.redis.internal.netty.ExecutionHandlerContext;
import org.apache.geode.redis.internal.services.RegionProvider;
/**
@@ -86,7 +87,7 @@ public class NullRedisData implements RedisData {
}
@Override
- public boolean rename(Region<RedisKey, RedisData> region, RedisKey oldKey,
RedisKey newKey,
+ public boolean rename(ExecutionHandlerContext context, RedisKey oldKey,
RedisKey newKey,
boolean ifNotExists) {
return false;
}
diff --git
a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/NullRedisList.java
b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/NullRedisList.java
index e58aefe..fc4e990 100644
---
a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/NullRedisList.java
+++
b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/NullRedisList.java
@@ -20,7 +20,7 @@ import java.util.Collections;
import java.util.List;
import org.apache.geode.cache.Region;
-import org.apache.geode.redis.internal.commands.RedisCommandType;
+import org.apache.geode.redis.internal.eventing.NotificationEvent;
import org.apache.geode.redis.internal.netty.ExecutionHandlerContext;
class NullRedisList extends RedisList {
@@ -62,7 +62,7 @@ class NullRedisList extends RedisList {
newList.elementPushHead(element);
}
context.getRegion().create(key, newList);
- context.fireEvent(RedisCommandType.LPUSH, key);
+ context.fireEvent(NotificationEvent.LPUSH, key);
return elementsToAdd.size();
}
@@ -79,7 +79,7 @@ class NullRedisList extends RedisList {
newList.elementPushTail(element);
}
context.getRegion().create(key, newList);
- context.fireEvent(RedisCommandType.RPUSH, key);
+ context.fireEvent(NotificationEvent.RPUSH, key);
return elementsToAdd.size();
}
diff --git
a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/RedisData.java
b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/RedisData.java
index 57d0942..cbfb691 100644
---
a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/RedisData.java
+++
b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/RedisData.java
@@ -34,6 +34,7 @@ import
org.apache.geode.internal.serialization.VersionedDataInputStream;
import org.apache.geode.internal.size.Sizeable;
import org.apache.geode.logging.internal.log4j.api.LogService;
import org.apache.geode.redis.internal.RedisException;
+import org.apache.geode.redis.internal.netty.ExecutionHandlerContext;
import org.apache.geode.redis.internal.services.RegionProvider;
public interface RedisData extends Delta, DataSerializableFixedID, Sizeable {
@@ -69,7 +70,7 @@ public interface RedisData extends Delta,
DataSerializableFixedID, Sizeable {
String type();
- boolean rename(Region<RedisKey, RedisData> region, RedisKey oldKey, RedisKey
newKey,
+ boolean rename(ExecutionHandlerContext context, RedisKey oldKey, RedisKey
newKey,
boolean ifTargetNotExists);
default boolean getForceRecalculateSize() {
diff --git
a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/RedisList.java
b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/RedisList.java
index c82a2ae..823a91c 100644
---
a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/RedisList.java
+++
b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/RedisList.java
@@ -37,7 +37,6 @@ import org.apache.geode.internal.serialization.KnownVersion;
import org.apache.geode.internal.serialization.SerializationContext;
import org.apache.geode.redis.internal.RedisException;
import org.apache.geode.redis.internal.commands.Command;
-import org.apache.geode.redis.internal.commands.RedisCommandType;
import org.apache.geode.redis.internal.data.collections.SizeableByteArrayList;
import org.apache.geode.redis.internal.data.delta.AddByteArrays;
import org.apache.geode.redis.internal.data.delta.AddByteArraysTail;
@@ -45,6 +44,7 @@ import
org.apache.geode.redis.internal.data.delta.InsertByteArray;
import org.apache.geode.redis.internal.data.delta.RemoveElementsByIndex;
import org.apache.geode.redis.internal.data.delta.ReplaceByteArrayAtOffset;
import org.apache.geode.redis.internal.eventing.BlockingCommandListener;
+import org.apache.geode.redis.internal.eventing.NotificationEvent;
import org.apache.geode.redis.internal.netty.ExecutionHandlerContext;
import org.apache.geode.redis.internal.services.RegionProvider;
@@ -163,7 +163,7 @@ public class RedisList extends AbstractRedisData {
elementsPushHead(elementsToAdd);
}
storeChanges(context.getRegion(), key, new AddByteArrays(elementsToAdd,
newVersion));
- context.fireEvent(RedisCommandType.LPUSH, key);
+ context.fireEvent(NotificationEvent.LPUSH, key);
return elementList.size();
}
@@ -269,7 +269,7 @@ public class RedisList extends AbstractRedisData {
elementsToAdd.forEach(this::elementPushTail);
}
storeChanges(context.getRegion(), key, new AddByteArraysTail(newVersion,
elementsToAdd));
- context.fireEvent(RedisCommandType.RPUSH, key);
+ context.fireEvent(NotificationEvent.RPUSH, key);
return elementList.size();
}
diff --git
a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/eventing/BlockingCommandListener.java
b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/eventing/BlockingCommandListener.java
index bce6756..61dba4d 100644
---
a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/eventing/BlockingCommandListener.java
+++
b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/eventing/BlockingCommandListener.java
@@ -23,7 +23,6 @@ import java.util.concurrent.atomic.AtomicBoolean;
import org.apache.geode.annotations.VisibleForTesting;
import org.apache.geode.redis.internal.commands.Command;
-import org.apache.geode.redis.internal.commands.RedisCommandType;
import org.apache.geode.redis.internal.commands.executor.RedisResponse;
import org.apache.geode.redis.internal.data.RedisKey;
import org.apache.geode.redis.internal.netty.Coder;
@@ -63,7 +62,7 @@ public class BlockingCommandListener implements EventListener
{
}
@Override
- public EventResponse process(RedisCommandType commandType, RedisKey key) {
+ public EventResponse process(NotificationEvent notificationEvent, RedisKey
key) {
if (!keys.contains(key)) {
return EventResponse.CONTINUE;
}
diff --git
a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/eventing/EventDistributor.java
b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/eventing/EventDistributor.java
index 1a806bc..34d4b20 100644
---
a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/eventing/EventDistributor.java
+++
b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/eventing/EventDistributor.java
@@ -28,7 +28,6 @@ import org.apache.geode.annotations.VisibleForTesting;
import org.apache.geode.cache.partition.PartitionListenerAdapter;
import org.apache.geode.internal.lang.utils.JavaWorkarounds;
import org.apache.geode.logging.internal.executors.LoggingThreadFactory;
-import org.apache.geode.redis.internal.commands.RedisCommandType;
import org.apache.geode.redis.internal.data.RedisKey;
public class EventDistributor extends PartitionListenerAdapter {
@@ -52,14 +51,14 @@ public class EventDistributor extends
PartitionListenerAdapter {
listener.scheduleTimeout(timerExecutor, this);
}
- public void fireEvent(RedisCommandType command, RedisKey key) {
+ public void fireEvent(NotificationEvent notificationEvent, RedisKey key) {
Queue<EventListener> listenerList = listeners.get(key);
if (listenerList == null) {
return;
}
for (EventListener listener : listenerList) {
- if (listener.process(command, key) == EventResponse.REMOVE_AND_STOP) {
+ if (listener.process(notificationEvent, key) ==
EventResponse.REMOVE_AND_STOP) {
removeListener(listener);
break;
}
diff --git
a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/eventing/EventListener.java
b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/eventing/EventListener.java
index c0e1f54..941e527 100644
---
a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/eventing/EventListener.java
+++
b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/eventing/EventListener.java
@@ -18,7 +18,6 @@ package org.apache.geode.redis.internal.eventing;
import java.util.List;
import java.util.concurrent.ScheduledExecutorService;
-import org.apache.geode.redis.internal.commands.RedisCommandType;
import org.apache.geode.redis.internal.data.RedisKey;
/**
@@ -32,11 +31,11 @@ public interface EventListener {
* Receive and process an event. This method should execute very quickly.
The return value
* determines additional process steps for the given event.
*
- * @param commandType the command triggering the event
+ * @param notificationEvent the event triggered by the command
* @param key the key triggering the event
* @return response determining subsequent processing steps
*/
- EventResponse process(RedisCommandType commandType, RedisKey key);
+ EventResponse process(NotificationEvent notificationEvent, RedisKey key);
/**
* Return the list of keys this listener is interested in.
diff --git
a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/eventing/EventResponse.java
b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/eventing/EventResponse.java
index 538e49d..1e555a4 100644
---
a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/eventing/EventResponse.java
+++
b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/eventing/EventResponse.java
@@ -15,11 +15,10 @@
package org.apache.geode.redis.internal.eventing;
-import org.apache.geode.redis.internal.commands.RedisCommandType;
import org.apache.geode.redis.internal.data.RedisKey;
/**
- * Response returned by {@link EventListener#process(RedisCommandType,
RedisKey)}
+ * Response returned by {@link EventListener#process(NotificationEvent,
RedisKey)}
*/
public enum EventResponse {
/**
diff --git
a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/eventing/EventResponse.java
b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/eventing/NotificationEvent.java
similarity index 66%
copy from
geode-for-redis/src/main/java/org/apache/geode/redis/internal/eventing/EventResponse.java
copy to
geode-for-redis/src/main/java/org/apache/geode/redis/internal/eventing/NotificationEvent.java
index 538e49d..36c0175 100644
---
a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/eventing/EventResponse.java
+++
b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/eventing/NotificationEvent.java
@@ -15,20 +15,17 @@
package org.apache.geode.redis.internal.eventing;
-import org.apache.geode.redis.internal.commands.RedisCommandType;
-import org.apache.geode.redis.internal.data.RedisKey;
-
/**
- * Response returned by {@link EventListener#process(RedisCommandType,
RedisKey)}
+ * These are the notification events used to trigger keyspace events and
blocking commands.
+ *
+ * @see <a href="https://redis.io/docs/manual/keyspace-notifications">Redis
notifications</a>
*/
-public enum EventResponse {
- /**
- * Response indicating that processing should continue.
- */
- CONTINUE,
- /**
- * Response indicating that processing should stop and the listener should be
- * removed.
- */
- REMOVE_AND_STOP
+public enum NotificationEvent {
+
+ LPUSH,
+ RENAME_FROM,
+ RENAME_TO,
+ RESTORE,
+ RPUSH,
+
}
diff --git
a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/netty/ExecutionHandlerContext.java
b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/netty/ExecutionHandlerContext.java
index 5bb01a7..38a998a 100644
---
a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/netty/ExecutionHandlerContext.java
+++
b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/netty/ExecutionHandlerContext.java
@@ -62,6 +62,7 @@ import org.apache.geode.redis.internal.data.RedisSortedSet;
import org.apache.geode.redis.internal.data.RedisString;
import org.apache.geode.redis.internal.eventing.EventDistributor;
import org.apache.geode.redis.internal.eventing.EventListener;
+import org.apache.geode.redis.internal.eventing.NotificationEvent;
import org.apache.geode.redis.internal.pubsub.PubSub;
import org.apache.geode.redis.internal.services.RegionProvider;
import org.apache.geode.redis.internal.services.locking.RedisSecurityService;
@@ -423,8 +424,8 @@ public class ExecutionHandlerContext extends
ChannelInboundHandlerAdapter {
eventDistributor.registerListener(listener);
}
- public void fireEvent(RedisCommandType command, RedisKey key) {
- eventDistributor.fireEvent(command, key);
+ public void fireEvent(NotificationEvent notificationEvent, RedisKey key) {
+ eventDistributor.fireEvent(notificationEvent, key);
}
public Region<RedisKey, RedisData> getRegion() {