[webbeans-commits] Webbeans SVN: r2511 - in ri/trunk: impl/src/main/java/org/jboss/webbeans/bootstrap and 5 other directories.
webbeans-commits at lists.jboss.org
webbeans-commits at lists.jboss.org
Sat Apr 18 17:50:58 EDT 2009
Author: pete.muir at jboss.org
Date: 2009-04-18 17:50:57 -0400 (Sat, 18 Apr 2009)
New Revision: 2511
Added:
ri/trunk/spi/src/main/java/org/jboss/webbeans/bootstrap/api/Lifecycle.java
Modified:
ri/trunk/impl/src/main/java/org/jboss/webbeans/CurrentManager.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/WebBeansBootstrap.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/context/ContextLifecycle.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/event/DeferredEventNotification.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/servlet/ServletLifecycle.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/servlet/WebBeansListener.java
ri/trunk/spi/src/main/java/org/jboss/webbeans/bootstrap/api/Environment.java
ri/trunk/spi/src/main/java/org/jboss/webbeans/bootstrap/api/Environments.java
ri/trunk/spi/src/main/java/org/jboss/webbeans/bootstrap/api/ServiceRegistry.java
ri/trunk/spi/src/main/java/org/jboss/webbeans/bootstrap/api/SingletonProvider.java
ri/trunk/tests/src/main/java/org/jboss/webbeans/mock/MockServletLifecycle.java
Log:
Make context lifecycle a service of the manager
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/CurrentManager.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/CurrentManager.java 2009-04-18 15:55:48 UTC (rev 2510)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/CurrentManager.java 2009-04-18 21:50:57 UTC (rev 2511)
@@ -42,12 +42,12 @@
public class CurrentManager
{
- private static class IntegerMaangerImplMap extends TypeLiteral<Map<Integer, ManagerImpl>> {}
+ private static class IntegerMangerImplMap extends TypeLiteral<Map<Integer, ManagerImpl>> {}
// The root manager instance
private static Singleton<ManagerImpl> rootManager = SingletonProvider.instance().create(ManagerImpl.class);
- private final static Singleton<Map<Integer, ManagerImpl>> managers = SingletonProvider.instance().create(new IntegerMaangerImplMap().getRawType());
+ private final static Singleton<Map<Integer, ManagerImpl>> managers = SingletonProvider.instance().create(new IntegerMangerImplMap().getRawType());
public static void cleanup()
{
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/WebBeansBootstrap.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/WebBeansBootstrap.java 2009-04-18 15:55:48 UTC (rev 2510)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/WebBeansBootstrap.java 2009-04-18 21:50:57 UTC (rev 2511)
@@ -35,6 +35,7 @@
import org.jboss.webbeans.bootstrap.api.helpers.ServiceRegistries;
import org.jboss.webbeans.bootstrap.spi.WebBeanDiscovery;
import org.jboss.webbeans.context.ApplicationContext;
+import org.jboss.webbeans.context.ContextLifecycle;
import org.jboss.webbeans.context.ConversationContext;
import org.jboss.webbeans.context.DependentContext;
import org.jboss.webbeans.context.RequestContext;
@@ -231,6 +232,7 @@
protected void createContexts()
{
+ getServices().add(ContextLifecycle.class, new ContextLifecycle());
getServices().add(DependentContext.class, new DependentContext());
getServices().add(RequestContext.class, new RequestContext());
getServices().add(ConversationContext.class, new ConversationContext());
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/context/ContextLifecycle.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/context/ContextLifecycle.java 2009-04-18 15:55:48 UTC (rev 2510)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/context/ContextLifecycle.java 2009-04-18 21:50:57 UTC (rev 2511)
@@ -24,8 +24,7 @@
package org.jboss.webbeans.context;
import org.jboss.webbeans.CurrentManager;
-import org.jboss.webbeans.bootstrap.api.Singleton;
-import org.jboss.webbeans.bootstrap.api.SingletonProvider;
+import org.jboss.webbeans.bootstrap.api.Lifecycle;
import org.jboss.webbeans.context.api.BeanStore;
import org.jboss.webbeans.conversation.ConversationManager;
import org.jboss.webbeans.log.LogProvider;
@@ -39,31 +38,19 @@
* @author Pete Muir
*
*/
-public class ContextLifecycle
+public class ContextLifecycle implements Lifecycle
{
- private static Singleton<ContextLifecycle> instance = SingletonProvider.instance().create(ContextLifecycle.class);
-
- public static ContextLifecycle instance()
- {
- return instance.get();
- }
-
- protected static void setInstance(ContextLifecycle instance)
- {
- ContextLifecycle.instance.set(instance);
- }
-
private static LogProvider log = Logging.getLogProvider(ContextLifecycle.class);
- protected void restoreSession(String id, BeanStore sessionBeanStore)
+ public void restoreSession(String id, BeanStore sessionBeanStore)
{
log.trace("Restoring session " + id);
SessionContext.instance().setBeanStore(sessionBeanStore);
SessionContext.instance().setActive(true);
}
- protected void endSession(String id, BeanStore sessionBeanStore)
+ public void endSession(String id, BeanStore sessionBeanStore)
{
log.trace("Ending session " + id);
SessionContext.instance().setActive(true);
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/event/DeferredEventNotification.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/event/DeferredEventNotification.java 2009-04-18 15:55:48 UTC (rev 2510)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/event/DeferredEventNotification.java 2009-04-18 21:50:57 UTC (rev 2511)
@@ -17,6 +17,7 @@
package org.jboss.webbeans.event;
+import org.jboss.webbeans.CurrentManager;
import org.jboss.webbeans.context.ContextLifecycle;
import org.jboss.webbeans.context.api.BeanStore;
import org.jboss.webbeans.context.api.helpers.ConcurrentHashMapBeanStore;
@@ -51,8 +52,9 @@
public void run()
{
+ ContextLifecycle lifecycle = getLifecycle();
BeanStore requestBeanStore = new ConcurrentHashMapBeanStore();
- ContextLifecycle.instance().beginRequest("async invocation", requestBeanStore);
+ lifecycle.beginRequest("async invocation", requestBeanStore);
try
{
log.debug("Sending event [" + event + "] directly to observer " + observer);
@@ -64,7 +66,7 @@
}
finally
{
- ContextLifecycle.instance().endRequest("async invocation", requestBeanStore);
+ lifecycle.endRequest("async invocation", requestBeanStore);
}
}
@@ -73,4 +75,9 @@
{
return "Deferred event [" + event + "] for [" + observer + "]";
}
+
+ private ContextLifecycle getLifecycle()
+ {
+ return CurrentManager.rootManager().getServices().get(ContextLifecycle.class);
+ }
}
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/servlet/ServletLifecycle.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/servlet/ServletLifecycle.java 2009-04-18 15:55:48 UTC (rev 2510)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/servlet/ServletLifecycle.java 2009-04-18 21:50:57 UTC (rev 2511)
@@ -42,26 +42,23 @@
* @author Pete Muir
* @author Nicklas Karlsson
*/
-public class ServletLifecycle extends ContextLifecycle
+public class ServletLifecycle
{
+ private final ContextLifecycle lifecycle;
+
public static final String REQUEST_ATTRIBUTE_NAME = ServletLifecycle.class.getName() + ".requestBeanStore";
- // This is a temporray solution. We should remove the static field from
- // ContextLifecycle and just tie the lifecycle of ContextLifecycle
- // with that of manager.
- public ServletLifecycle()
+ private static LogProvider log = Logging.getLogProvider(ServletLifecycle.class);
+
+ /**
+ *
+ */
+ public ServletLifecycle(ContextLifecycle lifecycle)
{
- ContextLifecycle.setInstance(this);
+ this.lifecycle = lifecycle;
}
- public static ServletLifecycle instance()
- {
- return (ServletLifecycle) ContextLifecycle.instance();
- }
-
- private static LogProvider log = Logging.getLogProvider(ServletLifecycle.class);
-
/**
* Begins a session
*
@@ -79,9 +76,9 @@
public void endSession(HttpSession session)
{
BeanStore mockRequest = new ConcurrentHashMapBeanStore();
- super.beginRequest("endSession-" + session.getId(), mockRequest);
- super.endSession(session.getId(), restoreSessionContext(session));
- super.endRequest("endSession-" + session.getId(), mockRequest);
+ lifecycle.beginRequest("endSession-" + session.getId(), mockRequest);
+ lifecycle.endSession(session.getId(), restoreSessionContext(session));
+ lifecycle.endRequest("endSession-" + session.getId(), mockRequest);
}
/**
@@ -95,7 +92,7 @@
{
BeanStore sessionBeanStore = new HttpRequestSessionBeanStore(request);
HttpSession session = request.getSession(false);
- super.restoreSession(session == null ? "Inactive session" : session.getId(), sessionBeanStore);
+ lifecycle.restoreSession(session == null ? "Inactive session" : session.getId(), sessionBeanStore);
if (session != null)
{
CurrentManager.rootManager().getInstanceByType(HttpSessionManager.class).setSession(session);
@@ -106,7 +103,7 @@
protected BeanStore restoreSessionContext(HttpSession session)
{
BeanStore beanStore = new HttpSessionBeanStore(session);
- super.restoreSession(session.getId(), beanStore);
+ lifecycle.restoreSession(session.getId(), beanStore);
CurrentManager.rootManager().getInstanceByType(HttpSessionManager.class).setSession(session);
return beanStore;
}
@@ -124,7 +121,7 @@
{
BeanStore beanStore = new ConcurrentHashMapBeanStore();
request.setAttribute(REQUEST_ATTRIBUTE_NAME, beanStore);
- super.beginRequest(request.getRequestURI(), beanStore);
+ lifecycle.beginRequest(request.getRequestURI(), beanStore);
restoreSessionContext(request);
}
}
@@ -143,7 +140,7 @@
{
throw new IllegalStateException("Cannot obtain request scoped beans from the request");
}
- super.endRequest(request.getRequestURI(), beanStore);
+ lifecycle.endRequest(request.getRequestURI(), beanStore);
request.removeAttribute(REQUEST_ATTRIBUTE_NAME);
SessionContext.instance().setBeanStore(null);
}
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/servlet/WebBeansListener.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/servlet/WebBeansListener.java 2009-04-18 15:55:48 UTC (rev 2510)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/servlet/WebBeansListener.java 2009-04-18 21:50:57 UTC (rev 2511)
@@ -27,6 +27,8 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSessionEvent;
+import org.jboss.webbeans.CurrentManager;
+import org.jboss.webbeans.context.ContextLifecycle;
import org.jboss.webbeans.servlet.api.helpers.AbstractServletListener;
/**
@@ -42,11 +44,15 @@
public class WebBeansListener extends AbstractServletListener
{
- private final ServletLifecycle lifecycle;
-
- public WebBeansListener()
+ private ServletLifecycle lifecycle;
+
+ private ServletLifecycle getLifecycle()
{
- lifecycle = new ServletLifecycle();
+ if (lifecycle == null)
+ {
+ this.lifecycle = new ServletLifecycle(CurrentManager.rootManager().getServices().get(ContextLifecycle.class));
+ }
+ return lifecycle;
}
/**
@@ -57,7 +63,7 @@
@Override
public void sessionCreated(HttpSessionEvent event)
{
- lifecycle.beginSession(event.getSession());
+ getLifecycle().beginSession(event.getSession());
}
/**
@@ -68,7 +74,7 @@
@Override
public void sessionDestroyed(HttpSessionEvent event)
{
- lifecycle.endSession(event.getSession());
+ getLifecycle().endSession(event.getSession());
}
/**
@@ -81,7 +87,7 @@
{
if (event.getServletRequest() instanceof HttpServletRequest)
{
- lifecycle.endRequest((HttpServletRequest) event.getServletRequest());
+ getLifecycle().endRequest((HttpServletRequest) event.getServletRequest());
}
else
{
@@ -99,7 +105,7 @@
{
if (event.getServletRequest() instanceof HttpServletRequest)
{
- lifecycle.beginRequest((HttpServletRequest) event.getServletRequest());
+ getLifecycle().beginRequest((HttpServletRequest) event.getServletRequest());
}
else
{
Modified: ri/trunk/spi/src/main/java/org/jboss/webbeans/bootstrap/api/Environment.java
===================================================================
--- ri/trunk/spi/src/main/java/org/jboss/webbeans/bootstrap/api/Environment.java 2009-04-18 15:55:48 UTC (rev 2510)
+++ ri/trunk/spi/src/main/java/org/jboss/webbeans/bootstrap/api/Environment.java 2009-04-18 21:50:57 UTC (rev 2511)
@@ -26,12 +26,12 @@
*/
public interface Environment
{
-
+
/**
* The services to require for this environment
*
* @return the services to require
*/
public Set<Class<? extends Service>> getRequiredServices();
-
+
}
Modified: ri/trunk/spi/src/main/java/org/jboss/webbeans/bootstrap/api/Environments.java
===================================================================
--- ri/trunk/spi/src/main/java/org/jboss/webbeans/bootstrap/api/Environments.java 2009-04-18 15:55:48 UTC (rev 2510)
+++ ri/trunk/spi/src/main/java/org/jboss/webbeans/bootstrap/api/Environments.java 2009-04-18 21:50:57 UTC (rev 2511)
@@ -59,7 +59,7 @@
*/
SE(WebBeanDiscovery.class, ResourceLoader.class);
- private Set<Class<? extends Service>> requiredServices;
+ private final Set<Class<? extends Service>> requiredServices;
private Environments(Class<? extends Service>... requiredServices)
{
Added: ri/trunk/spi/src/main/java/org/jboss/webbeans/bootstrap/api/Lifecycle.java
===================================================================
--- ri/trunk/spi/src/main/java/org/jboss/webbeans/bootstrap/api/Lifecycle.java (rev 0)
+++ ri/trunk/spi/src/main/java/org/jboss/webbeans/bootstrap/api/Lifecycle.java 2009-04-18 21:50:57 UTC (rev 2511)
@@ -0,0 +1,12 @@
+package org.jboss.webbeans.bootstrap.api;
+
+/**
+ * Note Lifecycle is not complete, and the API may change
+ *
+ * @author pmuir
+ *
+ */
+public interface Lifecycle extends Service
+{
+
+}
Property changes on: ri/trunk/spi/src/main/java/org/jboss/webbeans/bootstrap/api/Lifecycle.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: ri/trunk/spi/src/main/java/org/jboss/webbeans/bootstrap/api/ServiceRegistry.java
===================================================================
--- ri/trunk/spi/src/main/java/org/jboss/webbeans/bootstrap/api/ServiceRegistry.java 2009-04-18 15:55:48 UTC (rev 2510)
+++ ri/trunk/spi/src/main/java/org/jboss/webbeans/bootstrap/api/ServiceRegistry.java 2009-04-18 21:50:57 UTC (rev 2511)
@@ -18,7 +18,7 @@
* @param serviceType the service type to add
* @param service the service implementation
*/
- public <S extends Service> void add(java.lang.Class<S> type, S service);
+ public <S extends Service> void add(Class<S> type, S service);
/**
* Retrieve a service implementation
Modified: ri/trunk/spi/src/main/java/org/jboss/webbeans/bootstrap/api/SingletonProvider.java
===================================================================
--- ri/trunk/spi/src/main/java/org/jboss/webbeans/bootstrap/api/SingletonProvider.java 2009-04-18 15:55:48 UTC (rev 2510)
+++ ri/trunk/spi/src/main/java/org/jboss/webbeans/bootstrap/api/SingletonProvider.java 2009-04-18 21:50:57 UTC (rev 2511)
@@ -110,7 +110,7 @@
}
else
{
- throw new RuntimeException("ScopeFactory is already initialized with " + INSTANCE);
+ throw new RuntimeException("SingletonProvider is already initialized with " + INSTANCE);
}
}
}
Modified: ri/trunk/tests/src/main/java/org/jboss/webbeans/mock/MockServletLifecycle.java
===================================================================
--- ri/trunk/tests/src/main/java/org/jboss/webbeans/mock/MockServletLifecycle.java 2009-04-18 15:55:48 UTC (rev 2510)
+++ ri/trunk/tests/src/main/java/org/jboss/webbeans/mock/MockServletLifecycle.java 2009-04-18 21:50:57 UTC (rev 2511)
@@ -30,7 +30,6 @@
bootstrap.getServices().add(ResourceLoader.class, MOCK_RESOURCE_LOADER);
bootstrap.getServices().add(WebBeanDiscovery.class, webBeanDiscovery);
bootstrap.setApplicationContext(applicationBeanStore);
- setInstance(this);
}
public void initialize()
More information about the weld-commits
mailing list