Author: rmannibucau
Date: Mon Aug 12 06:40:26 2013
New Revision: 1513049

URL: http://svn.apache.org/r1513049
Log:
TOMEE-1019 reading openejb.session-context later since Warmup class prevents it 
to be read from SystemInstance consistently (system.properties case)

Modified:
    
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiAppContextsService.java
    
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonService.java
    
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java

Modified: 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiAppContextsService.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiAppContextsService.java?rev=1513049&r1=1513048&r2=1513049&view=diff
==============================================================================
--- 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiAppContextsService.java
 (original)
+++ 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiAppContextsService.java
 Mon Aug 12 06:40:26 2013
@@ -16,6 +16,7 @@
  */
 package org.apache.openejb.cdi;
 
+import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 import org.apache.webbeans.config.OWBLogConst;
@@ -342,7 +343,7 @@ public class CdiAppContextsService exten
     }
 
     private SessionContext newSessionContext(final HttpSession session) {
-        final String classname = 
ThreadSingletonServiceImpl.sessionContextClass();
+        final String classname = 
SystemInstance.get().getComponent(ThreadSingletonService.class).sessionContextClass();
         if (classname != null) {
             try {
                 final Class<?> clazz = 
Thread.currentThread().getContextClassLoader().loadClass(classname);

Modified: 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonService.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonService.java?rev=1513049&r1=1513048&r2=1513049&view=diff
==============================================================================
--- 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonService.java
 (original)
+++ 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonService.java
 Mon Aug 12 06:40:26 2013
@@ -28,5 +28,5 @@ public interface ThreadSingletonService 
     void initialize(StartupObject startupObject);
     Object contextEntered(WebBeansContext newOWBContext);
     void contextExited(Object oldOWBContext);
-    
+    String sessionContextClass();
 }

Modified: 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java?rev=1513049&r1=1513048&r2=1513049&view=diff
==============================================================================
--- 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java
 (original)
+++ 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java
 Mon Aug 12 06:40:26 2013
@@ -58,7 +58,7 @@ public class ThreadSingletonServiceImpl 
 
     public static final Logger logger = 
Logger.getInstance(LogCategory.OPENEJB_STARTUP, 
ThreadSingletonServiceImpl.class);
 
-    private static final String SESSION_CONTEXT_CLAZZ = 
SystemInstance.get().getProperty("openejb.session-context", null);
+    private final String sessionContextClass;
 
     //this needs to be static because OWB won't tell us what the existing 
SingletonService is and you can't set it twice.
     private static final ThreadLocal<WebBeansContext> contexts = new 
ThreadLocal<WebBeansContext>();
@@ -66,7 +66,7 @@ public class ThreadSingletonServiceImpl 
     private static final String WEBBEANS_FAILOVER_ISSUPPORTFAILOVER = 
"org.apache.webbeans.web.failover.issupportfailover";
 
     public ThreadSingletonServiceImpl() {
-        // no-op
+        sessionContextClass = 
SystemInstance.get().getProperty("openejb.session-context", "").trim();
     }
 
     @Override
@@ -105,7 +105,7 @@ public class ThreadSingletonServiceImpl 
             
properties.setProperty("org.apache.webbeans.proxy.mapping.javax.enterprise.context.RequestScoped",
 NormalScopedBeanInterceptorHandler.class.getName());
         }
 
-        if (SESSION_CONTEXT_CLAZZ != null && tomee) {
+        if (sessionContextClass() != null && tomee) {
             
properties.setProperty("org.apache.webbeans.proxy.mapping.javax.enterprise.context.SessionScoped",
 "org.apache.tomee.catalina.cdi.SessionNormalScopeBeanHandler");
         }
 
@@ -325,12 +325,13 @@ public class ThreadSingletonServiceImpl 
         ctx.clear();
     }
 
-    public static String sessionContextClass() {
-        if (SESSION_CONTEXT_CLAZZ != null) {
-            if ("http".equals(SESSION_CONTEXT_CLAZZ)) { // easy way to manage 
this config
+    @Override
+    public String sessionContextClass() {
+        if (!sessionContextClass.isEmpty()) {
+            if ("http".equals(sessionContextClass)) { // easy way to manage 
this config
                 return 
"org.apache.tomee.catalina.cdi.SessionContextBackedByHttpSession";
             }
-            return SESSION_CONTEXT_CLAZZ;
+            return sessionContextClass;
         }
         return null;
     }


Reply via email to