KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > h2 > jdbcx > JdbcDataSource


1 /*
2  * Copyright 2004-2006 H2 Group. Licensed under the H2 License, Version 1.0 (http://h2database.com/html/license.html).
3  * Initial Developer: H2 Group
4  */

5 package org.h2.jdbcx;
6
7 import java.io.PrintWriter JavaDoc;
8 import java.io.Serializable JavaDoc;
9 import java.sql.Connection JavaDoc;
10 import java.sql.SQLException JavaDoc;
11 import java.util.Properties JavaDoc;
12
13 import javax.naming.NamingException JavaDoc;
14 import javax.naming.Reference JavaDoc;
15 import javax.naming.Referenceable JavaDoc;
16 import javax.naming.StringRefAddr JavaDoc;
17 //#ifdef JDK14
18
import javax.sql.ConnectionPoolDataSource JavaDoc;
19 import javax.sql.DataSource JavaDoc;
20 import javax.sql.PooledConnection JavaDoc;
21 import javax.sql.XAConnection JavaDoc;
22 import javax.sql.XADataSource JavaDoc;
23 //#endif
24

25 import org.h2.jdbc.JdbcConnection;
26 import org.h2.message.TraceObject;
27
28 //#ifdef JDK16
29
/*
30 import org.h2.message.Message;
31 */

32 //#endif
33

34 /**
35  * A data source for H2 database connections
36  *
37  * @author Tom
38  */

39 public class JdbcDataSource extends TraceObject implements
40 //#ifdef JDK14
41
XADataSource JavaDoc, DataSource JavaDoc, ConnectionPoolDataSource JavaDoc,
42 //#endif
43
Serializable JavaDoc, Referenceable JavaDoc {
44     
45     private static final long serialVersionUID = 1288136338451857771L;
46     
47     private transient JdbcDataSourceFactory factory = new JdbcDataSourceFactory();
48     private transient PrintWriter JavaDoc logWriter;
49     private int timeout;
50     private String JavaDoc user = "";
51     private String JavaDoc password = "";
52     private String JavaDoc url = "";
53     
54     public JdbcDataSource() {
55         int id = getNextId(TraceObject.DATASOURCE);
56         setTrace(factory.getTrace(), TraceObject.DATASOURCE, id);
57     }
58
59     public int getLoginTimeout() throws SQLException JavaDoc {
60         debugCodeCall("getLoginTimeout");
61         return timeout;
62     }
63
64     public void setLoginTimeout(int timeout) throws SQLException JavaDoc {
65         debugCodeCall("setLoginTimeout", timeout);
66         this.timeout = timeout;
67     }
68
69     public PrintWriter JavaDoc getLogWriter() throws SQLException JavaDoc {
70         debugCodeCall("getLogWriter");
71         return logWriter;
72     }
73
74     public void setLogWriter(PrintWriter JavaDoc out) throws SQLException JavaDoc {
75         debugCodeCall("setLogWriter(out)");
76         logWriter = out;
77     }
78
79     public Connection JavaDoc getConnection() throws SQLException JavaDoc {
80         debugCodeCall("getConnection");
81         return getJdbcConnection(user, password);
82     }
83
84     public Connection JavaDoc getConnection(String JavaDoc user, String JavaDoc password) throws SQLException JavaDoc {
85         debugCode("getConnection("+quote(user)+", "+quote(password)+");");
86         return getJdbcConnection(user, password);
87     }
88
89     public JdbcConnection getJdbcConnection(String JavaDoc user, String JavaDoc password) throws SQLException JavaDoc {
90         debugCode("getJdbcConnection("+quote(user)+", "+quote(password)+");");
91         Properties JavaDoc info = new Properties JavaDoc();
92         info.setProperty("user", user);
93         info.setProperty("password", password);
94         return new JdbcConnection(url, info);
95     }
96     
97     public String JavaDoc getURL() {
98         debugCodeCall("getURL");
99         return url;
100     }
101
102     public void setURL(String JavaDoc url) {
103         debugCodeCall("setURL", url);
104         this.url = url;
105     }
106
107     public String JavaDoc getPassword() {
108         debugCodeCall("getPassword");
109         return password;
110     }
111
112     public void setPassword(String JavaDoc password) {
113         debugCodeCall("setPassword", password);
114         this.password = password;
115     }
116
117     public String JavaDoc getUser() {
118         debugCodeCall("getUser");
119         return user;
120     }
121
122     public void setUser(String JavaDoc user) {
123         debugCodeCall("setUser", user);
124         this.user = user;
125     }
126     
127
128     public Reference JavaDoc getReference() throws NamingException JavaDoc {
129         debugCodeCall("getReference");
130         String JavaDoc factoryClassName = JdbcDataSourceFactory.class.getName();
131         Reference JavaDoc ref = new Reference JavaDoc(getClass().getName(), factoryClassName, null);
132         ref.add(new StringRefAddr JavaDoc("url", getURL()));
133         ref.add(new StringRefAddr JavaDoc("user", getUser()));
134         ref.add(new StringRefAddr JavaDoc("password", password));
135         return ref;
136     }
137
138 //#ifdef JDK14
139
public XAConnection JavaDoc getXAConnection() throws SQLException JavaDoc {
140         debugCodeCall("getXAConnection");
141         int id = getNextId(XA_DATASOURCE);
142         return new JdbcXAConnection(factory, id, url, user, password);
143     }
144
145     public XAConnection JavaDoc getXAConnection(String JavaDoc user, String JavaDoc password) throws SQLException JavaDoc {
146         debugCode("getXAConnection("+quote(user)+", "+quote(password)+");");
147         int id = getNextId(XA_DATASOURCE);
148         return new JdbcXAConnection(factory, id, url, user, password);
149     }
150
151     public PooledConnection JavaDoc getPooledConnection() throws SQLException JavaDoc {
152         debugCodeCall("getPooledConnection");
153         return getXAConnection();
154     }
155
156     public PooledConnection JavaDoc getPooledConnection(String JavaDoc user, String JavaDoc password) throws SQLException JavaDoc {
157         debugCode("getPooledConnection("+quote(user)+", "+quote(password)+");");
158         return getXAConnection(user, password);
159     }
160 //#endif
161

162 //#ifdef JDK16
163
/*
164     public <T> T unwrap(Class<T> iface) throws SQLException {
165         throw Message.getUnsupportedException();
166     }
167 */

168 //#endif
169

170 //#ifdef JDK16
171
/*
172     public boolean isWrapperFor(Class<?> iface) throws SQLException {
173         throw Message.getUnsupportedException();
174     }
175 */

176 //#endif
177

178 }
179
Popular Tags