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 2013/05/06 18:08:52 UTC
svn commit: r1479617 - in
/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb:
BeanContext.java core/singleton/SingletonInstanceManager.java
core/stateful/StatefulContainer.java
core/stateless/StatelessInstanceManager.java
Author: rmannibucau
Date: Mon May 6 16:08:52 2013
New Revision: 1479617
URL: http://svn.apache.org/r1479617
Log:
calling postconstruct/predestroy on ejbs too if extensions use it for some hooks
Modified:
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/singleton/SingletonInstanceManager.java
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessInstanceManager.java
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java?rev=1479617&r1=1479616&r2=1479617&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java Mon May 6 16:08:52 2013
@@ -1532,6 +1532,9 @@ public class BeanContext extends Deploym
final TransactionPolicy transactionPolicy = EjbTransactionUtil.createTransactionPolicy(transactionType, callContext);
try {
//Call the chain
+ if (cdiEjbBean != null) { // call it, it has no postconstruct but extensions can add stuff here, TODO: see if it should be called before or after effective postconstruct
+ cdiEjbBean.getInjectionTarget().postConstruct(beanInstance);
+ }
postConstruct.invoke();
} catch (Throwable e) {
//RollBack Transaction
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/singleton/SingletonInstanceManager.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/singleton/SingletonInstanceManager.java?rev=1479617&r1=1479616&r2=1479617&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/singleton/SingletonInstanceManager.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/singleton/SingletonInstanceManager.java Mon May 6 16:08:52 2013
@@ -20,6 +20,7 @@ import org.apache.openejb.ApplicationExc
import org.apache.openejb.BeanContext;
import org.apache.openejb.BeanType;
import org.apache.openejb.OpenEJBException;
+import org.apache.openejb.cdi.CdiEjbBean;
import org.apache.openejb.core.InstanceContext;
import org.apache.openejb.core.Operation;
import org.apache.openejb.core.ThreadContext;
@@ -254,6 +255,11 @@ public class SingletonInstanceManager {
TransactionPolicy transactionPolicy = EjbTransactionUtil.createTransactionPolicy(transactionType, callContext);
try{
//Call the chain
+ final CdiEjbBean<Object> bean = beanContext.get(CdiEjbBean.class);
+ if (bean != null) { // TODO: see if it should be called before or after next call
+ bean.getInjectionTarget().preDestroy(instance.bean);
+ }
+
interceptorStack.invoke();
if (instance.creationalContext != null) {
instance.creationalContext.release();
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java?rev=1479617&r1=1479616&r2=1479617&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java Mon May 6 16:08:52 2013
@@ -550,6 +550,11 @@ public class StatefulContainer implement
final InterceptorStack interceptorStack = new InterceptorStack(instance.bean, runMethod, Operation.REMOVE, interceptors, instance.interceptors);
// Invoke
+ final CdiEjbBean<Object> bean = beanContext.get(CdiEjbBean.class);
+ if (bean != null) { // TODO: see if it should be called before or after next call
+ bean.getInjectionTarget().preDestroy(instance.bean);
+ }
+
if (args == null) {
returnValue = interceptorStack.invoke();
} else {
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessInstanceManager.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessInstanceManager.java?rev=1479617&r1=1479616&r2=1479617&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessInstanceManager.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessInstanceManager.java Mon May 6 16:08:52 2013
@@ -20,6 +20,7 @@ import org.apache.openejb.ApplicationExc
import org.apache.openejb.BeanContext;
import org.apache.openejb.OpenEJBException;
import org.apache.openejb.SystemException;
+import org.apache.openejb.cdi.CdiEjbBean;
import org.apache.openejb.core.InstanceContext;
import org.apache.openejb.core.Operation;
import org.apache.openejb.core.ThreadContext;
@@ -301,6 +302,10 @@ public class StatelessInstanceManager {
final List<InterceptorData> callbackInterceptors = beanContext.getCallbackInterceptors();
final InterceptorStack interceptorStack = new InterceptorStack(instance.bean, remove, Operation.PRE_DESTROY, callbackInterceptors, instance.interceptors);
+ final CdiEjbBean<Object> bean = beanContext.get(CdiEjbBean.class);
+ if (bean != null) { // TODO: see if it should be called before or after next call
+ bean.getInjectionTarget().preDestroy(instance.bean);
+ }
interceptorStack.invoke();
if (instance.creationalContext != null) {