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);
}