You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by kw...@apache.org on 2006/02/17 04:56:01 UTC
svn commit: r378424 -
/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CommandGroupImpl.java
Author: kwilliams
Date: Thu Feb 16 19:55:59 2006
New Revision: 378424
URL: http://svn.apache.org/viewcvs?rev=378424&view=rev
Log:
Adding support for DataSource
Modified:
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CommandGroupImpl.java
Modified: incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CommandGroupImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CommandGroupImpl.java?rev=378424&r1=378423&r2=378424&view=diff
==============================================================================
--- incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CommandGroupImpl.java (original)
+++ incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CommandGroupImpl.java Thu Feb 16 19:55:59 2006
@@ -20,10 +20,15 @@
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
+import java.sql.SQLException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.sql.DataSource;
+
import org.apache.tuscany.das.rdb.ApplyChangesCommand;
import org.apache.tuscany.das.rdb.Command;
import org.apache.tuscany.das.rdb.CommandGroup;
@@ -109,7 +114,7 @@
// Private
private void setConfig(InputStream stream) {
- XMLHelper helper = XMLHelper.INSTANCE;
+ XMLHelper helper = XMLHelper.INSTANCE;
HashMap map = new HashMap();
ExtendedMetaData metadata = ExtendedMetaData.INSTANCE;
metadata.putPackage(null, ConfigPackageImpl.eINSTANCE);
@@ -117,13 +122,12 @@
map.put(XMLResource.NO_NAMESPACE_SCHEMA_LOCATION, ConfigPackageImpl.eNS_URI);
map.put(XMLResource.OPTION_EXTENDED_META_DATA, metadata);
-
try {
- config = (Config) helper.load(stream, ConfigPackageImpl.eNS_URI, map).getRootObject();
+ config = (Config) helper.load(stream, ConfigPackageImpl.eNS_URI, map).getRootObject();
} catch (IOException e) {
throw new RuntimeException(e);
}
-
+
}
public void setConnection(Connection connection) {
@@ -144,8 +148,13 @@
"No connection properties have been configured and no connection has been provided");
if (cp.getDataSource() != null)
- throw new Error("Datasource configuration not yet supported");
+ initViaDataSource(cp);
+ else
+ initViaDriverManager(cp);
+
+ }
+ private void initViaDriverManager(ConnectionProperties cp) {
Connection connection = null;
try {
@@ -163,4 +172,30 @@
}
+ //TODO - Refactor to eliminate common initialization code after connection is got
+ private void initViaDataSource(ConnectionProperties cp) {
+
+ Connection connection = null;
+
+ InitialContext ctx;
+ try {
+ ctx = new InitialContext();
+ } catch (NamingException e) {
+ throw new Error(e);
+ }
+ try {
+ //TODO - I think we should rename this getDataSourceURL?
+ DataSource ds = (DataSource) ctx.lookup(cp.getDataSource());
+ try {
+ connection = ds.getConnection();
+ connection.setAutoCommit(false);
+ setConnection(connection);
+ } catch (SQLException e) {
+ throw new Error (e);
+ }
+ } catch (NamingException e) {
+ throw new Error(e);
+ }
+
+ }
}