You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by Glyn Normington <gl...@uk.ibm.com> on 2002/01/02 10:46:43 UTC

Re: [PATCH] Make SimpleTargetedChain extend SimpleChain

I've updated the subject patch to match the latest code revisions and have
re-tested. There have been no negative comments since I submitted this on
21 December in spite of several committers being active, so I would be
grateful if someone would now commit the changes.

Glyn

Index: xml-axis/java/samples/proxy/ProxyService.java
===================================================================
RCS file: /home/cvspublic/xml-axis/java/samples/proxy/ProxyService.java,v
retrieving revision 1.10
diff -u -r1.10 ProxyService.java
--- xml-axis/java/samples/proxy/ProxyService.java  3 Dec 2001 22:49:22
-0000     1.10
+++ xml-axis/java/samples/proxy/ProxyService.java  2 Jan 2002 09:36:14
-0000
@@ -94,9 +94,8 @@
             service.setEngine( msgContext.getAxisEngine().getClientEngine
() );
             Call    call = (Call) service.createCall();

-            SimpleTargetedChain c = new SimpleTargetedChain();
-            c.setPivotHandler(new TCPSender());
-        service.getEngine().deployTransport("tcp", c);
+            SimpleTargetedChain c = new SimpleTargetedChain(new TCPSender
());
+            service.getEngine().deployTransport("tcp", c);

             // add TCP for proxy testing
             call.addTransportPackage("samples.transport");
Index: xml-axis/java/samples/transport/FileTest.java
===================================================================
RCS file: /home/cvspublic/xml-axis/java/samples/transport/FileTest.java,v
retrieving revision 1.20
diff -u -r1.20 FileTest.java
--- xml-axis/java/samples/transport/FileTest.java  26 Nov 2001 02:21:38 -0000    1.20
+++ xml-axis/java/samples/transport/FileTest.java  2 Jan 2002 09:36:14 -0000
@@ -37,8 +37,7 @@
         AxisEngine engine = service.getEngine();

         // Manually deploy file sender and file transport for this example
-        SimpleTargetedChain c = new SimpleTargetedChain();
-        c.setPivotHandler(new FileSender());
+        SimpleTargetedChain c = new SimpleTargetedChain(new FileSender());
         engine.deployTransport("FileTransport", c);

         call.setOperationName( "getQuote" );
Index: xml-axis/java/samples/transport/tcp/AdminClient.java
===================================================================
RCS file: /home/cvspublic/xml-axis/java/samples/transport/tcp/AdminClient.java,v
retrieving revision 1.11
diff -u -r1.11 AdminClient.java
--- xml-axis/java/samples/transport/tcp/AdminClient.java     15 Nov 2001 19:48:42 -0000    1.11
+++ xml-axis/java/samples/transport/tcp/AdminClient.java     2 Jan 2002 09:36:14 -0000
@@ -77,8 +77,7 @@
             org.apache.axis.client.AdminClient client =
                 new org.apache.axis.client.AdminClient(System.err);

-            SimpleTargetedChain c = new SimpleTargetedChain();
-            c.setPivotHandler(new TCPSender());
+            SimpleTargetedChain c = new SimpleTargetedChain(new TCPSender());
             client.getCall().getService().getEngine().deployTransport("tcp", c);

             System.out.println(client.process(args));
Index: xml-axis/java/samples/transport/tcp/GetQuote.java
===================================================================
RCS file: /home/cvspublic/xml-axis/java/samples/transport/tcp/GetQuote.java,v
retrieving revision 1.13
diff -u -r1.13 GetQuote.java
--- xml-axis/java/samples/transport/tcp/GetQuote.java   15 Nov 2001 19:48:42 -0000    1.13
+++ xml-axis/java/samples/transport/tcp/GetQuote.java   2 Jan 2002 09:36:14 -0000
@@ -93,8 +93,7 @@
         Service service = new Service();
         Call call = (Call)service.createCall();

-        SimpleTargetedChain c = new SimpleTargetedChain();
-        c.setPivotHandler(new TCPSender());
+        SimpleTargetedChain c = new SimpleTargetedChain(new TCPSender());
         service.getEngine().deployTransport("tcp", c);

         call.setTransport(new TCPTransport());
