You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avalon.apache.org by ha...@apache.org on 2001/11/14 04:26:06 UTC

cvs commit: jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/soap/client/glue GlueConnection.java

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:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
    * @author Gerhard Froehlich <a href="mailto:g-froehlich@gmx.de">g-froehlich@gmx.de</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:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</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:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</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:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</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:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>