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/12/24 14:34:38 UTC
svn commit: r1425644 - in
/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi:
BeansDeployer.java CdiInterceptor.java OpenEJBLifecycle.java
Author: rmannibucau
Date: Mon Dec 24 13:34:37 2012
New Revision: 1425644
URL: http://svn.apache.org/viewvc?rev=1425644&view=rev
Log:
TOMEE-677 no need to create a CreationalContext for each invocation + no need to create one DefinitionUtil each time we need it + (the real fix) setting the ProcessAnnotatedType in the CdiEjbBean to be able to get updates from CDI extensions when creating interceptors etc...
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/BeansDeployer.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiInterceptor.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/BeansDeployer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/BeansDeployer.java?rev=1425644&r1=1425643&r2=1425644&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/BeansDeployer.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/BeansDeployer.java Mon Dec 24 13:34:37 2012
@@ -247,12 +247,12 @@ public class BeansDeployer {
if (!(bean instanceof Decorator) &&
!(bean instanceof javax.enterprise.inject.spi.Interceptor) &&
!(bean instanceof NewBean)) {
- new DefinitionUtil(webBeansContext).defineDecoratorStack((AbstractInjectionTargetBean<Object>) bean);
+ webBeansContext.getDefinitionUtil().defineDecoratorStack((AbstractInjectionTargetBean<Object>) bean);
}
//If intercepted marker
if (bean instanceof InterceptedMarker) {
- new DefinitionUtil(webBeansContext).defineBeanInterceptorStack((AbstractInjectionTargetBean<Object>) bean);
+ webBeansContext.getDefinitionUtil().defineBeanInterceptorStack((AbstractInjectionTargetBean<Object>) bean);
}
}
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiInterceptor.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiInterceptor.java?rev=1425644&r1=1425643&r2=1425644&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiInterceptor.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiInterceptor.java Mon Dec 24 13:34:37 2012
@@ -16,7 +16,6 @@
*/
package org.apache.openejb.cdi;
-import javassist.util.proxy.ProxyObject;
import org.apache.openejb.core.ivm.IntraVmArtifact;
import org.apache.webbeans.component.InjectionTargetBean;
import org.apache.webbeans.config.WebBeansContext;
@@ -101,11 +100,10 @@ public class CdiInterceptor implements S
}
private Object invoke(InvocationContext ejbContext) throws Exception {
- final CreationalContext<?> context = getCreationalContext();
-
Object instance = ejbContext.getTarget();
if (bean.getDecoratorStack().size() > 0) {
+ final CreationalContext<?> context = getCreationalContext();
final ProxyFactory proxyFactory = webBeansContext.getProxyFactory();
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java?rev=1425644&r1=1425643&r2=1425644&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java Mon Dec 24 13:34:37 2012
@@ -223,10 +223,10 @@ public class OpenEJBLifecycle implements
final Class implClass = beanContext.getManagedClass();
//Define annotation type
- AnnotatedType<?> annotatedType = webBeansContext.getAnnotatedElementFactory().newAnnotatedType(implClass);
+ final AnnotatedType<Object> annotatedType = webBeansContext.getAnnotatedElementFactory().newAnnotatedType(implClass);
//Fires ProcessAnnotatedType
- ProcessAnnotatedTypeImpl<?> processAnnotatedEvent = webBeansContext.getWebBeansUtil().fireProcessAnnotatedTypeEvent(annotatedType);
+ final ProcessAnnotatedTypeImpl<?> processAnnotatedEvent = webBeansContext.getWebBeansUtil().fireProcessAnnotatedTypeEvent(annotatedType);
// TODO Can you really veto an EJB?
//if veto() is called
@@ -234,7 +234,8 @@ public class OpenEJBLifecycle implements
continue;
}
- CdiEjbBean<Object> bean = new CdiEjbBean<Object>(beanContext, webBeansContext);
+ final CdiEjbBean<Object> bean = new CdiEjbBean<Object>(beanContext, webBeansContext);
+ bean.setAnnotatedType((AnnotatedType<Object>) processAnnotatedEvent.getAnnotatedType()); // update AnnotatedType -- can be updated in extensions
beanContext.set(CdiEjbBean.class, bean);
beanContext.set(CurrentCreationalContext.class, new CurrentCreationalContext());