Index: xml-axis/java/samples/transport/tcp/TCPListener.java
===================================================================
RCS file: /home/cvspublic/xml-axis/java/samples/transport/tcp/TCPListener.java,v
retrieving revision 1.13
diff -u -r1.13 TCPListener.java
--- xml-axis/java/samples/transport/tcp/TCPListener.java     3 Dec 2001 22:49:22 -0000     1.13
+++ xml-axis/java/samples/transport/tcp/TCPListener.java     2 Jan 2002 09:36:15 -0000
@@ -155,8 +155,7 @@
                 engine = new AxisServer();
                 engine.init();

-                SimpleTargetedChain c = new SimpleTargetedChain();
-                c.setPivotHandler(new TCPSender());
+                SimpleTargetedChain c = new SimpleTargetedChain(new TCPSender());

                 try {
                     engine.deployTransport(transportName, c);
Index: xml-axis/java/src/org/apache/axis/SimpleTargetedChain.java
===================================================================
RCS file: /home/cvspublic/xml-axis/java/src/org/apache/axis/SimpleTargetedChain.java,v
retrieving revision 1.33
diff -u -r1.33 SimpleTargetedChain.java
--- xml-axis/java/src/org/apache/axis/SimpleTargetedChain.java    7 Dec 2001 18:30:27 -0000     1.33
+++ xml-axis/java/src/org/apache/axis/SimpleTargetedChain.java    2 Jan 2002 09:36:15 -0000
@@ -67,8 +67,9 @@
 /**
  *
  * @author Doug Davis (dug@us.ibm.com)
+ * @author Glyn Normington (norm@uk.ibm.com)
  */
-public class SimpleTargetedChain extends BasicHandler implements TargetedChain
+public class SimpleTargetedChain extends SimpleChain implements TargetedChain
 {
    static Category category =
             Category.getInstance(SimpleTargetedChain.class.getName());
@@ -76,208 +77,64 @@
     protected Handler    requestHandler ;
     protected Handler    pivotHandler ;
     protected Handler    responseHandler ;
+
+    /**
+     * Pivot indicator sets "past pivot point" before the response handler
+     * runs. This avoids having to reimplement SimpleChain.invoke and
+     * SimpleChain.generateWSDL.
+     */
+    private class PivotIndicator extends BasicHandler {
+    public PivotIndicator() {}

-    public void init() {
-        if ( requestHandler   != null )   requestHandler.init();
-        if ( pivotHandler != null ) pivotHandler.init();
-        if ( responseHandler  != null )  responseHandler.init();
-    }
+        public void undo(MessageContext msgContext) {}

-    public void cleanup() {
-        if ( requestHandler   != null )   requestHandler.cleanup();
-        if ( pivotHandler != null ) pivotHandler.cleanup();
-        if ( responseHandler  != null )  responseHandler.cleanup();
+        public void invoke(MessageContext msgContext) throws AxisFault {
+        msgContext.setPastPivot(true);
+    }
     }

     /**
-     * Invoke the request chain, pivot handler and response chain.  If there's
-     * a fault we need to make sure that we undo any completed handler
-     * that has been successfully invoked and then rethrow the fault.
+     * Default no-arg constructor.
      */
-    public void invoke(MessageContext msgContext) throws AxisFault {
-        if (category.isDebugEnabled()) {
-            category.debug(JavaUtils.getMessage("enter00", "SimpleTargetedChain::invoke") );
-        }
-
-        if ( requestHandler != null ) requestHandler.invoke( msgContext );
-        try {
-            if ( pivotHandler != null ) pivotHandler.invoke( msgContext );
-        }
-        catch( Exception e ) {
-            category.error( "SimpleTargetedChain caught exception", e );
-            if ( requestHandler != null )
-                requestHandler.undo( msgContext );
-            throw AxisFault.makeFault(e);
-        }
-        msgContext.setPastPivot(true);
-        try {
-            if ( responseHandler != null )
-                responseHandler.invoke( msgContext );
-        }
-        catch( Exception e ) {
-            category.error( e );
-            if ( pivotHandler != null ) pivotHandler.undo( msgContext );
-            if ( requestHandler != null )
-                requestHandler.undo( msgContext );
-            throw AxisFault.makeFault(e);
-        }
-
-        if (category.isDebugEnabled()) {
-            category.debug(JavaUtils.getMessage("exit00", "SimpleTargetedChain::invoke") );
-        }
-    }
+    public SimpleTargetedChain() {}

-    public void generateWSDL(MessageContext msgContext) throws AxisFault {
-        if (category.isDebugEnabled()) {
-            category.debug(JavaUtils.getMessage("enter00", "SimpleTargetedChain::editWSDL") );
-        }
-
-        if ( requestHandler != null ) requestHandler.generateWSDL( msgContext );
-        try {
-            if ( pivotHandler != null ) pivotHandler.generateWSDL( msgContext );
-        }
-        catch( Exception e ) {
-            category.error( e );
-            if ( requestHandler != null )
-                requestHandler.undo( msgContext );
-            throw AxisFault.makeFault(e);
-        }
-        msgContext.setPastPivot(true);
-        try {
-            if ( responseHandler != null )
-                responseHandler.generateWSDL( msgContext );
-        }
-        catch( Exception e ) {
-            category.error( e );
-            throw AxisFault.makeFault(e);
-        }
-
-        if (category.isDebugEnabled()) {
-            category.debug(JavaUtils.getMessage("exit00", "SimpleTargetedChain::editWSDL") );
-        }
-    }
+    /**
+     * Constructor for an instance with effectively only a pivot handler.
+     */
+    public SimpleTargetedChain(Handler handler) {
+    pivotHandler = handler;
+    if (pivotHandler != null) {
+        addHandler(pivotHandler);
+        addHandler(new PivotIndicator());
+    }
+   }

     /**
-     * Undo all of the work - in reverse order.
+     * Constructor which takes real or null request, pivot, and response
+     * handlers.
      */
-    public void undo(MessageContext msgContext) {
-        if (category.isDebugEnabled()) {
-            category.debug(JavaUtils.getMessage("enter00", "SimpleTargetedChain::undo") );
-        }
-
-        if ( responseHandler   != null )   responseHandler.undo( msgContext );
-        if ( pivotHandler  != null )  pivotHandler.undo( msgContext );
-        if ( requestHandler    != null )    requestHandler.undo( msgContext );
-
-        if (category.isDebugEnabled()) {
-            category.debug(JavaUtils.getMessage("exit00", "SimpleTargetedChain::undo") );
-        }
-    }
+    public SimpleTargetedChain(Handler reqHandler, Handler pivHandler,
+                     Handler respHandler) {
+
+        requestHandler = reqHandler;
+    if (requestHandler != null)
+        addHandler(requestHandler);
+
+    pivotHandler = pivHandler;
+    if (pivotHandler != null) {
+        addHandler(pivotHandler);
+        addHandler(new PivotIndicator());
+    }

-    public boolean canHandleBlock(QName qname) {
-        // TODO !!! : Need to look at this logic
-        return ((requestHandler==null) ? false :
-                  (requestHandler.canHandleBlock(qname) ||
-                   (pivotHandler==null)) ? false :
-                       (pivotHandler.canHandleBlock(qname) ||
-                        (responseHandler==null))  ? false :
-                            responseHandler.canHandleBlock(qname) );
+        responseHandler = respHandler;
+    if (responseHandler != null)
+        addHandler(responseHandler);
     }

     public Handler getRequestHandler() { return( requestHandler ); }

-    public void setRequestHandler(Handler reqHandler)
-    {
-        requestHandler = reqHandler;
-    }
-
     public Handler getPivotHandler() { return( pivotHandler ); }

-    public void setPivotHandler(Handler handler) { pivotHandler = handler ; }
-
     public Handler getResponseHandler() { return( responseHandler ); }
-
-    public void setResponseHandler(Handler respHandler)
-    {
-        responseHandler = respHandler;
-    }
-
-    public void clear() {
-        requestHandler = null ;
-        pivotHandler = null ;
-        responseHandler = null ;
-    }
-
-    public Element getDeploymentData(Document doc) {
-        if (category.isDebugEnabled()) {
-            category.debug(JavaUtils.getMessage("enter00", "SimpleTargetedChain::getDeploymentData") );
-        }
-
-        Element   root = doc.createElementNS("", "chain");
-        fillInDeploymentData(root);
-
-        if (category.isDebugEnabled()) {
-            category.debug(JavaUtils.getMessage("exit00", "SimpleTargetedChain::getDeploymentData") );
-        }
-        return( root );
-    }
-
-    /**
-     * Used by subclasses (i.e. SOAPService) to fill in deployment
-     * data into an Element which might not be named "chain".
-     *
-     * @param root the Element to fill in with deployment data.
-     */
-    public void fillInDeploymentData(Element root)
-    {
-        Document doc = root.getOwnerDocument();
-        StringBuffer str  = new StringBuffer();
-        Handler      h ;
-
-        if ( requestHandler != null ) {
-            if (requestHandler instanceof Chain) {
-                Handler[]  handlers = ((Chain)requestHandler).getHandlers();
-                str = new StringBuffer();
-                for ( int i = 0 ; i < handlers.length ; i++ ) {
-                    h = (Handler) handlers[i];
-                    if ( i != 0 ) str.append(",");
-                    str.append( h.getName() );
-                }
-            } else {
-                str.append(requestHandler.getName());
-            }
-            root.setAttribute( "request", str.toString() );
-        }
-        if ( pivotHandler != null ) {
-            root.setAttribute( "pivot", pivotHandler.getName() );
-        }
-        if ( responseHandler != null ) {
-            if (responseHandler instanceof Chain) {
-                Handler[]  handlers = ((Chain)responseHandler).getHandlers();
-                str = new StringBuffer();
-                for ( int i = 0 ; i < handlers.length ; i++ ) {
-                    h = (Handler) handlers[i];
-                    if ( i != 0 ) str.append(",");
-                    str.append( h.getName() );
-                }
-            } else {
-                str.append(responseHandler.getName());
-            }
-            root.setAttribute( "response", str.toString() );
-        }
-
-        options = this.getOptions();
-        if ( options != null ) {
-            Enumeration e = options.keys();
-            while ( e.hasMoreElements() ) {
-                String k = (String) e.nextElement();
-                Object v = options.get(k);
-                Element e1 = doc.createElementNS("", "option");
-                e1.setAttribute( "name", k );
-                e1.setAttribute( "value", v.toString() );
-                root.appendChild( e1 );
-            }
-        }
-    }

 };
Index: xml-axis/java/src/org/apache/axis/TargetedChain.java
===================================================================
RCS file: /home/cvspublic/xml-axis/java/src/org/apache/axis/TargetedChain.java,v
retrieving revision 1.7
diff -u -r1.7 TargetedChain.java
--- xml-axis/java/src/org/apache/axis/TargetedChain.java     30 Oct 2001 16:46:34 -0000    1.7
+++ xml-axis/java/src/org/apache/axis/TargetedChain.java     2 Jan 2002 09:36:15 -0000
@@ -65,33 +65,13 @@
     public Handler   getRequestHandler();

     /**
-     * Sets the Request Chain
-     */
-    public void    setRequestHandler(Handler reqHandler);
-
-    /**
      * Returns the Pivot Handler
      */
     public Handler getPivotHandler();

     /**
-     * Sets the Pivot Handler
-     */
-    public void    setPivotHandler(Handler handler);
-
-    /**
      * Returns the Response Handler
      */
     public Handler   getResponseHandler();
-
-    /**
-     * Sets the Response Handler
-     */
-    public void    setResponseHandler(Handler respHandler);
-
-    /**
-     * Clears the Handlers
-     */
-    public void    clear();
-
+
 }
Index: xml-axis/java/src/org/apache/axis/deployment/v2dd/V2DDDeployableItem.java
===================================================================
RCS file: /home/cvspublic/xml-axis/java/src/org/apache/axis/deployment/v2dd/V2DDDeployableItem.java,v
retrieving revision 1.15
diff -u -r1.15 V2DDDeployableItem.java
--- xml-axis/java/src/org/apache/axis/deployment/v2dd/V2DDDeployableItem.java    14 Nov 2001 17:26:18 -0000     1.15
+++ xml-axis/java/src/org/apache/axis/deployment/v2dd/V2DDDeployableItem.java    2 Jan 2002 09:36:15 -0000
@@ -55,7 +55,6 @@
 package org.apache.axis.deployment.v2dd;

 import org.apache.axis.Handler;
-import org.apache.axis.SimpleTargetedChain;
 import org.apache.axis.deployment.DeployableItem;
 import org.apache.axis.deployment.DeploymentRegistry;
 import org.apache.axis.deployment.DeploymentException;
@@ -99,8 +98,6 @@
         // definition to configure the instance

         try {
-            SimpleTargetedChain stc = new SimpleTargetedChain();
-
             V2DDProvider prov = service.getProvider();
             String[] methods = prov.getMethods();

Index: xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDService.java
===================================================================
RCS file: /home/cvspublic/xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDService.java,v
retrieving revision 1.29
diff -u -r1.29 WSDDService.java
--- xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDService.java      23 Dec 2001 12:33:31 -0000    1.29
+++ xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDService.java      2 Jan 2002 09:36:15 -0000
@@ -205,34 +205,38 @@
             return cachedService;
         }

-        SOAPService   service  = new SOAPService();
-        if ( getQName() != null )
-            service.setName(getQName().getLocalPart());
-        service.setOptions(getParametersTable());
-
-        WSDDChain     request  = getRequestFlow();
-        WSDDChain      response = getResponseFlow();
+    Handler reqHandler = null;
+        WSDDChain request = getRequestFlow();

         if (request != null) {
-            service.setRequestHandler(request.getInstance(registry));
+            reqHandler = request.getInstance(registry);
         }

-        //service.setPivotHandler(getProvider().getInstance(registry));
+        Handler providerHandler = null;
+
         if (providerQName != null) {
-            Handler providerHandler = WSDDProvider.getInstance(providerQName,
-                                                               this,
-                                                               registry);
+            providerHandler = WSDDProvider.getInstance(providerQName,
+                                                       this,
+                                                       registry);
             if (providerHandler == null)
                 throw new WSDDException(
                         JavaUtils.getMessage("couldntConstructProvider00"));
-
-            service.setPivotHandler(providerHandler);
         }
-
+
+        Handler respHandler = null;
+        WSDDChain response = getResponseFlow();
+
         if (response != null) {
-            service.setResponseHandler(response.getInstance(registry));
+            respHandler = response.getInstance(registry);
         }

+        SOAPService service = new SOAPService(reqHandler, providerHandler,
+                                              respHandler);
+
+        if ( getQName() != null )
+            service.setName(getQName().getLocalPart());
+        service.setOptions(getParametersTable());
+
         if (tmr == null) {
             tmr = new TypeMappingRegistry();
         }
Index: xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDTargetedChain.java
===================================================================
RCS file: /home/cvspublic/xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDTargetedChain.java,v
retrieving revision 1.3
diff -u -r1.3 WSDDTargetedChain.java
--- xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDTargetedChain.java     14 Nov 2001 17:26:18 -0000     1.3
+++ xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDTargetedChain.java     2 Jan 2002 09:36:16 -0000
@@ -185,11 +185,10 @@
     public Handler makeNewInstance(DeploymentRegistry registry)
         throws Exception
     {
-        TargetedChain c = new org.apache.axis.SimpleTargetedChain();
-
+    Handler reqHandler = null;
         WSDDChain req = getRequestFlow();
         if (req != null)
-            c.setRequestHandler(req.getInstance(registry));
+            reqHandler = req.getInstance(registry);

         Handler pivot = null;
         if (pivotQName != null) {
@@ -199,14 +198,14 @@
                 pivot = registry.getHandler(pivotQName);
             }
         }
-
-        c.setPivotHandler(pivot);

+        Handler respHandler = null;
         WSDDChain resp = getResponseFlow();
         if (resp != null)
-            c.setResponseHandler(resp.getInstance(registry));
+            respHandler = resp.getInstance(registry);

-        return c;
+        return new org.apache.axis.SimpleTargetedChain(reqHandler, pivot,
+                                                       respHandler);
     }

     /**
Index: xml-axis/java/src/org/apache/axis/handlers/soap/SOAPService.java
===================================================================
RCS file: /home/cvspublic/xml-axis/java/src/org/apache/axis/handlers/soap/SOAPService.java,v
retrieving revision 1.38
diff -u -r1.38 SOAPService.java
--- xml-axis/java/src/org/apache/axis/handlers/soap/SOAPService.java   23 Dec 2001 12:33:32 -0000    1.38
+++ xml-axis/java/src/org/apache/axis/handlers/soap/SOAPService.java   2 Jan 2002 09:36:16 -0000
@@ -106,10 +106,23 @@
      */
     public SOAPService()
     {
+    initTypeMappingRegistry();
+    }
+
+    /** Constructor with real or null request, pivot, and response
+     *   handlers.
+     */
+    public SOAPService(Handler reqHandler, Handler pivHandler,
+                Handler respHandler) {
+    super(reqHandler, pivHandler, respHandler);
+    initTypeMappingRegistry();
+    }
+
+    private void initTypeMappingRegistry() {
         typeMap = new TypeMappingRegistry();
         typeMap.setParent(SOAPTypeMappingRegistry.getSingleton());
     }
-
+
     public TypeMappingRegistry getTypeMappingRegistry()
     {
         return typeMap;
@@ -125,8 +138,8 @@
      */
     public SOAPService(Handler serviceHandler)
     {
-        this();
-        setPivotHandler(serviceHandler);
+        super(serviceHandler);
+    initTypeMappingRegistry();
     }

     /** Tell this service which engine it's deployed to.
@@ -288,29 +301,6 @@
             category.debug(JavaUtils.getMessage("exit00",
                 "SOAPService::undo") );
         }
-    }
-
-    public Element getDeploymentData(Document doc) {
-      if (category.isDebugEnabled()) {
-          category.debug(JavaUtils.getMessage("enter00",
-              "SOAPService::getDeploymentData") );
-      }
-
-      Element  root = doc.createElementNS("", "service");
-
-      fillInDeploymentData(root);
-
-      if (!getTypeMappingRegistry().isEmpty()) {
-        Element elem = doc.createElementNS("", "typeMappings");
-        getTypeMappingRegistry().dumpToElement(elem);
-        root.appendChild(elem);
-      }
-
-      if (category.isDebugEnabled()) {
-          category.debug(JavaUtils.getMessage("exit00",
-              "SOAPService::getDeploymentData") );
-      }
-      return( root );
     }

     /*********************************************************************
Index: xml-axis/java/src/org/apache/axis/server/Transport.java
===================================================================
RCS file: /home/cvspublic/xml-axis/java/src/org/apache/axis/server/Transport.java,v
retrieving revision 1.9
diff -u -r1.9 Transport.java
--- xml-axis/java/src/org/apache/axis/server/Transport.java  8 Nov 2001 21:43:59 -0000     1.9
+++ xml-axis/java/src/org/apache/axis/server/Transport.java  2 Jan 2002 09:36:16 -0000
@@ -72,14 +72,4 @@
     static Category category =
             Category.getInstance(Transport.class.getName());

-    public Element getDeploymentData(Document doc) {
-        category.debug(JavaUtils.getMessage("enter00", "Transport::getDeploymentData"));
-
-        Element  root = doc.createElementNS("", "transport");
-
-        fillInDeploymentData(root);
-
-        category.debug(JavaUtils.getMessage("exit00", "Transport::getDeploymentData"));
-        return( root );
-    }
 }
Index: xml-axis/java/test/functional/TestTCPTransportSample.java
===================================================================
RCS file: /home/cvspublic/xml-axis/java/test/functional/TestTCPTransportSample.java,v
retrieving revision 1.16
diff -u -r1.16 TestTCPTransportSample.java
--- xml-axis/java/test/functional/TestTCPTransportSample.java     3 Dec 2001 23:23:03 -0000     1.16
+++ xml-axis/java/test/functional/TestTCPTransportSample.java     2 Jan 2002 09:36:17 -0000
@@ -99,8 +99,7 @@
             Service  service = new Service();
             Call     call    = (Call) service.createCall();

-            SimpleTargetedChain c = new SimpleTargetedChain();
-            c.setPivotHandler(new TCPSender());
+            SimpleTargetedChain c = new SimpleTargetedChain(new TCPSender());
             service.getEngine().deployTransport("tcp", c);

             call.setTargetEndpointAddress( new URL("tcp://localhost:8088") );
Index: xml-axis/java/test/session/TestSimpleSession.java
===================================================================
RCS file: /home/cvspublic/xml-axis/java/test/session/TestSimpleSession.java,v
retrieving revision 1.5
diff -u -r1.5 TestSimpleSession.java
--- xml-axis/java/test/session/TestSimpleSession.java   25 Nov 2001 19:11:59 -0000    1.5
+++ xml-axis/java/test/session/TestSimpleSession.java   2 Jan 2002 09:36:17 -0000
@@ -71,14 +71,15 @@
     public void testSessionService() throws Exception
     {
         // Set up the server side
-        SOAPService service = new SOAPService(new RPCProvider());
         SimpleSessionHandler sessionHandler = new SimpleSessionHandler();
         // Set a 3-second reap period, and a 3-second timeout
         sessionHandler.setReapPeriodicity(3000);
         sessionHandler.setDefaultSessionTimeout(3000);

-        service.setRequestHandler(sessionHandler);
-        service.setResponseHandler(sessionHandler);
+        SOAPService service = new SOAPService(sessionHandler,
+                              new RPCProvider(),
+                              sessionHandler);
+
         service.setOption("scope", "session");
         service.setOption("className", "test.session.TestSimpleSession");
         service.setOption("methodName", "counter");