You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2012/10/08 11:59:31 UTC

svn commit: r1395496 - in /openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb: BeanContext.java core/stateful/StatefulContainer.java

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){