[webbeans-commits] Webbeans SVN: r426 - in ri/trunk/webbeans-ri/src: main/java/org/jboss/webbeans/contexts and 2 other directories.

webbeans-commits at lists.jboss.org webbeans-commits at lists.jboss.org
Sat Dec 6 17:24:18 EST 2008


Author: gavin.king at jboss.com
Date: 2008-12-06 17:24:18 -0500 (Sat, 06 Dec 2008)
New Revision: 426

Modified:
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/contexts/ContextMap.java
   ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/AbstractTest.java
   ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ManagerTest.java
   ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/MockManagerImpl.java
Log:
let the client set up contexts for a manager (very ugly use of inheritance there)

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java	2008-12-06 21:52:42 UTC (rev 425)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java	2008-12-06 22:24:18 UTC (rev 426)
@@ -76,6 +76,11 @@
    public static final String JNDI_KEY = "java:comp/Manager";
    
    protected static ManagerImpl rootManager = new ManagerImpl();
+   static {
+      rootManager.addContext(RequestContext.INSTANCE);
+      rootManager.addContext(SessionContext.INSTANCE);
+      rootManager.addContext(ApplicationContext.INSTANCE);
+   }
    
    public static ManagerImpl rootManager()
    {
@@ -102,9 +107,10 @@
       this.proxyPool = new ProxyPool();
       this.decorators = new HashSet<Decorator>();
       this.interceptors = new HashSet<Interceptor>();
+      this.contextMap = new ContextMap();
       initEnabledDeploymentTypes();
-      initContexts();
       initStandardBeans();
+      addContext(new DependentContext());
    }
 
    /**
@@ -144,32 +150,6 @@
    }
 
    /**
-    * Set up the contexts. By default, the built in contexts are set up, but a
-    * mock ManagerImpl may override this method to allow tests to set up other
-    * contexts
-    * 
-    * @param contexts Non-built-in contexts to add
-    */
-   protected void initContexts(Context... contexts)
-   {
-      this.contextMap = new ContextMap();
-      if (contexts.length == 0)
-      {
-         addContext(new DependentContext());
-         addContext(RequestContext.INSTANCE);
-         addContext(SessionContext.INSTANCE);
-         addContext(ApplicationContext.INSTANCE);
-      }
-      else
-      {
-         for (Context context : contexts)
-         {
-            addContext(context);
-         }
-      }
-   }
-
-   /**
     * Registers a bean with the manager
     * 
     * @param bean The bean to register

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/contexts/ContextMap.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/contexts/ContextMap.java	2008-12-06 21:52:42 UTC (rev 425)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/contexts/ContextMap.java	2008-12-06 22:24:18 UTC (rev 426)
@@ -22,6 +22,7 @@
 import java.util.concurrent.Callable;
 import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Future;
 
 import javax.webbeans.manager.Context;
 
@@ -53,7 +54,9 @@
          {
             try
             {
-               return (AbstractContext) getFuture(scopeType).get().iterator().next();
+               Future<List<Context>> future = getFuture(scopeType);
+               if (future==null) return null;
+               return (AbstractContext) future.get().iterator().next();
             }
             catch (InterruptedException e)
             {

Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/AbstractTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/AbstractTest.java	2008-12-06 21:52:42 UTC (rev 425)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/AbstractTest.java	2008-12-06 22:24:18 UTC (rev 426)
@@ -5,6 +5,9 @@
 
 import org.jboss.webbeans.bootstrap.Bootstrap;
 import org.jboss.webbeans.contexts.ApplicationContext;
+import org.jboss.webbeans.contexts.DependentContext;
+import org.jboss.webbeans.contexts.RequestContext;
+import org.jboss.webbeans.contexts.SessionContext;
 import org.jboss.webbeans.contexts.SimpleBeanMap;
 import org.jboss.webbeans.test.annotations.AnotherDeploymentType;
 import org.jboss.webbeans.test.annotations.HornedAnimalDeploymentType;
@@ -22,6 +25,9 @@
    public final void before()
    {
       manager = new MockManagerImpl();
+      manager.addContext(RequestContext.INSTANCE);
+      manager.addContext(SessionContext.INSTANCE);
+      manager.addContext(ApplicationContext.INSTANCE);
       MockManagerImpl.setInstance(manager);
       // Mock the ApplicationContext as a simple map
       ApplicationContext.INSTANCE.setBeanMap(new SimpleBeanMap());

Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ManagerTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ManagerTest.java	2008-12-06 21:52:42 UTC (rev 425)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ManagerTest.java	2008-12-06 22:24:18 UTC (rev 426)
@@ -23,7 +23,7 @@
    {
       Context requestContext = new RequestContext() {};
       ((AbstractContext)requestContext).setActive(false);
-      manager.setContexts(requestContext);
+      manager.addContext(requestContext);
       manager.getContext(RequestScoped.class);
    }
 
@@ -32,7 +32,8 @@
    {
       Context firstContext = new RequestContext() {};
       Context secondContext = new RequestContext() {};
-      manager.setContexts(firstContext, secondContext);
+      manager.addContext(firstContext);
+      manager.addContext(secondContext);
       manager.getContext(RequestScoped.class);
       assert true;
    }
@@ -40,7 +41,6 @@
    @Test(expectedExceptions={ContextNotActiveException.class}, groups={"stub", "manager"}) @SpecAssertion(section="8.6")
    public void testGetContextWithNoRegisteredContextsFails()
    {
-      manager.setContexts();
       manager.getContext(RequestScoped.class);
       assert false;
    }
@@ -49,7 +49,7 @@
    public void testGetContextReturnsActiveContext()
    {
       Context requestContext = new RequestContext() {};
-      manager.setContexts(requestContext);
+      manager.addContext(requestContext);
       Context testContext = manager.getContext(RequestScoped.class);
       assert testContext == requestContext;
       

Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/MockManagerImpl.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/MockManagerImpl.java	2008-12-06 21:52:42 UTC (rev 425)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/MockManagerImpl.java	2008-12-06 22:24:18 UTC (rev 426)
@@ -66,11 +66,6 @@
       initEnabledDeploymentTypes(enabledDeploymentTypes);
    }
    
-   public void setContexts(Context ... contexts)
-   {
-      initContexts(contexts);
-   }
-   
    public static void setInstance(ManagerImpl manager)
    {
       ManagerImpl.rootManager = manager;




More information about the weld-commits mailing list