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 2011/09/07 10:00:17 UTC

svn commit: r1166035 - /openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java

Author: rmannibucau
Date: Wed Sep  7 08:00:17 2011
New Revision: 1166035

URL: http://svn.apache.org/viewvc?rev=1166035&view=rev
Log:
allowing cdi localbean injections

Modified:
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java?rev=1166035&r1=1166034&r2=1166035&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java Wed Sep  7 08:00:17 2011
@@ -89,18 +89,19 @@ public class CdiEjbBean<T> extends BaseE
     protected T getInstance(CreationalContext<T> creationalContext) {
 
         final List<Class> classes = beanContext.getBusinessLocalInterfaces();
-        final Class mainInterface = classes.get(0);
-
-        List<Class> interfaces = ProxyInterfaceResolver.getInterfaces(beanContext.getBeanClass(), mainInterface, classes);
-        BeanContext.BusinessLocalHome home = beanContext.getBusinessLocalHome(interfaces, mainInterface);
-
         CurrentCreationalContext currentCreationalContext = beanContext.get(CurrentCreationalContext.class);
-
         CreationalContext existing = currentCreationalContext.get();
+        currentCreationalContext.set(creationalContext);
         try {
-            currentCreationalContext.set(creationalContext);
-
-            return (T) home.create();
+            if (classes.size() == 0 && beanContext.isLocalbean()) {
+                BeanContext.BusinessLocalBeanHome home = beanContext.getBusinessLocalBeanHome();
+                return (T) home.create();
+            } else {
+                final Class<?> mainInterface = classes.get(0);
+                List<Class> interfaces = ProxyInterfaceResolver.getInterfaces(beanContext.getBeanClass(), mainInterface, classes);
+                BeanContext.BusinessLocalHome home = beanContext.getBusinessLocalHome(interfaces, mainInterface);
+                return (T) home.create();
+            }
         } finally {
             currentCreationalContext.set(existing);
         }