hammant 01/11/13 19:26:06 Modified: apps/db/src/java/org/apache/avalon/db/driver AvalonDBConnection.java AvalonDBDriver.java apps/db/src/java/org/apache/avalon/db/transport/cmdstream/client CommandConnection.java apps/db/src/java/org/apache/avalon/db/transport/soap/client/glue GlueConnection.java Added: apps/db/src/java/org/apache/avalon/db/driver OptionsHelper.java Log: Ping stuff. For keep-alive Revision Changes Path 1.7 +2 -2 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/driver/AvalonDBConnection.java Index: AvalonDBConnection.java =================================================================== RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/driver/AvalonDBConnection.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- AvalonDBConnection.java 2001/11/13 14:49:40 1.6 +++ AvalonDBConnection.java 2001/11/14 03:26:06 1.7 @@ -42,7 +42,7 @@ * * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a> * @author Gerhard Froehlich <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a> - * @version $Revision: 1.6 $ + * @version $Revision: 1.7 $ */ public abstract class AvalonDBConnection extends AbstractDriver implements Connection { @@ -51,7 +51,7 @@ protected abstract Reply sendRequest(Request request) throws SQLException; - protected abstract void initialize(String host, int port, String url) throws SQLException; + protected abstract void initialize(String host, int port, String url, String[] options) throws SQLException; protected void setParserHelper(AbstractParserHelper parserHelper) { mAbstractParserHelper = parserHelper; 1.10 +13 -8 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/driver/AvalonDBDriver.java Index: AvalonDBDriver.java =================================================================== RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/driver/AvalonDBDriver.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- AvalonDBDriver.java 2001/11/04 11:41:25 1.9 +++ AvalonDBDriver.java 2001/11/14 03:26:06 1.10 @@ -29,7 +29,7 @@ * * * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a> - * @version $Revision: 1.9 $ + * @version $Revision: 1.10 $ */ public class AvalonDBDriver extends AbstractDriver implements Driver { @@ -63,24 +63,29 @@ */ public Connection connect(String url, Properties info) throws SQLException { - final String sampleTerms = "jdbc:avalondb:<transport>:<syntax>:<database>:<host>:<port>"; - // 0 1 2 3 4 5 6 + final String sampleTerms = "jdbc:avalondb:<transport>:<syntax>:<database>:<host>:<port><options>"; + // 0 1 2 3 4 5 6 7 String[] words = StringUtils.split(url,":"); if(words.length < 7) { throw new SQLException("Invalid JDBC URL. Seven terms are needed - " + sampleTerms); } + String[] options = new String[0]; + if (words.length == 8) { + options = StringUtils.split(words[7],"&"); + } + - String driver = null; + String connectionClass = null; if (words[2].equals("cmds")) { - driver = "org.apache.avalon.db.transport.cmdstream.client.CommandConnection"; + connectionClass = "org.apache.avalon.db.transport.cmdstream.client.CommandConnection"; } else if (words[2].equals("glue")) { - driver = "org.apache.avalon.db.transport.cmdstream.client.GlueConnection"; + connectionClass = "org.apache.avalon.db.transport.cmdstream.client.GlueConnection"; } AvalonDBConnection connection = null; try { - connection = (AvalonDBConnection) Class.forName(driver).newInstance(); + connection = (AvalonDBConnection) Class.forName(connectionClass).newInstance(); } catch (ClassNotFoundException cnfe) { throw new SQLException("JDBC Driver Class not found, check jars(s) in classpath"); } catch (InstantiationException ie) { @@ -88,7 +93,7 @@ } catch (IllegalAccessException iae) { throw new SQLException("Some problem accessing JDBC driver"); } - connection.initialize(words[5], new Integer(words[6]).intValue(), url); + connection.initialize(words[5], new Integer(words[6]).intValue(), url, options); AbstractParserHelper aph = null; if (words[3].equals("sql")) { 1.1 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/driver/OptionsHelper.java Index: OptionsHelper.java =================================================================== /* * Copyright (C) The avalon Software Foundation. All rights reserved. * * This software is published under the terms of the avalon Software License * version 1.1, a copy of which has been included with this distribution in * the LICENSE file. */ package org.apache.avalon.db.driver; import org.apache.avalon.db.utils.StringUtils; public class OptionsHelper { private String[] mOptions; OptionsHelper(String[] options) { mOptions = options; } private String getOption(String optName) { for (int f =0; f < mOptions.length; f++) { if (mOptions[f].startsWith("optName" + "=")) { return StringUtils.split(mOptions[f],"=")[2]; } } return null; } } 1.9 +9 -4 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.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- CommandConnection.java 2001/11/13 14:49:40 1.8 +++ CommandConnection.java 2001/11/14 03:26:06 1.9 @@ -32,18 +32,22 @@ * * * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a> - * @version $Revision: 1.8 $ + * @version $Revision: 1.9 $ */ public class CommandConnection extends AvalonDBConnection { private String mHost; private int mPort; + private String[] mOptions; private ObjectOutputStream mObjectOutputStream; private ObjectInputStream mObjectInputStream; - protected void initialize(String host, int port, String url) throws SQLException { - this.mHost = host; - this.mPort = port; + protected void initialize(String host, int port, String url, String[] options) throws SQLException { + mHost = host; + mPort = port; + mOptions = options; + //TODO - instantiate thread for keepalive. + // only if keepAliveSecs=nnn where nnn is the seconds between pings try { Socket socket = new Socket(mHost, mPort); @@ -62,6 +66,7 @@ protected void closeConnection() throws SQLException { try { + //TODO - kill thread for keepalive if running mObjectInputStream.close(); mObjectOutputStream.close(); } catch (IOException ioe) { 1.3 +4 -2 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/soap/client/glue/GlueConnection.java Index: GlueConnection.java =================================================================== RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/soap/client/glue/GlueConnection.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- GlueConnection.java 2001/11/14 02:57:55 1.2 +++ GlueConnection.java 2001/11/14 03:26:06 1.3 @@ -31,15 +31,17 @@ * * * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a> - * @version $Revision: 1.2 $ + * @version $Revision: 1.3 $ */ public class GlueConnection extends AvalonDBConnection { private DatabaseManager mDBManager; + private String[] mOptions; - protected void initialize(String host, int port, String url) throws SQLException { + protected void initialize(String host, int port, String url, String[] options) throws SQLException { + mOptions = options; //TODO big work needed here. See syntax from GlueDemo in Cornerstone. String glueURL = "TODO"; // morph url (jdbc:avalondb:...) into Glue HTTP url try {
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>