[infinispan-commits] Infinispan SVN: r179 - in trunk/core/src/main/java/org/infinispan/commands: write and 1 other directory.
infinispan-commits at lists.jboss.org
infinispan-commits at lists.jboss.org
Mon Apr 27 15:35:39 EDT 2009
Author: manik.surtani at jboss.com
Date: 2009-04-27 15:35:39 -0400 (Mon, 27 Apr 2009)
New Revision: 179
Modified:
trunk/core/src/main/java/org/infinispan/commands/CommandsFactoryImpl.java
trunk/core/src/main/java/org/infinispan/commands/write/ClearCommand.java
Log:
Clear command to notify
Modified: trunk/core/src/main/java/org/infinispan/commands/CommandsFactoryImpl.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/CommandsFactoryImpl.java 2009-04-27 17:22:25 UTC (rev 178)
+++ trunk/core/src/main/java/org/infinispan/commands/CommandsFactoryImpl.java 2009-04-27 19:35:39 UTC (rev 179)
@@ -114,7 +114,7 @@
}
public ClearCommand buildClearCommand() {
- return new ClearCommand();
+ return new ClearCommand(notifier);
}
public EvictCommand buildEvictCommand(Object key) {
@@ -190,6 +190,10 @@
if (pc.getModifications() != null)
for (ReplicableCommand nested : pc.getModifications()) initializeReplicableCommand(nested);
break;
+ case ClearCommand.COMMAND_ID:
+ ClearCommand cc = (ClearCommand) c;
+ cc.init(notifier);
+ break;
case ClusteredGetCommand.COMMAND_ID:
ClusteredGetCommand clusteredGetCommand = (ClusteredGetCommand) c;
clusteredGetCommand.initialize(dataContainer, cacheLoaderManager);
Modified: trunk/core/src/main/java/org/infinispan/commands/write/ClearCommand.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/write/ClearCommand.java 2009-04-27 17:22:25 UTC (rev 178)
+++ trunk/core/src/main/java/org/infinispan/commands/write/ClearCommand.java 2009-04-27 19:35:39 UTC (rev 179)
@@ -25,6 +25,7 @@
import org.infinispan.container.entries.CacheEntry;
import org.infinispan.container.entries.MVCCEntry;
import org.infinispan.context.InvocationContext;
+import org.infinispan.notifications.cachelistener.CacheNotifier;
/**
* @author Mircea.Markus at jboss.com
@@ -32,8 +33,20 @@
*/
public class ClearCommand implements WriteCommand {
private static final Object[] params = new Object[0];
- public static final byte METHOD_ID = 17;
+ public static final byte COMMAND_ID = 17;
+ CacheNotifier notifier;
+ public ClearCommand() {
+ }
+
+ public ClearCommand(CacheNotifier notifier) {
+ this.notifier = notifier;
+ }
+
+ public void init(CacheNotifier notifier) {
+ this.notifier = notifier;
+ }
+
public Object acceptVisitor(InvocationContext ctx, Visitor visitor) throws Throwable {
return visitor.visitClearCommand(ctx, this);
}
@@ -42,8 +55,11 @@
for (CacheEntry e : ctx.getLookedUpEntries().values()) {
if (e instanceof MVCCEntry) {
MVCCEntry me = (MVCCEntry) e;
+ Object k = me.getKey(), v = me.getValue();
+ notifier.notifyCacheEntryRemoved(k, v, true, ctx);
me.setRemoved(true);
me.setValid(false);
+ notifier.notifyCacheEntryRemoved(k, null, false, ctx);
}
}
return null;
@@ -54,11 +70,11 @@
}
public byte getCommandId() {
- return METHOD_ID;
+ return COMMAND_ID;
}
public void setParameters(int commandId, Object[] parameters) {
- if (commandId != METHOD_ID) throw new IllegalStateException("Invalid method id");
+ if (commandId != COMMAND_ID) throw new IllegalStateException("Invalid command id");
}
@Override
More information about the infinispan-commits
mailing list