[jboss-cvs] JBossAS SVN: r96871 - 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 11:22:49 EST 2009


Author: alesj
Date: 2009-11-24 11:22:48 -0500 (Tue, 24 Nov 2009)
New Revision: 96871

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:
Add other side of tracking against tracker.

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 16:16:58 UTC (rev 96870)
+++ projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractControllerContext.java	2009-11-24 16:22:48 UTC (rev 96871)
@@ -445,13 +445,34 @@
    public Object getTarget(ContextTracker tracker)
    {
       Object result = getTarget();
-      tracker.addUsing(this);
+      if (result != null)
+      {
+         if (tracker != null)
+         {
+            ContextTracker myTracker = getContextTracker();
+            if (myTracker != null)
+               myTracker.addTrackedBy(tracker, this);
+
+            tracker.addUsing(this);
+         }
+      }
       return result;
    }
 
    public void ungetTarget(ContextTracker tracker)
    {
-      tracker.removeUsing(this);
+      Object result = getTarget();
+      if (result != null)
+      {
+         if (tracker != null)
+         {
+            ContextTracker myTracker = getContextTracker();
+            if (myTracker != null)
+               myTracker.removeTrackedBy(tracker, this);
+
+            tracker.removeUsing(this);
+         }
+      }
    }
 
    public void toString(JBossStringBuilder buffer)

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 16:16:58 UTC (rev 96870)
+++ projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/tracker/AbstractContextTracker.java	2009-11-24 16:22:48 UTC (rev 96871)
@@ -37,18 +37,27 @@
  */
 public class AbstractContextTracker extends AbstractLockHolder implements ContextTracker
 {
+   /** The dummy */
+   private static final Object DUMMY = new Object();
+
    /** The mapping */
-   private Map<ControllerContext, Map<ControllerContext, Integer>> map = new HashMap<ControllerContext, Map<ControllerContext, Integer>>();
+   private Map<ControllerContext, Map<Object, Integer>> map = new HashMap<ControllerContext, Map<Object, Integer>>();
 
-   public void addInUseContext(ControllerContext target, ControllerContext used)
+   /**
+    * Add mapping.
+    *
+    * @param target the target/user
+    * @param used the used
+    */
+   private void add(Object target, ControllerContext used)
    {
       lockWrite();
       try
       {
-         Map<ControllerContext, Integer> counter = map.get(used);
+         Map<Object, Integer> counter = map.get(used);
          if (counter == null)
          {
-            counter = new HashMap<ControllerContext, Integer>();
+            counter = new HashMap<Object, Integer>();
             map.put(used, counter);
          }
          Integer count = counter.get(target);
@@ -63,17 +72,18 @@
       }
    }
 
-   public void addUsing(ControllerContext used)
+   /**
+    * Remove mapping.
+    *
+    * @param target the target/user
+    * @param used the used
+    */
+   private void remove(Object target, ControllerContext used)
    {
-      addInUseContext(TrackerConstants.DUMMY, used);
-   }
-
-   public void removeInUseContext(ControllerContext target, ControllerContext used)
-   {
       lockWrite();
       try
       {
-         Map<ControllerContext, Integer> counter = map.get(used);
+         Map<Object, Integer> counter = map.get(used);
          if (counter != null)
          {
             Integer count = counter.get(target);
@@ -96,9 +106,34 @@
       }
    }
 
+   public void addInUseContext(ControllerContext target, ControllerContext used)
+   {
+      add(target, used);
+   }
+
+   public void addTrackedBy(ContextTracker tracker, ControllerContext used)
+   {
+      add(tracker, used);
+   }
+
+   public void addUsing(ControllerContext used)
+   {
+      add(DUMMY, used);
+   }
+
+   public void removeInUseContext(ControllerContext target, ControllerContext used)
+   {
+      remove(target, used);
+   }
+
+   public void removeTrackedBy(ContextTracker tracker, ControllerContext used)
+   {
+      remove(tracker, used);
+   }
+
    public void removeUsing(ControllerContext used)
    {
-      removeInUseContext(TrackerConstants.DUMMY, used);
+      remove(DUMMY, used);
    }
 
    public boolean isContextInUse(ControllerContext used)
@@ -114,17 +149,17 @@
       }
    }
 
