hammant     01/11/15 06:29:58

  Modified:    apps/db/src/java/org/apache/avalon/db/basic/parser
                        BasicLXSQLParser.java
               apps/db/src/java/org/apache/avalon/db/bcel/actions
                        BCELInsert.java
               apps/db/src/java/org/apache/avalon/db/bcel/parser
                        BCELHelper.java BCELLXSQLParser.java
                        BCELSQLParser.java
               apps/db/src/java/org/apache/avalon/db/driver
                        AvalonDBStatement.java
               apps/db/src/java/org/apache/avalon/db/driver/lxsql
                        LXSQLParserHelper.java
               apps/db/src/java/org/apache/avalon/db/driver/sql
                        SQLParserHelper.java
               apps/db/src/java/org/apache/avalon/db/server
                        AbstractDatabaseManager.java
                        AbstractLXSQLParser.java
               apps/db/src/java/org/apache/avalon/db/services
                        DatabaseManager.java SQLParser.java
               apps/db/src/java/org/apache/avalon/db/transport
                        AlterRequest.java Request.java SelectRequest.java
               apps/db/src/java/org/apache/avalon/db/transport/cmdstream/server
                        PlainCMDDatabaseManager.java
               apps/db/src/java/org/apache/avalon/db/transport/soap/client/glue
                        GlueConnection.java
  Added:       apps/db/src/java/org/apache/avalon/db/actions
                        InsertRows.java
               apps/db/src/java/org/apache/avalon/db/basic/actions
                        BasicInsertRows.java
               apps/db/src/java/org/apache/avalon/db/basic/handlers/lxsql
                        BasicLXSQLCreateIndexHandler.java
                        BasicLXSQLCreateTableHandler.java
                        BasicLXSQLCreateViewHandler.java
                        BasicLXSQLDeleteRowsHandler.java
                        BasicLXSQLHandler.java
                        BasicLXSQLInsertRowsHandler.java
                        BasicLXSQLSelectSimpleHandler.java
               apps/db/src/java/org/apache/avalon/db/server
                        AbstractRequestHandler.java
               apps/db/src/java/org/apache/avalon/db/server/stdhandlers
                        PingHandler.java
               apps/db/src/java/org/apache/avalon/db/transport
                        DeleteRowsRequest.java InsertRowsRequest.java
  Removed:     apps/db/src/java/org/apache/avalon/db/actions Insert.java
               apps/db/src/java/org/apache/avalon/db/basic/actions
                        BasicInsert.java
               apps/db/src/java/org/apache/avalon/db/transport
                        DeleteRequest.java InsertRequest.java
  Log:
  handler architecture for request/replys
  
  Revision  Changes    Path
  1.1                  
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/actions/InsertRows.java
  
  Index: InsertRows.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.actions;
  
  
  
  /**
   * Interface InsertRows
   *
   *
   * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL 
PROTECTED]</a>
   * @version * $Revision: 1.1 $
   */
  public interface InsertRows extends WriteAction {}
  
  
  
  1.1                  
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicInsertRows.java
  
  Index: BasicInsertRows.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.basic.actions;
  
  import org.apache.avalon.db.actions.impl.AbstractAction;
  import org.apache.avalon.db.actions.InsertRows;
  import org.apache.avalon.db.actions.ActionException;
  import org.apache.avalon.db.basic.data.BasicRow;
  import org.apache.avalon.db.basic.data.BasicTable;
  import org.apache.avalon.db.data.Column;
  import org.apache.avalon.db.data.ValidationException;
  
  
  import org.apache.avalon.framework.logger.LogEnabled;
  
  import org.w3c.dom.Document;
  import org.w3c.dom.Element;
  import org.w3c.dom.NodeList;
  import org.w3c.dom.Node;
  
  import java.util.Vector;
  
  
  /**
   * Class BasicInsertRows
   *
   *
   * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL 
PROTECTED]</a>
   * @version $Revision: 1.1 $
   */
  public class BasicInsertRows extends AbstractAction implements 
