Author: rmannibucau
Date: Fri Aug  3 14:33:17 2012
New Revision: 1368983

URL: http://svn.apache.org/viewvc?rev=1368983&view=rev
Log:
OPENEJB-1883 reworking ScopeHelper to use OWB SPI instead of helper class

Modified:
    
openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBDeployableContainer.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/ScopeHelper.java

Modified: 
openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBDeployableContainer.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBDeployableContainer.java?rev=1368983&r1=1368982&r2=1368983&view=diff
==============================================================================
--- 
openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBDeployableContainer.java
 (original)
+++ 
openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBDeployableContainer.java
 Fri Aug  3 14:33:17 2012
@@ -172,7 +172,7 @@ public class OpenEJBDeployableContainer 
             final ServletContext appServletContext = new MockServletContext();
             final HttpSession appSession = new MockHttpSession();
 
-            startContexts(appCtx.getWebBeansContext().getContextFactory(), 
appServletContext, appSession);
+            startContexts(appCtx.getWebBeansContext().getContextsService(), 
appServletContext, appSession);
 
             servletContextProducer.set(appServletContext);
             sessionProducer.set(appSession);
@@ -192,7 +192,7 @@ public class OpenEJBDeployableContainer 
     public void undeploy(final Archive<?> archive) throws DeploymentException {
         try {
             assembler.destroyApplication(info.get().path);
-            
stopContexts(appContext.get().getWebBeansContext().getContextFactory(), 
servletContext.get(), session.get());
+            
stopContexts(appContext.get().getWebBeansContext().getContextsService(), 
servletContext.get(), session.get());
         } catch (Exception e) {
             throw new DeploymentException("can't undeploy " + 
archive.getName(), e);
         }

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java?rev=1368983&r1=1368982&r2=1368983&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java
 Fri Aug  3 14:33:17 2012
@@ -16,11 +16,8 @@
  */
 package org.apache.openejb;
 
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpSession;
 import org.apache.openejb.assembler.classic.AppInfo;
 import org.apache.openejb.assembler.classic.Assembler;
-import org.apache.openejb.cdi.ScopeHelper;
 import org.apache.openejb.config.AppModule;
 import org.apache.openejb.config.ConfigurationFactory;
 import org.apache.openejb.config.ConnectorModule;
@@ -63,6 +60,8 @@ import javax.naming.Context;
 import javax.naming.Name;
 import javax.naming.NameNotFoundException;
 import javax.naming.NamingException;
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpSession;
 import javax.validation.ValidationException;
 import java.io.File;
 import java.lang.reflect.Modifier;
@@ -116,7 +115,7 @@ public class OpenEjbContainer extends EJ
         servletContext = new MockServletContext();
         session = new MockHttpSession();
         try {
-            startContexts(webBeanContext.getContextFactory(), servletContext, 
session);
+            startContexts(webBeanContext.getContextsService(), servletContext, 
session);
         } catch (Exception e) {
             logger.warning("can't start all CDI contexts", e);
         }
@@ -133,7 +132,7 @@ public class OpenEjbContainer extends EJ
             throw new IllegalStateException(e);
         }
         try {
-            stopContexts(webBeanContext.getContextFactory(), servletContext, 
session);
+            stopContexts(webBeanContext.getContextsService(), servletContext, 
session);
         } catch (Exception e) {
             logger.warning("can't stop all CDI contexts", e);
         }

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/ScopeHelper.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/ScopeHelper.java?rev=1368983&r1=1368982&r2=1368983&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/ScopeHelper.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/ScopeHelper.java
 Fri Aug  3 14:33:17 2012
@@ -16,15 +16,15 @@
  */
 package org.apache.openejb.cdi;
 
+import org.apache.webbeans.spi.ContextsService;
+
 import javax.enterprise.context.ApplicationScoped;
 import javax.enterprise.context.ConversationScoped;
 import javax.enterprise.context.RequestScoped;
 import javax.enterprise.context.SessionScoped;
-import javax.enterprise.context.spi.Context;
 import javax.inject.Singleton;
 import javax.servlet.ServletContext;
 import javax.servlet.http.HttpSession;
-import org.apache.webbeans.context.ContextFactory;
 
 // helper for embedded case
 public final class ScopeHelper {
@@ -32,33 +32,19 @@ public final class ScopeHelper {
         // no-op
     }
 
-    public static void startContexts(final ContextFactory contextFactory, 
final ServletContext servletContext, final HttpSession session) throws 
Exception {
-        contextFactory.initSingletonContext(servletContext);
-        contextFactory.initApplicationContext(servletContext);
-        contextFactory.initSessionContext(session);
-        contextFactory.initConversationContext(null);
-        contextFactory.initRequestContext(null);
-    }
-
-    public static void stopContexts(final ContextFactory contextFactory, final 
ServletContext servletContext, final HttpSession session) throws Exception {
-        if(isActive(contextFactory.getStandardContext(SessionScoped.class))) {
-            contextFactory.destroySessionContext(session);
-        }
-        if 
(isActive(contextFactory.getStandardContext(ConversationScoped.class))) {
-            contextFactory.destroyConversationContext();
-        }
-        if (isActive(contextFactory.getStandardContext(RequestScoped.class))) {
-            contextFactory.destroyRequestContext(null);
-        }
-        if 
(isActive(contextFactory.getStandardContext(ApplicationScoped.class))) {
-            contextFactory.destroyApplicationContext(servletContext);
-        }
-        if (isActive(contextFactory.getStandardContext(Singleton.class))) {
-            contextFactory.destroySingletonContext(servletContext);
-        }
+    public static void startContexts(final ContextsService contextsService, 
final ServletContext servletContext, final HttpSession session) throws 
Exception {
+        contextsService.startContext(Singleton.class, null);
+        contextsService.startContext(ApplicationScoped.class, null);
+        contextsService.startContext(SessionScoped.class, session);
+        contextsService.startContext(RequestScoped.class, null);
+        contextsService.startContext(ConversationScoped.class, null);
     }
 
-    private static boolean isActive(Context context) {
-        return context != null && context.isActive();
+    public static void stopContexts(final ContextsService contextsService, 
final ServletContext servletContext, final HttpSession session) throws 
Exception {
+        contextsService.endContext(Singleton.class, null);
+        contextsService.endContext(ApplicationScoped.class, null);
+        contextsService.endContext(SessionScoped.class, session);
+        contextsService.endContext(RequestScoped.class, null);
+        contextsService.endContext(ConversationScoped.class, null);
     }
 }


Reply via email to