You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by jb...@apache.org on 2005/05/10 18:47:54 UTC
svn commit: r169495 - in /incubator/derby/code/branches/datasource: ./ src/
src/java/ src/java/org/ src/java/org/apache/ src/java/org/apache/derby/
src/java/org/apache/derby/api/ src/java/org/apache/derby/impl/
Author: jboynes
Date: Tue May 10 09:47:53 2005
New Revision: 169495
URL: http://svn.apache.org/viewcvs?rev=169495&view=rev
Log:
strawman for a unified datasource api
Added:
incubator/derby/code/branches/datasource/ (with props)
incubator/derby/code/branches/datasource/project.properties (with props)
incubator/derby/code/branches/datasource/project.xml (with props)
incubator/derby/code/branches/datasource/src/
incubator/derby/code/branches/datasource/src/java/
incubator/derby/code/branches/datasource/src/java/org/
incubator/derby/code/branches/datasource/src/java/org/apache/
incubator/derby/code/branches/datasource/src/java/org/apache/derby/
incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/
incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/BasicDataSource.java (with props)
incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/DerbyDataSource.java (with props)
incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/DerbyDriver.java (with props)
incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/PooledDataSource.java (with props)
incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/ReferenceFactory.java (with props)
incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/ReferenceableDataSource.java (with props)
incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/XADataSource.java (with props)
incubator/derby/code/branches/datasource/src/java/org/apache/derby/impl/
incubator/derby/code/branches/datasource/src/java/org/apache/derby/impl/ConnectionFactory.java (with props)
Propchange: incubator/derby/code/branches/datasource/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Tue May 10 09:47:53 2005
@@ -0,0 +1,8 @@
+*.iml
+*.ipr
+*.iws
+.project
+.classpath
+maven.log
+junit*.properties
+target
Added: incubator/derby/code/branches/datasource/project.properties
URL: http://svn.apache.org/viewcvs/incubator/derby/code/branches/datasource/project.properties?rev=169495&view=auto
==============================================================================
--- incubator/derby/code/branches/datasource/project.properties (added)
+++ incubator/derby/code/branches/datasource/project.properties Tue May 10 09:47:53 2005
@@ -0,0 +1,21 @@
+# Copyright 2004 The Apache Software Foundation
+#
+# Licensed 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.
+
+##
+## $Rev$ $Date$
+##
+
+maven.compile.source=1.3
+maven.compile.target=1.3
+
Propchange: incubator/derby/code/branches/datasource/project.properties
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/derby/code/branches/datasource/project.xml
URL: http://svn.apache.org/viewcvs/incubator/derby/code/branches/datasource/project.xml?rev=169495&view=auto
==============================================================================
--- incubator/derby/code/branches/datasource/project.xml (added)
+++ incubator/derby/code/branches/datasource/project.xml Tue May 10 09:47:53 2005
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Copyright 2003-2004 The Apache Software Foundation
+
+ Licensed 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.
+-->
+
+
+<!-- $Rev$ $Date$ -->
+
+<!--
+ Default Project Object Model used to set project wide properties.
+ Should be included in each module using
+ <extend>../../etc/project.xml</extend>
+-->
+<project>
+ <pomVersion>3</pomVersion>
+ <name>Apache Derby</name>
+ <id>derby</id>
+ <groupId>derby</groupId>
+
+ <currentVersion>10.1.0.SNAPSHOT</currentVersion>
+
+ <build>
+ <sourceDirectory>${basedir}/src/java</sourceDirectory>
+ <unitTestSourceDirectory>${basedir}/src/test</unitTestSourceDirectory>
+ <resources>
+ <resource>
+ <directory>${basedir}/src/java</directory>
+ <includes>
+ <include>**/*.properties</include>
+ </includes>
+ </resource>
+ </resources>
+ </build>
+</project>
Propchange: incubator/derby/code/branches/datasource/project.xml
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/BasicDataSource.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/BasicDataSource.java?rev=169495&view=auto
==============================================================================
--- incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/BasicDataSource.java (added)
+++ incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/BasicDataSource.java Tue May 10 09:47:53 2005
@@ -0,0 +1,179 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.derby.api;
+
+import java.io.PrintWriter;
+import java.io.Serializable;
+
+/**
+ * Base class for {@link javax.sql.DataSource} implementations that defines the appropriate properties.
+ *
+ * @version $Rev$ $Date$
+ */
+public abstract class BasicDataSource implements Serializable {
+ // standard properties per the JDBC 3.0 specification
+ private String databaseName;
+ private String dataSourceName;
+ private String description;
+ private String networkProtocol;
+ private String password;
+ private int portNumber;
+ private String roleName;
+ private String serverName;
+ private String user;
+
+ // transient properties defined by the DataSource interface
+ private transient int loginTimeout;
+ private transient PrintWriter logWriter;
+
+ // Derby specific properties
+ private boolean createDatabase;
+ private boolean upgrade;
+ private boolean shutdownDatabase;
+
+ public String getDatabaseName() {
+ return databaseName;
+ }
+
+ public void setDatabaseName(String databaseName) {
+ this.databaseName = databaseName;
+ }
+
+ public String getDataSourceName() {
+ return dataSourceName;
+ }
+
+ public void setDataSourceName(String dataSourceName) {
+ this.dataSourceName = dataSourceName;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getNetworkProtocol() {
+ return networkProtocol;
+ }
+
+ public void setNetworkProtocol(String networkProtocol) {
+ this.networkProtocol = networkProtocol;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public int getPortNumber() {
+ return portNumber;
+ }
+
+ public void setPortNumber(int portNumber) {
+ this.portNumber = portNumber;
+ }
+
+ public String getRoleName() {
+ return roleName;
+ }
+
+ public void setRoleName(String roleName) {
+ this.roleName = roleName;
+ }
+
+ public String getServerName() {
+ return serverName;
+ }
+
+ public void setServerName(String serverName) {
+ this.serverName = serverName;
+ }
+
+ public String getUser() {
+ return user;
+ }
+
+ public void setUser(String user) {
+ this.user = user;
+ }
+
+ public int getLoginTimeout() {
+ return loginTimeout;
+ }
+
+ public void setLoginTimeout(int loginTimeout) {
+ this.loginTimeout = loginTimeout;
+ }
+
+ public PrintWriter getLogWriter() {
+ return logWriter;
+ }
+
+ public void setLogWriter(PrintWriter logWriter) {
+ this.logWriter = logWriter;
+ }
+
+ public boolean getCreateDatabase() {
+ return createDatabase;
+ }
+
+ public void setCreateDatabase(boolean createDatabase) {
+ this.createDatabase = createDatabase;
+ }
+
+ public boolean getUpgrade() {
+ return upgrade;
+ }
+
+ public void setUpgrade(boolean upgrade) {
+ this.upgrade = upgrade;
+ }
+
+ public boolean getShutdownDatabase() {
+ return shutdownDatabase;
+ }
+
+ public void setShutdownDatabase(boolean shutdownDatabase) {
+ this.shutdownDatabase = shutdownDatabase;
+ }
+
+ /**
+ * Calculate hashCode based on the following properties: <ul> <li>TBD</li> </ul>
+ *
+ * @return hashCode for this DataSource
+ */
+ public int hashCode() {
+ return super.hashCode();
+ }
+
+ /**
+ * Calculate equals based on the following properties: <ul> <li>TBD</li> </ul>
+ *
+ * @param obj object to compare to
+ *
+ * @return true if both objects refer to the same DataSource
+ */
+ public boolean equals(Object obj) {
+ return super.equals(obj);
+ }
+}
Propchange: incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/BasicDataSource.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/DerbyDataSource.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/DerbyDataSource.java?rev=169495&view=auto
==============================================================================
--- incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/DerbyDataSource.java (added)
+++ incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/DerbyDataSource.java Tue May 10 09:47:53 2005
@@ -0,0 +1,41 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.derby.api;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+import javax.sql.DataSource;
+
+import org.apache.derby.impl.ConnectionFactory;
+
+/**
+ * Main implementation of DataSource intended for use by end user applications.
+ * <p/>
+ * This DataSource can be used by both J2SE and CDC/FP/JSR-169 applications to directly establish a physical connection
+ * to the database.
+ *
+ * @version $Rev$ $Date$
+ */
+public class DerbyDataSource extends BasicDataSource implements DataSource {
+ public Connection getConnection() throws SQLException {
+ return ConnectionFactory.getInstance().getConnection(this);
+ }
+
+ public Connection getConnection(String username, String password) throws SQLException {
+ return ConnectionFactory.getInstance().getConnection(this, username, password);
+ }
+}
Propchange: incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/DerbyDataSource.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/DerbyDriver.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/DerbyDriver.java?rev=169495&view=auto
==============================================================================
--- incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/DerbyDriver.java (added)
+++ incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/DerbyDriver.java Tue May 10 09:47:53 2005
@@ -0,0 +1,76 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.derby.api;
+
+import java.sql.Connection;
+import java.sql.Driver;
+import java.sql.DriverManager;
+import java.sql.DriverPropertyInfo;
+import java.sql.SQLException;
+import java.util.Properties;
+
+/**
+ * Implementation of legacy JDBC Driver.
+ *
+ * @version $Rev$ $Date$
+ */
+public class DerbyDriver implements Driver {
+ static {
+ DerbyDriver driver = new DerbyDriver();
+ try {
+ DriverManager.registerDriver(driver);
+ } catch (SQLException e) {
+ // ah well
+ }
+ }
+
+ public boolean acceptsURL(String url) throws SQLException {
+ return url.startsWith("jdbc:derby:") || url.equals("jdbc:default:connection");
+ }
+
+ public Connection connect(String url, Properties info) throws SQLException {
+ DriverDataSource ds = new DriverDataSource();
+ // decompose url and properties to initialize the DriverDataSource
+ return ds.getConnection();
+ }
+
+ public int getMajorVersion() {
+ throw new UnsupportedOperationException();
+ }
+
+ public int getMinorVersion() {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean jdbcCompliant() {
+ throw new UnsupportedOperationException();
+ }
+
+ public DriverPropertyInfo[] getPropertyInfo(String url, Properties info) throws SQLException {
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * Internal implementation of a DataSource that, for compatibility with base JDBC 2.0, does not implement the actual
+ * interface.
+ */
+ private static class DriverDataSource extends BasicDataSource {
+ private Connection getConnection() throws SQLException {
+ throw new UnsupportedOperationException();
+ }
+ }
+}
Propchange: incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/DerbyDriver.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/PooledDataSource.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/PooledDataSource.java?rev=169495&view=auto
==============================================================================
--- incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/PooledDataSource.java (added)
+++ incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/PooledDataSource.java Tue May 10 09:47:53 2005
@@ -0,0 +1,44 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.derby.api;
+
+import java.sql.SQLException;
+import javax.naming.NamingException;
+import javax.naming.Reference;
+import javax.naming.Referenceable;
+import javax.sql.ConnectionPoolDataSource;
+import javax.sql.PooledConnection;
+
+/**
+ * Implementation of a DataSource supporting pooled connections. This is intended for use by connection pooling
+ * middleware rather than end user applications. As such, we assume that javax.naming is available.
+ *
+ * @version $Rev$ $Date$
+ */
+public class PooledDataSource extends BasicDataSource implements ConnectionPoolDataSource, Referenceable {
+ public PooledConnection getPooledConnection() throws SQLException {
+ throw new UnsupportedOperationException();
+ }
+
+ public PooledConnection getPooledConnection(String user, String password) throws SQLException {
+ throw new UnsupportedOperationException();
+ }
+
+ public Reference getReference() throws NamingException {
+ return ReferenceFactory.getReference(this);
+ }
+}
Propchange: incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/PooledDataSource.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/ReferenceFactory.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/ReferenceFactory.java?rev=169495&view=auto
==============================================================================
--- incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/ReferenceFactory.java (added)
+++ incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/ReferenceFactory.java Tue May 10 09:47:53 2005
@@ -0,0 +1,39 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.derby.api;
+
+import java.util.Hashtable;
+import javax.naming.Context;
+import javax.naming.Name;
+import javax.naming.NamingException;
+import javax.naming.Reference;
+import javax.naming.spi.ObjectFactory;
+
+/**
+ * Factory for converting DataSource implementations to and from JNDI Reference implementations.
+ *
+ * @version $Rev$ $Date$
+ */
+public final class ReferenceFactory implements ObjectFactory {
+ static Reference getReference(BasicDataSource ds) throws NamingException {
+ throw new UnsupportedOperationException();
+ }
+
+ public Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable environment) throws Exception {
+ throw new UnsupportedOperationException();
+ }
+}
Propchange: incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/ReferenceFactory.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/ReferenceableDataSource.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/ReferenceableDataSource.java?rev=169495&view=auto
==============================================================================
--- incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/ReferenceableDataSource.java (added)
+++ incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/ReferenceableDataSource.java Tue May 10 09:47:53 2005
@@ -0,0 +1,37 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.derby.api;
+
+import javax.naming.NamingException;
+import javax.naming.Reference;
+import javax.naming.Referenceable;
+
+/**
+ * Specialization of DerbyDataSource that can be bound to JNDI as a Reference. This is intended for use by application
+ * server implementations that actually perform the bind into the directory rather than end user applications that would
+ * just retrieve a DataSource.
+ * <p/>
+ * This functionality should not be added to the base class as the javax.naming package may not be available on all
+ * platforms specifically J2ME CDC/FP.
+ *
+ * @version $Rev$ $Date$
+ */
+public class ReferenceableDataSource extends DerbyDataSource implements Referenceable {
+ public Reference getReference() throws NamingException {
+ return ReferenceFactory.getReference(this);
+ }
+}
Propchange: incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/ReferenceableDataSource.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/XADataSource.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/XADataSource.java?rev=169495&view=auto
==============================================================================
--- incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/XADataSource.java (added)
+++ incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/XADataSource.java Tue May 10 09:47:53 2005
@@ -0,0 +1,36 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.derby.api;
+
+import java.sql.SQLException;
+import javax.sql.XAConnection;
+
+/**
+ * Implementation of a DataSource supporting XA connections; this is intended for use by distributed transaction
+ * managers rather than end user applications.
+ *
+ * @version $Rev$ $Date$
+ */
+public class XADataSource extends BasicDataSource implements javax.sql.XADataSource {
+ public XAConnection getXAConnection() throws SQLException {
+ throw new UnsupportedOperationException();
+ }
+
+ public XAConnection getXAConnection(String user, String password) throws SQLException {
+ throw new UnsupportedOperationException();
+ }
+}
Propchange: incubator/derby/code/branches/datasource/src/java/org/apache/derby/api/XADataSource.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/derby/code/branches/datasource/src/java/org/apache/derby/impl/ConnectionFactory.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/branches/datasource/src/java/org/apache/derby/impl/ConnectionFactory.java?rev=169495&view=auto
==============================================================================
--- incubator/derby/code/branches/datasource/src/java/org/apache/derby/impl/ConnectionFactory.java (added)
+++ incubator/derby/code/branches/datasource/src/java/org/apache/derby/impl/ConnectionFactory.java Tue May 10 09:47:53 2005
@@ -0,0 +1,64 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.derby.impl;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+
+import org.apache.derby.api.BasicDataSource;
+
+/**
+ * Base class for factories that create Connections. Different factory implementations support different JDBC
+ * specification versions as determined by the JVM in use. Initial support is provided for the JDBC 2.0, JDBC 3.0 and
+ * JSR-169 APIs.
+ * <p/>
+ * Each subclass is responsible for creating connections as specified by the properties supplied in the DataSource.
+ * These may be direct connections to an embedded engine, client connections to a remote server, or other transports as
+ * they become supported.
+ *
+ * @version $Rev$ $Date$
+ */
+public abstract class ConnectionFactory {
+ public static ConnectionFactory getInstance() {
+ // return the appropriate factory for JDBC 2.0, JDBC 3.0 or JSR-169 implementations of Connection
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * Return a physical connection to the database specified by the DataSource.
+ *
+ * @param ds the DataSource to connect to
+ *
+ * @return a physical connection to the database
+ *
+ * @throws SQLException if there was a problem establishing the connection
+ */
+ public abstract Connection getConnection(BasicDataSource ds) throws SQLException;
+
+ /**
+ * Return a physical connection to the database specified by the DataSource.
+ *
+ * @param ds the DataSource to connect to
+ * @param user the username to connect with
+ * @param password the password to connect with
+ *
+ * @return a physical connection to the database
+ *
+ * @throws SQLException if there was a problem establishing the connection
+ */
+ public abstract Connection getConnection(BasicDataSource ds, String user, String password) throws SQLException;
+}
Propchange: incubator/derby/code/branches/datasource/src/java/org/apache/derby/impl/ConnectionFactory.java
------------------------------------------------------------------------------
svn:keywords = Rev Date