You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by jg...@apache.org on 2011/03/10 22:38:44 UTC
svn commit: r1080362 - in /openejb/trunk/openejb3:
assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/
assembly/openejb-tomcat/openejb-tomcat-common/src/main/java/org/apache/openejb/tomcat/common/
container...
Author: jgallimore
Date: Thu Mar 10 21:38:44 2011
New Revision: 1080362
URL: http://svn.apache.org/viewvc?rev=1080362&view=rev
Log:
Fix for @LocalBean @EJB injections
Modified:
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatJndiBuilder.java
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-common/src/main/java/org/apache/openejb/tomcat/common/EjbFactory.java
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-common/src/main/java/org/apache/openejb/tomcat/common/NamingUtil.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/TempClassLoader.java
openejb/trunk/openejb3/examples/webapps/ejb-examples/src/main/java/org/superbiz/servlet/AnnotatedEJB.java
openejb/trunk/openejb3/examples/webapps/ejb-examples/src/main/java/org/superbiz/servlet/AnnotatedServlet.java
Modified: openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatJndiBuilder.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatJndiBuilder.java?rev=1080362&r1=1080361&r2=1080362&view=diff
==============================================================================
--- openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatJndiBuilder.java (original)
+++ openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatJndiBuilder.java Thu Mar 10 21:38:44 2011
@@ -54,6 +54,7 @@ import static org.apache.openejb.tomcat.
import static org.apache.openejb.tomcat.common.NamingUtil.JNDI_NAME;
import static org.apache.openejb.tomcat.common.NamingUtil.JNDI_PROVIDER_ID;
import static org.apache.openejb.tomcat.common.NamingUtil.LOCAL;
+import static org.apache.openejb.tomcat.common.NamingUtil.LOCALBEAN;
import static org.apache.openejb.tomcat.common.NamingUtil.NAME;
import static org.apache.openejb.tomcat.common.NamingUtil.RESOURCE_ID;
import static org.apache.openejb.tomcat.common.NamingUtil.UNIT;
@@ -225,7 +226,7 @@ public class TomcatJndiBuilder {
ejb.setProperty(NAME, ref.referenceName.replaceAll("^comp/env/", ""));
ejb.setHome(ref.homeClassName);
ejb.setRemote(null);
- ejb.setProperty(LOCAL, ref.interfaceClassName);
+ ejb.setProperty(ref.localbean ? LOCALBEAN : LOCAL, ref.interfaceClassName);
ejb.setLink(null);
ejb.setType(ref.interfaceClassName);
Modified: openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-common/src/main/java/org/apache/openejb/tomcat/common/EjbFactory.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-common/src/main/java/org/apache/openejb/tomcat/common/EjbFactory.java?rev=1080362&r1=1080361&r2=1080362&view=diff
==============================================================================
--- openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-common/src/main/java/org/apache/openejb/tomcat/common/EjbFactory.java (original)
+++ openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-common/src/main/java/org/apache/openejb/tomcat/common/EjbFactory.java Thu Mar 10 21:38:44 2011
@@ -23,6 +23,7 @@ import org.apache.openejb.core.ivm.Intra
import static org.apache.openejb.tomcat.common.NamingUtil.DEPLOYMENT_ID;
import static org.apache.openejb.tomcat.common.NamingUtil.EXTERNAL;
import static org.apache.openejb.tomcat.common.NamingUtil.LOCAL;
+import static org.apache.openejb.tomcat.common.NamingUtil.LOCALBEAN;
import static org.apache.openejb.tomcat.common.NamingUtil.REMOTE;
import static org.apache.openejb.tomcat.common.NamingUtil.getProperty;
import static org.apache.openejb.tomcat.common.NamingUtil.isPropertyTrue;
@@ -66,6 +67,12 @@ public class EjbFactory extends Abstract
// get and verify interface type
InterfaceType type = InterfaceType.BUSINESS_REMOTE;
String interfaceType = getProperty(reference, REMOTE);
+
+ if (interfaceType == null) {
+ type = InterfaceType.LOCALBEAN;
+ interfaceType = getProperty(reference, LOCALBEAN);
+ }
+
if (interfaceType == null) {
type = InterfaceType.BUSINESS_LOCAL;
interfaceType = getProperty(reference, LOCAL);
Modified: openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-common/src/main/java/org/apache/openejb/tomcat/common/NamingUtil.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-common/src/main/java/org/apache/openejb/tomcat/common/NamingUtil.java?rev=1080362&r1=1080361&r2=1080362&view=diff
==============================================================================
--- openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-common/src/main/java/org/apache/openejb/tomcat/common/NamingUtil.java (original)
+++ openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-common/src/main/java/org/apache/openejb/tomcat/common/NamingUtil.java Thu Mar 10 21:38:44 2011
@@ -30,6 +30,7 @@ public class NamingUtil {
public static final String DEPLOYMENT_ID = "deploymentid";
public static final String EXTERNAL = "external";
public static final String LOCAL = "local";
+ public static final String LOCALBEAN = "localbean";
public static final String REMOTE = EjbRef.REMOTE;
public static final String JNDI_NAME = "jndiname";
public static final String JNDI_PROVIDER_ID = "jndiproviderid";
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/TempClassLoader.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/TempClassLoader.java?rev=1080362&r1=1080361&r2=1080362&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/TempClassLoader.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/TempClassLoader.java Thu Mar 10 21:38:44 2011
@@ -89,7 +89,7 @@ public class TempClassLoader extends URL
* 2. Since this class loader uses Class.forName to load classes starting with java, javax or sun, it cannot load javax.faces.FacesServlet
* 3. Result is , AnnotationDeployer throws a ClassNotFoundException
*/
- if (!name.startsWith("javax.faces.") && (name.startsWith("java.") || name.startsWith("javax.") || name.startsWith("sun.") ||
+ if ((!name.startsWith("javax.faces.")) && (!name.startsWith("javax.servlet.jsp.jstl")) && (name.startsWith("java.") || name.startsWith("javax.") || name.startsWith("sun.") ||
name.startsWith("org.apache.openejb.api.") || name.startsWith("org.apache.openjpa.persistence."))) {
return Class.forName(name, resolve, getClass().getClassLoader());
}
Modified: openejb/trunk/openejb3/examples/webapps/ejb-examples/src/main/java/org/superbiz/servlet/AnnotatedEJB.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/webapps/ejb-examples/src/main/java/org/superbiz/servlet/AnnotatedEJB.java?rev=1080362&r1=1080361&r2=1080362&view=diff
==============================================================================
--- openejb/trunk/openejb3/examples/webapps/ejb-examples/src/main/java/org/superbiz/servlet/AnnotatedEJB.java (original)
+++ openejb/trunk/openejb3/examples/webapps/ejb-examples/src/main/java/org/superbiz/servlet/AnnotatedEJB.java Thu Mar 10 21:38:44 2011
@@ -17,11 +17,13 @@
*/
package org.superbiz.servlet;
+import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.sql.DataSource;
import javax.annotation.Resource;
@Stateless
+@LocalBean
public class AnnotatedEJB implements AnnotatedEJBLocal, AnnotatedEJBRemote {
@Resource
private DataSource ds;
Modified: openejb/trunk/openejb3/examples/webapps/ejb-examples/src/main/java/org/superbiz/servlet/AnnotatedServlet.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/webapps/ejb-examples/src/main/java/org/superbiz/servlet/AnnotatedServlet.java?rev=1080362&r1=1080361&r2=1080362&view=diff
==============================================================================
--- openejb/trunk/openejb3/examples/webapps/ejb-examples/src/main/java/org/superbiz/servlet/AnnotatedServlet.java (original)
+++ openejb/trunk/openejb3/examples/webapps/ejb-examples/src/main/java/org/superbiz/servlet/AnnotatedServlet.java Thu Mar 10 21:38:44 2011
@@ -35,6 +35,9 @@ public class AnnotatedServlet extends Ht
@EJB
private AnnotatedEJBRemote remoteEJB;
+
+ @EJB
+ private AnnotatedEJB localbeanEJB;
@Resource
private DataSource ds;
@@ -44,6 +47,15 @@ public class AnnotatedServlet extends Ht
response.setContentType("text/plain");
ServletOutputStream out = response.getOutputStream();
+ out.println("LocalBean EJB");
+ out.println("@EJB=" + localbeanEJB);
+ if (localbeanEJB != null) {
+ out.println("@EJB.getName()=" + localbeanEJB.getName());
+ out.println("@EJB.getDs()=" + localbeanEJB.getDs());
+ }
+ out.println("JNDI=" + lookupField("localbeanEJB"));
+ out.println();
+
out.println("Local EJB");
out.println("@EJB=" + localEJB);
if (localEJB != null) {