[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