axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From hemap...@apache.org
Subject svn commit: r111465 - in webservices/axis/trunk/java/dev/scratch/prototype2: . src/java/org/apache/axis/deployment src/java/org/apache/axis/description src/java/org/apache/axis/engine src/java/org/apache/axis/impl/description src/java/org/apache/axis/impl/handlers src/java/org/apache/axis/impl/registry src/samples/deployment/module1 src/samples/deployment/module2 src/samples/deployment/service1 src/samples/deployment/service2 src/test/org/apache/axis/engine src/test/org/apache/axis/registry
Date Fri, 10 Dec 2004 04:27:51 GMT
Author: hemapani
Date: Thu Dec  9 20:27:49 2004
New Revision: 111465

URL: http://svn.apache.org/viewcvs?view=rev&rev=111465
Log:
add a handler Desc make way to deployemnt to merge in
Added:
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/description/HandlerMetaData.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/description/PhaseRule.java
Removed:
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/registry/
Modified:
   webservices/axis/trunk/java/dev/scratch/prototype2/project.xml
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/DeploymentEngine.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/description/Flow.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Handler.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/description/FlowImpl.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/handlers/AbstractHandler.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/module1/Handler3.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/module2/Handler4.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/service1/Handler1.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/service2/Handler2.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/EngineUtils.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/HandlerFaliureTest.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/MockFlow.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/SpeakingHandler.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/SpeakingHandler1.java

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/project.xml
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/project.xml?view=diff&rev=111465&p1=webservices/axis/trunk/java/dev/scratch/prototype2/project.xml&r1=111464&p2=webservices/axis/trunk/java/dev/scratch/prototype2/project.xml&r2=111465
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/project.xml	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/project.xml	Thu Dec  9 20:27:49 2004
@@ -94,7 +94,7 @@
         <exclude>**/*Abstract*.java</exclude>
 	    <exclude>**/*Util*.java</exclude>
         <exclude>**/*BadInputTest.java</exclude>
-       <!-- <exclude>**/*CallUnregisterdServiceTest.java</exclude> -->
+        <exclude>**/*ServiceTest.java</exclude>
       </excludes>
       <includes>
         <include>**/*Test.java</include>

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/DeploymentEngine.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/DeploymentEngine.java?view=diff&rev=111465&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/DeploymentEngine.java&r1=111464&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/DeploymentEngine.java&r2=111465
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/DeploymentEngine.java
(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/DeploymentEngine.java
Thu Dec  9 20:27:49 2004
@@ -1,7 +1,25 @@
 package org.apache.axis.deployment;
 
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.Vector;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+
 import org.apache.axis.context.MessageContext;
-import org.apache.axis.deployment.metadata.*;
+import org.apache.axis.deployment.metadata.FlowMetaData;
+import org.apache.axis.deployment.metadata.HandlerMetaData;
+import org.apache.axis.deployment.metadata.ModuleMetaData;
+import org.apache.axis.deployment.metadata.OperationMetaData;
+import org.apache.axis.deployment.metadata.ParameterMetaData;
+import org.apache.axis.deployment.metadata.ServerMetaData;
+import org.apache.axis.deployment.metadata.ServiceMetaData;
 import org.apache.axis.deployment.metadata.phaserule.PhaseException;
 import org.apache.axis.deployment.repository.utill.HDFileItem;
 import org.apache.axis.deployment.repository.utill.UnZipJAR;
@@ -9,25 +27,27 @@
 import org.apache.axis.deployment.scheduler.DeploymentIterator;
 import org.apache.axis.deployment.scheduler.Scheduler;
 import org.apache.axis.deployment.scheduler.SchedulerTask;
-import org.apache.axis.engine.*;
-import org.apache.axis.description.*;
-import org.apache.axis.impl.description.*;
-import org.apache.axis.impl.engine.*;
+import org.apache.axis.description.AxisGlobal;
+import org.apache.axis.description.AxisModule;
+import org.apache.axis.description.AxisOperation;
+import org.apache.axis.description.AxisService;
+import org.apache.axis.description.Flow;
+import org.apache.axis.description.Parameter;
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.engine.Constants;
+import org.apache.axis.engine.EngineRegistry;
+import org.apache.axis.engine.ExecutionChain;
+import org.apache.axis.engine.Handler;
+import org.apache.axis.engine.Phase;
+import org.apache.axis.impl.description.FlowImpl;
+import org.apache.axis.impl.description.ParameterImpl;
+import org.apache.axis.impl.description.SimpleAxisOperationImpl;
+import org.apache.axis.impl.description.SimpleAxisServiceImpl;
+import org.apache.axis.impl.engine.EngineRegistryImpl;
 import org.apache.axis.impl.providers.SimpleJavaProvider;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.Vector;
-
 
 /**
  * Copyright 2001-2004 The Apache Software Foundation.
@@ -192,154 +212,155 @@
 
 
     private void addnewService(ServiceMetaData serviceMetaData) throws AxisFault, PhaseException
{
-        QName serviceName = new QName(serviceMetaData.getName());
-        int count = 0;
-
-        FlowImpl serviceinflow = new FlowImpl();
-        FlowImpl serviceoutflow = new FlowImpl();
-        FlowImpl servicefaultflow = new FlowImpl();
-
-        AxisService service = new SimpleAxisServiceImpl(serviceName);
-        service.setInFlow(serviceinflow);
-        service.setOutFlow(serviceoutflow);
-        service.setFaultFlow(servicefaultflow);
-        service.setClassLoader(Thread.currentThread().getContextClassLoader());
-
-
-        ClassLoader serviceClassLoader = Thread.currentThread().getContextClassLoader();
-        /**
-         * ****************************************************************************
-         * ****************************************************************************
-         * Adding service inflow detail
-         */
-        count = serviceMetaData.getInFlow().getHandlercount();
-        addFlowHandlers(serviceinflow, count, serviceMetaData.getInFlow(), serviceClassLoader);
-
-        /**
-         * ****************************************************************************
-         * ****************************************************************************
-         * Adding service outflow detail
-         */
-        count = serviceMetaData.getOutFlow().getHandlercount();
-        addFlowHandlers(serviceoutflow, count, serviceMetaData.getOutFlow(), serviceClassLoader);
-
-        /**
-         * ****************************************************************************
-         * ****************************************************************************
-         * Adding service fault detail
-         */
-        count = serviceMetaData.getFaultFlow().getHandlercount();
-        addFlowHandlers(servicefaultflow, count, serviceMetaData.getFaultFlow(), serviceClassLoader);
-
-        /**
-         * ****************************************************************************
-         * ****************************************************************************
-         * Adding service parameters
-         */
-        count = serviceMetaData.getParametercount();
-        for (int j = 0; j < count; j++) {
-            ParameterMetaData paraMD = serviceMetaData.getParameter(j);
-            Parameter parameter = new ParameterImpl(paraMD.getName(), paraMD.getElement());
-            service.addParameter(parameter);
-        }
-
-        /**
-         * ****************************************************************************
-         * ****************************************************************************
-         * setting  service provider
-         */
-        service.setProvider(new SimpleJavaProvider());
-
-        OperationMetaData oprationmd = serviceMetaData.getOperation();
-        ModuleMetaData modulemd = oprationmd.getModule();
-
-        /**
-         * adding parametrs to module
-         */
-        AxisModule module = new AxisModule(new QName(modulemd.getRef()));
-        service.addModule(module.getName());
-        count = modulemd.getParameterCount();
-
-        for (int j = 0; j < count; j++) {
-            ParameterMetaData paraMD = modulemd.getParameter(j);
-            Parameter parameter = new ParameterImpl(paraMD.getName(), paraMD.getElement());
-            module.addParameter(parameter);
-        }
-
-        FlowImpl operationinflow = new FlowImpl();
-        count = oprationmd.getInFlow().getHandlercount();
-        addFlowHandlers(operationinflow, count, oprationmd.getInFlow(), serviceClassLoader);
-
-        FlowImpl operationutflow = new FlowImpl();
-        count = oprationmd.getOutFlow().getHandlercount();
-        addFlowHandlers(operationutflow, count, oprationmd.getOutFlow(), serviceClassLoader);
-
-        FlowImpl operationfaultflow = new FlowImpl();
-        count = oprationmd.getFaultFlow().getHandlercount();
-        addFlowHandlers(operationfaultflow, count, oprationmd.getFaultFlow(), serviceClassLoader);
-
-
-        QName opname = new QName(oprationmd.getName());
-        AxisOperation operation = new SimpleAxisOperationImpl(opname);
-
-        service.addOperation(operation);
-
-
-        ExecutionChain inchain = new ExecutionChain();
-        inchain.addPhase(new Phase(Constants.PHASE_TRANSPORT));
-        inchain.addPhase(new Phase(Constants.PHASE_GLOBAL));
-
-        /**
-         * todo in this implematation all the handers in the servcie
-         * i have asume as one phase bt that is not the case
-         * I have to modify that getting all the pahse and
-         * accooding tp that i have to create phases
-         */
-        Phase inservicephase = new Phase(Constants.PHASE_SERVICE);
-        HandlerMetaData[] handlerMetaDatas = serviceMetaData.getFlowHandlers(INFLOWST);
-        for (int i = 0; i < handlerMetaDatas.length; i++) {
-            HandlerMetaData handlerMetaData = handlerMetaDatas[i];
-            Handler handler = castHandlerMetaData(handlerMetaData, serviceClassLoader);
-            handler.setName(new QName(handlerMetaData.getName()));
-            inservicephase.addHandler(handler);
-        }
-        inchain.addPhase(inservicephase);
-
-
-        ExecutionChain outchain = new ExecutionChain();
-        outchain.addPhase(new Phase(Constants.PHASE_TRANSPORT));
-        outchain.addPhase(new Phase(Constants.PHASE_GLOBAL));
-
-        Phase outservicephase = new Phase(Constants.PHASE_SERVICE);
-        handlerMetaDatas = serviceMetaData.getFlowHandlers(OUTFLOWST);
-        for (int i = 0; i < handlerMetaDatas.length; i++) {
-            HandlerMetaData handlerMetaData = handlerMetaDatas[i];
-            Handler handler = castHandlerMetaData(handlerMetaData, serviceClassLoader);
-            handler.setName(new QName(handlerMetaData.getName()));
-            outservicephase.addHandler(handler);
-        }
-        outchain.addPhase(outservicephase);
-
-
-        ExecutionChain faultchain = new ExecutionChain();
-        faultchain.addPhase(new Phase(Constants.PHASE_TRANSPORT));
-        faultchain.addPhase(new Phase(Constants.PHASE_GLOBAL));
-
-        Phase faultservicephase = new Phase(Constants.PHASE_SERVICE);
-        handlerMetaDatas = serviceMetaData.getFlowHandlers(FAILTFLOWST);
-        for (int i = 0; i < handlerMetaDatas.length; i++) {
-            HandlerMetaData handlerMetaData = handlerMetaDatas[i];
-            Handler handler = castHandlerMetaData(handlerMetaData, serviceClassLoader);
-            handler.setName(new QName(handlerMetaData.getName()));
-            faultservicephase.addHandler(handler);
-        }
-        outchain.addPhase(faultservicephase);
-
-        service.setExecutableInChain(inchain);
-        service.setExecutableOutChain(outchain);
-        service.setExecutableFaultChain(faultchain);
-
-        engineRegistry.addService(service);
+//        QName serviceName = new QName(serviceMetaData.getName());
+//        int count = 0;
+//
+//        FlowImpl serviceinflow = new FlowImpl();
+//        FlowImpl serviceoutflow = new FlowImpl();
+//        FlowImpl servicefaultflow = new FlowImpl();
+//
+//        AxisService service = new SimpleAxisServiceImpl(serviceName);
+//        service.setInFlow(serviceinflow);
+//        service.setOutFlow(serviceoutflow);
+//        service.setFaultFlow(servicefaultflow);
+//        service.setClassLoader(Thread.currentThread().getContextClassLoader());
+//
+//
+//        ClassLoader serviceClassLoader = Thread.currentThread().getContextClassLoader();
+//        /**
+//         * ****************************************************************************
+//         * ****************************************************************************
+//         * Adding service inflow detail
+//         */
+//        count = serviceMetaData.getInFlow().getHandlercount();
+//        addFlowHandlers(serviceinflow, count, serviceMetaData.getInFlow(), serviceClassLoader);
+//
+//        /**
+//         * ****************************************************************************
+//         * ****************************************************************************
+//         * Adding service outflow detail
+//         */
+//        count = serviceMetaData.getOutFlow().getHandlercount();
+//        addFlowHandlers(serviceoutflow, count, serviceMetaData.getOutFlow(), serviceClassLoader);
+//
+//        /**
+//         * ****************************************************************************
+//         * ****************************************************************************
+//         * Adding service fault detail
+//         */
+//        count = serviceMetaData.getFaultFlow().getHandlercount();
+//        addFlowHandlers(servicefaultflow, count, serviceMetaData.getFaultFlow(), serviceClassLoader);
+//
+//        /**
+//         * ****************************************************************************
+//         * ****************************************************************************
+//         * Adding service parameters
+//         */
+//        count = serviceMetaData.getParametercount();
+//        for (int j = 0; j < count; j++) {
+//            ParameterMetaData paraMD = serviceMetaData.getParameter(j);
+//            Parameter parameter = new ParameterImpl(paraMD.getName(), paraMD.getElement());
+//            service.addParameter(parameter);
+//        }
+//
+//        /**
+//         * ****************************************************************************
+//         * ****************************************************************************
+//         * setting  service provider
+//         */
+//        service.setProvider(new SimpleJavaProvider());
+//
+//        OperationMetaData oprationmd = serviceMetaData.getOperation();
+//        ModuleMetaData modulemd = oprationmd.getModule();
+//
+//        /**
+//         * adding parametrs to module
+//         */
+//        AxisModule module = new AxisModule(new QName(modulemd.getRef()));
+//        service.addModule(module.getName());
+//        count = modulemd.getParameterCount();
+//
+//        for (int j = 0; j < count; j++) {
+//            ParameterMetaData paraMD = modulemd.getParameter(j);
+//            Parameter parameter = new ParameterImpl(paraMD.getName(), paraMD.getElement());
+//            module.addParameter(parameter);
+//        }
+//
+//        FlowImpl operationinflow = new FlowImpl();
+//        count = oprationmd.getInFlow().getHandlercount();
+//        addFlowHandlers(operationinflow, count, oprationmd.getInFlow(), serviceClassLoader);
+//
+//        FlowImpl operationutflow = new FlowImpl();
+//        count = oprationmd.getOutFlow().getHandlercount();
+//        addFlowHandlers(operationutflow, count, oprationmd.getOutFlow(), serviceClassLoader);
+//
+//        FlowImpl operationfaultflow = new FlowImpl();
+//        count = oprationmd.getFaultFlow().getHandlercount();
+//        addFlowHandlers(operationfaultflow, count, oprationmd.getFaultFlow(), serviceClassLoader);
+//
+//
+//        QName opname = new QName(oprationmd.getName());
+//        AxisOperation operation = new SimpleAxisOperationImpl(opname);
+//
+//        service.addOperation(operation);
+//
+//
+//        ExecutionChain inchain = new ExecutionChain();
+//        inchain.addPhase(new Phase(Constants.PHASE_TRANSPORT));
+//        inchain.addPhase(new Phase(Constants.PHASE_GLOBAL));
+//
+//        /**
+//         * todo in this implematation all the handers in the servcie
+//         * i have asume as one phase bt that is not the case
+//         * I have to modify that getting all the pahse and
+//         * accooding tp that i have to create phases
+//         */
+//        Phase inservicephase = new Phase(Constants.PHASE_SERVICE);
+//        HandlerMetaData[] handlerMetaDatas = serviceMetaData.getFlowHandlers(INFLOWST);
+//        for (int i = 0; i < handlerMetaDatas.length; i++) {
+//            HandlerMetaData handlerMetaData = handlerMetaDatas[i];
+//            Handler handler = castHandlerMetaData(handlerMetaData, serviceClassLoader);
+//            //TODO
+//            //handler.setName(new QName(handlerMetaData.getName()));
+//            inservicephase.addHandler(handler);
+//        }
+//        inchain.addPhase(inservicephase);
+//
+//
+//        ExecutionChain outchain = new ExecutionChain();
+//        outchain.addPhase(new Phase(Constants.PHASE_TRANSPORT));
+//        outchain.addPhase(new Phase(Constants.PHASE_GLOBAL));
+//
+//        Phase outservicephase = new Phase(Constants.PHASE_SERVICE);
+//        handlerMetaDatas = serviceMetaData.getFlowHandlers(OUTFLOWST);
+//        for (int i = 0; i < handlerMetaDatas.length; i++) {
+//            HandlerMetaData handlerMetaData = handlerMetaDatas[i];
+//            Handler handler = castHandlerMetaData(handlerMetaData, serviceClassLoader);
+//            handler.setName(new QName(handlerMetaData.getName()));
+//            outservicephase.addHandler(handler);
+//        }
+//        outchain.addPhase(outservicephase);
+//
+//
+//        ExecutionChain faultchain = new ExecutionChain();
+//        faultchain.addPhase(new Phase(Constants.PHASE_TRANSPORT));
+//        faultchain.addPhase(new Phase(Constants.PHASE_GLOBAL));
+//
+//        Phase faultservicephase = new Phase(Constants.PHASE_SERVICE);
+//        handlerMetaDatas = serviceMetaData.getFlowHandlers(FAILTFLOWST);
+//        for (int i = 0; i < handlerMetaDatas.length; i++) {
+//            HandlerMetaData handlerMetaData = handlerMetaDatas[i];
+//            Handler handler = castHandlerMetaData(handlerMetaData, serviceClassLoader);
+//            handler.setName(new QName(handlerMetaData.getName()));
+//            faultservicephase.addHandler(handler);
+//        }
+//        outchain.addPhase(faultservicephase);
+//
+//        service.setExecutableInChain(inchain);
+//        service.setExecutableOutChain(outchain);
+//        service.setExecutableFaultChain(faultchain);
+//
+//        engineRegistry.addService(service);
     }
 
 
