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-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to