You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by jb...@apache.org on 2010/10/10 00:26:49 UTC

svn commit: r1006229 - /tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/sql/DataSourceWrapper.java

Author: jboynes
Date: Sat Oct  9 22:26:48 2010
New Revision: 1006229

URL: http://svn.apache.org/viewvc?rev=1006229&view=rev
Log:
apply patch from Jarek Gawor for bugzilla #48773

Modified:
    tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/sql/DataSourceWrapper.java

Modified: tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/sql/DataSourceWrapper.java
URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/sql/DataSourceWrapper.java?rev=1006229&r1=1006228&r2=1006229&view=diff
==============================================================================
--- tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/sql/DataSourceWrapper.java (original)
+++ tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/sql/DataSourceWrapper.java Sat Oct  9 22:26:48 2010
@@ -19,8 +19,10 @@ package org.apache.taglibs.standard.tag.
 
 import java.io.PrintWriter;
 import java.sql.Connection;
+import java.sql.Driver;
 import java.sql.DriverManager;
 import java.sql.SQLException;
+import java.util.Properties;
 
 import javax.sql.DataSource;
 
@@ -34,7 +36,7 @@ import org.apache.taglibs.standard.resou
  * @author Hans Bergsten
  */
 public class DataSourceWrapper implements DataSource {
-    private String driverClassName;
+    private Driver driver;
     private String jdbcURL;
     private String userName;
     private String password;
@@ -43,8 +45,6 @@ public class DataSourceWrapper implement
         throws ClassNotFoundException, InstantiationException, 
             IllegalAccessException {
 
-        this.driverClassName = driverClassName;
-
         //get the classloader
         ClassLoader cl;
         SecurityManager sm = System.getSecurityManager();
@@ -57,7 +57,10 @@ public class DataSourceWrapper implement
         }
         //done getting classloader
     
-        Class.forName(driverClassName, true, cl).newInstance();
+        Object instance = Class.forName(driverClassName, true, cl).newInstance();
+        if (instance instanceof Driver) {
+            driver = (Driver) instance;
+        }
     }
 
     public void setJdbcURL(String jdbcURL) {
@@ -77,16 +80,27 @@ public class DataSourceWrapper implement
      * set properties.
      */
     public Connection getConnection() throws SQLException {
-	Connection conn = null;
-	if (userName != null) {
-	    conn = DriverManager.getConnection(jdbcURL, userName, password);
-	}
-	else {
-	    conn = DriverManager.getConnection(jdbcURL);
-	}
-	return conn;
+        Connection conn = null;
+        if (driver != null) {
+            Properties props = new Properties();
+            if (userName != null) {
+                props.put("user", userName);
+            }
+            if (password != null) {
+                props.put("password", password);
+            }
+            conn = driver.connect(jdbcURL, props);
+        }
+        if (conn == null) {
+            if (userName != null) {
+                conn = DriverManager.getConnection(jdbcURL, userName, password);
+            } else {
+                conn = DriverManager.getConnection(jdbcURL);
+            }
+        }
+        return conn;
     }
-
+    
     /**
      * Always throws a SQLException. Username and password are set
      * in the constructor and can not be changed.



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org