You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by ha...@apache.org on 2001/10/29 00:14:55 UTC
cvs commit: jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/cmdstream/client CommandConnection.java
hammant 01/10/28 15:14:55
Modified: apps/db/src/java/org/apache/avalon/db/data RowHolder.java
Table.java
apps/db/src/java/org/apache/avalon/db/driver
ApacheDBConnection.java ApacheDBDriver.java
apps/db/src/java/org/apache/avalon/db/transport
ExceptionReply.java Reply.java Request.java
apps/db/src/java/org/apache/avalon/db/transport/cmdstream/client
CommandConnection.java
Added: apps/db/src/java/org/apache/avalon/db/transport
AutoCommitReply.java AutoCommitRequest.java
Log:
Work on Connection and Driver
Revision Changes Path
1.2 +2 -1 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/RowHolder.java
Index: RowHolder.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/RowHolder.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- RowHolder.java 2001/10/28 20:57:39 1.1
+++ RowHolder.java 2001/10/28 23:14:54 1.2
@@ -15,7 +15,8 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version * $Revision: 1.1 $
+ * @version * $Revision: 1.2 $
*/
-public interface RowHolder extends RowHolder {
+public interface RowHolder extends Nameable {
+ Column[] getColumns();
}
1.3 +3 -3 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/Table.java
Index: Table.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/Table.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- Table.java 2001/10/28 20:57:39 1.2
+++ Table.java 2001/10/28 23:14:54 1.3
@@ -15,8 +15,8 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version * $Revision: 1.2 $
+ * @version * $Revision: 1.3 $
*/
-public interface Table extends Nameable {
- Column[] getColumns();
+public interface Table extends RowHolder {
+
}
1.2 +20 -7 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/driver/ApacheDBConnection.java
Index: ApacheDBConnection.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/driver/ApacheDBConnection.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ApacheDBConnection.java 2001/10/28 14:09:20 1.1
+++ ApacheDBConnection.java 2001/10/28 23:14:54 1.2
@@ -10,6 +10,8 @@
+import org.apache.avalon.db.transport.*;
+
import java.sql.*;
import java.util.Map;
@@ -20,9 +22,20 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
-public class ApacheDBConnection extends AbstractDriver implements Connection {
+public abstract class ApacheDBConnection extends AbstractDriver implements Connection {
+
+ protected abstract Reply sendRequest(Request request) throws SQLException;
+
+ private void handleSQLException(Reply reply) throws SQLException {
+ if (reply instanceof ExceptionReply) {
+ throw new SQLException(((ExceptionReply) reply).getExceptionText());
+ }
+ }
+
+ protected void initialize(String host, int port, String url) throws SQLException {
+ }
/**
* Creates a <code>Statement</code> object for sending
@@ -158,7 +171,8 @@
* @exception SQLException if a database access error occurs
*/
public void setAutoCommit(boolean autoCommit) throws SQLException {
- debug();
+ Reply reply = sendRequest(new AutoCommitRequest(autoCommit));
+ handleSQLException(reply);
}
/**
@@ -169,10 +183,9 @@
* @see #setAutoCommit
*/
public boolean getAutoCommit() throws SQLException {
-
- debug();
-
- return false;
+ Reply reply = sendRequest(new AutoCommitRequest());
+ handleSQLException(reply);
+ return ((AutoCommitReply) reply).getState();
}
/**
1.2 +24 -3 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/driver/ApacheDBDriver.java
Index: ApacheDBDriver.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/driver/ApacheDBDriver.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ApacheDBDriver.java 2001/10/28 14:09:20 1.1
+++ ApacheDBDriver.java 2001/10/28 23:14:54 1.2
@@ -25,7 +25,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
public class ApacheDBDriver extends AbstractDriver implements Driver {
@@ -45,9 +45,30 @@
*/
public Connection connect(String url, Properties info) throws SQLException {
- debug();
+ String driver = null;
+ if (url.startsWith(":cmds",JDBCPREFIX.length())) {
+ driver = "org.apache.avalon.db.transport.cmdstream.client.CommandConnection";
+ }
+ ApacheDBConnection connection = null;
+ try {
+ connection = (ApacheDBConnection) Class.forName(driver).newInstance();
+ } catch (ClassNotFoundException cnfe) {
+ throw new SQLException("JDBC Driver Class not found, check jars(s) in classpath");
+ } catch (InstantiationException ie) {
+ throw new SQLException("Some problem instantiating JDBC driver");
+ } catch (IllegalAccessException iae) {
+ throw new SQLException("Some problem accessing JDBC driver");
+ }
+ connection.initialize(getHost(url), getPort(url), url);
+ return connection;
+ }
- return null;
+ private String getHost(String url) {
+ return null; //TODO
+ }
+
+ private int getPort(String url) {
+ return 0; //TODO
}
/**
1.2 +9 -4 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/ExceptionReply.java
Index: ExceptionReply.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/ExceptionReply.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ExceptionReply.java 2001/10/28 14:09:21 1.1
+++ ExceptionReply.java 2001/10/28 23:14:54 1.2
@@ -18,11 +18,11 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
public class ExceptionReply extends Reply {
- private ActionException m_ActionException;
+ private String m_ExceptionText;
/**
* Constructor ExceptionReply
@@ -31,10 +31,15 @@
* @param ae
*
*/
- public ExceptionReply(ActionException ae) {
+ public ExceptionReply(String text) {
super(EXCEPTIONREPLY);
- m_ActionException = ae;
+ m_ExceptionText = text;
}
+
+ public String getExceptionText() {
+ return m_ExceptionText;
+ }
+
}
1.2 +2 -1 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/Reply.java
Index: Reply.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/Reply.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Reply.java 2001/10/28 14:09:21 1.1
+++ Reply.java 2001/10/28 23:14:54 1.2
@@ -18,13 +18,14 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
public abstract class Reply implements Serializable {
public static final int RESULTSET = 10;
public static final int EXCEPTIONREPLY = 11;
public static final int UNKNOWNREQUEST = 12;
+ public static final int AUTOCOMMITREPLY = 13;
private int mReplyCode;
protected Reply(int replyCode) {
1.2 +3 -1 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/Request.java
Index: Request.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/Request.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Request.java 2001/10/28 14:09:21 1.1
+++ Request.java 2001/10/28 23:14:54 1.2
@@ -18,7 +18,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
public abstract class Request implements Serializable {
@@ -26,6 +26,8 @@
public static final int CREATETABLE = 111;
public static final int INSERTINTO = 112;
public static final int GENERALSQL = 113;
+ public static final int AUTOCOMMITCHANGE = 114;
+ public static final int AUTOCOMMITQUERY = 115;
private int mRequestCode;
protected Request(int requestCode) {
1.1 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/AutoCommitReply.java
Index: AutoCommitReply.java
===================================================================
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE file.
*/
package org.apache.avalon.db.transport;
import org.apache.avalon.db.actions.ActionException;
/**
* Class AutoCommitReply
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
* @version $Revision: 1.1 $
*/
public class AutoCommitReply extends Reply {
private boolean m_AutoCommitState;
/**
* Constructor AutoCommitReply
*
*
* @param state
*
*/
public AutoCommitReply(boolean state) {
super(AUTOCOMMITREPLY);
m_AutoCommitState = state;
}
public boolean getState() {
return m_AutoCommitState;
}
}
1.1 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/AutoCommitRequest.java
Index: AutoCommitRequest.java
===================================================================
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE file.
*/
package org.apache.avalon.db.transport;
/**
* Class AutoCommitRequest
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
* @version $Revision: 1.1 $
*/
public class AutoCommitRequest extends Request {
private boolean mAutoCommit;
/**
* Constructor AutoCommitRequest
*
*
* @param newState
*
*/
public AutoCommitRequest(boolean newState) {
super(Request.AUTOCOMMITCHANGE);
mAutoCommit = newState;
}
public AutoCommitRequest() {
super(Request.AUTOCOMMITCHANGE);
}
}
1.2 +4 -20 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/cmdstream/client/CommandConnection.java
Index: CommandConnection.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/cmdstream/client/CommandConnection.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- CommandConnection.java 2001/10/28 14:09:21 1.1
+++ CommandConnection.java 2001/10/28 23:14:54 1.2
@@ -13,6 +13,7 @@
import org.apache.avalon.db.transport.Request;
import org.apache.avalon.db.transport.Reply;
import org.apache.avalon.db.common.ApacheDBSQLException;
+import org.apache.avalon.db.driver.ApacheDBConnection;
import java.net.URL;
import java.net.Socket;
@@ -31,33 +32,16 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
-public class CommandConnection {
+public class CommandConnection extends ApacheDBConnection {
private String mHost;
private int mPort;
private ObjectOutputStream mObjectOutputStream;
private ObjectInputStream mObjectInputStream;
- /**
- * Method createConnetion
- *
- *
- * @param host
- * @param port
- *
- * @return
- *
- * @throws SQLException
- *
- */
- public CommandConnection createConnetion(String host, int port) throws SQLException {
- return new CommandConnection(host, port);
- }
-
- private CommandConnection(String host, int port) throws SQLException {
-
+ protected void initialize(String host, int port, String url) throws SQLException {
this.mHost = host;
this.mPort = port;
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>