@@ -350,30 +371,30 @@
      * @param count
      */
     private void addFlowHandlers(Flow flow, int count, FlowMetaData flowmetadata, ClassLoader
parent) throws AxisFault {
-        for (int j = 0; j < count; j++) {
-            //todo handle exception in properway
-            HandlerMetaData handlermd = flowmetadata.getHandler(j);
-            Class handlerClass = null;
-            Handler handler;
-            handlerClass = getHandlerClass(handlermd.getClassName(), currentFileItem.getFile(),
parent);
-            try {
-                handler = (Handler) handlerClass.newInstance();
-            } catch (InstantiationException e) {
-                throw new AxisFault(e.getMessage());
-            } catch (IllegalAccessException e) {
-                throw new AxisFault(e.getMessage());
-            }
-            handler.setName(new QName(handlermd.getName()));
-            int paracount = handlermd.getParacount();
-            for (int k = 0; k < paracount; k++) {
-                ParameterMetaData paraMD = handlermd.getParameter(k);
-                //todo check with srinath whether this is correct
-//FIXME 
-//                Parameter parameter = new ParameterImpl(paraMD.getName(), paraMD.getElement());
-//                handler.addParameter(parameter);
-            }
-            flow.addHandler(handler);
-        }
+//        for (int j = 0; j < count; j++) {
+//            //todo handle exception in properway
+//            HandlerMetaData handlermd = flowmetadata.getHandler(j);
+//            Class handlerClass = null;
+//            Handler handler;
+//            handlerClass = getHandlerClass(handlermd.getClassName(), currentFileItem.getFile(),
parent);
+//            try {
+//                handler = (Handler) handlerClass.newInstance();
+//            } catch (InstantiationException e) {
+//                throw new AxisFault(e.getMessage());
+//            } catch (IllegalAccessException e) {
+//                throw new AxisFault(e.getMessage());
+//            }
+//            handler.setName(new QName(handlermd.getName()));
+//            int paracount = handlermd.getParacount();
+//            for (int k = 0; k < paracount; k++) {
+//                ParameterMetaData paraMD = handlermd.getParameter(k);
+//                //todo check with srinath whether this is correct
+////FIXME 
+////                Parameter parameter = new ParameterImpl(paraMD.getName(), paraMD.getElement());
+////                handler.addParameter(parameter);
+//            }
+//            flow.addHandler(handler);
+//        }
     }
 
 

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/description/Flow.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/description/Flow.java?view=diff&rev=111465&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/description/Flow.java&r1=111464&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/description/Flow.java&r2=111465
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/description/Flow.java
(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/description/Flow.java
Thu Dec  9 20:27:49 2004
@@ -23,6 +23,6 @@
  */
 public interface Flow{
     public int getHandlerCount();
-    public Handler getHandler(int index);
-    public void addHandler(Handler handler);
+    public HandlerMetaData getHandler(int index);
+    public void addHandler(HandlerMetaData handler);
 }

Added: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/description/HandlerMetaData.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/description/HandlerMetaData.java?view=auto&rev=111465
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/description/HandlerMetaData.java
Thu Dec  9 20:27:49 2004
@@ -0,0 +1,87 @@
+/*
+ * Copyright 2003,2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.axis.description;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axis.engine.Handler;
+
+/**
+ * @author Srinath Perera(hemapani@opensource.lk)
+ */
+public class HandlerMetaData implements ParameterInclude{
+    private  ParameterInclude parameterInclude;
+    private QName name;
+    private PhaseRule rules;
+    private Handler handler;
+    
+    /**
+     * @return
+     */
+    public QName getName() {
+        return name;
+    }
+
+    /**
+     * @return
+     */
+    public PhaseRule getRules() {
+        return rules;
+    }
+
+    /**
+     * @param name
+     */
+    public void setName(QName name) {
+        this.name = name;
+    }
+
+    /**
+     * @param rule
+     */
+    public void setRules(PhaseRule rule) {
+        rules = rule;
+    }
+
+    /**
+     * @param param
+     */
+    public void addParameter(Parameter param) {
+        parameterInclude.addParameter(param);
+    }
+
+    /**
+     * @param name
+     * @return
+     */
+    public Parameter getParameter(String name) {
+        return parameterInclude.getParameter(name);
+    }
+
+    /**
+     * @return
+     */
+    public Handler getHandler() {
+        return handler;
+    }
+
+    /**
+     * @param handler
+     */
+    public void setHandler(Handler handler) {
+        this.handler = handler;
+    }
+}

Added: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/description/PhaseRule.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/description/PhaseRule.java?view=auto&rev=111465
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/description/PhaseRule.java
Thu Dec  9 20:27:49 2004
@@ -0,0 +1,23 @@
+/*
+ * Copyright 2003,2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.axis.description;
+
+/**
+ * @author Srinath Perera(hemapani@opensource.lk)
+ */
+public class PhaseRule {
+
+}

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Handler.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Handler.java?view=diff&rev=111465&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Handler.java&r1=111464&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Handler.java&r2=111465
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Handler.java
(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Handler.java
Thu Dec  9 20:27:49 2004
@@ -16,13 +16,16 @@
 
 package org.apache.axis.engine;
 
-import org.apache.axis.context.MessageContext;
-
+import java.io.Serializable;
 
 import javax.xml.namespace.QName;
-import java.io.Serializable;
 
-public interface Handler extends Serializable {
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.description.HandlerMetaData;
+import org.apache.axis.description.Parameter;
+
+public interface Handler extends Serializable{
+    public void init(HandlerMetaData handlerdesc);
     /**
      * Invoke is called to do the actual work of the Handler object.
      * If there is a fault during the processing of this method it is
@@ -46,7 +49,7 @@
      */
     public void revoke(MessageContext msgContext);
 
-    public void setName(QName name);
-
     public QName getName();
+    public Parameter getParameter(String name);    
+    public void cleanup() throws AxisFault;
 }

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/description/FlowImpl.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/description/FlowImpl.java?view=diff&rev=111465&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/description/FlowImpl.java&r1=111464&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/description/FlowImpl.java&r2=111465
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/description/FlowImpl.java
(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/description/FlowImpl.java
Thu Dec  9 20:27:49 2004
@@ -16,12 +16,11 @@
 
 package org.apache.axis.impl.description;
 
-import org.apache.axis.description.Flow;
-import org.apache.axis.engine.Handler;
-
-
 import java.util.Vector;
 
+import org.apache.axis.description.Flow;
+import org.apache.axis.description.HandlerMetaData;
+
 /**
  * @author hemapani@opensource.lk
  */
@@ -30,11 +29,11 @@
    public FlowImpl(){
         list = new Vector();
    }
-   public void addHandler(Handler handler) {
+   public void addHandler(HandlerMetaData handler) {
        list.add(handler);
    }
-   public Handler getHandler(int index) {
-       return (Handler)list.get(index);
+   public HandlerMetaData getHandler(int index) {
+       return (HandlerMetaData)list.get(index);
    }
    public int getHandlerCount() {
        return list.size();

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/handlers/AbstractHandler.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/handlers/AbstractHandler.java?view=diff&rev=111465&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/handlers/AbstractHandler.java&r1=111464&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/handlers/AbstractHandler.java&r2=111465
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/handlers/AbstractHandler.java
(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/handlers/AbstractHandler.java
Thu Dec  9 20:27:49 2004
@@ -15,45 +15,43 @@
  */
 package org.apache.axis.impl.handlers;
 
+import javax.xml.namespace.QName;
+
 import org.apache.axis.context.MessageContext;
+import org.apache.axis.description.HandlerMetaData;
 import org.apache.axis.description.Parameter;
 import org.apache.axis.engine.AxisFault;
 import org.apache.axis.engine.Handler;
 
-import javax.xml.namespace.QName;
-
 /**
  * @author Srinath Perera (hemapani@opensource.lk)
  */
 public abstract class AbstractHandler implements Handler {
-    private QName name;
+    protected HandlerMetaData handlerDesc;
+    
+    public AbstractHandler(){
+    }
 
     public QName getName() {
-        return name;
+        return handlerDesc.getName();
     }
 
-    public void invoke(MessageContext msgContext) throws AxisFault {
-    }
+    public abstract void invoke(MessageContext msgContext) throws AxisFault;
 
     public void revoke(MessageContext msgContext) {
     }
 
-    public void setName(QName name) {
-        this.name = name;
-    }
-
-    public void addParameter(Parameter param) {
-        //TODO
-    }
 
+ 
     public void cleanup() throws AxisFault {
     }
 
-    public Parameter getParameter(String key) {
-        //TODO
-        return null;
+
+    public Parameter getParameter(String name) {
+        return handlerDesc.getParameter(name);
     }
 
-    public void init() throws AxisFault {
+    public void init(HandlerMetaData handlerdesc) {
+        this.handlerDesc = handlerdesc;
     }
 }

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/module1/Handler3.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/module1/Handler3.java?view=diff&rev=111465&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/module1/Handler3.java&r1=111464&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/module1/Handler3.java&r2=111465
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/module1/Handler3.java
(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/module1/Handler3.java
Thu Dec  9 20:27:49 2004
@@ -23,8 +23,9 @@
 import org.apache.axis.engine.Handler;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.axis.impl.handlers.AbstractHandler;
 
-public class Handler3 implements Handler {
+public class Handler3 extends AbstractHandler implements Handler {
     private Log log = LogFactory.getLog(getClass());
     private String message;
     private QName name;

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/module2/Handler4.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/module2/Handler4.java?view=diff&rev=111465&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/module2/Handler4.java&r1=111464&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/module2/Handler4.java&r2=111465
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/module2/Handler4.java
(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/module2/Handler4.java
Thu Dec  9 20:27:49 2004
@@ -23,9 +23,10 @@
 import org.apache.axis.engine.Handler;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.axis.impl.handlers.AbstractHandler;
 
 
-public class Handler4  implements Handler {
+public class Handler4  extends AbstractHandler implements Handler {
     private Log log = LogFactory.getLog(getClass());private String message;
     private QName name;
     public Handler4() {

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/service1/Handler1.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/service1/Handler1.java?view=diff&rev=111465&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/service1/Handler1.java&r1=111464&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/service1/Handler1.java&r2=111465
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/service1/Handler1.java
(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/service1/Handler1.java
Thu Dec  9 20:27:49 2004
@@ -23,8 +23,9 @@
 import org.apache.axis.engine.Handler;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.axis.impl.handlers.AbstractHandler;
 
-public class Handler1 implements Handler {
+public class Handler1 extends AbstractHandler implements Handler {
     private Log log = LogFactory.getLog(getClass());
     private String message;
     private QName name;

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/service2/Handler2.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/service2/Handler2.java?view=diff&rev=111465&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/service2/Handler2.java&r1=111464&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/service2/Handler2.java&r2=111465
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/service2/Handler2.java
(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/service2/Handler2.java
Thu Dec  9 20:27:49 2004
@@ -23,8 +23,9 @@
 import org.apache.axis.engine.Handler;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.axis.impl.handlers.AbstractHandler;
 
-public class Handler2  implements Handler {
+public class Handler2  extends AbstractHandler implements Handler {
     private Log log = LogFactory.getLog(getClass());
     private String message;
     private QName name;

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/EngineUtils.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/EngineUtils.java?view=diff&rev=111465&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/EngineUtils.java&r1=111464&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/EngineUtils.java&r2=111465
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/EngineUtils.java
(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/EngineUtils.java
Thu Dec  9 20:27:49 2004
@@ -18,7 +18,10 @@
 import java.io.IOException;
 import java.net.ServerSocket;
 
+import javax.xml.namespace.QName;
+
 import org.apache.axis.description.Flow;
+import org.apache.axis.description.HandlerMetaData;
 import org.apache.axis.impl.transport.http.SimpleHTTPReceiver;
 
 /**
@@ -27,12 +30,13 @@
 public class EngineUtils {
     public static final int TESTING_PORT = 7777;
     public static final String FAILURE_MESSAGE = "Intentional Faliure";
+    private static int index = 0; 
     
     public static void addHandlers(Flow flow,ExecutionChain exeChain,String phaseName) throws
AxisFault{
         if(flow != null){
             int handlerCount = flow.getHandlerCount();
             for(int i = 0;i<handlerCount;i++){
-                exeChain.addHandler(phaseName,flow.getHandler(i));
+                exeChain.addHandler(phaseName,flow.getHandler(i).getHandler());
             }
         }
     }
@@ -46,6 +50,14 @@
         thisThread.setDaemon(true);
         thisThread.start();
         return sas;
+    }
+    
+    public static void addHandler(Flow flow, Handler handler){
+        HandlerMetaData hmd = new HandlerMetaData();
+        hmd.setName(new QName("",String.valueOf(index)));
+        index++;
+        hmd.setHandler(handler);
+        flow.addHandler(hmd);
     }
 
 }

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/HandlerFaliureTest.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/HandlerFaliureTest.java?view=diff&rev=111465&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/HandlerFaliureTest.java&r1=111464&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/HandlerFaliureTest.java&r2=111465
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/HandlerFaliureTest.java
(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/HandlerFaliureTest.java
Thu Dec  9 20:27:49 2004
@@ -74,12 +74,12 @@
         AxisService service = new SimpleAxisServiceImpl(serviceName);
         
         Flow flow = new FlowImpl();
-        flow.addHandler(new SpeakingHandler());
-        flow.addHandler(new SpeakingHandler());
-        flow.addHandler(new SpeakingHandler());
-        flow.addHandler(new SpeakingHandler());
-        flow.addHandler(culprit);
-        flow.addHandler(new SpeakingHandler());
+        EngineUtils.addHandler(flow,new SpeakingHandler());
+        EngineUtils.addHandler(flow,new SpeakingHandler());
+        EngineUtils.addHandler(flow,new SpeakingHandler());
+        EngineUtils.addHandler(flow,new SpeakingHandler());
+        EngineUtils.addHandler(flow,culprit);
+        EngineUtils.addHandler(flow,new SpeakingHandler());
         service.setInFlow(flow);
         
         service.setClassLoader(Thread.currentThread().getContextClassLoader());
@@ -115,21 +115,21 @@
         AxisService service = new SimpleAxisServiceImpl(serviceName);
         
         Flow flow = new FlowImpl();
-        flow.addHandler(new SpeakingHandler());
-        flow.addHandler(new SpeakingHandler());
-        flow.addHandler(new SpeakingHandler());
-        flow.addHandler(new SpeakingHandler());
-        flow.addHandler(new SpeakingHandler());
+        EngineUtils.addHandler(flow,new SpeakingHandler());
+        EngineUtils.addHandler(flow,new SpeakingHandler());
+        EngineUtils.addHandler(flow,new SpeakingHandler());
+        EngineUtils.addHandler(flow,new SpeakingHandler());
+        EngineUtils.addHandler(flow,new SpeakingHandler());
         service.setInFlow(flow);
         
         
         flow = new FlowImpl();
-        flow.addHandler(new SpeakingHandler());
-        flow.addHandler(new SpeakingHandler());
-        flow.addHandler(new SpeakingHandler());
-        flow.addHandler(new SpeakingHandler());
-        flow.addHandler(culprit);
-        flow.addHandler(new SpeakingHandler());
+        EngineUtils.addHandler(flow,new SpeakingHandler());
+        EngineUtils.addHandler(flow,new SpeakingHandler());
+        EngineUtils.addHandler(flow,new SpeakingHandler());
+        EngineUtils.addHandler(flow,new SpeakingHandler());
+        EngineUtils.addHandler(flow,culprit);
+        EngineUtils.addHandler(flow,new SpeakingHandler());
         service.setInFlow(flow);
         
         service.setClassLoader(Thread.currentThread().getContextClassLoader());

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/MockFlow.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/MockFlow.java?view=diff&rev=111465&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/MockFlow.java&r1=111464&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/MockFlow.java&r2=111465
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/MockFlow.java
(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/MockFlow.java
Thu Dec  9 20:27:49 2004
@@ -17,6 +17,7 @@
 package org.apache.axis.registry;
 
 import org.apache.axis.description.Flow;
+import org.apache.axis.engine.EngineUtils;
 import org.apache.axis.impl.description.FlowImpl;
 
 
@@ -25,7 +26,7 @@
         super();
         for (int i = 0; i < length; i++) {
             SpeakingHandler1 h1 = new SpeakingHandler1("Executing " + i + " inside " + message);
-            super.addHandler(h1);
+            EngineUtils.addHandler(this,h1);
         }
     }
 

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/SpeakingHandler.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/SpeakingHandler.java?view=diff&rev=111465&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/SpeakingHandler.java&r1=111464&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/SpeakingHandler.java&r2=111465
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/SpeakingHandler.java
(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/SpeakingHandler.java
Thu Dec  9 20:27:49 2004
@@ -21,10 +21,11 @@
 import org.apache.axis.context.MessageContext;
 import org.apache.axis.engine.AxisFault;
 import org.apache.axis.engine.Handler;
+import org.apache.axis.impl.handlers.AbstractHandler;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-public class SpeakingHandler  implements Handler {
+public class SpeakingHandler extends AbstractHandler implements Handler {
     private Log log = LogFactory.getLog(getClass());
     private String message;
     private QName name;

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/SpeakingHandler1.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/SpeakingHandler1.java?view=diff&rev=111465&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/SpeakingHandler1.java&r1=111464&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/SpeakingHandler1.java&r2=111465
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/SpeakingHandler1.java
(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/SpeakingHandler1.java
Thu Dec  9 20:27:49 2004
@@ -21,10 +21,11 @@
 import org.apache.axis.context.MessageContext;
 import org.apache.axis.engine.AxisFault;
 import org.apache.axis.engine.Handler;
+import org.apache.axis.impl.handlers.AbstractHandler;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-public class SpeakingHandler1  implements Handler {
+public class SpeakingHandler1  extends AbstractHandler implements Handler {
     private Log log = LogFactory.getLog(getClass());
     private String message;
     private QName name;

Mime
View raw message