[jboss-cvs] JBossAS SVN: r97072 - projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Nov 27 02:44:17 EST 2009


Author: alesj
Date: 2009-11-27 02:44:17 -0500 (Fri, 27 Nov 2009)
New Revision: 97072

Modified:
   projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractControllerContext.java
Log:
Get minimal scope level from default scope key - not assuming anything.

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-27 07:36:03 UTC (rev 97071)
+++ projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractControllerContext.java	2009-11-27 07:44:17 UTC (rev 97072)
@@ -23,10 +23,12 @@
 
 import java.io.PrintWriter;
 import java.io.StringWriter;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
+import java.util.TreeSet;
 
 import static org.jboss.dependency.plugins.tracker.TrackerConstants.NOOP;
 import org.jboss.dependency.spi.Controller;
@@ -42,6 +44,7 @@
 import org.jboss.metadata.spi.MetaData;
 import org.jboss.metadata.spi.scope.CommonLevels;
 import org.jboss.metadata.spi.scope.CommonLevelsUtil;
+import org.jboss.metadata.spi.scope.Scope;
 import org.jboss.metadata.spi.scope.ScopeKey;
 import org.jboss.metadata.spi.scope.ScopeLevel;
 import org.jboss.util.JBossObject;
@@ -56,6 +59,23 @@
  */
 public class AbstractControllerContext extends JBossObject implements ControllerContext, ContextTracking
 {
+   /**The default's minimal scope level */
+   private static final ScopeLevel DEFAULT_MINIMAL;
+
+   static
+   {
+      Collection<Scope> scopes = ScopeKey.DEFAULT_SCOPE.getScopes();
+      Set<ScopeLevel> levels = new TreeSet<ScopeLevel>();
+      if (scopes != null && scopes.isEmpty() == false)
+      {
+         for (Scope scope : scopes)
+            levels.add(scope.getScopeLevel());
+      }
+      if (levels.isEmpty())
+         throw new IllegalArgumentException("Default scope key doesn't have minimal level: " + scopes);
+      DEFAULT_MINIMAL = levels.iterator().next();
+   }
+
    /** The name */
    private Object name;
 
@@ -387,8 +407,7 @@
                ct = metaData.getMetaData(ContextTracker.class);
                if (ct == null)
                {
-                  // go all the way up to default scope, get min level -- default should have single scope?
-                  List<ScopeLevel> levels = CommonLevelsUtil.getSubLevels(ScopeKey.DEFAULT_SCOPE.getMaxScopeLevel());
+                  List<ScopeLevel> levels = CommonLevelsUtil.getSubLevels(DEFAULT_MINIMAL);
                   int instanceIndex = levels.indexOf(CommonLevels.INSTANCE);
                   for (int i = instanceIndex; i >= 0 && ct == null; i--)
                   {




More information about the jboss-cvs-commits mailing list