1 /*
2 * The Apache Software License, Version 1.1
3 *
4 * Copyright (c) 1999 The Apache Software Foundation. All rights
5 * reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 *
11 * 1. Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 *
14 * 2. Redistributions in binary form must reproduce the above copyright
15 * notice, this list of conditions and the following disclaimer in
16 * the documentation and/or other materials provided with the
17 * distribution.
18 *
19 * 3. The end-user documentation included with the redistribution, if
20 * any, must include the following acknowlegement:
21 * "This product includes software developed by the
22 * Apache Software Foundation (http://www.apache.org/)."
23 * Alternately, this acknowlegement may appear in the software itself,
24 * if and wherever such third-party acknowlegements normally appear.
25 *
26 * 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
27 * Foundation" must not be used to endorse or promote products derived
28 * from this software without prior written permission. For written
29 * permission, please contact apache@apache.org.
30 *
31 * 5. Products derived from this software may not be called "Apache"
32 * nor may "Apache" appear in their names without prior written
33 * permission of the Apache Group.
34 *
35 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
36 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
37 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
38 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
39 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
41 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
42 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
43 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
44 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
45 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
46 * SUCH DAMAGE.
47 * ====================================================================
48 *
49 * This software consists of voluntary contributions made by many
50 * individuals on behalf of the Apache Software Foundation. For more
51 * information on the Apache Software Foundation, please see
52 * <http://www.apache.org/>.
53 *
54 */
55
56 package org.apache.commons.jelly.tags.sql;
57
58 import java.io.*;
59 import java.sql.*;
60 import java.util.*;
61 import javax.sql.DataSource;
62
63 import org.apache.commons.jelly.tags.Resources;
64
65 import org.apache.commons.logging.Log;
66 import org.apache.commons.logging.LogFactory;
67
68 /***
69 * <p>A simple <code>DataSource</code> wrapper for the standard
70 * <code>DriverManager</code> class.
71 *
72 * @author Hans Bergsten
73 */
74 public class DataSourceWrapper implements DataSource {
75
76 /*** The Log to which logging calls will be made. */
77 private static final Log log = LogFactory.getLog(DataSourceWrapper.class);
78
79 private String driverClassName;
80 private String jdbcURL;
81 private String userName;
82 private String password;
83
84 public void setDriverClassName(String driverClassName)
85 throws ClassNotFoundException, InstantiationException, IllegalAccessException {
86
87 if (log.isDebugEnabled()) {
88 log.debug("Loading JDBC driver: [" + driverClassName + "]");
89 }
90
91 this.driverClassName = driverClassName;
92 getClass().getClassLoader().loadClass(driverClassName).newInstance();
93 }
94
95 public void setJdbcURL(String jdbcURL) {
96 this.jdbcURL = jdbcURL;
97 }
98
99 public void setUserName(String userName) {
100 this.userName = userName;
101 }
102
103 public void setPassword(String password) {
104 this.password = password;
105 }
106
107 /***
108 * Returns a Connection using the DriverManager and all
109 * set properties.
110 */
111 public Connection getConnection() throws SQLException {
112 Connection conn = null;
113 if (userName != null) {
114 if (log.isDebugEnabled()) {
115 log.debug(
116 "Creating connection from url: " + jdbcURL + " userName: " + userName);
117 }
118
119 conn = DriverManager.getConnection(jdbcURL, userName, password);
120 }
121 else {
122 if (log.isDebugEnabled()) {
123 log.debug("Creating connection from url: " + jdbcURL);
124 }
125
126 conn = DriverManager.getConnection(jdbcURL);
127 }
128 if (log.isDebugEnabled()) {
129 log.debug(
130 "Created connection: " + conn );
131 }
132 return conn;
133 }
134
135 /***
136 * Always throws a SQLException. Username and password are set
137 * in the constructor and can not be changed.
138 */
139 public Connection getConnection(String username, String password)
140 throws SQLException {
141 throw new SQLException(Resources.getMessage("NOT_SUPPORTED"));
142 }
143
144 /***
145 * Always throws a SQLException. Not supported.
146 */
147 public int getLoginTimeout() throws SQLException {
148 throw new SQLException(Resources.getMessage("NOT_SUPPORTED"));
149 }
150
151 /***
152 * Always throws a SQLException. Not supported.
153 */
154 public PrintWriter getLogWriter() throws SQLException {
155 throw new SQLException(Resources.getMessage("NOT_SUPPORTED"));
156 }
157
158 /***
159 * Always throws a SQLException. Not supported.
160 */
161 public void setLoginTimeout(int seconds) throws SQLException {
162 throw new SQLException(Resources.getMessage("NOT_SUPPORTED"));
163 }
164
165 /***
166 * Always throws a SQLException. Not supported.
167 */
168 public synchronized void setLogWriter(PrintWriter out) throws SQLException {
169 throw new SQLException(Resources.getMessage("NOT_SUPPORTED"));
170 }
171
172 }
This page was automatically generated by Maven