Author: rmannibucau
Date: Mon Oct  8 09:59:30 2012
New Revision: 1395496

URL: http://svn.apache.org/viewvc?rev=1395496&view=rev
Log:
TOMEE-445 managing passivating parameter for stateful cdi beans

Modified:
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java?rev=1395496&r1=1395495&r2=1395496&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java
 Mon Oct  8 09:59:30 2012
@@ -44,6 +44,7 @@ import org.apache.openejb.util.proxy.Dyn
 import org.apache.webbeans.component.AbstractInjectionTargetBean;
 import org.apache.webbeans.component.InjectionTargetBean;
 import org.apache.webbeans.config.WebBeansContext;
+import org.apache.webbeans.container.BeanManagerImpl;
 import org.apache.webbeans.context.creational.CreationalContextImpl;
 import org.apache.webbeans.inject.AbstractInjectable;
 import org.apache.webbeans.inject.OWBInjector;
@@ -61,6 +62,7 @@ import javax.ejb.Timer;
 import javax.enterprise.context.spi.Contextual;
 import javax.enterprise.context.spi.CreationalContext;
 import javax.enterprise.inject.spi.Bean;
+import javax.enterprise.inject.spi.BeanManager;
 import javax.naming.Context;
 import javax.persistence.EntityManagerFactory;
 import java.lang.annotation.Annotation;
@@ -1576,12 +1578,17 @@ public class BeanContext extends Deploym
         this.hidden = hidden;
     }
 
-    public Class<? extends Annotation> getScope() {
+    public boolean isPassivatingScope() {
+        final BeanManagerImpl bm = 
moduleContext.getAppContext().getWebBeansContext().getBeanManagerImpl();
+        if (!bm.isInUse()) {
+            return true;
+        }
+
         final CdiEjbBean<?> bean = get(CdiEjbBean.class);
         if (bean != null) {
-            return bean.getScope();
+            return bm.isPassivatingScope(bean.getScope());
         }
-        return null;
+        return true;
     }
 
     public void stop() {

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java?rev=1395496&r1=1395495&r2=1395496&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java
 Mon Oct  8 09:59:30 2012
@@ -65,7 +65,6 @@ import javax.ejb.RemoveException;
 import javax.ejb.SessionBean;
 import javax.ejb.SessionContext;
 import javax.enterprise.context.Dependent;
-import javax.enterprise.context.RequestScoped;
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
 import javax.naming.Context;
@@ -502,7 +501,7 @@ public class StatefulContainer implement
             Method runMethod = null;
             try {
                 // Obtain instance
-                instance = obtainInstance(primKey, callContext, callMethod, 
beanContext.getScope() != RequestScoped.class);
+                instance = obtainInstance(primKey, callContext, callMethod, 
beanContext.isPassivatingScope());
 
                 // Resume previous Bean transaction if there was one
                 if (txPolicy instanceof BeanTransactionPolicy){


Reply via email to