001: /*
002:
003: Derby - Class org.apache.derby.jdbc.EmbeddedConnectionPoolDataSource
004:
005: Licensed to the Apache Software Foundation (ASF) under one or more
006: contributor license agreements. See the NOTICE file distributed with
007: this work for additional information regarding copyright ownership.
008: The ASF licenses this file to You under the Apache License, Version 2.0
009: (the "License"); you may not use this file except in compliance with
010: the License. You may obtain a copy of the License at
011:
012: http://www.apache.org/licenses/LICENSE-2.0
013:
014: Unless required by applicable law or agreed to in writing, software
015: distributed under the License is distributed on an "AS IS" BASIS,
016: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
017: See the License for the specific language governing permissions and
018: limitations under the License.
019:
020: */
021:
022: package org.apache.derby.jdbc;
023:
024: import java.sql.SQLException;
025:
026: /* -- New jdbc 20 extension types --- */
027: import javax.sql.ConnectionPoolDataSource;
028: import javax.sql.PooledConnection;
029:
030: /**
031: EmbeddedConnectionPoolDataSource is Derby's ConnectionPoolDataSource
032: implementation for the JDBC3.0 and JDBC2.0 environments.
033:
034:
035: <P>A ConnectionPoolDataSource is a factory for PooledConnection
036: objects. An object that implements this interface will typically be
037: registered with a JNDI service.
038: <P>
039: EmbeddedConnectionPoolDataSource automatically supports the correct JDBC specification version
040: for the Java Virtual Machine's environment.
041: <UL>
042: <LI> JDBC 3.0 - Java 2 - JDK 1.4, J2SE 5.0
043: <LI> JDBC 2.0 - Java 2 - JDK 1.2,1.3
044: </UL>
045:
046: <P>EmbeddedConnectionPoolDataSource is serializable and referenceable.
047:
048: <P>See EmbeddedDataSource for DataSource properties.
049:
050: */
051: public class EmbeddedConnectionPoolDataSource extends
052: EmbeddedDataSource implements
053: javax.sql.ConnectionPoolDataSource {
054:
055: private static final long serialVersionUID = 7852784308039674160L;
056:
057: /**
058: No-arg constructor.
059: */
060: public EmbeddedConnectionPoolDataSource() {
061: super ();
062: }
063:
064: /*
065: * ConnectionPoolDataSource methods
066: */
067:
068: /**
069: Attempt to establish a database connection.
070:
071: @return a Connection to the database
072:
073: @exception SQLException if a database-access error occurs.
074: */
075: public final PooledConnection getPooledConnection()
076: throws SQLException {
077: return createPooledConnection(getUser(), getPassword(), false);
078: }
079:
080: /**
081: Attempt to establish a database connection.
082:
083: @param username the database user on whose behalf the Connection is being made
084: @param password the user's password
085:
086: @return a Connection to the database
087:
088: @exception SQLException if a database-access error occurs.
089: */
090: public final PooledConnection getPooledConnection(String username,
091: String password) throws SQLException {
092: return createPooledConnection(username, password, true);
093: }
094:
095: /**
096: * create and returns EmbedPooledConnection.
097: */
098: protected PooledConnection createPooledConnection(String user,
099: String password, boolean requestPassword)
100: throws SQLException {
101: return new EmbedPooledConnection(this, user, password,
102: requestPassword);
103: }
104: }
|