Author: rmannibucau
Date: Tue Jul 24 12:08:25 2012
New Revision: 1364997
URL: http://svn.apache.org/viewvc?rev=1364997&view=rev
Log:
more independence from commond dbcp in openejb-ejbd
Modified:
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java
openejb/branches/openejb-pool/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java
Modified:
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
URL:
http://svn.apache.org/viewvc/openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=1364997&r1=1364996&r2=1364997&view=diff
==============================================================================
---
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
(original)
+++
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
Tue Jul 24 12:08:25 2012
@@ -1113,7 +1113,7 @@ public class Assembler extends Assembler
} catch (Throwable t) {
logger.fatal("ResourceAdapter Shutdown Failed: " + name, t);
}
- } else if (DataSourceFactory.canBeDestroyed(object)) {
+ } else if (DataSourceFactory.knows(object)) {
logger.info("Closing DataSource: " + name);
try {
Modified:
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java
URL:
http://svn.apache.org/viewvc/openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java?rev=1364997&r1=1364996&r2=1364997&view=diff
==============================================================================
---
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java
(original)
+++
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java
Tue Jul 24 12:08:25 2012
@@ -118,7 +118,7 @@ public class DataSourceFactory {
properties.remove("LoginTimeout");
}
- public static boolean canBeDestroyed(final Object object) {
+ public static boolean knows(final Object object) {
if (!(object instanceof DataSource)) {
return false;
}
Modified:
openejb/branches/openejb-pool/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java
URL:
http://svn.apache.org/viewvc/openejb/branches/openejb-pool/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java?rev=1364997&r1=1364996&r2=1364997&view=diff
==============================================================================
---
openejb/branches/openejb-pool/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java
(original)
+++
openejb/branches/openejb-pool/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java
Tue Jul 24 12:08:25 2012
@@ -20,6 +20,9 @@ import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
+import java.sql.Connection;
+import java.sql.DatabaseMetaData;
+import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@@ -38,6 +41,7 @@ import javax.validation.Validator;
import javax.validation.ValidatorFactory;
import javax.xml.namespace.QName;
+import org.apache.openejb.resource.jdbc.DataSourceFactory;
import org.omg.CORBA.ORB;
import static org.apache.openejb.server.ejbd.ClientObjectFactory.convert;
@@ -213,7 +217,7 @@ class JndiRequestHandler {
} else if (object == null) {
throw new NullPointerException("lookup of '" + name + "'
returned null");
} else if (object instanceof DataSource) {
- if (isDbcpDataSource(object)) {
+ if (DataSourceFactory.knows(object)) {
try {
DbcpDataSource cf = new DbcpDataSource(object);
DataSourceMetaData dataSourceMetaData = new
DataSourceMetaData(cf.getDriverClassName(), cf.getUrl(), cf.getUsername(),
cf.getPassword());
@@ -455,15 +459,6 @@ 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();
@@ -525,7 +520,11 @@ class JndiRequestHandler {
}
public java.lang.String getDriverClassName() throws Exception {
- return (String)
clazz.getMethod("getDriverClassName").invoke(object);
+ try {
+ return (String)
clazz.getMethod("getDriverClassName").invoke(object);
+ } catch (NoSuchMethodException nsme) {
+ return (String)
clazz.getMethod("getDriverClass").invoke(object);
+ }
}
public java.lang.String getPassword() throws Exception {
@@ -533,7 +532,11 @@ class JndiRequestHandler {
}
public java.lang.String getUrl() throws Exception {
- return (String) clazz.getMethod("getUrl").invoke(object);
+ try {
+ return (String) clazz.getMethod("getUrl").invoke(object);
+ } catch (NoSuchMethodException nsme) {
+ return (String) clazz.getMethod("getJdbcUrl").invoke(object);
+ }
}
public java.lang.String getUsername() throws Exception {