[jboss-cvs] JBossAS SVN: r99653 - in projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins: resolver and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Jan 20 06:31:29 EST 2010


Author: kabir.khan at jboss.com
Date: 2010-01-20 06:31:28 -0500 (Wed, 20 Jan 2010)
New Revision: 99653

Modified:
   projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java
   projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/IndexingDependencyResolver2.java
Log:
Support aliases

Modified: projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java
===================================================================
--- projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java	2010-01-20 11:17:27 UTC (rev 99652)
+++ projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java	2010-01-20 11:31:28 UTC (rev 99653)
@@ -1991,6 +1991,7 @@
 
             // get the context's controller - not the one we registered with
             AbstractController controller = (AbstractController)context.getController();
+            ControllerContext lookup = controller.getContext(alias, null);
             controller.unregisterControllerContext(alias);
             if (log.isTraceEnabled())
                log.trace("Removed alias " + alias);

Modified: projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/IndexingDependencyResolver2.java
===================================================================
--- projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/IndexingDependencyResolver2.java	2010-01-20 11:17:27 UTC (rev 99652)
+++ projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/IndexingDependencyResolver2.java	2010-01-20 11:31:28 UTC (rev 99653)
@@ -21,7 +21,9 @@
 */ 
 package org.jboss.dependency.plugins.resolver;
 
+import java.util.HashSet;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
@@ -34,6 +36,8 @@
 import org.jboss.dependency.spi.DependencyInfo;
 import org.jboss.dependency.spi.DependencyItem;
 
+import com.sun.org.apache.bcel.internal.generic.ALOAD;
+
 /**
  * Optimized  
  * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
@@ -142,16 +146,53 @@
       return plugin.canMoveToState(ctx, state);
    }
 
+   private Set<ControllerContext> getAllContextsDependentOn(ControllerContext incremented)
+   {
+      Set<ControllerContext> result = null;
+      ConcurrentMap<ControllerState, List<ControllerContext>> contextsByDependentState = contextsByDependency.get(incremented.getName());
+      result = addContextsDependentOn(result, incremented.getState(), contextsByDependentState);
+      
+      Set<Object> aliases = incremented.getAliases();
+      if (aliases != null && aliases.size() > 0)
+      {
+         for (Object alias : aliases)
+         {
+            contextsByDependentState = contextsByDependency.get(alias);
+            result = addContextsDependentOn(result, incremented.getState(), contextsByDependentState);
+         }
+      }
+      return result;
+   }
+   
+   private Set<ControllerContext> addContextsDependentOn(Set<ControllerContext> result, ControllerState dependentState, Map<ControllerState, List<ControllerContext>> contextsByDependentState)
+   {
+      if (contextsByDependentState != null && !contextsByDependentState.isEmpty())
+      {
+         List<ControllerContext> contextsForName = contextsByDependentState.get(dependentState);
+         if (contextsForName != null && !contextsForName.isEmpty())
+         {
+            if (result == null)
+               result = new HashSet<ControllerContext>();
+            result.addAll(contextsForName);
+         }
+      }
+      return result;
+   }
+   
    @Override
    public void stateIncremented(ControllerContext incremented, boolean trace)
    {
-      //private final ConcurrentMap<Object, ConcurrentMap<ControllerState, List<ControllerContext>>> contextsByDependency = new ConcurrentHashMap<Object, ConcurrentMap<ControllerState, List<ControllerContext>>>();
-      ConcurrentMap<ControllerState, List<ControllerContext>> contextsByDependentState = contextsByDependency.get(incremented.getName());
-      if (contextsByDependentState == null || contextsByDependentState.size() == 0)
-         return;
-      List<ControllerContext> contexts = contextsByDependentState.get(incremented.getState());
+//      //private final ConcurrentMap<Object, ConcurrentMap<ControllerState, List<ControllerContext>>> contextsByDependency = new ConcurrentHashMap<Object, ConcurrentMap<ControllerState, List<ControllerContext>>>();
+//      ConcurrentMap<ControllerState, List<ControllerContext>> contextsByDependentState = contextsByDependency.get(incremented.getName());
+//      
+//      if (contextsByDependentState == null || contextsByDependentState.size() == 0)
+//         return;
+//      List<ControllerContext> contexts = contextsByDependentState.get(incremented.getState());
+//      if (contexts == null || contexts.size() == 0)
+//         return;
+      Set<ControllerContext> contexts = getAllContextsDependentOn(incremented);
       if (contexts == null || contexts.size() == 0)
-         return;
+      return;      
       
       for (ControllerContext context : contexts)
       {




More information about the jboss-cvs-commits mailing list