Author: rmannibucau Date: Sat May 10 19:59:24 2014 New Revision: 1593723 URL: http://svn.apache.org/r1593723 Log: skipping CdiResourceInjection for local bean classes + better test for mdbs
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiPlugin.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiResourceInjectionService.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=1593723&r1=1593722&r2=1593723&view=diff ============================================================================== --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java Sat May 10 19:59:24 2014 @@ -149,7 +149,6 @@ import javax.enterprise.context.Dependen import javax.enterprise.context.spi.CreationalContext; import javax.enterprise.inject.spi.Bean; import javax.enterprise.inject.spi.BeanManager; -import javax.jms.MessageListener; import javax.management.InstanceNotFoundException; import javax.management.MBeanRegistrationException; import javax.management.MBeanServer; @@ -1067,7 +1066,7 @@ public class Assembler extends Assembler } // if local bean or mdb generate proxy class now to avoid bottleneck on classloader later - if (beanContext.isLocalbean() || beanContext.getBusinessLocalInterfaces().contains(MessageListener.class)) { + if (beanContext.isLocalbean() || beanContext.getComponentType().isMessageDriven()) { final List<Class> interfaces = new ArrayList<Class>(3); interfaces.add(Serializable.class); interfaces.add(IntraVmProxy.class); Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiPlugin.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiPlugin.java?rev=1593723&r1=1593722&r2=1593723&view=diff ============================================================================== --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiPlugin.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiPlugin.java Sat May 10 19:59:24 2014 @@ -120,6 +120,10 @@ public class CdiPlugin extends AbstractO beans = new WeakHashMap<Class<?>, BeanContext>(); for (final BeanContext deployment : ejbDeployments) { if (deployment.getComponentType().isSession()) { + if (deployment.isLocalbean()) + { + beans.put(deployment.get(BeanContext.ProxyClass.class).getProxy(), deployment); + } beans.put(deployment.getBeanClass(), deployment); } } Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiResourceInjectionService.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiResourceInjectionService.java?rev=1593723&r1=1593722&r2=1593723&view=diff ============================================================================== --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiResourceInjectionService.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiResourceInjectionService.java Sat May 10 19:59:24 2014 @@ -82,7 +82,12 @@ public class CdiResourceInjectionService @Override public void injectJavaEEResources(final Object managedBeanInstance) { - if (managedBeanInstance != null && ejbPlugin.isSessionBean(managedBeanInstance.getClass())) { // already done + if (managedBeanInstance == null) { + return; + } + + final Class<?> managedBeanInstanceClass = managedBeanInstance.getClass(); + if (ejbPlugin.isSessionBean(managedBeanInstanceClass)) { // already done return; }