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);
}
}