Author: gavin.king(a)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;
Show replies by date