[jboss-cvs] JBossCache/src/org/jboss/cache/interceptors ...
Manik Surtani
msurtani at jboss.com
Wed Jan 3 12:50:31 EST 2007
User: msurtani
Date: 07/01/03 12:50:31
Modified: src/org/jboss/cache/interceptors
OptimisticNodeInterceptor.java
CacheMgmtInterceptor.java
Log:
added more rich nodeModified callback
Revision Changes Path
1.44 +26 -19 JBossCache/src/org/jboss/cache/interceptors/OptimisticNodeInterceptor.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: OptimisticNodeInterceptor.java
===================================================================
RCS file: /cvsroot/jboss/JBossCache/src/org/jboss/cache/interceptors/OptimisticNodeInterceptor.java,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -b -r1.43 -r1.44
--- OptimisticNodeInterceptor.java 3 Jan 2007 15:33:08 -0000 1.43
+++ OptimisticNodeInterceptor.java 3 Jan 2007 17:50:31 -0000 1.44
@@ -7,6 +7,7 @@
package org.jboss.cache.interceptors;
import org.jboss.cache.CacheException;
+import org.jboss.cache.CacheListener;
import org.jboss.cache.CacheSPI;
import org.jboss.cache.Fqn;
import org.jboss.cache.GlobalTransaction;
@@ -20,6 +21,7 @@
import org.jboss.cache.optimistic.TransactionWorkspace;
import org.jboss.cache.optimistic.WorkspaceNode;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.SortedMap;
@@ -130,19 +132,24 @@
{
case MethodDeclarations.putDataMethodLocal_id:
Boolean erase = (Boolean) args[3];
- cache.getNotifier().notifyNodeModified(fqn, true, workspaceNode == null ? null : workspaceNode.getData(), false);
+ cache.getNotifier().notifyNodeModified(fqn, true, CacheListener.ModificationType.PUT_MAP, workspaceNode == null ? null : workspaceNode.getData(), false);
putDataMap((Map<Object, Object>) args[2], erase, workspace, workspaceNode);
- cache.getNotifier().notifyNodeModified(fqn, false, workspaceNode.getData(), false);
+ cache.getNotifier().notifyNodeModified(fqn, false, CacheListener.ModificationType.PUT_MAP, workspaceNode.getData(), false);
break;
case MethodDeclarations.putDataEraseMethodLocal_id:
- cache.getNotifier().notifyNodeModified(fqn, true, workspaceNode == null ? null : workspaceNode.getData(), false);
+ cache.getNotifier().notifyNodeModified(fqn, true, CacheListener.ModificationType.PUT_MAP, workspaceNode == null ? null : workspaceNode.getData(), false);
putDataMap((Map<Object, Object>) args[2], true, workspace, workspaceNode);
- cache.getNotifier().notifyNodeModified(fqn, false, workspaceNode.getData(), false);
+ cache.getNotifier().notifyNodeModified(fqn, false, CacheListener.ModificationType.PUT_MAP, workspaceNode.getData(), false);
break;
case MethodDeclarations.putKeyValMethodLocal_id:
- cache.getNotifier().notifyNodeModified(fqn, true, workspaceNode == null ? null : workspaceNode.getData(), false);
- result = putDataKeyValue(args, workspace, workspaceNode);
- cache.getNotifier().notifyNodeModified(fqn, false, workspaceNode.getData(), false);
+ Object key = args[2];
+ Object value = args[3];
+ Map addedData = new HashMap();
+ addedData.put(key, value);
+
+ cache.getNotifier().notifyNodeModified(fqn, true, CacheListener.ModificationType.PUT_DATA, workspaceNode == null ? null : workspaceNode.getData(), false);
+ result = putDataKeyValue(key, value, workspace, workspaceNode);
+ cache.getNotifier().notifyNodeModified(fqn, false, CacheListener.ModificationType.PUT_DATA, addedData, false);
break;
case MethodDeclarations.removeNodeMethodLocal_id:
cache.getNotifier().notifyNodeRemoved(fqn, true, workspaceNode == null ? null : workspaceNode.getData(), false);
@@ -150,14 +157,18 @@
cache.getNotifier().notifyNodeRemoved(fqn, false, null, false);
break;
case MethodDeclarations.removeKeyMethodLocal_id:
- cache.getNotifier().notifyNodeModified(fqn, true, workspaceNode == null ? null : workspaceNode.getData(), false);
- result = removeKey(args, workspace, workspaceNode);
- cache.getNotifier().notifyNodeModified(fqn, false, workspaceNode == null ? null : workspaceNode.getData(), false);
+ cache.getNotifier().notifyNodeModified(fqn, true, CacheListener.ModificationType.REMOVE_DATA, workspaceNode == null ? null : workspaceNode.getData(), false);
+ Object removeKey = args[2];
+ result = removeKey(removeKey, workspace, workspaceNode);
+ Map removedData = new HashMap();
+ removedData.put(removeKey, result);
+ cache.getNotifier().notifyNodeModified(fqn, false, CacheListener.ModificationType.REMOVE_DATA, removedData, false);
break;
case MethodDeclarations.removeDataMethodLocal_id:
- cache.getNotifier().notifyNodeModified(fqn, true, workspaceNode == null ? null : workspaceNode.getData(), false);
+ Map data = workspaceNode == null ? null : new HashMap(workspaceNode.getData());
+ cache.getNotifier().notifyNodeModified(fqn, true, CacheListener.ModificationType.REMOVE_DATA, data, false);
removeData(workspace, workspaceNode);
- cache.getNotifier().notifyNodeModified(fqn, false, workspaceNode == null ? null : workspaceNode.getData(), false);
+ cache.getNotifier().notifyNodeModified(fqn, false, CacheListener.ModificationType.REMOVE_DATA, data, false);
break;
case MethodDeclarations.dataGravitationCleanupMethod_id:
result = super.invoke(m);
@@ -294,12 +305,8 @@
workspace.addNode(workspaceNode);
}
- private Object putDataKeyValue(Object[] args, TransactionWorkspace workspace, WorkspaceNode workspaceNode)
+ private Object putDataKeyValue(Object key, Object value, TransactionWorkspace workspace, WorkspaceNode workspaceNode)
{
-
- Object key = args[2];
- Object value = args[3];
-
if (workspaceNode == null)
{
return null;// this should be an exception
@@ -356,13 +363,13 @@
}
}
- private Object removeKey(Object[] args, TransactionWorkspace workspace, WorkspaceNode workspaceNode)
+ private Object removeKey(Object removeKey, TransactionWorkspace workspace, WorkspaceNode workspaceNode)
{
if (workspaceNode == null)
{
return null;
}
- Object removeKey = args[2];
+
Object old = workspaceNode.remove(removeKey);
workspace.addNode(workspaceNode);
return old;
1.27 +2 -2 JBossCache/src/org/jboss/cache/interceptors/CacheMgmtInterceptor.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: CacheMgmtInterceptor.java
===================================================================
RCS file: /cvsroot/jboss/JBossCache/src/org/jboss/cache/interceptors/CacheMgmtInterceptor.java,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -b -r1.26 -r1.27
--- CacheMgmtInterceptor.java 2 Jan 2007 17:15:29 -0000 1.26
+++ CacheMgmtInterceptor.java 3 Jan 2007 17:50:31 -0000 1.27
@@ -43,7 +43,7 @@
* Captures cache management statistics
*
* @author Jerry Gauthier
- * @version $Id: CacheMgmtInterceptor.java,v 1.26 2007/01/02 17:15:29 msurtani Exp $
+ * @version $Id: CacheMgmtInterceptor.java,v 1.27 2007/01/03 17:50:31 msurtani Exp $
*/
public class CacheMgmtInterceptor extends Interceptor implements CacheMgmtInterceptorMBean, NotificationBroadcaster
{
@@ -381,7 +381,7 @@
m_broadcaster.sendNotification(n);
}
- public void nodeModified(Fqn fqn, boolean pre, boolean isLocal, Map data)
+ public void nodeModified(Fqn fqn, boolean pre, boolean isLocal, ModificationType modType, Map data)
{
Notification n = new Notification(NOTIF_NODE_MODIFIED, this, seq(), MSG_NODE_MODIFIED);
n.setUserData(new Object[]{fqn.toString(), pre, isLocal});
More information about the jboss-cvs-commits
mailing list