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 2006/11/30 19:02:56 UTC

svn commit: r481018 - in /incubator/openejb/branches/openejb1/modules/core/src/java/org/openejb/resource/jdbc: BasicManagedConnectionFactory.java JdbcManagedConnectionFactory.java

Author: dblevins
Date: Thu Nov 30 10:02:53 2006
New Revision: 481018

URL: http://svn.apache.org/viewvc?view=rev&rev=481018
Log:
Hack the path for hsql as well as derby.. Improve the error message for failing to initialize the driver.

Modified:
    incubator/openejb/branches/openejb1/modules/core/src/java/org/openejb/resource/jdbc/BasicManagedConnectionFactory.java
    incubator/openejb/branches/openejb1/modules/core/src/java/org/openejb/resource/jdbc/JdbcManagedConnectionFactory.java

Modified: incubator/openejb/branches/openejb1/modules/core/src/java/org/openejb/resource/jdbc/BasicManagedConnectionFactory.java
URL: http://svn.apache.org/viewvc/incubator/openejb/branches/openejb1/modules/core/src/java/org/openejb/resource/jdbc/BasicManagedConnectionFactory.java?view=diff&rev=481018&r1=481017&r2=481018
==============================================================================
--- incubator/openejb/branches/openejb1/modules/core/src/java/org/openejb/resource/jdbc/BasicManagedConnectionFactory.java (original)
+++ incubator/openejb/branches/openejb1/modules/core/src/java/org/openejb/resource/jdbc/BasicManagedConnectionFactory.java Thu Nov 30 10:02:53 2006
@@ -89,7 +89,7 @@
             Connection connection = DriverManager.getConnection(jdbcUrl, request.getUserName(), request.getPassword());
             return new JdbcManagedConnection(managedConnectionFactory, connection, request);
         } catch (java.sql.SQLException e) {
-            throw (EISSystemException)new EISSystemException("Could not obtain a physical JDBC connection from the DriverManager").initCause(e);
+            throw (EISSystemException)new EISSystemException("Could not obtain a physical JDBC connection from the DriverManager: "+e.getMessage()+". "+e.getErrorCode()+". "+e.getSQLState()).initCause(e);
         }
     }
 

Modified: incubator/openejb/branches/openejb1/modules/core/src/java/org/openejb/resource/jdbc/JdbcManagedConnectionFactory.java
URL: http://svn.apache.org/viewvc/incubator/openejb/branches/openejb1/modules/core/src/java/org/openejb/resource/jdbc/JdbcManagedConnectionFactory.java?view=diff&rev=481018&r1=481017&r2=481018
==============================================================================
--- incubator/openejb/branches/openejb1/modules/core/src/java/org/openejb/resource/jdbc/JdbcManagedConnectionFactory.java (original)
+++ incubator/openejb/branches/openejb1/modules/core/src/java/org/openejb/resource/jdbc/JdbcManagedConnectionFactory.java Thu Nov 30 10:02:53 2006
@@ -46,6 +46,7 @@
 
 import org.openejb.core.EnvProps;
 import org.openejb.util.Logger;
+import org.openejb.loader.SystemInstance;
 
 import javax.resource.ResourceException;
 import javax.resource.spi.ConnectionManager;
@@ -55,7 +56,11 @@
 import javax.resource.spi.ResourceAdapterInternalException;
 import javax.security.auth.Subject;
 import java.io.PrintWriter;
+import java.io.File;
 import java.util.Set;
+import java.util.Properties;
+import java.net.URI;
+import java.net.URISyntaxException;
 
 public class JdbcManagedConnectionFactory implements javax.resource.spi.ManagedConnectionFactory, java.io.Serializable {
 
@@ -74,6 +79,22 @@
 
         if (driver.equals("org.enhydra.instantdb.jdbc.idbDriver")) {
             factory = new ManagedConnectionFactoryPathHack(factory);
+        } else if (driver.equals("org.apache.derby.jdbc.EmbeddedDriver")) {
+            factory = new ManagedConnectionFactoryPathHack(factory);
+        } else if (driver.equals("org.hsqldb.jdbcDriver")) {
+            factory = new ManagedConnectionFactoryPathHack(factory);
+        } else if (url.indexOf("conf/") > 0){
+            try {
+                String path = url.substring(url.indexOf("conf/"), url.length());
+                URI uri = new URI("file:///" + path);
+                path = uri.getPath();
+                path = path.substring(1, path.length());
+                SystemInstance.get().getBase().getFile(path);
+                factory = new ManagedConnectionFactoryPathHack(factory);
+            } catch (URISyntaxException e) {
+            } catch (java.io.FileNotFoundException e) {
+            } catch (java.io.IOException e) {
+            }
         }
 
         JdbcConnectionRequestInfo info = new JdbcConnectionRequestInfo(defaultUserName, defaultPassword, driver, url);