You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ga...@apache.org on 2010/02/19 17:04:19 UTC

svn commit: r911852 - in /geronimo/server/trunk/framework/bundles/jstl: ./ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/taglibs/ src/main/java/org/apache/taglibs/standard/ src/main/java/org/apache/...

Author: gawor
Date: Fri Feb 19 16:04:18 2010
New Revision: 911852

URL: http://svn.apache.org/viewvc?rev=911852&view=rev
Log:
GERONIMO-5151: Apply fix for https://issues.apache.org/bugzilla/show_bug.cgi?id=48773 to our JSTL bundle

Added:
    geronimo/server/trunk/framework/bundles/jstl/src/
    geronimo/server/trunk/framework/bundles/jstl/src/main/
    geronimo/server/trunk/framework/bundles/jstl/src/main/java/
    geronimo/server/trunk/framework/bundles/jstl/src/main/java/org/
    geronimo/server/trunk/framework/bundles/jstl/src/main/java/org/apache/
    geronimo/server/trunk/framework/bundles/jstl/src/main/java/org/apache/taglibs/
    geronimo/server/trunk/framework/bundles/jstl/src/main/java/org/apache/taglibs/standard/
    geronimo/server/trunk/framework/bundles/jstl/src/main/java/org/apache/taglibs/standard/tag/
    geronimo/server/trunk/framework/bundles/jstl/src/main/java/org/apache/taglibs/standard/tag/common/
    geronimo/server/trunk/framework/bundles/jstl/src/main/java/org/apache/taglibs/standard/tag/common/sql/
    geronimo/server/trunk/framework/bundles/jstl/src/main/java/org/apache/taglibs/standard/tag/common/sql/DataSourceWrapper.java   (with props)
Modified:
    geronimo/server/trunk/framework/bundles/jstl/pom.xml

Modified: geronimo/server/trunk/framework/bundles/jstl/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/bundles/jstl/pom.xml?rev=911852&r1=911851&r2=911852&view=diff
==============================================================================
--- geronimo/server/trunk/framework/bundles/jstl/pom.xml (original)
+++ geronimo/server/trunk/framework/bundles/jstl/pom.xml Fri Feb 19 16:04:18 2010
@@ -63,6 +63,10 @@
                         <Import-Package>com.sun.org.apache*;resolution:=optional,*</Import-Package>                        
                         <!--<_versionpolicy>[$(version;==;$(@)),$(version;+;$(@)))</_versionpolicy>-->
                         <Embed-Dependency>*;scope=provided;inline=true</Embed-Dependency>
+                        <Include-Resource>
+                           {maven-resources},
+                           org/apache/taglibs/standard/tag/common/sql/DataSourceWrapper.class=target/classes/org/apache/taglibs/standard/tag/common/sql/DataSourceWrapper.class
+                        </Include-Resource>
                     </instructions>
                 </configuration>
             </plugin>

Added: geronimo/server/trunk/framework/bundles/jstl/src/main/java/org/apache/taglibs/standard/tag/common/sql/DataSourceWrapper.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/bundles/jstl/src/main/java/org/apache/taglibs/standard/tag/common/sql/DataSourceWrapper.java?rev=911852&view=auto
==============================================================================
--- geronimo/server/trunk/framework/bundles/jstl/src/main/java/org/apache/taglibs/standard/tag/common/sql/DataSourceWrapper.java (added)
+++ geronimo/server/trunk/framework/bundles/jstl/src/main/java/org/apache/taglibs/standard/tag/common/sql/DataSourceWrapper.java Fri Feb 19 16:04:18 2010
@@ -0,0 +1,148 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */ 
+
+package org.apache.taglibs.standard.tag.common.sql;
+
+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;
+
+import org.apache.taglibs.standard.resources.Resources;
+
+/**
+ * <p>A simple <code>DataSource</code> wrapper for the standard
+ * <code>DriverManager</code> class.
+ * 
+ * @author Hans Bergsten
+ */
+public class DataSourceWrapper implements DataSource {
+    private Driver driver;
+    private String jdbcURL;
+    private String userName;
+    private String password;
+
+    public void setDriverClassName(String driverClassName) 
+        throws ClassNotFoundException, InstantiationException, 
+            IllegalAccessException {
+
+        //get the classloader
+        ClassLoader cl;
+        SecurityManager sm = System.getSecurityManager();
+        if (sm == null) {
+            cl = Thread.currentThread().getContextClassLoader();
+        } else {
+            cl = java.security.AccessController.doPrivileged(
+                    new java.security.PrivilegedAction<ClassLoader>() 
+                    {public ClassLoader run() {return Thread.currentThread().getContextClassLoader();}});
+        }
+        //done getting classloader
+    
+        Object instance = Class.forName(driverClassName, true, cl).newInstance();
+        if (instance instanceof Driver) {
+            driver = (Driver) instance;
+        }
+    }
+
+    public void setJdbcURL(String jdbcURL) {
+	this.jdbcURL = jdbcURL;
+    }
+
+    public void setUserName(String userName) {
+	this.userName = userName;
+    }
+
+    public void setPassword(String password) {
+	this.password = password;
+    }
+
+    /**
+     * Returns a Connection using the DriverManager and all
+     * set properties.
+     */
+    public Connection getConnection() throws SQLException {
+        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.
+     */
+    public Connection getConnection(String username, String password) 
+            throws SQLException {
+        throw new SQLException(Resources.getMessage("NOT_SUPPORTED"));
+    }
+    
+    /**
+     * Always throws a SQLException. Not supported.
+     */
+    public int getLoginTimeout() throws SQLException {
+        throw new SQLException(Resources.getMessage("NOT_SUPPORTED"));
+    }
+    
+    /**
+     * Always throws a SQLException. Not supported.
+     */
+    public PrintWriter getLogWriter() throws SQLException {
+        throw new SQLException(Resources.getMessage("NOT_SUPPORTED"));
+    }
+    
+    /**
+     * Always throws a SQLException. Not supported.
+     */
+    public void setLoginTimeout(int seconds) throws SQLException {
+        throw new SQLException(Resources.getMessage("NOT_SUPPORTED"));
+    }
+    
+    /**
+     * Always throws a SQLException. Not supported.
+     */
+    public synchronized void setLogWriter(PrintWriter out) throws SQLException {
+        throw new SQLException(Resources.getMessage("NOT_SUPPORTED"));
+    }
+    
+    public synchronized boolean isWrapperFor(Class c) throws SQLException {
+        throw new SQLException(Resources.getMessage("NOT_SUPPORTED"));
+    }
+
+    public synchronized Object unwrap(Class c) throws SQLException {
+        throw new SQLException(Resources.getMessage("NOT_SUPPORTED"));
+    }
+
+}

Propchange: geronimo/server/trunk/framework/bundles/jstl/src/main/java/org/apache/taglibs/standard/tag/common/sql/DataSourceWrapper.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/server/trunk/framework/bundles/jstl/src/main/java/org/apache/taglibs/standard/tag/common/sql/DataSourceWrapper.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/server/trunk/framework/bundles/jstl/src/main/java/org/apache/taglibs/standard/tag/common/sql/DataSourceWrapper.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain