[jboss-cvs] JBossAS SVN: r96900 - in projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency: plugins/tracker and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Nov 24 18:51:22 EST 2009


Author: alesj
Date: 2009-11-24 18:51:21 -0500 (Tue, 24 Nov 2009)
New Revision: 96900

Modified:
   projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractControllerContext.java
   projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/tracker/AbstractContextTracker.java
   projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/tracker/TrackerConstants.java
   projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/spi/tracker/ContextTracker.java
Log:
Diff between add and increment.

Modified: projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractControllerContext.java
===================================================================
--- projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractControllerContext.java	2009-11-24 23:41:49 UTC (rev 96899)
+++ projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractControllerContext.java	2009-11-24 23:51:21 UTC (rev 96900)
@@ -409,14 +409,14 @@
       {
          ContextTracker myTracker = getContextTracker();
          if (myTracker != null)
-            myTracker.addUsedBy(this, user);
+            myTracker.incrementUsedBy(this, user);
 
          if (user instanceof ContextTracking)
          {
             ContextTracking ct = ContextTracking.class.cast(user);
             ContextTracker otherTracker = ct.getContextTracker();
             if (otherTracker != null)
-               otherTracker.addUsedBy(this, user);
+               otherTracker.incrementUsedBy(this, user);
          }
       }
       return result;
@@ -429,14 +429,14 @@
       {
          ContextTracker myTracker = getContextTracker();
          if (myTracker != null)
-            myTracker.removeUsedBy(this, user);
+            myTracker.decrementUsedBy(this, user);
 
          if (user instanceof ContextTracking)
          {
             ContextTracking ct = ContextTracking.class.cast(user);
             ContextTracker otherTracker = ct.getContextTracker();
             if (otherTracker != null)
-               otherTracker.removeUsedBy(this, user);
+               otherTracker.decrementUsedBy(this, user);
          }
       }
       return result;
@@ -451,9 +451,9 @@
          {
             ContextTracker myTracker = getContextTracker();
             if (myTracker != null)
-               myTracker.addUsedBy(this, tracker);
+               myTracker.incrementUsedBy(this, tracker);
 
-            tracker.addUsedBy(this, tracker);
+            tracker.incrementUsedBy(this, tracker);
          }
       }
       return result;
@@ -465,9 +465,9 @@
       {
          ContextTracker myTracker = getContextTracker();
          if (myTracker != null)
-            myTracker.removeUsedBy(this, tracker);
+            myTracker.decrementUsedBy(this, tracker);
 
-         tracker.removeUsedBy(this, tracker);
+         tracker.decrementUsedBy(this, tracker);
       }
    }
 

Modified: projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/tracker/AbstractContextTracker.java
===================================================================
--- projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/tracker/AbstractContextTracker.java	2009-11-24 23:41:49 UTC (rev 96899)
+++ projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/tracker/AbstractContextTracker.java	2009-11-24 23:51:21 UTC (rev 96900)
@@ -60,7 +60,14 @@
       }
    }
 
-   public void addUsedBy(ControllerContext context, Object user)
+   /**
+    * Add + increment.
+    *
+    * @param context the used context
+    * @param user the user / target
+    * @param increment do we increment
+    */
+   private void add(ControllerContext context, Object user, boolean increment)
    {
       lockWrite();
       try
@@ -75,7 +82,10 @@
          if (count == null)
             count = 0;
 
-         counter.put(user, ++count);
+         if (increment)
+            count++;
+
+         counter.put(user, count);
       }
       finally
       {
@@ -83,7 +93,14 @@
       }
    }
 
-   public void removeUsedBy(ControllerContext context, Object user)
+   /**
+    * Remove + decrement.
+    *
+    * @param context the used context
+    * @param user the user
+    * @param decrement do we actually decrement
+    */
+   private void remove(ControllerContext context, Object user, boolean decrement)
    {
       lockWrite();
       try
@@ -92,14 +109,14 @@
          if (counter != null)
          {
             Integer count = counter.get(user);
-            if (count == null || count <= 1)
+            if (count == null || count == 0 || (count == 1 && decrement))
             {
                counter.remove(user);
 
                if (counter.isEmpty())
                   map.remove(context);
             }
-            else
+            else if (decrement)
             {
                counter.put(user, --count);
             }
@@ -111,6 +128,26 @@
       }
    }
 
+   public void addUsedBy(ControllerContext context, Object user)
+   {
+      add(context, user, false);
+   }
+
+   public void incrementUsedBy(ControllerContext context, Object user)
+   {
+      add(context, user, true);
+   }
+
+   public void decrementUsedBy(ControllerContext context, Object user)
+   {
+      remove(context, user, true);
+   }
+
+   public void removeUsedBy(ControllerContext context, Object user)
+   {
+      remove(context, user, false);
+   }
+
    public boolean isContextInUse(ControllerContext context)
    {
       lockRead();

Modified: projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/tracker/TrackerConstants.java
===================================================================
--- projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/tracker/TrackerConstants.java	2009-11-24 23:41:49 UTC (rev 96899)
+++ projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/tracker/TrackerConstants.java	2009-11-24 23:51:21 UTC (rev 96900)
@@ -46,6 +46,14 @@
       {
       }
 
+      public void incrementUsedBy(ControllerContext used, Object user)
+      {
+      }
+
+      public void decrementUsedBy(ControllerContext used, Object user)
+      {
+      }
+
       public void removeUsedBy(ControllerContext used, Object user)
       {
       }

Modified: projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/spi/tracker/ContextTracker.java
===================================================================
--- projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/spi/tracker/ContextTracker.java	2009-11-24 23:41:49 UTC (rev 96899)
+++ projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/spi/tracker/ContextTracker.java	2009-11-24 23:51:21 UTC (rev 96900)
@@ -43,7 +43,8 @@
    int getUsedByCount(ControllerContext used, Object user);
 
    /**
-    * Add context's user..
+    * Add context's user.
+    * No actual usage yet.
     *
     * @param used the used context
     * @param user the user that tracks used.
@@ -51,6 +52,22 @@
    void addUsedBy(ControllerContext used, Object user);
 
    /**
+    * Increment context's user.
+    *
+    * @param used the used context
+    * @param user the user that tracks used.
+    */
+   void incrementUsedBy(ControllerContext used, Object user);
+
+   /**
+    * Decrement context's user.
+    *
+    * @param used the used context
+    * @param user the user that tracks used.
+    */
+   void decrementUsedBy(ControllerContext used, Object user);
+
+   /**
     * Remove context's user.
     *
     * @param used the used context




More information about the jboss-cvs-commits mailing list