[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