-   public Set<ControllerContext> getUsingContexts(ControllerContext used)
+   public Set<Object> getUsers(ControllerContext used)
    {
       lockRead();
       try
       {
-         Map<ControllerContext, Integer> counter = map.get(used);
+         Map<Object, Integer> counter = map.get(used);
          if (counter != null)
          {
-            Set<ControllerContext> contexts = counter.keySet();
-            Set<ControllerContext> copy = new HashSet<ControllerContext>(contexts);
-            copy.remove(TrackerConstants.DUMMY);
+            Set<Object> contexts = counter.keySet();
+            Set<Object> copy = new HashSet<Object>(contexts);
+            copy.remove(DUMMY);
             return copy;
          }
          else

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 16:16:58 UTC (rev 96870)
+++ projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/tracker/TrackerConstants.java	2009-11-24 16:22:48 UTC (rev 96871)
@@ -23,15 +23,8 @@
 
 import java.util.Set;
 
-import org.jboss.dependency.spi.Controller;
 import org.jboss.dependency.spi.ControllerContext;
-import org.jboss.dependency.spi.ControllerMode;
-import org.jboss.dependency.spi.ControllerState;
-import org.jboss.dependency.spi.DependencyInfo;
-import org.jboss.dependency.spi.ErrorHandlingMode;
-import org.jboss.dependency.spi.ScopeInfo;
 import org.jboss.dependency.spi.tracker.ContextTracker;
-import org.jboss.util.JBossStringBuilder;
 
 /**
  * Tracker constants.
@@ -41,123 +34,29 @@
  */
 public abstract class TrackerConstants
 {
-   /** The context dummy */
-   static final ControllerContext DUMMY = new ControllerContext()
+   /** Dummy anchor tracker */
+   public static final ContextTracker FLAG = new ContextTracker()
    {
-      public Object getName()
+      public void addInUseContext(ControllerContext target, ControllerContext used)
       {
-         return null;
       }
 
-      public Set<Object> getAliases()
+      public void addTrackedBy(ContextTracker tracker, ControllerContext used)
       {
-         return null;
       }
 
-      public DependencyInfo getDependencyInfo()
+      public void addUsing(ControllerContext used)
       {
-         return null;
       }
 
-      public ScopeInfo getScopeInfo()
+      public void removeInUseContext(ControllerContext target, ControllerContext used)
       {
-         return null;
       }
 
-      public Object getTarget()
+      public void removeTrackedBy(ContextTracker tracker, ControllerContext used)
       {
-         return null;
       }
 
-      public Controller getController()
-      {
-         return null;
-      }
-
-      public void setController(Controller controller)
-      {
-      }
-
-      public void install(ControllerState fromState, ControllerState toState) throws Throwable
-      {
-      }
-
-      public void uninstall(ControllerState fromState, ControllerState toState)
-      {
-      }
-
-      public ControllerState getState()
-      {
-         return null;
-      }
-
-      public void setState(ControllerState state)
-      {
-      }
-
-      public ControllerState getRequiredState()
-      {
-         return null;
-      }
-
-      public void setRequiredState(ControllerState state)
-      {
-      }
-
-      public ControllerMode getMode()
-      {
-         return null;
-      }
-
-      public void setMode(ControllerMode mode)
-      {
-      }
-
-      public ErrorHandlingMode getErrorHandlingMode()
-      {
-         return null;
-      }
-
-      public Throwable getError()
-      {
-         return null;
-      }
-
-      public void setError(Throwable error)
-      {
-      }
-
-      @SuppressWarnings({"CloneDoesntCallSuperClone"})
-      public Object clone()
-      {
-         return null;
-      }
-
-      public String toShortString()
-      {
-         return "DUMMY";
-      }
-
-      public void toShortString(JBossStringBuilder buffer)
-      {
-      }
-   };
-
-   /** Dummy anchor tracker */
-   public static final ContextTracker FLAG = new ContextTracker()
-   {
-      public void addInUseContext(ControllerContext target, ControllerContext used)
-      {
-      }
-
-      public void addUsing(ControllerContext used)
-      {
-      }
-
-      public void removeInUseContext(ControllerContext target, ControllerContext used)
-      {
-      }
-
       public void removeUsing(ControllerContext used)
       {
       }
@@ -167,7 +66,7 @@
          return false;
       }
 
-      public Set<ControllerContext> getUsingContexts(ControllerContext used)
+      public Set<Object> getUsers(ControllerContext used)
       {
          return null;
       }

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 16:16:58 UTC (rev 96870)
+++ projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/spi/tracker/ContextTracker.java	2009-11-24 16:22:48 UTC (rev 96871)
@@ -42,6 +42,14 @@
    void addInUseContext(ControllerContext target, ControllerContext used);
 
    /**
+    * Add contexts tracking tracker.
+    *
+    * @param tracker the tracker that tracks used.
+    * @param used the used context
+    */
+   void addTrackedBy(ContextTracker tracker, ControllerContext used);
+
+   /**
     * Add my usage of "used" context.
     *
     * @param used the used context
@@ -57,6 +65,14 @@
    void removeInUseContext(ControllerContext target, ControllerContext used);
 
    /**
+    * Remove contexts tracking tracker.
+    *
+    * @param tracker the tracker that tracked used.
+    * @param used the used context
+    */
+   void removeTrackedBy(ContextTracker tracker, ControllerContext used);
+
+   /**
     * Remove my usage of "used" context.
     *
     * @param used the used context
@@ -72,12 +88,12 @@
    boolean isContextInUse(ControllerContext used);
 
    /**
-    * Who all is using "used" contexts?
+    * Who all is using "used" context?
     *
     * @param used the context to check
-    * @return used using contexts
+    * @return used users
     */
-   Set<ControllerContext> getUsingContexts(ControllerContext used);
+   Set<Object> getUsers(ControllerContext used);
 
    /**
     * Which contexts do I use?




More information about the jboss-cvs-commits mailing list