You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2011/06/27 00:28:46 UTC
svn commit: r1139958 - in /openejb/trunk/openejb3/server:
openejb-client/src/main/java/org/apache/openejb/client/
openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/
openejb-ejbd/src/test/java/org/apache/openejb/server/ejbd/
Author: dblevins
Date: Sun Jun 26 22:28:45 2011
New Revision: 1139958
URL: http://svn.apache.org/viewvc?rev=1139958&view=rev
Log:
Fixed bug in OPENEJB-1616 that broke the openejb side of things and added a small test case
Can't immediately think of a good way to test the Reference passing support, but we should add a test for that too.
Maybe we just drop the DBCP specific support and convert that over to using the more generic Reference support
Modified:
openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIResponse.java
openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java
openejb/trunk/openejb3/server/openejb-ejbd/src/test/java/org/apache/openejb/server/ejbd/AppClientTest.java
Modified: openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIResponse.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIResponse.java?rev=1139958&r1=1139957&r2=1139958&view=diff
==============================================================================
--- openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIResponse.java (original)
+++ openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIResponse.java Sun Jun 26 22:28:45 2011
@@ -142,6 +142,8 @@ public class JNDIResponse implements Clu
m.writeExternal(out);
break;
case ResponseCodes.JNDI_DATA_SOURCE:
+ DataSourceMetaData ds = (DataSourceMetaData) result;
+ ds.writeExternal(out);
break;
case ResponseCodes.JNDI_INJECTIONS:
InjectionMetaData imd = (InjectionMetaData) result;
Modified: openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java?rev=1139958&r1=1139957&r2=1139958&view=diff
==============================================================================
--- openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java (original)
+++ openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java Sun Jun 26 22:28:45 2011
@@ -204,7 +204,7 @@ class JndiRequestHandler {
} else if (object == null) {
throw new NullPointerException("lookup of '"+name+"' returned null");
} else if (object instanceof DataSource) {
- if (object.getClass().getName().equals("org.apache.commons.dbcp.BasicDataSource")) {
+ if (isDbcpDataSource(object)) {
try {
DbcpDataSource cf = new DbcpDataSource(object);
DataSourceMetaData dataSourceMetaData = new DataSourceMetaData(cf.getDriverClassName(), cf.getUrl(), cf.getUsername(), cf.getPassword());
@@ -438,6 +438,15 @@ class JndiRequestHandler {
}
+ private boolean isDbcpDataSource(Object object) {
+
+ for (Class<?> clazz = object.getClass(); clazz != null; clazz = clazz.getSuperclass()) {
+ if (clazz.getName().equals("org.apache.commons.dbcp.BasicDataSource")) return true;
+ }
+
+ return false;
+ }
+
private void log(EJBMetaDataImpl metaData) {
if (logger.isDebugEnabled()) {
final StringBuilder sb = new StringBuilder();
Modified: openejb/trunk/openejb3/server/openejb-ejbd/src/test/java/org/apache/openejb/server/ejbd/AppClientTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-ejbd/src/test/java/org/apache/openejb/server/ejbd/AppClientTest.java?rev=1139958&r1=1139957&r2=1139958&view=diff
==============================================================================
--- openejb/trunk/openejb3/server/openejb-ejbd/src/test/java/org/apache/openejb/server/ejbd/AppClientTest.java (original)
+++ openejb/trunk/openejb3/server/openejb-ejbd/src/test/java/org/apache/openejb/server/ejbd/AppClientTest.java Sun Jun 26 22:28:45 2011
@@ -27,12 +27,12 @@ import org.apache.openejb.core.ServerFed
import org.apache.openejb.jee.ApplicationClient;
import org.apache.openejb.jee.EjbJar;
import org.apache.openejb.jee.StatelessBean;
-import org.apache.openejb.jee.oejb3.EjbDeployment;
import org.apache.openejb.jee.oejb3.OpenejbJar;
import org.apache.openejb.loader.SystemInstance;
import org.apache.openejb.server.ServiceDaemon;
import org.apache.openejb.server.ServicePool;
+import javax.annotation.Resource;
import javax.ejb.CreateException;
import javax.ejb.EJB;
import javax.ejb.EJBHome;
@@ -41,6 +41,7 @@ import javax.ejb.Remote;
import javax.ejb.RemoteHome;
import javax.naming.Context;
import javax.naming.InitialContext;
+import javax.sql.DataSource;
import java.rmi.RemoteException;
import java.util.Properties;
@@ -102,7 +103,12 @@ public class AppClientTest extends TestC
assertTrue(business instanceof OrangeBusinessRemote);
OrangeBusinessRemote orangeBusinessRemote = (OrangeBusinessRemote) business;
assertEquals("nap", orangeBusinessRemote.echo("pan"));
-
+
+ final Object dataSourceObject = context.lookup("comp/env/datasource");
+ assertTrue(dataSourceObject instanceof DataSource);
+// DataSource dataSource = (DataSource) dataSourceObject;
+// assertEquals("nap", orangeBusinessRemote.echo("pan"));
+
props.put("openejb.client.moduleId", "openejb/global");
context = new InitialContext(props);
@@ -136,6 +142,9 @@ public class AppClientTest extends TestC
public static class OrangeAppClient {
+ @Resource(name = "datasource")
+ public static DataSource dataSource;
+
@EJB(name = "home")
public static OrangeHome orangeHome;