You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by ga...@apache.org on 2010/09/28 05:03:22 UTC
svn commit: r1001996 - in
/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb:
assembler/classic/Assembler.java config/AnnotationDeployer.java
core/ivm/EjbHomeProxyHandler.java
Author: gawor
Date: Tue Sep 28 03:03:21 2010
New Revision: 1001996
URL: http://svn.apache.org/viewvc?rev=1001996&view=rev
Log:
OPENEJB-1361: Treat ManagedBeans as LocalBeans. Based on patch from Gurkan Erdogdu
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=1001996&r1=1001995&r2=1001996&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java Tue Sep 28 03:03:21 2010
@@ -511,7 +511,7 @@ public class Assembler extends Assembler
classLoader = ClassLoaderUtil.createClassLoader(appInfo.path, new URL []{generatedJar.toURI().toURL()}, classLoader);
}
- AppContext appContext = new AppContext(appInfo.appId, SystemInstance.get(), classLoader, globalJndiContext, appJndiContext, false);
+ AppContext appContext = new AppContext(appInfo.appId, SystemInstance.get(), classLoader, globalJndiContext, appJndiContext, appInfo.standaloneModule);
// JPA - Persistence Units MUST be processed first since they will add ClassFileTransformers
// to the class loader which must be added before any classes are loaded
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java?rev=1001996&r1=1001995&r2=1001996&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java Tue Sep 28 03:03:21 2010
@@ -1895,12 +1895,11 @@ public class AnnotationDeployer implemen
&& all.remote.isEmpty()
) {
- if (interfaces.size() == 0) {
+ if (interfaces.size() == 0 || beanClass.isAnnotationPresent(ManagedBean.class)) {
// No interfaces? Then @LocalBean
sessionBean.setLocalBean(new Empty());
-
} else if (interfaces.size() == 1) {
// One interface? Then @Local
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java?rev=1001996&r1=1001995&r2=1001996&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java Tue Sep 28 03:03:21 2010
@@ -31,6 +31,7 @@ import javax.ejb.EJBException;
import javax.ejb.EJBHome;
import org.apache.openejb.BeanContext;
+import org.apache.openejb.BeanType;
import org.apache.openejb.InterfaceType;
import org.apache.openejb.ProxyInfo;
import org.apache.openejb.core.ServerFederation;
@@ -130,7 +131,8 @@ public abstract class EjbHomeProxyHandle
EjbObjectProxyHandler handler = newEjbObjectHandler(getBeanContext(), primaryKey, objectInterfaceType, this.getInterfaces(), mainInterface);
- if (InterfaceType.LOCALBEAN.equals(objectInterfaceType)) {
+ // TODO Is it correct for ManagedBean injection via managed bean class?
+ if (InterfaceType.LOCALBEAN.equals(objectInterfaceType) || getBeanContext().getComponentType().equals(BeanType.MANAGED)) {
return LocalBeanProxyFactory.newProxyInstance(handler.getBeanContext().getClassLoader(), handler.getBeanContext().getBeanClass(), handler);
} else {
List<Class> proxyInterfaces = new ArrayList<Class>(handler.getInterfaces().size() + 1);