[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