InsertRows,LogEnabled {
  
      private Document mDocument;
      private BasicTable mTable;
      private int mRecordCount;
  
      /**
       * Constructor BasicInsertRows
       *
       *
       * @param table
       * @param document
       *
       */
      public BasicInsertRows(BasicTable table, Document document) {
          mTable = table;
          mDocument = document;
      }
  
      public void initialize() throws ActionException {
          getLogger().debug("BasicInsertRows.initialize()");
      }
  
      /**
       * Method execute
       *
       *
       */
      public void execute() throws ActionException {
  
          System.out.println("insert execute");
  
          System.out.println("mTable=" + mTable);
          System.out.println("mDocument=" + mDocument);
  
          Element rootElement = mDocument.getDocumentElement();
  
          NodeList subRootNodes = rootElement.getChildNodes();
  
          try {
  
              for (int f = 0 ; f < subRootNodes.getLength(); f++) {
                  if (subRootNodes.item(f).getNodeName().equals("rows")) {
                      NodeList subRowsNodes = 
subRootNodes.item(f).getChildNodes();
                      processSubRowsNodes(subRowsNodes);
                 } else {
                     throw new ActionException("Only 'rows' allowed as a node 
under root node");
                  }
              }
          } catch (ValidationException ve) {
              throw new ActionException(ve.getMessage());
          }
      }
  
      private void processSubRowsNodes(NodeList subRowsNodes) throws 
ValidationException {
          Object[] values = new Object[mTable.getColumns().length];
          for (int x = 0 ; x < subRowsNodes.getLength(); x++) {
              if (subRowsNodes.item(x).getNodeName().equals("row")) {
                  mRecordCount++;
                  NodeList subValueNodes = subRowsNodes.item(x).getChildNodes();
                  for (int y = 0 ; y < subValueNodes.getLength(); y++) {
                      if (subValueNodes.item(y).getNodeName().equals("value")) {
                          Element rowNode = (Element)subValueNodes.item(y);
                          String colName = rowNode.getAttribute("col");
                          String valueStr = 
rowNode.getFirstChild().getNodeValue();
                          int ix = mTable.getColumnIndex(colName);
                          // TODO perhaps columns could know their own index?
                          Column col = mTable.getColumn(colName);
                          col.test(valueStr);
                          values[ix] = col.convertFromString(valueStr);
                      }
                  }
                  Vector pendingRow = new Vector();
                  for (int q = 0; q < values.length; q ++) {
                      if (values[q] == null) {
                          pendingRow.add(BasicRow.NOVALUE);
                      } else {
                          pendingRow.add(values[q]);
                      }
                  }
                  mTable.addRow(new BasicRow(mTable,pendingRow));
              } else {
                  // TODO
              }
          }
  
      }
  
  
      public int getRecordCount() {
          return mRecordCount;
      }
  }
  
  
  
  1.1                  
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/handlers/lxsql/BasicLXSQLCreateIndexHandler.java
  
  Index: BasicLXSQLCreateIndexHandler.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.basic.handlers.lxsql;
  
  import org.apache.avalon.db.basic.parser.BasicLXSQLParser;
  import org.apache.avalon.db.basic.actions.BasicCreateIndex;
  import org.apache.avalon.db.services.DatabasePersistor;
  import org.apache.avalon.db.transport.Reply;
  import org.apache.avalon.db.transport.Request;
  import org.apache.avalon.db.transport.CreateIndexRequest;
  import org.apache.avalon.db.transport.UpdateReply;
  import org.apache.avalon.db.actions.ActionException;
  import org.apache.avalon.db.actions.CreateIndex;
  import org.w3c.dom.Document;
  import org.w3c.dom.Element;
  
  
  public class BasicLXSQLCreateIndexHandler extends BasicLXSQLHandler {
  
      public BasicLXSQLCreateIndexHandler(BasicLXSQLParser parser, 
DatabasePersistor databasePersistor) {
          super(parser, databasePersistor);
      }
  
      public Reply handleRequest(Request request) throws ActionException {
          CreateIndexRequest cir = (CreateIndexRequest) request;
  
          Document doc = mParser.parseLXSQLString(cir.getSql());
  
          Element rootElement = doc.getDocumentElement();
          String indexName = rootElement.getAttribute("name");
  
          if(mDatabasePersistor.queryableExists(indexName)) {
              throw new ActionException("Table/View/Index exists already");
          } else {
              CreateIndex action = new BasicCreateIndex(indexName, doc);
              mParser.initializeAction(action);
              action.execute();
              return new UpdateReply(action.getRecordCount());
          }
  
      }
  }
  
  
  
  1.1                  
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/handlers/lxsql/BasicLXSQLCreateTableHandler.java
  
  Index: BasicLXSQLCreateTableHandler.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.basic.handlers.lxsql;
  
  import org.apache.avalon.db.basic.parser.BasicLXSQLParser;
  import org.apache.avalon.db.basic.actions.BasicCreateTable;
  import org.apache.avalon.db.services.DatabasePersistor;
  import org.apache.avalon.db.transport.Reply;
  import org.apache.avalon.db.transport.Request;
  import org.apache.avalon.db.transport.CreateTableRequest;
  import org.apache.avalon.db.transport.UpdateReply;
  import org.apache.avalon.db.actions.ActionException;
  import org.apache.avalon.db.actions.CreateTable;
  import org.w3c.dom.Document;
  import org.w3c.dom.Element;
  
  
  public class BasicLXSQLCreateTableHandler extends BasicLXSQLHandler {
  
      public BasicLXSQLCreateTableHandler(BasicLXSQLParser parser, 
DatabasePersistor databasePersistor) {
          super(parser, databasePersistor);
      }
  
      public Reply handleRequest(Request request) throws ActionException {
          CreateTableRequest ctr = (CreateTableRequest) request;
          Document doc = mParser.parseLXSQLString(ctr.getSql());
  
          Element rootElement = doc.getDocumentElement();
          String tableName = rootElement.getAttribute("name");
  
          if(mDatabasePersistor.queryableExists(tableName)) {
              throw new ActionException("Table/View/Index exists already");
          } else {
              CreateTable action = new BasicCreateTable(tableName, rootElement);
              mParser.initializeAction(action);
              action.execute();
              return new UpdateReply(action.getRecordCount());
          }
      }
  }
  
  
  
  1.1                  
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/handlers/lxsql/BasicLXSQLCreateViewHandler.java
  
  Index: BasicLXSQLCreateViewHandler.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.basic.handlers.lxsql;
  
  import org.apache.avalon.db.basic.parser.BasicLXSQLParser;
  import org.apache.avalon.db.basic.actions.BasicCreateView;
  import org.apache.avalon.db.services.DatabasePersistor;
  import org.apache.avalon.db.transport.Reply;
  import org.apache.avalon.db.transport.Request;
  import org.apache.avalon.db.transport.CreateViewRequest;
  import org.apache.avalon.db.transport.UpdateReply;
  import org.apache.avalon.db.actions.ActionException;
  import org.apache.avalon.db.actions.CreateView;
  import org.w3c.dom.Document;
  import org.w3c.dom.Element;
  
  
  public class BasicLXSQLCreateViewHandler extends BasicLXSQLHandler {
  
      public BasicLXSQLCreateViewHandler(BasicLXSQLParser parser, 
DatabasePersistor databasePersistor) {
          super(parser, databasePersistor);
      }
  
      public Reply handleRequest(Request request) throws ActionException {
          CreateViewRequest cvr = (CreateViewRequest) request;
          Document doc = mParser.parseLXSQLString(cvr.getSql());
  
          Element rootElement = doc.getDocumentElement();
          String tableName = rootElement.getAttribute("name");
  
          if(mDatabasePersistor.queryableExists(tableName)) {
              throw new ActionException("Table/View/Index exists already");
          } else {
              CreateView action = new BasicCreateView(tableName, rootElement);
              mParser.initializeAction(action);
              action.execute();
              return new UpdateReply(action.getRecordCount());
          }
      }
  }
  
  
  
  1.1                  
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/handlers/lxsql/BasicLXSQLDeleteRowsHandler.java
  
  Index: BasicLXSQLDeleteRowsHandler.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.basic.handlers.lxsql;
  
  import org.apache.avalon.db.basic.parser.BasicLXSQLParser;
  import org.apache.avalon.db.basic.actions.BasicDeleteRows;
  import org.apache.avalon.db.services.DatabasePersistor;
  import org.apache.avalon.db.transport.Reply;
  import org.apache.avalon.db.transport.Request;
  import org.apache.avalon.db.transport.DeleteRowsRequest;
  import org.apache.avalon.db.transport.UpdateReply;
  import org.apache.avalon.db.actions.ActionException;
  import org.apache.avalon.db.actions.DeleteRows;
  import org.apache.avalon.db.data.Queryable;
  import org.w3c.dom.Document;
  import org.w3c.dom.Element;
  
  
  public class BasicLXSQLDeleteRowsHandler extends BasicLXSQLHandler {
  
      public BasicLXSQLDeleteRowsHandler(BasicLXSQLParser parser, 
DatabasePersistor databasePersistor) {
          super(parser, databasePersistor);
      }
  
      public Reply handleRequest(Request request) throws ActionException {
          DeleteRowsRequest cvr = (DeleteRowsRequest) request;
          Document doc = mParser.parseLXSQLString(cvr.getSql());
  
          Element rootElement = doc.getDocumentElement();
          String queryableStr = rootElement.getAttribute("from");
          Queryable queryable = (Queryable) 
mDatabasePersistor.getQueryable(queryableStr);
  
          DeleteRows action = new BasicDeleteRows(queryable, doc);
          mParser.initializeAction(action);
          action.execute();
          return new UpdateReply(action.getRecordCount());
      }
  }
  
  
  
  1.1                  
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/handlers/lxsql/BasicLXSQLHandler.java
  
  Index: BasicLXSQLHandler.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.basic.handlers.lxsql;
  
  import org.apache.avalon.db.server.AbstractRequestHandler;
  import org.apache.avalon.db.basic.parser.BasicLXSQLParser;
  import org.apache.avalon.db.services.DatabasePersistor;
  
  public abstract class BasicLXSQLHandler extends AbstractRequestHandler {
  
      protected final BasicLXSQLParser mParser;
      protected final DatabasePersistor mDatabasePersistor;
  
      public BasicLXSQLHandler(BasicLXSQLParser parser, DatabasePersistor 
databasePersistor) {
          mParser = parser;
          mDatabasePersistor = databasePersistor;
      }
  
  }
  
  
  
  1.1                  
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/handlers/lxsql/BasicLXSQLInsertRowsHandler.java
  
  Index: BasicLXSQLInsertRowsHandler.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.basic.handlers.lxsql;
  
  import org.apache.avalon.db.basic.parser.BasicLXSQLParser;
  import org.apache.avalon.db.basic.data.BasicTable;
  import org.apache.avalon.db.basic.actions.BasicInsertRows;
  import org.apache.avalon.db.services.DatabasePersistor;
  import org.apache.avalon.db.transport.Reply;
  import org.apache.avalon.db.transport.Request;
  import org.apache.avalon.db.transport.InsertRowsRequest;
  import org.apache.avalon.db.transport.UpdateReply;
  import org.apache.avalon.db.actions.ActionException;
  import org.apache.avalon.db.actions.InsertRows;
  import org.apache.avalon.db.data.Queryable;
  import org.w3c.dom.Document;
  import org.w3c.dom.Element;
  
  
  public class BasicLXSQLInsertRowsHandler extends BasicLXSQLHandler {
  
      public BasicLXSQLInsertRowsHandler(BasicLXSQLParser parser, 
DatabasePersistor databasePersistor) {
          super(parser, databasePersistor);
      }
  
      public Reply handleRequest(Request request) throws ActionException {
          InsertRowsRequest cvr = (InsertRowsRequest) request;
          Document doc = mParser.parseLXSQLString(cvr.getSql());
  
          Element rootElement = doc.getDocumentElement();
          String queryableStr = rootElement.getAttribute("table-name");
          Queryable queryable = (Queryable) 
mDatabasePersistor.getQueryable(queryableStr);
  
          //TOTO should be able to work with views and indexes.
          InsertRows action = new BasicInsertRows((BasicTable) queryable, doc);
          mParser.initializeAction(action);
          action.execute();
          return new UpdateReply(action.getRecordCount());
      }
  }
  
  
  
  1.1                  
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/handlers/lxsql/BasicLXSQLSelectSimpleHandler.java
  
  Index: BasicLXSQLSelectSimpleHandler.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.basic.handlers.lxsql;
  
  import org.apache.avalon.db.basic.parser.BasicLXSQLParser;
  import org.apache.avalon.db.basic.actions.BasicSelect;
  import org.apache.avalon.db.services.DatabasePersistor;
  import org.apache.avalon.db.transport.Reply;
  import org.apache.avalon.db.transport.Request;
  import org.apache.avalon.db.transport.SelectRequest;
  import org.apache.avalon.db.transport.ResultSetReply;
  import org.apache.avalon.db.actions.ActionException;
  import org.apache.avalon.db.actions.Select;
  import org.w3c.dom.Document;
  import org.w3c.dom.Element;
  
  public class BasicLXSQLSelectSimpleHandler extends BasicLXSQLHandler {
  
      public BasicLXSQLSelectSimpleHandler(BasicLXSQLParser parser, 
DatabasePersistor databasePersistor) {
          super(parser, databasePersistor);
      }
  
      public Reply handleRequest(Request request) throws ActionException {
          SelectRequest cvr = (SelectRequest) request;
          Document doc = mParser.parseLXSQLString(cvr.getSql());
  
          Element rootElement = doc.getDocumentElement();
  
          Select action = new BasicSelect(rootElement);
          mParser.initializeAction(action);
          action.execute();
          return new ResultSetReply(action.getRowSet());
      }
  }
  
  
  
  1.14      +26 -145   
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/parser/BasicLXSQLParser.java
  
  Index: BasicLXSQLParser.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/parser/BasicLXSQLParser.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- BasicLXSQLParser.java     2001/11/15 12:40:30     1.13
  +++ BasicLXSQLParser.java     2001/11/15 14:29:57     1.14
  @@ -9,45 +9,19 @@
   package org.apache.avalon.db.basic.parser;
   
   import org.apache.avalon.db.server.AbstractLXSQLParser;
  -import org.apache.avalon.db.actions.Select;
  +import org.apache.avalon.db.server.AbstractRequestHandler;
  +import org.apache.avalon.db.server.stdhandlers.PingHandler;
  +import org.apache.avalon.db.transport.Request;
  +import 
org.apache.avalon.db.basic.handlers.lxsql.BasicLXSQLCreateTableHandler;
  +import org.apache.avalon.db.basic.handlers.lxsql.BasicLXSQLCreateViewHandler;
  +import 
org.apache.avalon.db.basic.handlers.lxsql.BasicLXSQLCreateIndexHandler;
  +import org.apache.avalon.db.basic.handlers.lxsql.BasicLXSQLDeleteRowsHandler;
  +import org.apache.avalon.db.basic.handlers.lxsql.BasicLXSQLInsertRowsHandler;
  +import 
org.apache.avalon.db.basic.handlers.lxsql.BasicLXSQLSelectSimpleHandler;
  +import org.apache.avalon.db.actions.Action;
   import org.apache.avalon.db.actions.ActionException;
  -import org.apache.avalon.db.actions.CreateTable;
  -import org.apache.avalon.db.actions.Insert;
  -import org.apache.avalon.db.actions.CreateView;
  -import org.apache.avalon.db.actions.CreateIndex;
  -import org.apache.avalon.db.actions.DeleteRows;
  -import org.apache.avalon.db.transport.SelectRequest;
  -import org.apache.avalon.db.transport.CreateTableRequest;
  -import org.apache.avalon.db.transport.InsertRequest;
  -import org.apache.avalon.db.transport.CreateViewRequest;
  -import org.apache.avalon.db.transport.CreateIndexRequest;
  -import org.apache.avalon.db.transport.DeleteRequest;
  -import org.apache.avalon.db.data.Column;
  -import org.apache.avalon.db.data.Queryable;
  -import org.apache.avalon.db.data.impl.AbstractColumn;
  -import org.apache.avalon.db.bcel.actions.AbstractBCELAction;
  -import org.apache.avalon.db.basic.actions.BasicCreateTable;
  -import org.apache.avalon.db.basic.actions.BasicInsert;
  -import org.apache.avalon.db.basic.actions.BasicSelect;
  -import org.apache.avalon.db.basic.actions.BasicCreateView;
  -import org.apache.avalon.db.basic.actions.BasicCreateIndex;
  -import org.apache.avalon.db.basic.actions.BasicDeleteRows;
  -import org.apache.avalon.db.basic.data.BasicTable;
  -import org.apache.avalon.framework.component.ComponentManager;
  -import org.apache.avalon.framework.component.ComponentException;
  -import org.apache.bcel.generic.InstructionFactory;
  -import org.apache.bcel.generic.ConstantPoolGen;
  -import org.apache.bcel.generic.ClassGen;
  -import org.apache.bcel.generic.Type;
  -import org.apache.bcel.Constants;
  -import org.w3c.dom.Element;
  -import org.w3c.dom.Document;
  -import org.w3c.dom.NodeList;
  -import org.w3c.dom.Node;
   
  -import java.util.Vector;
   
  -
   /**
    * Class BCELSQLParser
    *
  @@ -56,123 +30,30 @@
    * @version $Revision: 1.14 $
    */
   public class BasicLXSQLParser extends AbstractLXSQLParser {
  -
  -    /**
  -     * Method createSelectAction
  -     *
  -     *
  -     * @param request
  -     *
  -     * @return
  -     *
  -     */
  -    public Select createSelectAction(SelectRequest request) throws 
ActionException {
  -        Document doc = parseLXSQLString(request.getSql());
  -        Select action = new BasicSelect(doc.getDocumentElement());
  -        action.setDatabasePersistor(mDatabasePersistor);
  -        return action;
  -    }
  -
  -    /**
  -     * Method createCreateTableAction
  -     *
  -     *
  -     * @param request
  -     *
  -     * @return
  -     *
  -     */
  -    public CreateTable createCreateTableAction(CreateTableRequest request) 
throws ActionException {
  -
  -        Document doc = parseLXSQLString(request.getSql());
  -
  -        Element rootElement = doc.getDocumentElement();
  -        String tableName = rootElement.getAttribute("name");
  -
  -        if(mDatabasePersistor.queryableExists(tableName)) {
  -            throw new  ActionException("Table exists already");
  -        } else {
  -            CreateTable action = new BasicCreateTable(tableName, 
rootElement);
  -            action.setDatabasePersistor(mDatabasePersistor);
  -            return action;
  -        }
  -    }
  -
  -    /**
  -     * Method createInsertAction
  -     *
  -     *
  -     * @param request
  -     *
  -     * @return
  -     *
  -     */
  -    public Insert createInsertAction(InsertRequest request) throws 
ActionException {
  -
  -        Document doc = parseLXSQLString(request.getSql());
  -        Element rootElement = doc.getDocumentElement();
  -        String tableName = rootElement.getAttribute("table-name");
  -        BasicTable table = (BasicTable) 
mDatabasePersistor.getQueryable(tableName);
  -        Insert action = new BasicInsert(table, doc);
  -        action.setDatabasePersistor(mDatabasePersistor);
  -
  -        return action;
  -    }
   
  +    public AbstractRequestHandler[] getRequestHandlers() {
  +        AbstractRequestHandler[] handlers = new AbstractRequestHandler[1000];
   
  -    /**
  -     * Method createCreateTableAction
  -     *
  -     *
  -     * @param request
  -     *
  -     * @return
  -     *
  -     */
  -    public CreateView createCreateViewAction(CreateViewRequest request) 
throws ActionException {
  +        // standard
   
  -        Document doc = parseLXSQLString(request.getSql());
  +        handlers[Request.PING] = new PingHandler();
   
  -        Element rootElement = doc.getDocumentElement();
  -        String viewName = rootElement.getAttribute("name");
  +        // cusom basic / LXSQL
   
  -        CreateView action = new BasicCreateView(viewName, rootElement);
  -        action.setDatabasePersistor(mDatabasePersistor);
  -        return action;
  -
  +        handlers[Request.CREATETABLE] = new 
BasicLXSQLCreateTableHandler(this,mDatabasePersistor);
  +        handlers[Request.CREATEVIEW] = new 
BasicLXSQLCreateViewHandler(this,mDatabasePersistor);
  +        handlers[Request.CREATEINDEX] = new 
BasicLXSQLCreateIndexHandler(this,mDatabasePersistor);
  +        handlers[Request.DELETEROWS] = new 
BasicLXSQLDeleteRowsHandler(this,mDatabasePersistor);
  +        handlers[Request.INSERTROWS] = new 
BasicLXSQLInsertRowsHandler(this,mDatabasePersistor);
  +        handlers[Request.SELECTSIMPLE] = new 
BasicLXSQLSelectSimpleHandler(this,mDatabasePersistor);
  +        //TODO more
  +        return handlers;
       }
  -
  -
  -    /**
  -     * Method createCreateTableAction
  -     *
  -     *
  -     * @param request
  -     *
  -     * @return
  -     *
  -     */
  -    public CreateIndex createCreateIndexAction(CreateIndexRequest request) 
throws ActionException {
  -
  -        Document doc = parseLXSQLString(request.getSql());
   
  -        Element rootElement = doc.getDocumentElement();
  -        String indexName = rootElement.getAttribute("name");
  -
  -        CreateIndex action = new BasicCreateIndex(indexName, doc);
  +    public void initializeAction(Action action) throws ActionException {
           action.setDatabasePersistor(mDatabasePersistor);
  -        return action;
  -
  +        setupLogger(action);
  +        action.initialize();
       }
   
  -    public DeleteRows createDeleteRowsAction(DeleteRequest request) throws 
ActionException {
  -        Document doc = parseLXSQLString(request.getSql());
  -        Element rootElement = doc.getDocumentElement();
  -        String queryableStr = rootElement.getAttribute("from");
  -        Queryable queryable = (Queryable) 
mDatabasePersistor.getQueryable(queryableStr);
  -        DeleteRows action = new BasicDeleteRows(queryable, doc);
  -        action.setDatabasePersistor(mDatabasePersistor);
  -
  -        return action;
  -    }
   }
  
  
  
  1.6       +3 -3      
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/bcel/actions/BCELInsert.java
  
  Index: BCELInsert.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/bcel/actions/BCELInsert.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- BCELInsert.java   2001/11/13 14:16:23     1.5
  +++ BCELInsert.java   2001/11/15 14:29:57     1.6
  @@ -8,7 +8,7 @@
    */
   package org.apache.avalon.db.bcel.actions;
   
  -import org.apache.avalon.db.actions.Insert;
  +import org.apache.avalon.db.actions.InsertRows;
   import org.apache.avalon.db.actions.ActionException;
   import org.apache.avalon.db.bcel.data.BCELTable;
   import org.apache.avalon.db.data.impl.AbstractTableRow;
  @@ -25,9 +25,9 @@
    *
    *
    * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL 
PROTECTED]</a>
  - * @version $Revision: 1.5 $
  + * @version $Revision: 1.6 $
    */
  -public class BCELInsert extends AbstractBCELAction implements Insert {
  +public class BCELInsert extends AbstractBCELAction implements InsertRows {
   
       private Document mDocument;
       private BCELTable mTable;
  
  
  
  1.4       +2 -2      
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/bcel/parser/BCELHelper.java
  
  Index: BCELHelper.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/bcel/parser/BCELHelper.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- BCELHelper.java   2001/11/12 23:09:56     1.3
  +++ BCELHelper.java   2001/11/15 14:29:57     1.4
  @@ -15,11 +15,11 @@
   import org.apache.avalon.db.actions.Action;
   import org.apache.avalon.db.actions.Select;
   import org.apache.avalon.db.actions.CreateTable;
  -import org.apache.avalon.db.actions.Insert;
  +import org.apache.avalon.db.actions.InsertRows;
   import org.apache.avalon.db.transport.Request;
   import org.apache.avalon.db.transport.SelectRequest;
   import org.apache.avalon.db.transport.CreateTableRequest;
  -import org.apache.avalon.db.transport.InsertRequest;
  +import org.apache.avalon.db.transport.InsertRowsRequest;
   import org.apache.avalon.db.bcel.actions.BCELCreateTable;
   import org.apache.avalon.db.bcel.actions.BCELInsert;
   import org.apache.avalon.db.bcel.data.BCELTable;
  
  
  
  1.6       +10 -135   
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/bcel/parser/BCELLXSQLParser.java
  
  Index: BCELLXSQLParser.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/bcel/parser/BCELLXSQLParser.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- BCELLXSQLParser.java      2001/11/15 12:40:30     1.5
  +++ BCELLXSQLParser.java      2001/11/15 14:29:57     1.6
  @@ -9,6 +9,7 @@
   package org.apache.avalon.db.bcel.parser;
   
   import org.apache.avalon.db.server.AbstractLXSQLParser;
  +import org.apache.avalon.db.server.AbstractRequestHandler;
   import org.apache.avalon.db.bcel.actions.BCELSelect;
   import org.apache.avalon.db.bcel.actions.AbstractBCELAction;
   import org.apache.avalon.db.bcel.actions.BCELCreateTable;
  @@ -17,14 +18,15 @@
   import org.apache.avalon.db.actions.Select;
   import org.apache.avalon.db.actions.ActionException;
   import org.apache.avalon.db.actions.CreateTable;
  -import org.apache.avalon.db.actions.Insert;
  +import org.apache.avalon.db.actions.InsertRows;
   import org.apache.avalon.db.actions.CreateView;
   import org.apache.avalon.db.actions.DeleteRows;
  +import org.apache.avalon.db.actions.Action;
   import org.apache.avalon.db.transport.SelectRequest;
   import org.apache.avalon.db.transport.CreateTableRequest;
  -import org.apache.avalon.db.transport.InsertRequest;
  +import org.apache.avalon.db.transport.InsertRowsRequest;
   import org.apache.avalon.db.transport.CreateViewRequest;
  -import org.apache.avalon.db.transport.DeleteRequest;
  +import org.apache.avalon.db.transport.DeleteRowsRequest;
   import org.apache.avalon.db.data.Column;
   import org.apache.avalon.db.data.impl.AbstractColumn;
   import org.apache.avalon.framework.component.ComponentManager;
  @@ -58,139 +60,12 @@
           bcelHelper.setDatabasePersistor(mDatabasePersistor);
       }
   
  -    /**
  -     * Method createSelectAction
  -     *
  -     *
  -     * @param request
  -     *
  -     * @return
  -     *
  -     */
  -    public Select createSelectAction(SelectRequest request) throws 
ActionException {
  -
  -
  -        Document doc = parseLXSQLString(request.getSql());
  -        Element rootElement = doc.getDocumentElement();
  -        Select action = new BCELSelect(doc);
  -        if(request.getPrepared()) {
  -            action.setPrepared(true);
  -        } else if(request.getParams().length > 0) {
  -            action.setWithParams(true);
  -        }
  -        action.setDatabasePersistor(mDatabasePersistor);
  -        ((AbstractBCELAction) action).setBCELHelper(bcelHelper);
  -        return action;
  -
  -    }
  -
  -    /**
  -     * Method createCreateTableAction
  -     *
  -     *
  -     * @param request
  -     *
  -     * @return
  -     *
  -     */
  -    public CreateTable createCreateTableAction(CreateTableRequest request) 
throws ActionException {
  -
  -        Document doc = parseLXSQLString(request.getSql());
  -
  -        Element rootElement = doc.getDocumentElement();
  -        getLogger().debug("rootElement=" + rootElement.getTagName());
  -
  -        String tableName = rootElement.getAttribute("name");
  -        String tableRowName = tableName + "Row";
  -
  -
  -        String newTableRowClassName = 
bcelHelper.createUniqueClassName(tableRowName);
  -        ClassGen cg = new ClassGen(newTableRowClassName,
  -                               
"org.apache.avalon.db.data.impl.AbstractTableRow",
  -                               "<SQL Generated>", Constants.ACC_PUBLIC | 
Constants.ACC_SUPER,
  -                               null);
  -        ConstantPoolGen cp = cg.getConstantPool();
  -        cg.addEmptyConstructor(Constants.ACC_PUBLIC);
  -        InstructionFactory factory = new InstructionFactory(cg);
  -
  -        NodeList subRootNodes = rootElement.getChildNodes();
  -
  -        Vector columns = new Vector();
  -
  -        for (int f = 0 ; f < subRootNodes.getLength(); f++) {
  -            if (subRootNodes.item(f).getNodeName().equals("columns")) {
  -                NodeList subColumnsNodes = 
subRootNodes.item(f).getChildNodes();
  -                for (int x = 0 ; x < subColumnsNodes.getLength(); x++) {
  -                    if 
(subColumnsNodes.item(x).getNodeName().equals("column")) {
  -                        Node columnNode = subColumnsNodes.item(x);
  -                        String fieldName = 
columnNode.getAttributes().getNamedItem("name").getNodeValue();
  -                        String sqlFieldType = 
columnNode.getAttributes().getNamedItem("type").getNodeValue();
  -                        Type fieldType = bcelHelper.getType(sqlFieldType);
  -                        Column column = null; // TODO new 
AbstractColumn(fieldName, sqlFieldType, fieldType.toString());
  -
  -                        columns.add(column);
  -                        bcelHelper.createFieldAndSetter(cp, cg, factory, 
fieldType, fieldName, tableName);
  -                    } else {
  -                        // TODO  There should be no other element types 
inside <columns>
  -                    }
  -
  -                }
  -
  -            } else {
  -                //TODO  Only <columns> is supported in <create-table> so far
  -            }
  -        }
  -
  -        //TODO need to create constrcutor suitable for superclass.
  -
  -        try {
  -            cg.getJavaClass().dump(newTableRowClassName + tableName + 
".class");
  -        } catch (java.io.IOException e) {
  -            System.err.println(e);
  -        }
  -
  -        CreateTable action = new BCELCreateTable(cg.getJavaClass(), 
tableName, tableRowName, newTableRowClassName, columns);
  -        action.setDatabasePersistor(mDatabasePersistor);
  -        ((AbstractBCELAction) action).setBCELHelper(bcelHelper);
  -        return action;
  -
  -    }
  -
  -
  -    /**
  -     * Method createInsertAction
  -     *
  -     *
  -     * @param request
  -     *
  -     * @return
  -     *
  -     */
  -    public Insert createInsertAction(InsertRequest request) throws 
ActionException {
  -
  -        Document doc = parseLXSQLString(request.getSql());
  -        Element rootElement = doc.getDocumentElement();
  -        String tableName = rootElement.getAttribute("table-name");
  -
  -        System.out.println("mDatabasePersistor" + mDatabasePersistor);
  -        System.out.println("=tn=" + tableName);
  -        String uniqueTableName = bcelHelper.getGeneratedClassName(tableName);
  -        System.out.println("=utn=" + uniqueTableName);
  -        BCELTable table = (BCELTable) 
mDatabasePersistor.getQueryable(tableName);
  -        System.out.println("=table=" + table);
  -        Insert action = new BCELInsert(table, doc);
  -        action.setDatabasePersistor(mDatabasePersistor);
  -        ((AbstractBCELAction) action).setBCELHelper(bcelHelper);
  -
  -        return action;
  -
  -    }
  -
  -    public CreateView createCreateViewAction(CreateViewRequest request) 
throws ActionException {
  -        return null;  //TODO
  +    public AbstractRequestHandler[] getRequestHandlers() {
  +        //TODO
  +        return new AbstractRequestHandler[0];
       }
   
  -    public DeleteRows createDeleteRowsAction(DeleteRequest request) throws 
ActionException {
  -        return null;
  +    public void initializeAction(Action action) throws ActionException {
  +        //TODO
       }
   }
  
  
  
  1.12      +11 -109   
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/bcel/parser/BCELSQLParser.java
  
  Index: BCELSQLParser.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/bcel/parser/BCELSQLParser.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- BCELSQLParser.java        2001/11/15 12:40:30     1.11
  +++ BCELSQLParser.java        2001/11/15 14:29:57     1.12
  @@ -9,17 +9,19 @@
   package org.apache.avalon.db.bcel.parser;
   
   import org.apache.avalon.db.server.AbstractSQLParser;
  +import org.apache.avalon.db.server.AbstractRequestHandler;
   import org.apache.avalon.db.actions.ActionException;
   import org.apache.avalon.db.actions.Select;
   import org.apache.avalon.db.actions.CreateTable;
  -import org.apache.avalon.db.actions.Insert;
  +import org.apache.avalon.db.actions.InsertRows;
   import org.apache.avalon.db.actions.CreateView;
   import org.apache.avalon.db.actions.DeleteRows;
  +import org.apache.avalon.db.actions.Action;
   import org.apache.avalon.db.transport.SelectRequest;
   import org.apache.avalon.db.transport.CreateTableRequest;
  -import org.apache.avalon.db.transport.InsertRequest;
  +import org.apache.avalon.db.transport.InsertRowsRequest;
   import org.apache.avalon.db.transport.CreateViewRequest;
  -import org.apache.avalon.db.transport.DeleteRequest;
  +import org.apache.avalon.db.transport.DeleteRowsRequest;
   import org.apache.avalon.db.utils.StringUtils;
   import org.apache.avalon.db.data.impl.AbstractColumn;
   import org.apache.avalon.db.data.Column;
  @@ -42,7 +44,7 @@
    *
    *
    * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL 
PROTECTED]</a>
  - * @version $Revision: 1.11 $
  + * @version $Revision: 1.12 $
    */
   public class BCELSQLParser extends AbstractSQLParser {
   
  @@ -54,112 +56,12 @@
       }
   
   
  -    /**
  -     * Method createSelectAction
  -     *
  -     *
  -     * @param request
  -     *
  -     * @return
  -     *
  -     */
  -    public Select createSelectAction(SelectRequest request) throws 
ActionException {
  -        return null;
  +    public AbstractRequestHandler[] getRequestHandlers() {
  +        //TODO
  +        return new AbstractRequestHandler[0];
       }
   
  -    /**
  -     * Method createCreateTableAction
  -     *
  -     *
  -     * @param request
  -     *
  -     * @return
  -     *
  -     */
  -    public CreateTable createCreateTableAction(CreateTableRequest request) 
throws ActionException {
  -
  -        // ALL TODO
  -
  -        String[] words = StringUtils.split(request.getSql());
  -
  -        String tableName = words[2];
  -        String tableRowName = tableName + "Row";
  -        String values = getBracketedExpr(request.getSql());
  -        StringTokenizer st = new StringTokenizer(values, ",");
  -        String newTableRowClassName = 
bcelHelper.createUniqueClassName(tableRowName);
  -        ClassGen cg = new ClassGen(newTableRowClassName,
  -                                   
"org.apache.avalon.db.data.impl.AbstractTableRow",
  -                                   "<SQL Generated>", Constants.ACC_PUBLIC | 
Constants.ACC_SUPER,
  -                                   null);
  -        ConstantPoolGen cp = cg.getConstantPool();
  -        InstructionFactory factory = new InstructionFactory(cg);
  -        Vector columns = new Vector();
  -
  -        while (st.hasMoreTokens()) {
  -            String fieldStr = st.nextToken();
  -            StringTokenizer st2 = new StringTokenizer(fieldStr, " ");
  -
  -            System.out.println("FieldStr=" + fieldStr);
  -
  -            String fieldName = st2.nextToken();
  -            String sqlFieldType = st2.nextToken();
  -            Type fieldType = bcelHelper.getType(sqlFieldType);
  -            Column column = null; // TODO new AbstractColumn(fieldName, 
sqlFieldType, fieldType.toString());
  -
  -            columns.add(column);
  -            bcelHelper.createFieldAndSetter(cp, cg, factory, fieldType, 
fieldName, tableName);
  -        }
  -
  -        //TODO need to create constrcutor suitable for superclass.
  -        try {
  -            cg.getJavaClass().dump(tableName + "Row.class");
  -        } catch (java.io.IOException e) {
  -            System.err.println(e);
  -        }
  -
  -        CreateTable action = new BCELCreateTable(cg.getJavaClass(), 
tableName, tableRowName, newTableRowClassName, columns);
  -        action.setDatabasePersistor(mDatabasePersistor);
  -        return action;
  -    }
  -
  -
  -    /**
  -     * Method createInsertAction
  -     *
  -     *
  -     * @param request
  -     *
  -     * @return
  -     *
  -     */
  -    public Insert createInsertAction(InsertRequest request) throws 
ActionException {
  -
  -        // ALL TODO
  -
  -        String[] words = StringUtils.split(request.getSql());
  -
  -        String tableName = words[2];
  -        Table table = (Table) mDatabasePersistor.getQueryable(tableName);
  -        String type = words[3];
  -
  -        if (type.startsWith("(")) {
  -
  -            //return createNamedColumnsInsert(table);
  -        } else if (type.startsWith("values")) {
  -            //return bcelHelper.createAllValuesInsert(table, 
request.getSql());
  -        } else if (type.startsWith("select")) {
  -
  -            //return createSelectInsert(table);
  -        }
  -
  -        return null;
  -    }
  -
  -    public CreateView createCreateViewAction(CreateViewRequest request) 
throws ActionException {
  -        return null;    //TODO
  -    }
  -
  -    public DeleteRows createDeleteRowsAction(DeleteRequest request) throws 
ActionException {
  -        return null;
  +    public void initializeAction(Action action) throws ActionException {
  +        //TODO
       }
   }
  
  
  
  1.7       +3 -3      
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/driver/AvalonDBStatement.java
  
  Index: AvalonDBStatement.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/driver/AvalonDBStatement.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- AvalonDBStatement.java    2001/11/09 00:26:28     1.6
  +++ AvalonDBStatement.java    2001/11/15 14:29:57     1.7
  @@ -16,9 +16,9 @@
   import org.apache.avalon.db.transport.WriteRequest;
   import org.apache.avalon.db.transport.UpdateReply;
   import org.apache.avalon.db.transport.CloseRequest;
  -import org.apache.avalon.db.transport.InsertRequest;
  +import org.apache.avalon.db.transport.InsertRowsRequest;
   import org.apache.avalon.db.transport.UpdateRequest;
  -import org.apache.avalon.db.transport.DeleteRequest;
  +import org.apache.avalon.db.transport.DeleteRowsRequest;
   
   import java.sql.Statement;
   import java.sql.ResultSet;
  @@ -33,7 +33,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 class AvalonDBStatement extends AbstractDriver implements Statement {
   
  
  
  
  1.6       +5 -5      
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/driver/lxsql/LXSQLParserHelper.java
  
  Index: LXSQLParserHelper.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/driver/lxsql/LXSQLParserHelper.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- LXSQLParserHelper.java    2001/11/15 12:40:30     1.5
  +++ LXSQLParserHelper.java    2001/11/15 14:29:57     1.6
  @@ -10,9 +10,9 @@
   
   import org.apache.avalon.db.driver.AbstractParserHelper;
   import org.apache.avalon.db.transport.Request;
  -import org.apache.avalon.db.transport.InsertRequest;
  +import org.apache.avalon.db.transport.InsertRowsRequest;
   import org.apache.avalon.db.transport.UpdateRequest;
  -import org.apache.avalon.db.transport.DeleteRequest;
  +import org.apache.avalon.db.transport.DeleteRowsRequest;
   import org.apache.avalon.db.transport.SelectRequest;
   import org.apache.avalon.db.transport.CreateTableRequest;
   import org.apache.avalon.db.transport.CreateViewRequest;
  @@ -24,11 +24,11 @@
       protected Request getRequest(String sql) throws SQLException {
           Request request = null;
           if (sql.startsWith("<insert-into")) {
  -            request = new InsertRequest(sql);
  +            request = new InsertRowsRequest(sql);
           } else if (sql.startsWith("<update")) {
               request = new UpdateRequest(sql);
           } else if (sql.startsWith("<delete")) {
  -            request = new DeleteRequest(sql);
  +            request = new DeleteRowsRequest(sql);
           } else if (sql.startsWith("<select")) {
               request = new SelectRequest(sql);
           } else if (sql.startsWith("<create-table")) {
  @@ -38,7 +38,7 @@
           } else if (sql.startsWith("<create-index")) {
               request = new CreateIndexRequest(sql);
           } else if (sql.startsWith("<delete-rows")) {
  -            request = new DeleteRequest(sql);
  +            request = new DeleteRowsRequest(sql);
               //TODO
           } else {
               throw new SQLException("Unknown SQL instruction (first term)");
  
  
  
  1.2       +4 -4      
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/driver/sql/SQLParserHelper.java
  
  Index: SQLParserHelper.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/driver/sql/SQLParserHelper.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SQLParserHelper.java      2001/11/04 10:22:13     1.1
  +++ SQLParserHelper.java      2001/11/15 14:29:57     1.2
  @@ -10,9 +10,9 @@
   
   import org.apache.avalon.db.driver.AbstractParserHelper;
   import org.apache.avalon.db.transport.Request;
  -import org.apache.avalon.db.transport.InsertRequest;
  +import org.apache.avalon.db.transport.InsertRowsRequest;
   import org.apache.avalon.db.transport.UpdateRequest;
  -import org.apache.avalon.db.transport.DeleteRequest;
  +import org.apache.avalon.db.transport.DeleteRowsRequest;
   import org.apache.avalon.db.transport.SelectRequest;
   import org.apache.avalon.db.transport.CreateTableRequest;
   
  @@ -22,11 +22,11 @@
       protected Request getRequest(String sql) throws SQLException {
           Request request = null;
           if (sql.startsWith("INSERT")) {
  -            request = new InsertRequest(sql);
  +            request = new InsertRowsRequest(sql);
           } else if (sql.startsWith("UPDATE")) {
               request = new UpdateRequest(sql);
           } else if (sql.startsWith("DELETE")) {
  -            request = new DeleteRequest(sql);
  +            request = new DeleteRowsRequest(sql);
           } else if (sql.startsWith("SELECT")) {
               request = new SelectRequest(sql);
           } else if (sql.startsWith("CREATE TABLE")) {
  
  
  
  1.21      +18 -65    
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/server/AbstractDatabaseManager.java
  
  Index: AbstractDatabaseManager.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/server/AbstractDatabaseManager.java,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- AbstractDatabaseManager.java      2001/11/15 12:40:30     1.20
  +++ AbstractDatabaseManager.java      2001/11/15 14:29:57     1.21
  @@ -18,7 +18,7 @@
   import org.apache.avalon.db.actions.Select;
   import org.apache.avalon.db.actions.ActionException;
   import org.apache.avalon.db.actions.CreateTable;
  -import org.apache.avalon.db.actions.Insert;
  +import org.apache.avalon.db.actions.InsertRows;
   import org.apache.avalon.db.actions.CreateView;
   import org.apache.avalon.db.actions.DeleteRows;
   import org.apache.avalon.db.transport.Request;
  @@ -30,14 +30,15 @@
   import org.apache.avalon.db.transport.UnknownRequestReply;
   import org.apache.avalon.db.transport.UpdateReply;
   import org.apache.avalon.db.transport.ResultSetReply;
  -import org.apache.avalon.db.transport.InsertRequest;
  +import org.apache.avalon.db.transport.InsertRowsRequest;
   import org.apache.avalon.db.transport.CreateViewRequest;
   import org.apache.avalon.db.transport.PingReply;
  -import org.apache.avalon.db.transport.DeleteRequest;
  +import org.apache.avalon.db.transport.DeleteRowsRequest;
   import org.apache.avalon.framework.logger.AbstractLogEnabled;
   import org.apache.avalon.framework.component.ComponentManager;
   import org.apache.avalon.framework.component.ComponentException;
   import org.apache.avalon.framework.component.Composable;
  +import org.apache.avalon.framework.activity.Initializable;
   
   
   /**
  @@ -45,12 +46,14 @@
    *
    *
    * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL 
PROTECTED]</a>
  - * @version $Revision: 1.20 $
  + * @version $Revision: 1.21 $
    */
  -public abstract class AbstractDatabaseManager extends AbstractLogEnabled 
implements Composable {
  +public abstract class AbstractDatabaseManager extends AbstractLogEnabled
  +        implements Composable, Initializable {
   
       protected SQLParser mSQLParser;
       protected SQLOptimizer mSQLOptimizer;
  +    protected AbstractRequestHandler[] mRequestHandlers;
   
       /**
        * Method compose
  @@ -69,6 +72,10 @@
           mSQLOptimizer = (SQLOptimizer) 
componentManager.lookup(SQLOptimizer.class.getName());
       }
   
  +    public void initialize() throws Exception {
  +            mRequestHandlers = mSQLParser.getRequestHandlers();
  +    }
  +
       /**
        * Method processRequest
        *
  @@ -81,73 +88,19 @@
       public Reply processRequest(Request request) {
   
           try {
  -            switch (request.getRequestCode()) {
  -
  -                case (Request.SELECT) :
  -                    return processSelectRequest((SelectRequest) request);
  -                case (Request.CREATETABLE) :
  -                    return processCreateTableRequest((CreateTableRequest) 
request);
  -                case (Request.CREATEVIEW) :
  -                    return processCreateViewRequest((CreateViewRequest) 
request);
  -                case (Request.DELETE) :
  -                    return processDeleteRequest((DeleteRequest) request);
  -                case (Request.INSERT) :
  -                    return processInsertRequest((InsertRequest) request);
  -                case (Request.PING) :
  -                    return new PingReply(); // For keep alive
  +            AbstractRequestHandler arh = 
mRequestHandlers[request.getRequestCode()];
  +            if (arh == null ) {
  +                return new UnknownRequestReply();
  +            } else {
  +                return arh.handleRequest(request);
               }
  -
           } catch (ActionException ae) {
  -            getLogger().error("processRequest(): Exception",ae);
  +            getLogger().error("processRequest(): ActionException",ae);
               return new ExceptionReply(ae.getMessage());
           }
   
  -        return new UnknownRequestReply();
  -    }
  -
  -    public Reply processSelectRequest(SelectRequest selectRequest) throws 
ActionException {
  -        getLogger().debug("mSQLParser=" + mSQLParser);
  -        /*
  -        SelectRequest optimizedSelectRequest =
  -            mSQLOptimizer.optimizeSelectRequest(selectRequest);
  -        */
  -        Select select = mSQLParser.createSelectAction(selectRequest); 
//optimizedSelectRequest);
  -        this.setupLogger(select);
  -        select.initialize();
  -        select.execute();
  -        return new ResultSetReply(select.getRowSet());
  -    }
  -
  -    public Reply processCreateTableRequest(CreateTableRequest 
createTableRequest) throws ActionException {
  -        CreateTable ct = 
mSQLParser.createCreateTableAction(createTableRequest);
  -        this.setupLogger(ct);
  -        ct.initialize();
  -        ct.execute();
  -        return new UpdateReply(ct.getRecordCount());
  -    }
   
  -    public Reply processCreateViewRequest(CreateViewRequest 
createViewRequest) throws ActionException {
  -        CreateView cv = mSQLParser.createCreateViewAction(createViewRequest);
  -        this.setupLogger(cv);
  -        cv.initialize();
  -        cv.execute();
  -        return new UpdateReply(cv.getRecordCount());
       }
   
  -    public Reply processDeleteRequest(DeleteRequest deleteRequest) throws 
ActionException {
  -        DeleteRows dr = mSQLParser.createDeleteRowsAction(deleteRequest);
  -        this.setupLogger(dr);
  -        dr.initialize();
  -        dr.execute();
  -        return new UpdateReply(dr.getRecordCount());
  -    }
  -
   
  -    public Reply processInsertRequest(InsertRequest insertRequest) throws 
ActionException {
  -        Insert ins = mSQLParser.createInsertAction(insertRequest);
  -        this.setupLogger(ins);
  -        ins.initialize();
  -        ins.execute();
  -        return new UpdateReply(ins.getRecordCount());
  -    }
   }
  
  
  
  1.2       +1 -1      
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/server/AbstractLXSQLParser.java
  
  Index: AbstractLXSQLParser.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/server/AbstractLXSQLParser.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AbstractLXSQLParser.java  2001/11/07 12:01:14     1.1
  +++ AbstractLXSQLParser.java  2001/11/15 14:29:57     1.2
  @@ -58,7 +58,7 @@
       }
   
   
  -    protected Document parseLXSQLString(String lxsql) throws ActionException 
{
  +    public Document parseLXSQLString(String lxsql) throws ActionException {
           String docStr = XMLHDR + lxsql;
           System.out.println("lxStr=" + docStr);
   
  
  
  
  1.1                  
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/server/AbstractRequestHandler.java
  
  Index: AbstractRequestHandler.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.server;
  
  import org.apache.avalon.db.transport.Request;
  import org.apache.avalon.db.transport.Reply;
  import org.apache.avalon.db.actions.Action;
  import org.apache.avalon.db.actions.ActionException;
  
  public abstract class AbstractRequestHandler {
  
      public abstract Reply handleRequest(Request request) throws 
ActionException;
  
  }
  
  
  
  1.1                  
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/server/stdhandlers/PingHandler.java
  
  Index: PingHandler.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.server.stdhandlers;
  
  import org.apache.avalon.db.server.AbstractRequestHandler;
  import org.apache.avalon.db.transport.Reply;
  import org.apache.avalon.db.transport.Request;
  import org.apache.avalon.db.transport.PingReply;
  import org.apache.avalon.db.actions.ActionException;
  
  public class PingHandler extends AbstractRequestHandler {
  
      public Reply handleRequest(Request request) throws ActionException {
          return new PingReply();
      }
  }
  
  
  
  1.4       +0 -3      
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/services/DatabaseManager.java
  
  Index: DatabaseManager.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/services/DatabaseManager.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- DatabaseManager.java      2001/11/02 11:09:08     1.3
  +++ DatabaseManager.java      2001/11/15 14:29:57     1.4
  @@ -24,7 +24,4 @@
           // Resulting block will depend on SQLParser & SQLOptimizer
   
           Reply processRequest(Request request);
  -        Reply processSelectRequest(SelectRequest selectRequest) throws 
ActionException;
  -        Reply processCreateTableRequest(CreateTableRequest 
createTableRequest) throws ActionException;
  -
   }
  
  
  
  1.7       +7 -40     
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/services/SQLParser.java
  
  Index: SQLParser.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/services/SQLParser.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- SQLParser.java    2001/11/15 12:40:30     1.6
  +++ SQLParser.java    2001/11/15 14:29:57     1.7
  @@ -13,16 +13,17 @@
   import org.apache.avalon.db.actions.Action;
   import org.apache.avalon.db.actions.Select;
   import org.apache.avalon.db.actions.CreateTable;
  -import org.apache.avalon.db.actions.Insert;
  +import org.apache.avalon.db.actions.InsertRows;
   import org.apache.avalon.db.actions.ActionException;
   import org.apache.avalon.db.actions.CreateView;
   import org.apache.avalon.db.actions.DeleteRows;
   import org.apache.avalon.db.transport.Request;
   import org.apache.avalon.db.transport.SelectRequest;
   import org.apache.avalon.db.transport.CreateTableRequest;
  -import org.apache.avalon.db.transport.InsertRequest;
  +import org.apache.avalon.db.transport.InsertRowsRequest;
   import org.apache.avalon.db.transport.CreateViewRequest;
  -import org.apache.avalon.db.transport.DeleteRequest;
  +import org.apache.avalon.db.transport.DeleteRowsRequest;
  +import org.apache.avalon.db.server.AbstractRequestHandler;
   
   
   /**
  @@ -30,46 +31,12 @@
    *
    *
    * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL 
PROTECTED]</a>
  - * @version * $Revision: 1.6 $
  + * @version * $Revision: 1.7 $
    */
   public interface SQLParser {
   
  -    // Resulting block may depend on ActionCache, DatabasePersistor & 
IndexGenerator
  +    AbstractRequestHandler[] getRequestHandlers();
   
  -    /**
  -     * Method createSelectAction
  -     *
  -     *
  -     * @param request
  -     *
  -     * @return
  -     *
  -     */
  -    Select createSelectAction(SelectRequest request) throws ActionException;
  +    void initializeAction(Action action) throws ActionException ;
   
  -    /**
  -     * Method createCreateTableAction
  -     *
  -     *
  -     * @param request
  -     *
  -     * @return
  -     *
  -     */
  -    CreateTable createCreateTableAction(CreateTableRequest request) throws 
ActionException;
  -
  -    /**
  -     * Method createInsertAction
  -     *
  -     *
  -     * @param request
  -     *
  -     * @return
  -     *
  -     */
  -    Insert createInsertAction(InsertRequest request) throws ActionException;
  -
  -    CreateView createCreateViewAction(CreateViewRequest request) throws 
ActionException;
  -
  -    DeleteRows createDeleteRowsAction(DeleteRequest request) throws 
ActionException;
   }
  
  
  
  1.2       +1 -1      
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/AlterRequest.java
  
  Index: AlterRequest.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/AlterRequest.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AlterRequest.java 2001/10/30 19:35:56     1.1
  +++ AlterRequest.java 2001/11/15 14:29:57     1.2
  @@ -18,7 +18,7 @@
   public class AlterRequest extends WriteRequest {
   
       /**
  -     * Constructor InsertRequest
  +     * Constructor InsertRowsRequest
        *
        *
        * @param sql
  
  
  
  1.10      +4 -4      
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.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- Request.java      2001/11/14 03:06:59     1.9
  +++ Request.java      2001/11/15 14:29:57     1.10
  @@ -18,13 +18,13 @@
    *
    *
    * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL 
PROTECTED]</a>
  - * @version $Revision: 1.9 $
  + * @version $Revision: 1.10 $
    */
   public abstract class Request implements Serializable {
   
  -    public static final int SELECT = 110;
  +    public static final int SELECTSIMPLE = 110;
       public static final int CREATETABLE = 111;
  -    public static final int INSERT = 112;
  +    public static final int INSERTROWS = 112;
       public static final int GENERALSQL = 113;
       public static final int AUTOCOMMITCHANGE = 114;
       public static final int AUTOCOMMITQUERY = 115;
  @@ -37,7 +37,7 @@
       public static final int TRANSACTIONISOLATIONQUERY = 122;
       public static final int SETCATALOG = 123;
       public static final int CATALOGREQUEST = 124;
  -    public static final int DELETE = 125;
  +    public static final int DELETEROWS = 125;
       public static final int UPDATE = 126;
       public static final int RESULTSETCLOSE = 127;
       public static final int ALTER = 128;
  
  
  
  1.4       +4 -4      
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/SelectRequest.java
  
  Index: SelectRequest.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/SelectRequest.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- SelectRequest.java        2001/11/06 00:32:34     1.3
  +++ SelectRequest.java        2001/11/15 14:29:57     1.4
  @@ -15,7 +15,7 @@
    *
    *
    * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL 
PROTECTED]</a>
  - * @version $Revision: 1.3 $
  + * @version $Revision: 1.4 $
    */
   public class SelectRequest extends SQLRequest {
   
  @@ -27,15 +27,15 @@
        *
        */
       public SelectRequest(String sql) {
  -        super(Request.SELECT, sql);
  +        super(Request.SELECTSIMPLE, sql);
       }
   
       public SelectRequest(String sql,boolean prepared) {
  -        super(Request.SELECT, sql,prepared);
  +        super(Request.SELECTSIMPLE, sql,prepared);
       }
   
       public SelectRequest(String sql,String[] param) {
  -        super(Request.SELECT, sql,param);
  +        super(Request.SELECTSIMPLE, sql,param);
       }
   
   }
  
  
  
  1.1                  
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/DeleteRowsRequest.java
  
  Index: DeleteRowsRequest.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 DeleteRowsRequest
   *
   *
   * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL 
PROTECTED]</a>
   * @version $Revision: 1.1 $
   */
  public class DeleteRowsRequest extends WriteRequest {
  
      /**
       * Constructor DeleteRowsRequest
       *
       *
       * @param sql
       *
       */
      public DeleteRowsRequest(String sql) {
          super(Request.DELETEROWS, sql);
      }
  }
  
  
  
  1.1                  
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/InsertRowsRequest.java
  
  Index: InsertRowsRequest.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 InsertRowsRequest
   *
   *
   * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL 
PROTECTED]</a>
   * @version $Revision: 1.1 $
   */
  public class InsertRowsRequest extends WriteRequest {
  
      /**
       * Constructor InsertRowsRequest
       *
       *
       * @param sql
       *
       */
      public InsertRowsRequest(String sql) {
          super(Request.INSERTROWS, sql);
      }
  }
  
  
  
  1.8       +3 -2      
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/cmdstream/server/PlainCMDDatabaseManager.java
  
  Index: PlainCMDDatabaseManager.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/cmdstream/server/PlainCMDDatabaseManager.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- PlainCMDDatabaseManager.java      2001/11/10 21:45:04     1.7
  +++ PlainCMDDatabaseManager.java      2001/11/15 14:29:57     1.8
  @@ -43,7 +43,7 @@
    */
   public class PlainCMDDatabaseManager extends AbstractDatabaseManager
           implements Block, DatabaseManager, Contextualizable, Configurable,
  -                   Initializable, ConnectionHandlerFactory {
  +                   ConnectionHandlerFactory {
   
       protected SocketManager mSocketManager;
       protected ConnectionManager mConnectionManager;
  @@ -129,8 +129,9 @@
           final ServerSocketFactory factory = 
mSocketManager.getServerSocketFactory("plain");
           final ServerSocket serverSocket = factory.createServerSocket(mPort, 
5, mBindTo);
   
  -        mConnectionManager.connect("AvalonDBListener", serverSocket, this);
  +        super.initialize();
   
  +        mConnectionManager.connect("AvalonDBListener", serverSocket, this);
           System.out.println("AvalonDBListener server running on port " + 
mPort);
       }
   
  
  
  
  1.4       +7 -21     
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.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- GlueConnection.java       2001/11/14 03:26:06     1.3
  +++ GlueConnection.java       2001/11/15 14:29:58     1.4
  @@ -8,30 +8,26 @@
    */
   package org.apache.avalon.db.transport.soap.client.glue;
   
  -
  -
  -import electric.registry.Registry;
  -import electric.registry.RegistryException;
   import org.apache.avalon.db.driver.AvalonDBConnection;
   import org.apache.avalon.db.services.DatabaseManager;
   import org.apache.avalon.db.common.AvalonDBSQLException;
  -import org.apache.avalon.db.transport.CreateTableRequest;
  -import org.apache.avalon.db.transport.Request;
   import org.apache.avalon.db.transport.Reply;
  -import org.apache.avalon.db.transport.SelectRequest;
  +import org.apache.avalon.db.transport.Request;
   import org.apache.avalon.db.transport.ExceptionReply;
  -import org.apache.avalon.db.transport.TODOReply;
   import org.apache.avalon.db.actions.ActionException;
   
   import java.sql.SQLException;
   
  +import electric.registry.Registry;
  +import electric.registry.RegistryException;
  +
   
   /**
    * Class GlueConnection
    *
    *
    * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL 
PROTECTED]</a>
  - * @version $Revision: 1.3 $
  + * @version $Revision: 1.4 $
    */
   public class GlueConnection extends AvalonDBConnection {
   
  @@ -71,18 +67,8 @@
        */
       public Reply sendRequest(Request request) throws SQLException {
   
  +        return mDBManager.processRequest(request);
   
  -        try {
  -          if (request instanceof CreateTableRequest) {
  -              return 
mDBManager.processCreateTableRequest((CreateTableRequest) request);
  -          } else if (request instanceof SelectRequest) {
  -              return mDBManager.processSelectRequest((SelectRequest) 
request);
  -          } else {
  -              return new TODOReply();
  -          }
  -        } catch (ActionException ae) {
  -            return new ExceptionReply(ae.getMessage());
  -        }
  -          //TODO  Handle Glue excpetion, which is a derivative of 
RuntimeException
  +        //TODO  Handle Glue excpetion, which is a derivative of 
RuntimeException
       }
   }
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to