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 he...@apache.org on 2004/11/18 04:07:26 UTC

svn commit: rev 76213 - in webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya: . src/java/org/apache/axis src/java/org/apache/axis/addressing src/java/org/apache/axis/async src/java/org/apache/axis/client src/java/org/apache/axis/context src/java/org/apache/axis/core src/java/org/apache/axis/core/addresing src/java/org/apache/axis/core/aysnc src/java/org/apache/axis/core/context src/java/org/apache/axis/core/exec src/java/org/apache/axis/core/registry src/java/org/apache/axis/core/sync src/java/org/apache/axis/encoding src/java/org/apache/axis/encoding/push src/java/org/apache/axis/engine src/java/org/apache/axis/handlers src/java/org/apache/axis/message src/java/org/apache/axis/providers src/java/org/apache/axis/registry src/java/org/apache/axis/schema src/java/org/apache/axis/soap src/java/org/apache/axis/transport src/java/org/apache/axis/transport/http src/test/org/apache/axis/engine src/test/org/apache/axis/engine/registry src/test/org/apache/axis/om

Author: hemapani
Date: Wed Nov 17 19:07:25 2004
New Revision: 76213

Added:
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/client/
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/client/Call.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/AbstractContainer.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/AxisEngine.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/AxisFault.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/Constants.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/EngineUtils.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/Global.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/Handler.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/Operation.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/Provider.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/Sender.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/Service.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/SimpleGlobal.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/SimpleModule.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/SimpleOperation.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/SimpleService.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/SimpleTransport.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/Transport.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/addresing/
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/addresing/SOAPNodeAddress.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/addresing/SoapAddressingContext.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/aysnc/
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/aysnc/Dispatcher.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/aysnc/MessageQueue.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/context/
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/context/GlobalContext.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/context/MessageContext.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/context/SessionContext.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/context/SimpleSessionContext.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/exec/
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/exec/Constants.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/exec/ExecutionChain.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/exec/Phase.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/AbstractEngineElement.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/ConcreateFlow.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/ConcreateFlowInclude.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/ConcreateModuleInclude.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/ConcreateParameter.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/ConcreateTypeMappingInclude.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/EngineElement.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/EngineRegistry.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/Flow.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/FlowInclude.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/Module.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/ModuleInclude.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/NamedEngineElement.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/Parameter.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/SimpleEngineRegistry.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/TypeMapping.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/TypeMappingInclude.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/sync/
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/encoding/DataBinder.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/encoding/push/
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/encoding/push/Pusher.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/test/org/apache/axis/engine/Utils.java
Removed:
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/AxisFault.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/CommonExecutor.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/Constants.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/Handler.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/Provider.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/addressing/
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/async/
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/context/
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/encoding/Deserializer.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/encoding/XMLPullParser.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/engine/
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/message/
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/registry/
Modified:
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/project.xml
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/handlers/AbstractHandler.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/handlers/RPCOpNameFinder.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/providers/ASyncProvider.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/providers/AbstractProvider.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/providers/SimpleJavaProvider.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/providers/SyncProvider.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/schema/SchemaVersion1999.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/schema/SchemaVersion2000.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/schema/SchemaVersion2001.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/soap/SOAP11Constants.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/soap/SOAP12Constants.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/transport/TransportSender.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/transport/http/SimpleAxisServer.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/transport/http/SimpleAxisWorker.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/test/org/apache/axis/engine/EchoTest.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/test/org/apache/axis/engine/EngineTest.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/test/org/apache/axis/engine/registry/MockFlow.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/test/org/apache/axis/engine/registry/SpeakingHandler.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/test/org/apache/axis/engine/registry/SpeakingProvider.java
   webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/test/org/apache/axis/om/OMTest.java
Log:
remove the commen Executers and add Phased handlers support, code can run the engine loop, the OM support is on it way in, need more clean ups to done and please do not try to build right now. check in the logic before the chat

Modified: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/project.xml
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/project.xml	(original)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/project.xml	Wed Nov 17 19:07:25 2004
@@ -148,14 +148,6 @@
             </properties>
         </dependency>
         <dependency>
-            <groupId>axis</groupId>
-            <artifactId>omAPI</artifactId>
-            <version>SNAPSHOT</version>
-            <properties>
-                <module>true</module>
-            </properties>
-        </dependency>
-        <dependency>
             <groupId>xpp3</groupId>
             <artifactId>xpp3</artifactId>
             <version>1.1.3.3</version>

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/client/Call.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/client/Call.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,26 @@
+/*
+ * 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.client;
+
+/**
+ * @author Srinath Perera (hemapani@opensource.lk)
+ */
+public class Call {
+    public Object[] invoke(Object[] obj){
+           return null;
+    }
+
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/AbstractContainer.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/AbstractContainer.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,159 @@
+/*
+ * Copyright 2001-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.core;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axis.core.context.MessageContext;
+import org.apache.axis.core.registry.AbstractEngineElement;
+import org.apache.axis.core.registry.ConcreateFlowInclude;
+import org.apache.axis.core.registry.ConcreateModuleInclude;
+import org.apache.axis.core.registry.ConcreateTypeMappingInclude;
+import org.apache.axis.core.registry.EngineElement;
+import org.apache.axis.core.registry.Flow;
+import org.apache.axis.core.registry.FlowInclude;
+import org.apache.axis.core.registry.Module;
+import org.apache.axis.core.registry.ModuleInclude;
+import org.apache.axis.core.registry.TypeMapping;
+import org.apache.axis.core.registry.TypeMappingInclude;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * This class use delegeation to give the multiple inheritance effect 
+ * which is prefered over the generalization. 
+ * @author (Srinath Perera)hemapani@opensource.lk
+ */
+public abstract class AbstractContainer 
+            extends AbstractEngineElement 
+            implements FlowInclude,EngineElement,
+                TypeMappingInclude,ModuleInclude {
+    private Log log = LogFactory.getLog(getClass());                    
+
+    
+    //the work is delegated to ConcreateXXInclude classes                       
+    protected FlowInclude flowInclude;
+    protected ModuleInclude modules;
+    protected TypeMappingInclude typemappings;
+
+    public AbstractContainer(){
+        flowInclude = new ConcreateFlowInclude();
+        modules = new ConcreateModuleInclude();
+        typemappings = new ConcreateTypeMappingInclude();
+    }
+    /**
+     * @return
+     */
+    public Flow getFaultFlow() {
+        return flowInclude.getFaultFlow();
+    }
+
+    /**
+     * @return
+     */
+    public Flow getInFlow() {
+        return flowInclude.getInFlow();
+    }
+
+    /**
+     * @return
+     */
+    public Flow getOutFlow() {
+        return flowInclude.getOutFlow();
+    }
+
+    /**
+     * @param flow
+     */
+    public void setFaultFlow(Flow flow) {
+        flowInclude.setFaultFlow(flow);
+    }
+
+    /**
+     * @param flow
+     */
+    public void setInFlow(Flow flow) {
+        flowInclude.setInFlow(flow);
+    }
+
+    /**
+     * @param flow
+     */
+    public void setOutFlow(Flow flow) {
+        flowInclude.setOutFlow(flow);
+    }
+
+    /**
+     * @param typeMapping
+     */
+    public void addTypeMapping(TypeMapping typeMapping) {
+        typemappings.addTypeMapping(typeMapping);
+    }
+
+    /**
+     * @param javaType
+     * @return
+     */
+    public TypeMapping getTypeMapping(Class javaType) {
+        return typemappings.getTypeMapping(javaType);
+    }
+
+    /**
+     * @param index
+     * @return
+     */
+    public TypeMapping getTypeMapping(int index) {
+        return typemappings.getTypeMapping(index);
+    }
+
+    /**
+     * @param xmlType
+     * @return
+     */
+    public TypeMapping getTypeMapping(QName xmlType) {
+        return typemappings.getTypeMapping(xmlType);
+    }
+
+    /**
+     * @return
+     */
+    public int getTypeMappingCount() {
+        return typemappings.getTypeMappingCount();
+    }
+
+    /**
+     * @param module
+     */
+    public void addModule(Module module) {
+        modules.addModule(module);
+    }
+
+    /**
+     * @param index
+     * @return
+     */
+    public Module getModule(int index) {
+        return modules.getModule(index);
+    }
+
+    /**
+     * @return
+     */
+    public int getModuleCount() {
+        return modules.getModuleCount();
+    }
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/AxisEngine.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/AxisEngine.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,99 @@
+/*
+ * Copyright 2001-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.core;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axis.core.context.MessageContext;
+import org.apache.axis.core.exec.ExecutionChain;
+import org.apache.axis.core.registry.EngineRegistry;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ *  There is one engine for the Server and the Client. the send() and recive() 
+ *  Methods are the basic operations the Sync, Async messageing are build on top.
+ *  Two methods will find and execute the <code>CommonExecuter</code>'s Transport,
+ *  Global,Service.  
+ */
+public class AxisEngine {
+    private Log log = LogFactory.getLog(getClass());
+    private EngineRegistry registry;
+    public AxisEngine(EngineRegistry registry){
+        log.info("Axis Engine Started");        
+        this.registry = registry;
+    }
+
+    public void send(MessageContext mc)throws AxisFault{
+        QName currentServiceName = null;
+        Service service = null;
+        //dispatch the service Name
+        currentServiceName = mc.getCurrentService();
+        service = registry.getService(currentServiceName);
+        try{
+            ExecutionChain exeChain = service.getOutputExecutionChain();
+            exeChain.invoke(mc);
+        }catch(AxisFault e){
+            if(mc.isProcessingFault()){
+                //TODO log and exit
+                log.debug("Error in fault flow",e);
+            }else{
+                log.debug("send failed",e);
+                mc.setProcessingFault(true);
+                ExecutionChain faultExeChain = service.getFaultExecutionChain();
+                faultExeChain.invoke(mc);
+            }
+        }
+        log.info("end the send()");
+    }
+    
+    public void recive(MessageContext mc)throws AxisFault{
+        QName currentServiceName = null;
+        Service service = null;
+
+        currentServiceName = mc.getCurrentService();
+        service = registry.getService(currentServiceName);
+
+        try{
+            ExecutionChain exeChain = service.getInputExecutionChain();
+            exeChain.invoke(mc);
+        }catch(AxisFault e){
+            if(mc.isProcessingFault()){
+                //TODO log and exit
+                log.debug("Error in fault flow",e);
+            }else{
+                log.debug("recive failed",e);
+                mc.setProcessingFault(true);
+                ExecutionChain faultExeChain = service.getFaultExecutionChain();
+                faultExeChain.invoke(mc);
+            }
+        }
+        log.info("end the recive()");
+    }    
+	/**
+	 * @return Returns the registry.
+	 */
+	public EngineRegistry getRegistry() {
+		return registry;
+	}
+	/**
+	 * @param registry The registry to set.
+	 */
+	public void setRegistry(EngineRegistry registry) {
+		this.registry = registry;
+	}
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/AxisFault.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/AxisFault.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,90 @@
+/*
+ * Copyright 2001-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.core;
+
+import java.lang.reflect.InvocationTargetException;
+
+
+/**
+ * An exception which maps cleanly to a SOAP fault.
+ * This is a base class for exceptions which are mapped to faults.
+ * SOAP faults contain
+ * <ol>
+ * <li>A fault string
+ * <li>A fault code
+ * <li>A fault actor
+ * <li>Fault details; an xml tree of fault specific stuff
+ * </ol>
+ * @author Doug Davis (dug@us.ibm.com)
+ * @author James Snell (jasnell@us.ibm.com)
+ * @author Steve Loughran
+ */
+
+public class AxisFault extends java.rmi.RemoteException {
+    /**
+     * 
+     */
+    public AxisFault() {
+        super();
+        // TODO Auto-generated constructor stub
+    }
+
+    /**
+     * @param arg0
+     */
+    public AxisFault(String arg0) {
+        super(arg0);
+        // TODO Auto-generated constructor stub
+    }
+
+    /**
+     * @param arg0
+     * @param arg1
+     */
+    public AxisFault(String arg0, Throwable arg1) {
+        super(arg0, arg1);
+        // TODO Auto-generated constructor stub
+    }
+    
+    /**
+    * Make an AxisFault based on a passed Exception.  If the Exception is
+    * already an AxisFault, simply use that.  Otherwise, wrap it in an
+    * AxisFault.  If the Exception is an InvocationTargetException (which
+    * already wraps another Exception), get the wrapped Exception out from
+    * there and use that instead of the passed one.
+    *
+    * @param e the <code>Exception</code> to build a fault for
+    * @return  an <code>AxisFault</code> representing <code>e</code>
+    */
+   public static AxisFault makeFault(Exception e)
+   {
+       if (e instanceof InvocationTargetException) {
+           Throwable t = ((InvocationTargetException)e).getTargetException();
+           if (t instanceof Exception) {
+               e = (Exception)t;
+           }
+       }
+
+       if (e instanceof AxisFault) {
+           return (AxisFault)e;
+       }
+
+       return new AxisFault(e.getMessage(),e);
+   }
+
+
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/Constants.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/Constants.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,751 @@
+/*
+ * 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.core;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axis.schema.SchemaVersion1999;
+import org.apache.axis.schema.SchemaVersion2000;
+import org.apache.axis.schema.SchemaVersion2001;
+import org.apache.axis.soap.SOAPConstants;
+import org.xml.sax.Attributes;
+
+/**
+ * @author Srinath Perera(hemapani@opensource.lk)
+ */
+public class Constants {
+    public static final int SOAP_STYLE_RPC_ENCODED = 1000;
+    public static final int SOAP_STYLE_RPC_LITERAL = 1001;
+    public static final int SOAP_STYLE_DOC_LITRAL_WRAPPED = 1002;
+    public static final int SOAP_STYLE_DOC_LITRAL_UNWRAPPED = 1003;
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    public static final String APPLICATION_SCOPE = "application";
+    public static final String SESSION_SCOPE = "session";
+    public static final String GLOBAL_SCOPE = "global";
+    
+    // Some common Constants that should be used in local handler options
+    // (Not all implementations will have these concepts - for example
+    //  not all Engines will have notion of registries but defining these
+    //  here should allow people to ask if they exist)
+    //////////////////////////////////////////////////////////////////////////
+
+    // Namespace Prefix Constants
+    //////////////////////////////////////////////////////////////////////////
+    public static final String NS_PREFIX_SOAP_ENV   = "soapenv";
+    public static final String NS_PREFIX_SOAP_ENC   = "soapenc";
+    public static final String NS_PREFIX_SCHEMA_XSI = "xsi" ;
+    public static final String NS_PREFIX_SCHEMA_XSD = "xsd" ;
+    public static final String NS_PREFIX_WSDL       = "wsdl" ;
+    public static final String NS_PREFIX_WSDL_SOAP  = "wsdlsoap";
+    public static final String NS_PREFIX_XMLSOAP    = "apachesoap";
+    public static final String NS_PREFIX_XML        = "xml";
+
+    // Axis Namespaces
+    public static final String NS_URI_AXIS = "http://xml.apache.org/axis/";
+    public static final String NS_URI_XMLSOAP = "http://xml.apache.org/xml-soap";
+
+    // Special namespace URI to indicate an "automatically" serialized Java
+    // type.  This allows us to use types without needing explicit mappings,
+    // such that Java classes like "org.foo.Bar" map to QNames like
+    // {http://xml.apache.org/axis/java}org.foo.Bar
+    public static final String NS_URI_JAVA = "http://xml.apache.org/axis/java";
+
+    //
+    // Default SOAP version
+    //
+    public static final SOAPConstants DEFAULT_SOAP_VERSION =
+        SOAPConstants.SOAP11_CONSTANTS;
+
+    //
+    // SOAP-ENV Namespaces
+    //
+    public static final String URI_SOAP11_ENV =
+                                "http://schemas.xmlsoap.org/soap/envelope/" ;
+    public static final String URI_SOAP12_ENV =
+                                   "http://www.w3.org/2003/05/soap-envelope";
+    public static final String URI_DEFAULT_SOAP_ENV =
+        DEFAULT_SOAP_VERSION.getEnvelopeURI();
+
+    // fixme: this is unsafe - a client can (accidentaly or on purpose)
+    //  over-write the elemnts of this array. This pattern is used throughout
+    //  this file.
+    public static final String[] URIS_SOAP_ENV = {
+        URI_SOAP11_ENV,
+        URI_SOAP12_ENV,
+    };
+
+    // Constant name of the enterprise-style logging category.
+    // The enterprise category is for stuff that an enterprise product might
+    // want to track, but in a simple environment (like the AXIS build) would
+    // be nothing more than a nuisance.
+    public static final String ENTERPRISE_LOG_CATEGORY = "org.apache.axis.enterprise";
+
+    /**
+     * time logged stuff.
+     */
+    public static final String TIME_LOG_CATEGORY = "org.apache.axis.TIME";
+
+    /**
+     * Servlet exceptions. Axis faults are logged at debug level here.
+     */
+    public static final String EXCEPTION_LOG_CATEGORY = "org.apache.axis.EXCEPTIONS";
+
+    /** The name of the field which accepts xsd:any content in Beans. */
+    public static final String ANYCONTENT = "_any";
+    /**
+     * The size of the buffer size for.
+     */
+    public static final int HTTP_TXR_BUFFER_SIZE = 8 * 1024;
+
+    /**
+     * Returns true if the string is the SOAP_ENV Namespace.
+     *
+     * @param s  the string representation of a URI
+     * @return <code>true</code> if s represents any of the supported soap
+     *              envelope URI strings
+     */
+    public static boolean isSOAP_ENV(String s) {
+        for (int i=0; i<URIS_SOAP_ENV.length; i++) {
+            if (URIS_SOAP_ENV[i].equals(s)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+
+    public static final String URI_LITERAL_ENC = "";
+
+    //
+    // SOAP-ENC Namespaces
+    //
+    public static final String URI_SOAP11_ENC =
+                                "http://schemas.xmlsoap.org/soap/encoding/" ;
+    public static final String URI_SOAP12_ENC =
+                                   "http://www.w3.org/2003/05/soap-encoding";
+    public static final String URI_SOAP12_NOENC =
+                     "http://www.w3.org/2003/05/soap-envelope/encoding/none";
+    public static final String URI_DEFAULT_SOAP_ENC =
+        DEFAULT_SOAP_VERSION.getEncodingURI();
+
+    public static final String[] URIS_SOAP_ENC = {
+        URI_SOAP12_ENC,
+        URI_SOAP11_ENC,
+    };
+
+    /**
+     * Returns true if SOAP_ENC Namespace.
+     *
+     * @param s  a string representing the URI to check
+     * @return true if <code>s</code> matches a SOAP ENCODING namespace URI,
+     *              false otherwise
+     */
+    public static boolean isSOAP_ENC(String s) {
+        for (int i=0; i<URIS_SOAP_ENC.length; i++) {
+            if (URIS_SOAP_ENC[i].equals(s)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * This utility routine returns the value of an attribute which might
+     * be in one of several namespaces.
+     *
+     * @param attributes the attributes to search
+     * @param search an array of namespace URI strings to search
+     * @param localPart is the local part of the attribute name
+     * @return the value of the attribute or null
+     */
+    public static String getValue(Attributes attributes,
+                                  String [] search,
+                                  String localPart) {
+        if (attributes == null || attributes.getLength() == 0 || search == null || localPart == null)
+            return null;
+
+        int len = attributes.getLength();
+
+        for (int i=0; i < len; i++) {
+            if (attributes.getLocalName(i).equals(localPart)) {
+                String uri = attributes.getURI(i);
+                for (int j=0; j<search.length; j++) {
+                    if (search[j].equals(uri)) return attributes.getValue(i);
+                }
+            }
+        }
+
+        return null;
+    }
+
+    /**
+     * Search an attribute collection for a list of QNames, returning
+     * the value of the first one found, or null if none were found.
+     *
+     * @param attributes
+     * @param search
+     * @return the value of the attribute
+     */
+    public static String getValue(Attributes attributes,
+                                  QName [] search) {
+        if (attributes == null || search == null)
+            return null;
+
+        if (attributes.getLength() == 0) return null;
+
+        String value = null;
+        for (int i=0; (value == null) && (i < search.length); i++) {
+            value = attributes.getValue(search[i].getNamespaceURI(),
+                                        search[i].getLocalPart());
+        }
+
+        return value;
+    }
+
+    /**
+     * equals
+     * The first QName is the current version of the name.  The second qname is compared
+     * with the first considering all namespace uri versions.
+     * @param first Currently supported QName
+     * @param second any qname
+     * @return true if the qnames represent the same qname (paster namespace uri versions considered
+     */
+    public static boolean equals(QName first, QName second) {
+        if (first == second) {
+            return true;
+        }
+        if (first==null || second==null) {
+            return false;
+        }
+        if (first.equals(second)) {
+            return true;
+        }
+        if (!first.getLocalPart().equals(second.getLocalPart())) {
+            return false;
+        }
+
+        String namespaceURI = first.getNamespaceURI();
+        String[] search = null;
+        if (namespaceURI.equals(URI_DEFAULT_SOAP_ENC))
+            search = URIS_SOAP_ENC;
+        else if (namespaceURI.equals(URI_DEFAULT_SOAP_ENV))
+            search = URIS_SOAP_ENV;
+        else if (namespaceURI.equals(URI_DEFAULT_SCHEMA_XSD))
+            search = URIS_SCHEMA_XSD;
+        else if (namespaceURI.equals(URI_DEFAULT_SCHEMA_XSI))
+            search = URIS_SCHEMA_XSI;
+        else
+            search = new String[] {namespaceURI};
+
+        for (int i=0; i < search.length; i++) {
+            if (search[i].equals(second.getNamespaceURI())) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    // Misc SOAP Namespaces / URIs
+    public static final String URI_SOAP11_NEXT_ACTOR =
+                                     "http://schemas.xmlsoap.org/soap/actor/next" ;
+    public static final String URI_SOAP12_NEXT_ROLE =
+                                     "http://www.w3.org/2003/05/soap-envelope/role/next";
+    /** @deprecated use URI_SOAP12_NEXT_ROLE */
+    public static final String URI_SOAP12_NEXT_ACTOR = URI_SOAP12_NEXT_ROLE;
+
+    public static final String URI_SOAP12_RPC =
+                                     "http://www.w3.org/2003/05/soap-rpc";
+
+    public static final String URI_SOAP12_NONE_ROLE =
+                         "http://www.w3.org/2003/05/soap-envelope/role/none";
+    public static final String URI_SOAP12_ULTIMATE_ROLE =
+             "http://www.w3.org/2003/05/soap-envelope/role/ultimateReceiver";
+
+    public static final String URI_SOAP11_HTTP =
+                                     "http://schemas.xmlsoap.org/soap/http";
+    public static final String URI_SOAP12_HTTP =
+                                    "http://www.w3.org/2003/05/http";
+
+    public static final String NS_URI_XMLNS =
+                                       "http://www.w3.org/2000/xmlns/";
+
+    public static final String NS_URI_XML =
+                                       "http://www.w3.org/XML/1998/namespace";
+
+    //
+    // Schema XSD Namespaces
+    //
+    public static final String URI_1999_SCHEMA_XSD =
+                                          "http://www.w3.org/1999/XMLSchema";
+    public static final String URI_2000_SCHEMA_XSD =
+                                       "http://www.w3.org/2000/10/XMLSchema";
+    public static final String URI_2001_SCHEMA_XSD =
+                                          "http://www.w3.org/2001/XMLSchema";
+
+    public static final String URI_DEFAULT_SCHEMA_XSD = URI_2001_SCHEMA_XSD;
+
+    public static final String[] URIS_SCHEMA_XSD = {
+        URI_1999_SCHEMA_XSD,
+        URI_2000_SCHEMA_XSD,
+        URI_2001_SCHEMA_XSD
+    };
+    public static final QName [] QNAMES_NIL = {
+        SchemaVersion2001.QNAME_NIL,
+        SchemaVersion2000.QNAME_NIL,
+        SchemaVersion1999.QNAME_NIL
+    };
+
+    /**
+     * Returns true if SchemaXSD Namespace.
+     *
+     * @param s  the string representing the URI to check
+     * @return true if s represents the Schema XSD namespace, false otherwise
+     */
+    public static boolean isSchemaXSD(String s) {
+        for (int i=0; i<URIS_SCHEMA_XSD.length; i++) {
+            if (URIS_SCHEMA_XSD[i].equals(s)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    //
+    // Schema XSI Namespaces
+    //
+    public static final String URI_1999_SCHEMA_XSI =
+                                 "http://www.w3.org/1999/XMLSchema-instance";
+    public static final String URI_2000_SCHEMA_XSI =
+                              "http://www.w3.org/2000/10/XMLSchema-instance";
+    public static final String URI_2001_SCHEMA_XSI =
+                                 "http://www.w3.org/2001/XMLSchema-instance";
+    public static final String URI_DEFAULT_SCHEMA_XSI = URI_2001_SCHEMA_XSI;
+
+    public static final String[] URIS_SCHEMA_XSI = {
+        URI_1999_SCHEMA_XSI,
+        URI_2000_SCHEMA_XSI,
+        URI_2001_SCHEMA_XSI,
+    };
+
+    /**
+     * Returns true if SchemaXSI Namespace.
+     *
+     * @param s  the string of the URI to check
+     * @return   true if <code>s</code> is a Schema XSI URI, false otherwise
+     */
+    public static boolean isSchemaXSI(String s) {
+        for (int i=0; i<URIS_SCHEMA_XSI.length; i++) {
+            if (URIS_SCHEMA_XSI[i].equals(s)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * WSDL Namespace.
+     */
+    public static final String NS_URI_WSDL11 =
+                                 "http://schemas.xmlsoap.org/wsdl/";
+
+    public static final String[] NS_URIS_WSDL = {
+        NS_URI_WSDL11,
+    };
+
+    /**
+     * Returns true if this is a WSDL Namespace.
+     *
+     * @param s  a string of a URI to check
+     * @return   true if <code>s</code> is a WSDL namespace URI, false otherwise
+     */
+    public static boolean isWSDL(String s) {
+        for (int i=0; i<NS_URIS_WSDL.length; i++) {
+            if (NS_URIS_WSDL[i].equals(s)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    //
+    // WSDL extensions for SOAP in DIME
+    // (http://gotdotnet.com/team/xml_wsspecs/dime/WSDL-Extension-for-DIME.htm)
+    //
+    public static final String URI_DIME_WSDL =
+                                 "http://schemas.xmlsoap.org/ws/2002/04/dime/wsdl/";
+
+    public static final String URI_DIME_CONTENT =
+                                 "http://schemas.xmlsoap.org/ws/2002/04/content-type/";
+
+    public static final String URI_DIME_REFERENCE=
+                                 "http://schemas.xmlsoap.org/ws/2002/04/reference/";
+
+    public static final String URI_DIME_CLOSED_LAYOUT=
+                                 "http://schemas.xmlsoap.org/ws/2002/04/dime/closed-layout";
+
+    public static final String URI_DIME_OPEN_LAYOUT=
+                                 "http://schemas.xmlsoap.org/ws/2002/04/dime/open-layout";
+
+    //
+    // WSDL SOAP Namespace
+    //
+    public static final String URI_WSDL11_SOAP =
+                                 "http://schemas.xmlsoap.org/wsdl/soap/";
+    public static final String URI_WSDL12_SOAP =
+                                 "http://schemas.xmlsoap.org/wsdl/soap12/";
+
+    public static final String[] NS_URIS_WSDL_SOAP = {
+        URI_WSDL11_SOAP,
+        URI_WSDL12_SOAP
+    };
+
+    /**
+     * Returns true if s is a WSDL SOAP Namespace.
+     *
+     * @param s  a string of a URI to check
+     * @return   true if <code>s</code> matches any of the WSDL SOAP namepace
+     *              URIs, false otherwise
+     */
+    public static boolean isWSDLSOAP(String s) {
+        for (int i=0; i<NS_URIS_WSDL_SOAP.length; i++) {
+            if (NS_URIS_WSDL_SOAP[i].equals(s)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    // Axis Mechanism Type
+    public static final String AXIS_SAX = "Axis SAX Mechanism";
+
+    public static final String ELEM_ENVELOPE = "Envelope" ;
+    public static final String ELEM_HEADER   = "Header" ;
+    public static final String ELEM_BODY     = "Body" ;
+    public static final String ELEM_FAULT    = "Fault" ;
+
+    public static final String ELEM_NOTUNDERSTOOD = "NotUnderstood";
+    public static final String ELEM_UPGRADE           = "Upgrade";
+    public static final String ELEM_SUPPORTEDENVELOPE = "SupportedEnvelope";
+
+    public static final String ELEM_FAULT_CODE   = "faultcode" ;
+    public static final String ELEM_FAULT_STRING = "faultstring" ;
+    public static final String ELEM_FAULT_DETAIL = "detail" ;
+    public static final String ELEM_FAULT_ACTOR  = "faultactor" ;
+
+    public static final String ELEM_FAULT_CODE_SOAP12 = "Code" ;
+    public static final String ELEM_FAULT_VALUE_SOAP12 = "Value" ;
+    public static final String ELEM_FAULT_SUBCODE_SOAP12 = "Subcode" ;
+    public static final String ELEM_FAULT_REASON_SOAP12 = "Reason" ;
+    public static final String ELEM_FAULT_NODE_SOAP12 = "Node" ;
+    public static final String ELEM_FAULT_ROLE_SOAP12 = "Role" ;
+    public static final String ELEM_FAULT_DETAIL_SOAP12 = "Detail" ;
+    public static final String ELEM_TEXT_SOAP12 = "Text" ;
+
+    public static final String ATTR_MUST_UNDERSTAND = "mustUnderstand" ;
+    public static final String ATTR_ENCODING_STYLE  = "encodingStyle" ;
+    public static final String ATTR_ACTOR           = "actor" ;
+    public static final String ATTR_ROLE            = "role" ;
+    public static final String ATTR_RELAY           = "relay" ;
+    public static final String ATTR_ROOT            = "root" ;
+    public static final String ATTR_ID              = "id" ;
+    public static final String ATTR_HREF            = "href" ;
+    public static final String ATTR_REF             = "ref" ;
+    public static final String ATTR_QNAME           = "qname";
+    public static final String ATTR_ARRAY_TYPE      = "arrayType";
+    public static final String ATTR_ITEM_TYPE       = "itemType";
+    public static final String ATTR_ARRAY_SIZE      = "arraySize";
+    public static final String ATTR_OFFSET          = "offset";
+    public static final String ATTR_POSITION        = "position";
+    public static final String ATTR_TYPE            = "type";
+    public static final String ATTR_HANDLERINFOCHAIN = "handlerInfoChain";
+
+    // Fault Codes
+    //////////////////////////////////////////////////////////////////////////
+    public static final String FAULT_CLIENT = "Client";
+
+    public static final String FAULT_SERVER_GENERAL =
+                                                   "Server.generalException";
+
+    public static final String FAULT_SERVER_USER =
+                                                   "Server.userException";
+
+    public static final QName FAULT_VERSIONMISMATCH =
+                                  new QName(URI_SOAP11_ENV, "VersionMismatch");
+
+    public static final QName FAULT_MUSTUNDERSTAND =
+                                  new QName(URI_SOAP11_ENV, "MustUnderstand");
+
+
+    public static final QName FAULT_SOAP12_MUSTUNDERSTAND =
+                                  new QName(URI_SOAP12_ENV, "MustUnderstand");
+
+    public static final QName FAULT_SOAP12_VERSIONMISMATCH =
+                                  new QName(URI_SOAP12_ENV, "VersionMismatch");
+
+    public static final QName FAULT_SOAP12_DATAENCODINGUNKNOWN =
+                                  new QName(URI_SOAP12_ENV, "DataEncodingUnknown");
+
+    public static final QName FAULT_SOAP12_SENDER =
+                                  new QName(URI_SOAP12_ENV, "Sender");
+
+    public static final QName FAULT_SOAP12_RECEIVER =
+                                  new QName(URI_SOAP12_ENV, "Receiver");
+
+    // SOAP 1.2 Fault subcodes
+    public static final QName FAULT_SUBCODE_BADARGS =
+            new QName(URI_SOAP12_RPC, "BadArguments");
+    public static final QName FAULT_SUBCODE_PROC_NOT_PRESENT =
+            new QName(URI_SOAP12_RPC, "ProcedureNotPresent");
+
+    // QNames
+    //////////////////////////////////////////////////////////////////////////
+    public static final QName QNAME_FAULTCODE =
+                                         new QName("", ELEM_FAULT_CODE);
+    public static final QName QNAME_FAULTSTRING =
+                                       new QName("", ELEM_FAULT_STRING);
+    public static final QName QNAME_FAULTACTOR =
+                                        new QName("", ELEM_FAULT_ACTOR);
+    public static final QName QNAME_FAULTDETAILS =
+                                         new QName("", ELEM_FAULT_DETAIL);
+
+    public static final QName QNAME_FAULTCODE_SOAP12 =
+                                         new QName(URI_SOAP12_ENV, ELEM_FAULT_CODE_SOAP12);
+    public static final QName QNAME_FAULTVALUE_SOAP12 =
+                                         new QName(URI_SOAP12_ENV, ELEM_FAULT_VALUE_SOAP12);
+    public static final QName QNAME_FAULTSUBCODE_SOAP12 =
+                                         new QName(URI_SOAP12_ENV, ELEM_FAULT_SUBCODE_SOAP12);
+    public static final QName QNAME_FAULTREASON_SOAP12 =
+                                         new QName(URI_SOAP12_ENV, ELEM_FAULT_REASON_SOAP12);
+    public static final QName QNAME_TEXT_SOAP12 =
+                                         new QName(URI_SOAP12_ENV, ELEM_TEXT_SOAP12);
+
+    public static final QName QNAME_FAULTNODE_SOAP12 =
+                                         new QName(URI_SOAP12_ENV, ELEM_FAULT_NODE_SOAP12);
+    public static final QName QNAME_FAULTROLE_SOAP12 =
+                                         new QName(URI_SOAP12_ENV, ELEM_FAULT_ROLE_SOAP12);
+    public static final QName QNAME_FAULTDETAIL_SOAP12 =
+                                         new QName(URI_SOAP12_ENV, ELEM_FAULT_DETAIL_SOAP12);
+    public static final QName QNAME_NOTUNDERSTOOD =
+                                         new QName(URI_SOAP12_ENV, ELEM_NOTUNDERSTOOD);
+
+    // Define qnames for the all of the XSD and SOAP-ENC encodings
+    public static final QName XSD_STRING = new QName(URI_DEFAULT_SCHEMA_XSD, "string");
+    public static final QName XSD_BOOLEAN = new QName(URI_DEFAULT_SCHEMA_XSD, "boolean");
+    public static final QName XSD_DOUBLE = new QName(URI_DEFAULT_SCHEMA_XSD, "double");
+    public static final QName XSD_FLOAT = new QName(URI_DEFAULT_SCHEMA_XSD, "float");
+    public static final QName XSD_INT = new QName(URI_DEFAULT_SCHEMA_XSD, "int");
+    public static final QName XSD_INTEGER = new QName(URI_DEFAULT_SCHEMA_XSD, "integer");
+    public static final QName XSD_LONG = new QName(URI_DEFAULT_SCHEMA_XSD, "long");
+    public static final QName XSD_SHORT = new QName(URI_DEFAULT_SCHEMA_XSD, "short");
+    public static final QName XSD_BYTE = new QName(URI_DEFAULT_SCHEMA_XSD, "byte");
+    public static final QName XSD_DECIMAL = new QName(URI_DEFAULT_SCHEMA_XSD, "decimal");
+    public static final QName XSD_BASE64 = new QName(URI_DEFAULT_SCHEMA_XSD, "base64Binary");
+    public static final QName XSD_HEXBIN = new QName(URI_DEFAULT_SCHEMA_XSD, "hexBinary");
+    public static final QName XSD_ANYSIMPLETYPE = new QName(URI_DEFAULT_SCHEMA_XSD, "anySimpleType");
+    public static final QName XSD_ANYTYPE = new QName(URI_DEFAULT_SCHEMA_XSD, "anyType");
+    public static final QName XSD_ANY = new QName(URI_DEFAULT_SCHEMA_XSD, "any");
+    public static final QName XSD_QNAME = new QName(URI_DEFAULT_SCHEMA_XSD, "QName");
+    public static final QName XSD_DATETIME = new QName(URI_DEFAULT_SCHEMA_XSD, "dateTime");
+    public static final QName XSD_DATE = new QName(URI_DEFAULT_SCHEMA_XSD, "date");
+    public static final QName XSD_TIME = new QName(URI_DEFAULT_SCHEMA_XSD, "time");
+    public static final QName XSD_TIMEINSTANT1999 = new QName(URI_1999_SCHEMA_XSD, "timeInstant");
+    public static final QName XSD_TIMEINSTANT2000 = new QName(URI_2000_SCHEMA_XSD, "timeInstant");
+
+    public static final QName XSD_NORMALIZEDSTRING = new QName(URI_2001_SCHEMA_XSD, "normalizedString");
+    public static final QName XSD_TOKEN = new QName(URI_2001_SCHEMA_XSD, "token");
+
+    public static final QName XSD_UNSIGNEDLONG = new QName(URI_2001_SCHEMA_XSD, "unsignedLong");
+    public static final QName XSD_UNSIGNEDINT = new QName(URI_2001_SCHEMA_XSD, "unsignedInt");
+    public static final QName XSD_UNSIGNEDSHORT = new QName(URI_2001_SCHEMA_XSD, "unsignedShort");
+    public static final QName XSD_UNSIGNEDBYTE = new QName(URI_2001_SCHEMA_XSD, "unsignedByte");
+    public static final QName XSD_POSITIVEINTEGER = new QName(URI_2001_SCHEMA_XSD, "positiveInteger");
+    public static final QName XSD_NEGATIVEINTEGER = new QName(URI_2001_SCHEMA_XSD, "negativeInteger");
+    public static final QName XSD_NONNEGATIVEINTEGER = new QName(URI_2001_SCHEMA_XSD, "nonNegativeInteger");
+    public static final QName XSD_NONPOSITIVEINTEGER = new QName(URI_2001_SCHEMA_XSD, "nonPositiveInteger");
+
+    public static final QName XSD_YEARMONTH = new QName(URI_2001_SCHEMA_XSD, "gYearMonth");
+    public static final QName XSD_MONTHDAY = new QName(URI_2001_SCHEMA_XSD, "gMonthDay");
+    public static final QName XSD_YEAR = new QName(URI_2001_SCHEMA_XSD, "gYear");
+    public static final QName XSD_MONTH = new QName(URI_2001_SCHEMA_XSD, "gMonth");
+    public static final QName XSD_DAY = new QName(URI_2001_SCHEMA_XSD, "gDay");
+    public static final QName XSD_DURATION = new QName(URI_2001_SCHEMA_XSD, "duration");
+
+    public static final QName XSD_NAME = new QName(URI_2001_SCHEMA_XSD, "Name");
+    public static final QName XSD_NCNAME = new QName(URI_2001_SCHEMA_XSD, "NCName");
+    public static final QName XSD_NMTOKEN = new QName(URI_2001_SCHEMA_XSD, "NMTOKEN");
+    public static final QName XSD_NMTOKENS = new QName(URI_2001_SCHEMA_XSD, "NMTOKENS");
+    public static final QName XSD_NOTATION = new QName(URI_2001_SCHEMA_XSD, "NOTATION");
+    public static final QName XSD_ENTITY = new QName(URI_2001_SCHEMA_XSD, "ENTITY");
+    public static final QName XSD_ENTITIES = new QName(URI_2001_SCHEMA_XSD, "ENTITIES");
+    public static final QName XSD_IDREF = new QName(URI_2001_SCHEMA_XSD, "IDREF");
+    public static final QName XSD_IDREFS = new QName(URI_2001_SCHEMA_XSD, "IDREFS");
+    public static final QName XSD_ANYURI = new QName(URI_2001_SCHEMA_XSD, "anyURI");
+    public static final QName XSD_LANGUAGE = new QName(URI_2001_SCHEMA_XSD, "language");
+    public static final QName XSD_ID = new QName(URI_2001_SCHEMA_XSD, "ID");
+    public static final QName XSD_SCHEMA = new QName(URI_2001_SCHEMA_XSD, "schema");
+
+    public static final QName XML_LANG = new QName(NS_URI_XML, "lang");
+
+    public static final QName SOAP_BASE64 = new QName(URI_DEFAULT_SOAP_ENC, "base64");
+    public static final QName SOAP_BASE64BINARY = new QName(URI_DEFAULT_SOAP_ENC, "base64Binary");
+    public static final QName SOAP_STRING = new QName(URI_DEFAULT_SOAP_ENC, "string");
+    public static final QName SOAP_BOOLEAN = new QName(URI_DEFAULT_SOAP_ENC, "boolean");
+    public static final QName SOAP_DOUBLE = new QName(URI_DEFAULT_SOAP_ENC, "double");
+    public static final QName SOAP_FLOAT = new QName(URI_DEFAULT_SOAP_ENC, "float");
+    public static final QName SOAP_INT = new QName(URI_DEFAULT_SOAP_ENC, "int");
+    public static final QName SOAP_LONG = new QName(URI_DEFAULT_SOAP_ENC, "long");
+    public static final QName SOAP_SHORT = new QName(URI_DEFAULT_SOAP_ENC, "short");
+    public static final QName SOAP_BYTE = new QName(URI_DEFAULT_SOAP_ENC, "byte");
+    public static final QName SOAP_INTEGER = new QName(URI_DEFAULT_SOAP_ENC, "integer");
+    public static final QName SOAP_DECIMAL = new QName(URI_DEFAULT_SOAP_ENC, "decimal");
+    public static final QName SOAP_ARRAY = new QName(URI_DEFAULT_SOAP_ENC, "Array");
+    public static final QName SOAP_COMMON_ATTRS11 = new QName(URI_SOAP11_ENC, "commonAttributes");
+    public static final QName SOAP_COMMON_ATTRS12 = new QName(URI_SOAP12_ENC, "commonAttributes");
+    public static final QName SOAP_ARRAY_ATTRS11 = new QName(URI_SOAP11_ENC, "arrayAttributes");
+    public static final QName SOAP_ARRAY_ATTRS12 = new QName(URI_SOAP12_ENC, "arrayAttributes");
+    public static final QName SOAP_ARRAY12 = new QName(URI_SOAP12_ENC, "Array");
+
+    public static final QName SOAP_MAP = new QName(NS_URI_XMLSOAP, "Map");
+    public static final QName SOAP_ELEMENT = new QName(NS_URI_XMLSOAP, "Element");
+    public static final QName SOAP_DOCUMENT = new QName(NS_URI_XMLSOAP, "Document");
+    public static final QName SOAP_VECTOR = new QName(NS_URI_XMLSOAP, "Vector");
+    public static final QName MIME_IMAGE = new QName(NS_URI_XMLSOAP, "Image");
+    public static final QName MIME_PLAINTEXT = new QName(NS_URI_XMLSOAP, "PlainText");
+    public static final QName MIME_MULTIPART = new QName(NS_URI_XMLSOAP, "Multipart");
+    public static final QName MIME_SOURCE = new QName(NS_URI_XMLSOAP, "Source");
+    public static final QName MIME_OCTETSTREAM = new QName(NS_URI_XMLSOAP, "octet-stream");
+    public static final QName MIME_DATA_HANDLER = new QName(NS_URI_XMLSOAP, "DataHandler");
+
+
+    public static final QName QNAME_LITERAL_ITEM = new QName(URI_LITERAL_ENC,"item");
+    public static final QName QNAME_RPC_RESULT = new QName(URI_SOAP12_RPC,"result");
+
+    /**
+     * QName of stack trace element in an axis fault detail.
+     */
+    public static final QName QNAME_FAULTDETAIL_STACKTRACE = new QName(NS_URI_AXIS,"stackTrace");
+
+    /**
+     * QName of exception Name element in an axis fault detail.
+     * Do not use - this is for pre-1.0 server->client exceptions.
+     */
+    public static final QName QNAME_FAULTDETAIL_EXCEPTIONNAME = new QName(NS_URI_AXIS, "exceptionName");
+
+    /**
+     * QName of stack trace element in an axis fault detail.
+     */
+    public static final QName QNAME_FAULTDETAIL_RUNTIMEEXCEPTION = new QName(NS_URI_AXIS, "isRuntimeException");
+
+    /**
+     * QName of stack trace element in an axis fault detail.
+     */
+    public static final QName QNAME_FAULTDETAIL_HTTPERRORCODE = new QName(NS_URI_AXIS, "HttpErrorCode");
+
+    /**
+     * QName of a nested fault in an axis fault detail.
+     */
+    public static final QName QNAME_FAULTDETAIL_NESTEDFAULT = new QName(NS_URI_AXIS, "nestedFault");
+
+    /**
+     * QName of a hostname in an axis fault detail.
+     */
+    public static final QName QNAME_FAULTDETAIL_HOSTNAME = new QName(NS_URI_AXIS, "hostname");
+
+    //QNames of well known faults
+    /**
+     * The no-service fault value.
+     */
+    public static final QName QNAME_NO_SERVICE_FAULT_CODE
+            = new QName(NS_URI_AXIS, "Server.NoService");
+
+    // Misc Strings
+    //////////////////////////////////////////////////////////////////////////
+
+    // Where to put those pesky JWS classes
+    public static final String MC_JWS_CLASSDIR = "jws.classDir" ;
+    // Where we're rooted
+    public static final String MC_HOME_DIR = "home.dir";
+
+    // Relative path of the request URL (ie. http://.../axis/a.jws = /a.jws
+    public static final String MC_RELATIVE_PATH = "path";
+
+    // MessageContext param for the engine's path
+    public static final String MC_REALPATH = "realpath";
+    // MessageContext param for the location of config files
+    public static final String MC_CONFIGPATH = "configPath";
+    // MessageContext param for the IP of the calling client
+    public static final String MC_REMOTE_ADDR = "remoteaddr";
+    // When invoked from a servlet, per JAX-RPC, we need  a
+    // ServletEndpointContext object.  This is where it lives.
+    public static final String MC_SERVLET_ENDPOINT_CONTEXT = "servletEndpointContext";
+
+    // If we're SOAP 1.2, the default behavior in org.apache.axis.message.BodyBuilder
+    // is to throw a ProcedureNotPresent fault if we can't dispatch to an
+    // OperationDesc during deserialization.  Set this property to any non-null
+    // value to prevent this behavior (only used by test.soap12.
+    public static final String MC_NO_OPERATION_OK = "NoOperationOK";
+
+    // This property indicates we're supporting only a single SOAP version.
+    // If set (by the service or engine), we'll only accept envelopes of the
+    // specified version.  Value should be an org.apache.axis.soap.SOAPConstants
+    public static final String MC_SINGLE_SOAP_VERSION = "SingleSOAPVersion";
+
+    /**
+     * What the extension of JWS files is. If changing this, note that
+     * AxisServlet has an xdoclet declaration in the class javadocs that
+     * also needs updating.
+     */
+    public static final String JWS_DEFAULT_FILE_EXTENSION = ".jws";
+
+    /**
+     * The default timeout for messages.
+     * 
+     * @since Axis1.2
+     */
+    public static final int DEFAULT_MESSAGE_TIMEOUT=60*1000*10;
+
+    /**
+     * MIME Content Types
+     * 
+     * @since Axis1.2
+     */
+    public static final String MIME_CT_APPLICATION_OCTETSTREAM     = "application/octet-stream";
+    public static final String MIME_CT_TEXT_PLAIN         = "text/plain";
+    public static final String MIME_CT_IMAGE_JPEG        = "image/jpeg";
+    public static final String MIME_CT_IMAGE_GIF        = "image/gif";
+    public static final String MIME_CT_TEXT_XML            = "text/xml";
+    public static final String MIME_CT_APPLICATION_XML        = "application/xml";
+    public static final String MIME_CT_MULTIPART_PREFIX        = "multipart/";
+    /**
+     * @return Returns the sOAP_STYLE_RPC_ENCODED.
+     */
+    public static int getSOAP_STYLE_RPC_ENCODED() {
+        return SOAP_STYLE_RPC_ENCODED;
+    }
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/EngineUtils.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/EngineUtils.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,31 @@
+/*
+ * 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.core;
+
+import org.apache.axis.core.exec.ExecutionChain;
+import org.apache.axis.core.registry.Flow;
+
+/**
+ * @author Srinath Perera (hemapani@opensource.lk)
+ */
+public class EngineUtils {
+    public static void addHandlers(Flow flow,ExecutionChain exeChain,String phaseName) throws AxisFault{
+        int handlerCount = flow.getHandlerCount();
+        for(int i = 0;i<handlerCount;i++){
+            exeChain.addHandler(phaseName,flow.getHandler(i));
+        }
+    }
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/Global.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/Global.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2001-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.core;
+
+import org.apache.axis.core.registry.EngineElement;
+import org.apache.axis.core.registry.FlowInclude;
+import org.apache.axis.core.registry.Module;
+import org.apache.axis.core.registry.ModuleInclude;
+import org.apache.axis.core.registry.TypeMappingInclude;
+/**
+ * Executes the Handlers that should be executed  for every web Service and
+ * Contians the all global elements.   
+ */
+public interface Global extends FlowInclude,EngineElement,
+    TypeMappingInclude,ModuleInclude{
+    public int getModuleCount();
+    public Module getModule(int index);
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/Handler.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/Handler.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2001-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.core;
+
+import java.io.Serializable;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axis.core.context.MessageContext;
+import org.apache.axis.core.registry.NamedEngineElement;
+
+public interface Handler extends Serializable,NamedEngineElement {
+    /**
+     * 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
+     * invoke's job to catch the exception and undo any partial work
+     * that has been completed.  Once we leave 'invoke' if a fault
+     * is thrown, this classes 'onFault' method will be called.
+     * Invoke should rethrow any exceptions it catches, wrapped in
+     * an AxisFault.
+     *
+     * @param msgContext    the <code>MessageContext</code> to process with this
+     *              <code>Handler</code>.
+     * @throws AxisFault if the handler encounters an error
+     */
+    public void invoke(MessageContext msgContext) throws AxisFault ;
+
+    /**
+     * Called when a subsequent handler throws a fault.
+     *
+     * @param msgContext    the <code>MessageContext</code> to process the fault
+     *              to
+     */
+    public void revoke(MessageContext msgContext);
+
+    public void setName(QName name);
+    public QName getName();
+};

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/Operation.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/Operation.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2001-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.core;
+
+import org.apache.axis.core.registry.FlowInclude;
+import org.apache.axis.core.registry.NamedEngineElement;
+/**
+ * Runtime representation of the WSDL Operation
+ */
+public interface Operation extends FlowInclude,NamedEngineElement{
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/Provider.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/Provider.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,26 @@
+/*
+ * 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.core;
+
+import javax.xml.namespace.QName;
+
+/**
+ * This Provider is the workhorse who locate the implementation of the Web Service and 
+ * invoke the Web Service. 
+ * @author Srinath Perera(hemapani@opensource.lk)
+ */
+public interface Provider extends Handler{
+}    
\ No newline at end of file

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/Sender.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/Sender.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,28 @@
+/*
+ * 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.core;
+
+import org.apache.axis.core.context.MessageContext;
+
+/**
+ * @author Srinath Perera (hemapani@opensource.lk)
+ */
+public class Sender {
+    public void send(MessageContext msgCtx) throws AxisFault{
+        AxisEngine engine = new AxisEngine(msgCtx.getGlobalContext().getRegistry());
+        engine.send(msgCtx);
+    }
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/Service.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/Service.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2001-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.core;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axis.core.exec.ExecutionChain;
+import org.apache.axis.core.registry.FlowInclude;
+import org.apache.axis.core.registry.ModuleInclude;
+import org.apache.axis.core.registry.NamedEngineElement;
+import org.apache.axis.core.registry.TypeMappingInclude;
+
+/**
+ * Runtime representation of the WSDL Service
+ */
+
+public interface Service extends FlowInclude,NamedEngineElement,
+    TypeMappingInclude,ModuleInclude{
+    public Operation getOperation(QName index);
+    public void addOperation(Operation op);
+    public Handler getProvider();
+    public Handler getSender();
+    public void setProvider(Handler handler);    
+    public ClassLoader getClassLoader();
+    public void setClassLoader(ClassLoader cl); 
+    /**
+     * ExecutionChain gives all the Handlers (including the Global,  Transport, Service Handlers
+     * This is resolved by the Deployment sub system at the deployment time)
+     * @return ordered set of Handlers and Phases
+     */
+    public ExecutionChain getInputExecutionChain();
+    public void setInputExecutionChain(ExecutionChain execChain);
+    
+    public ExecutionChain getOutputExecutionChain();
+    public void setOutExecutionChain(ExecutionChain execChain);
+
+    public ExecutionChain getFaultExecutionChain();
+    public void setFaultExecutionChain(ExecutionChain execChain);
+
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/SimpleGlobal.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/SimpleGlobal.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2001-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.core;
+
+
+
+public class SimpleGlobal extends AbstractContainer implements Global{
+    public SimpleGlobal() {
+    }
+
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/SimpleModule.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/SimpleModule.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,104 @@
+/*
+ * Copyright 2001-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.core;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axis.core.registry.AbstractEngineElement;
+import org.apache.axis.core.registry.Flow;
+import org.apache.axis.core.registry.Module;
+import org.apache.axis.core.registry.TypeMapping;
+
+public class SimpleModule extends AbstractEngineElement implements Module{
+    private Flow in;
+    private Flow out;
+    private Flow fault;
+    private QName name;
+    
+    public SimpleModule(QName name){
+        this.name = name;
+    }
+    public Flow getFaultFlow() {
+        return fault;
+    }
+
+    public Flow getInFlow() {
+        return in;
+    }
+
+    public Flow getOutFlow() {
+        return out;
+    }
+
+    public void setFaultFlow(Flow flow) {
+        this.fault = flow;
+    }
+
+    public void setInFlow(Flow flow) {
+        this.in = flow;
+    }
+
+    public void setOutFlow(Flow flow) {
+        this.out = flow;
+    }
+
+    /* (non-Javadoc)
+     * @see org.apache.axis.registry.TypeMappingInclude#addTypeMapping(org.apache.axis.registry.TypeMapping)
+     */
+    public void addTypeMapping(TypeMapping typeMapping) {
+        // TODO Auto-generated method stub
+
+    }
+
+    /* (non-Javadoc)
+     * @see org.apache.axis.registry.TypeMappingInclude#getTypeMapping(java.lang.Class)
+     */
+    public TypeMapping getTypeMapping(Class javaType) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    /* (non-Javadoc)
+     * @see org.apache.axis.registry.TypeMappingInclude#getTypeMapping(int)
+     */
+    public TypeMapping getTypeMapping(int index) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    /* (non-Javadoc)
+     * @see org.apache.axis.registry.TypeMappingInclude#getTypeMapping(javax.xml.namespace.QName)
+     */
+    public TypeMapping getTypeMapping(QName xmlType) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    /* (non-Javadoc)
+     * @see org.apache.axis.registry.TypeMappingInclude#getTypeMappingCount()
+     */
+    public int getTypeMappingCount() {
+        // TODO Auto-generated method stub
+        return 0;
+    }
+    
+    public QName getName() {
+        return name;
+    }
+
+
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/SimpleOperation.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/SimpleOperation.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2001-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.core;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axis.core.context.MessageContext;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+public class SimpleOperation extends AbstractContainer implements Operation{
+    private Log log = LogFactory.getLog(getClass());   
+    private QName name;
+    private Service service;
+    
+    /**
+     * Each Operatrion must have a associated Service. The  service need to be specified 
+     * at the initialization of the Operation.  
+     * @param name
+     * @param service
+     */
+    public SimpleOperation(QName name,Service service){
+        this.name = name;
+        this.service = service;
+    }
+    public QName getName() {
+        return name;
+    }
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/SimpleService.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/SimpleService.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,114 @@
+/*
+ * Copyright 2001-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.core;
+
+import java.util.HashMap;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axis.core.context.MessageContext;
+import org.apache.axis.core.exec.ExecutionChain;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+public class SimpleService extends AbstractContainer implements Service{
+    private ExecutionChain inExecChain;
+    private ExecutionChain outexecChain;
+    private ExecutionChain faultExecChain;
+    
+    public ExecutionChain getFaultExecutionChain() {
+        return faultExecChain;
+    }
+    public ExecutionChain getOutputExecutionChain() {
+        return outexecChain;
+    }
+    public void setFaultExecutionChain(ExecutionChain faultExecChain) {
+        this.faultExecChain = faultExecChain;
+    }
+
+    public void setOutExecutionChain(ExecutionChain outexecChain) {
+        this.outexecChain = outexecChain;
+    }
+
+    
+    public ExecutionChain getInputExecutionChain() {
+        return inExecChain;
+    }
+    public void setInputExecutionChain(ExecutionChain execChain) {
+        this.inExecChain = execChain;
+
+    }
+    private Log log = LogFactory.getLog(getClass());     
+    private HashMap operations = new HashMap();
+    private QName name;
+    private Handler provider;
+    private Handler sender;    
+    private ClassLoader classLoader;
+    
+    public SimpleService(QName name){
+        this.name = name;
+    } 
+    public ClassLoader getClassLoader() {
+        return Thread.currentThread().getContextClassLoader();
+    }
+
+    public Operation getOperation(QName index) {
+        return (Operation)operations.get(index);
+    }
+
+    public int getOperationCount() {
+        return operations.size();
+    }
+
+
+    public QName getName() {
+        return name;
+    }
+
+    public void addOperation(Operation op) {
+        operations.put(op.getName(),op);
+    }
+
+    public Handler getProvider() {
+        return provider;
+    }
+
+    public void setProvider(Handler provider) {
+        this.provider = provider;
+
+    }
+
+    public void setClassLoader(ClassLoader cl) {
+        this.classLoader = cl;
+
+    }
+
+    /**
+     * @return
+     */
+    public Handler getSender() {
+        return sender;
+    }
+
+    /**
+     * @param handler
+     */
+    public void setSender(Handler handler) {
+        sender = handler;
+    }
+
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/SimpleTransport.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/SimpleTransport.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2001-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.core;
+
+import javax.xml.namespace.QName;
+
+public class SimpleTransport extends AbstractContainer implements Transport{
+    private QName name;
+    
+    public SimpleTransport(QName name){
+        this.name = name;
+    }
+
+    public QName getName() {
+        return name;
+    }
+
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/Transport.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/Transport.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2001-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.core;
+
+import org.apache.axis.core.registry.FlowInclude;
+import org.apache.axis.core.registry.ModuleInclude;
+import org.apache.axis.core.registry.NamedEngineElement;
+
+/**
+ * Runtime representation of the possible transport used. e.g. HTTP/SMTP
+ */
+
+public interface Transport extends FlowInclude,NamedEngineElement,ModuleInclude{
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/addresing/SOAPNodeAddress.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/addresing/SOAPNodeAddress.java	Wed Nov 17 19:07:25 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.core.addresing;
+
+/**
+ * @author Srinath Perera (hemapani@opensource.lk)
+ */
+public class SOAPNodeAddress {
+
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/addresing/SoapAddressingContext.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/addresing/SoapAddressingContext.java	Wed Nov 17 19:07:25 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.core.addresing;
+
+/**
+ * @author Srinath Perera (hemapani@opensource.lk)
+ */
+public class SoapAddressingContext {
+
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/aysnc/Dispatcher.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/aysnc/Dispatcher.java	Wed Nov 17 19:07:25 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.core.aysnc;
+
+/**
+ * @author Srinath Perera (hemapani@opensource.lk)
+ */
+public class Dispatcher {
+
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/aysnc/MessageQueue.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/aysnc/MessageQueue.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,28 @@
+/*
+ * 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.core.aysnc;
+
+import org.apache.axis.core.context.MessageContext;
+
+/**
+ * @author Srinath Perera (hemapani@opensource.lk)
+ */
+public interface MessageQueue {
+    public void submitAJob(MessageContext msgctx);
+    public boolean hasAJob();
+    public MessageContext getNextJob();
+    
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/context/GlobalContext.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/context/GlobalContext.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,73 @@
+/*
+ * 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.core.context;
+
+
+import java.util.HashMap;
+
+import org.apache.axis.core.aysnc.MessageQueue;
+import org.apache.axis.core.registry.EngineRegistry;
+
+/**
+ * @author Srinath Perera(hemapani@opensource.lk)
+ */
+public class GlobalContext {
+    
+    private EngineRegistry registry;
+    private HashMap map = new HashMap();
+    private MessageQueue queue;
+    
+    
+    /**
+     * @return Returns the queue.
+     */
+    public MessageQueue getQueue() {
+        return queue;
+    }
+    /**
+     * @param queue The queue to set.
+     */
+    public void setQueue(MessageQueue queue) {
+        this.queue = queue;
+    }
+    public GlobalContext(EngineRegistry er){
+        this.registry = er;
+    }
+
+    public Object get(Object key) {
+        return map.get(key);
+    }
+
+    public void put(String key, Object obj) {
+        map.put(key,obj);
+
+    }
+
+    /**
+     * @return
+     */
+    public EngineRegistry getRegistry() {
+        return registry;
+    }
+
+    /**
+     * @param registry
+     */
+    public void setRegistry(EngineRegistry registry) {
+        this.registry = registry;
+    }
+
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/context/MessageContext.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/context/MessageContext.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,249 @@
+/*
+ * Copyright 2001-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.core.context;
+
+import java.util.HashMap;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axis.core.Constants;
+import org.apache.axis.core.registry.EngineRegistry;
+import org.apache.axis.encoding.SerializationContext;
+import org.apache.axis.om.soap.SOAPMessage;
+import org.apache.axis.transport.TransportSender;
+/**
+ *  The palce where all the service specific states are kept. 
+ *  All the Global states kept in the <code>EngineRegistry</code> and all the 
+ *  Service states kept in the <code>MessageContext</code>. Other runtime
+ *  artifacts does not keep states foward from the execution.  
+ */
+public class MessageContext {
+    private int messageStyle = Constants.SOAP_STYLE_RPC_ENCODED;
+    private HashMap messages = new HashMap();
+    /**
+     * @return Returns the faultOut.
+     */
+    public SerializationContext getFaultOut() {
+        return faultOut;
+    }
+    /**
+     * @param faultOut The faultOut to set.
+     */
+    public void setFaultOut(SerializationContext faultOut) {
+        this.faultOut = faultOut;
+    }
+    /**
+     * @return Returns the sourceOut.
+     */
+    public SerializationContext getSourceOut() {
+        return sourceOut;
+    }
+    /**
+     * @param sourceOut The sourceOut to set.
+     */
+    public void setSourceOut(SerializationContext sourceOut) {
+        this.sourceOut = sourceOut;
+    }
+	public static String USER_NAME = "USER";
+	public static String PASSWARD = "PASSWD";
+	
+	
+    public MessageContext(EngineRegistry er){
+        globalContext = new GlobalContext(er);
+        sessionContext = new SimpleSessionContext();
+    }
+    private SerializationContext sourceOut;
+    private SerializationContext faultOut;
+    
+    private boolean processingFault = false;
+    private QName currentTansport = null; 
+    private QName currentService = null;
+    private QName currentOperation = null;
+    private HashMap properties = new HashMap();
+    private boolean useSOAPAction = true;
+    private String soapAction = "";   
+    private SOAPMessage inMessage;
+    private SOAPMessage outMessage;
+    private TransportSender transportSender;
+    
+    /**
+     * @return Returns the transportSender.
+     */
+    public TransportSender getTransportSender() {
+        return transportSender;
+    }
+    /**
+     * @param transportSender The transportSender to set.
+     */
+    public void setTransportSender(TransportSender transportSender) {
+        this.transportSender = transportSender;
+    }
+	/**
+	 * @return Returns the soapAction.
+	 */
+	public String getSoapAction() {
+		return soapAction;
+	}
+	/**
+	 * @param soapAction The soapAction to set.
+	 */
+	public void setSoapAction(String soapAction) {
+		this.soapAction = soapAction;
+	}
+	/**
+	 * @return Returns the useSOAPAction.
+	 */
+	public boolean isUseSOAPAction() {
+		return useSOAPAction;
+	}
+	/**
+	 * @param useSOAPAction The useSOAPAction to set.
+	 */
+	public void setUseSOAPAction(boolean useSOAPAction) {
+		this.useSOAPAction = useSOAPAction;
+	}
+    private SessionContext sessionContext;
+    private GlobalContext globalContext;
+    
+    
+    public boolean isProcessingFault(){
+        return processingFault;
+    }
+    public void setProcessingFault(boolean processingFault){
+        this.processingFault = processingFault;
+    }
+    
+    public void setProperty(String key,String value){
+    	properties.put(key,value);
+    }
+    
+    public String getProperty(String key){
+    	return (String)properties.get(key);
+    }
+    /**
+     * @return
+     */
+    public QName getCurrentTansport() {
+        return currentTansport;
+    }
+
+   
+    /**
+     * @param name
+     */
+    public void setCurrentTansport(QName name) {
+        currentTansport = name;
+    }
+
+    /**
+     * @return
+     */
+    public QName getCurrentOperation() {
+        return currentOperation;
+    }
+
+
+    /**
+     * @param name
+     */
+    public void setCurrentOperation(QName name) {
+        currentOperation = name;
+    }
+
+    /**
+     * @param name
+     */
+    public void setCurrentService(QName name) {
+        currentService = name;
+    }
+
+    /**
+     * @return
+     */
+    public QName getCurrentService() {
+        return currentService;
+    }
+
+    /**
+     * @return
+     */
+    public GlobalContext getGlobalContext() {
+        return globalContext;
+    }
+
+    /**
+     * @return
+     */
+    public SessionContext getSessionContext() {
+        return sessionContext;
+    }
+
+    /**
+     * @param context
+     */
+    public void setGlobalContext(GlobalContext context) {
+        globalContext = context;
+    }
+
+    /**
+     * @param context
+     */
+    public void setSessionContext(SessionContext context) {
+        sessionContext = context;
+    }
+
+	/**
+	 * @return Returns the inMessage.
+	 */
+	public SOAPMessage getInMessage() {
+		return inMessage;
+	}
+	/**
+	 * @param inMessage The inMessage to set.
+	 */
+	public void setInMessage(SOAPMessage inMessage) {
+		this.inMessage = inMessage;
+	}
+	/**
+	 * @return Returns the outMessage.
+	 */
+	public SOAPMessage getOutMessage() {
+		return outMessage;
+	}
+	/**
+	 * @param outMessage The outMessage to set.
+	 */
+	public void setOutMessage(SOAPMessage outMessage) {
+		this.outMessage = outMessage;
+	}
+    /**
+     * @return Returns the messageStyle.
+     */
+    public int getMessageStyle() {
+        return messageStyle;
+    }
+    /**
+     * @param messageStyle The messageStyle to set.
+     */
+    public void setMessageStyle(int messageStyle) {
+        this.messageStyle = messageStyle;
+    }
+    
+   public void addRelatedMessageContext(String key,MessageContext msgctx){
+       messages.put(key,msgctx);
+   }
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/context/SessionContext.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/context/SessionContext.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,24 @@
+/*
+ * 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.core.context;
+
+/**
+ * @author Srinath Perera(hemapani@opensource.lk)
+ */
+public interface SessionContext {
+    public Object get(Object key);
+    public void put(Object key,Object obj);
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/context/SimpleSessionContext.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/context/SimpleSessionContext.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,33 @@
+/*
+ * 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.core.context;
+
+import java.util.HashMap;
+
+/**
+ * @author Srinath Perera(hemapani@opensource.lk)
+ */
+public class SimpleSessionContext implements SessionContext {
+    private HashMap map = new HashMap();
+    public Object get(Object key) {
+        return map.get(key);
+    }
+
+    public void put(Object key, Object obj) {
+        map.put(key,obj);
+
+    }
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/exec/Constants.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/exec/Constants.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,25 @@
+/*
+ * 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.core.exec;
+
+/**
+ * @author Srinath Perera (hemapani@opensource.lk)
+ */
+public class Constants {
+    public static final String PHASE_SERVICE = "service";
+    public static final String PHASE_TRANSPORT = "transport";
+    public static final String PHASE_GLOBAL = "global";
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/exec/ExecutionChain.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/exec/ExecutionChain.java	Wed Nov 17 19:07:25 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.core.exec;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Stack;
+
+import org.apache.axis.core.AxisFault;
+import org.apache.axis.core.Handler;
+import org.apache.axis.core.context.MessageContext;
+
+/**
+ * @author Srinath Perera (hemapani@opensource.lk)
+ */
+public class ExecutionChain {
+    private HashMap phases;
+    private ArrayList executionList;
+    
+    public ExecutionChain(){
+        phases = new HashMap();
+        executionList = new ArrayList();
+    }
+    
+    public void addPhase(Phase phase){
+        phases.put(phase.getPhaseName(),phase);
+        executionList.add(phase);
+    }
+    
+    public void addHandlerDirectly(Handler directHandler,int index){
+        phases.put(directHandler.getName(),directHandler);
+        executionList.add(index,directHandler);
+    }
+
+    public void addHandler(String phaseName,Handler handler,int index){
+        Phase phase = (Phase)phases.get(phaseName);
+        phase.addHandler(handler,index);
+    }
+
+    
+    public void addHandler(String phaseName,Handler handler) throws AxisFault{
+        Phase phase = (Phase)phases.get(phaseName);
+        if(phase == null)
+            throw new AxisFault("Can't find the Phase "+phaseName);
+        phase.addHandler(handler);
+    }
+    
+    public void invoke(MessageContext msgctx)throws AxisFault{
+        Stack executionStack = new Stack();
+        try{
+            for(int i = 0;i<executionList.size();i++){
+                Handler phase = (Handler)executionList.get(i);
+                if(phase != null){
+                    executionStack.push(phase);
+                    phase.invoke(msgctx);
+                }
+            }
+        }catch(Exception e){
+            while(executionStack.isEmpty()){
+                Handler handler  = (Handler)executionStack.pop();
+                handler.revoke(msgctx);
+            }
+            throw AxisFault.makeFault(e);
+        }    
+    }
+    public void revoke(MessageContext msgctx)throws AxisFault{
+        for(int i = executionList.size()-1;i > -1;i--){
+            Phase phase = (Phase)executionList.get(i);
+            if(phase != null){
+                phase.revoke(msgctx);
+            }
+        }
+    }
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/exec/Phase.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/exec/Phase.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,97 @@
+/*
+ * 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.core.exec;
+
+import java.util.ArrayList;
+import java.util.Stack;
+
+import org.apache.axis.core.AxisFault;
+import org.apache.axis.core.Handler;
+import org.apache.axis.core.context.MessageContext;
+import org.apache.axis.handlers.AbstractHandler;
+
+/**
+ * <p>This is Phase, a orderd collection of Handlers. 
+ * seems this is Handler Chain with order.</p> 
+ * Should this exttends Hanlders?
+ * 
+ * @author Srinath Perera (hemapani@opensource.lk)
+ */
+public class Phase extends AbstractHandler implements Handler{
+    private String phaseName;
+    private ArrayList handlers;
+    
+    public Phase(String phaseName){
+        handlers = new ArrayList();
+        this.phaseName = phaseName;
+    }
+    
+    public void addHandler(Handler handler, int index){
+        handlers.add(index,handler);
+    }
+    /**
+     * add to next empty handler
+     * @param handler
+     */
+    public void addHandler(Handler handler){
+        handlers.add(handler);
+    }
+    
+    /**
+     * If need to see how this works look at the stack!
+     * @param msgctx
+     * @throws AxisFault
+     */
+    
+    public void invoke(MessageContext msgctx)throws AxisFault{
+        Stack executionStack = new Stack();
+        try{
+            for(int i = 0;i<handlers.size();i++){
+                Handler handler = (Handler)handlers.get(i);
+                if(handler != null){
+                    executionStack.push(handler);
+                    handler.invoke(msgctx);
+                }
+            }
+        }catch(Exception e){
+            while(executionStack.isEmpty()){
+                Handler handler  = (Handler)executionStack.pop();
+                handler.revoke(msgctx);
+            }
+            throw AxisFault.makeFault(e);
+        }    
+    }
+    public void revoke(MessageContext msgctx){
+        for(int i = handlers.size()-1;i > -1;i--){
+            Handler handler = (Handler)handlers.get(i);
+            if(handler != null){
+                handler.revoke(msgctx);
+            }
+        }
+    }
+    /**
+     * @return Returns the name.
+     */
+    public String getPhaseName() {
+        return phaseName;
+    }
+    /**
+     * @param name The name to set.
+     */
+    public void setName(String phaseName) {
+        this.phaseName = phaseName;
+    }
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/AbstractEngineElement.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/AbstractEngineElement.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2001-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.core.registry;
+
+import java.util.HashMap;
+
+import org.apache.axis.core.AxisFault;
+/**
+ * This is not a abstract class so the users can wrapped it.
+ * @author Srinath Perera(hemapani@opensource.lk)* 
+ */
+public class AbstractEngineElement implements EngineElement{
+    private HashMap parameterMap;
+    public AbstractEngineElement() {
+        parameterMap = new HashMap();
+    }
+    public void cleanup()throws AxisFault {}
+    public void init()throws AxisFault {}
+    public void addParameter(Parameter param) {
+        parameterMap.put(param.getName(),param);
+
+    }
+    public Parameter getParameter(String key) {
+        return (Parameter)parameterMap.get(key);
+    }
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/ConcreateFlow.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/ConcreateFlow.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2001-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.core.registry;
+
+import java.util.Vector;
+
+import org.apache.axis.core.Handler;
+
+/**
+ * @author hemapani@opensource.lk
+ */
+public class ConcreateFlow implements Flow {
+   protected Vector list = null; 
+   public ConcreateFlow(){
+        list = new Vector();
+   }
+   public void addHandler(Handler handler) {
+       list.add(handler);
+   }
+   public Handler getHandler(int index) {
+       return (Handler)list.get(index);
+   }
+   public int getHandlerCount() {
+       return list.size();
+   }
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/ConcreateFlowInclude.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/ConcreateFlowInclude.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2001-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.core.registry;
+
+/**
+ * @author hemapani@opensource.lk
+ */
+public class ConcreateFlowInclude implements FlowInclude {
+    private Flow in;
+    private Flow out;
+    private Flow fault;
+    public Flow getFaultFlow() {
+        return fault;
+    }
+
+    public Flow getInFlow() {
+        return in;
+    }
+
+    public Flow getOutFlow() {
+        return out;
+    }
+
+    public void setFaultFlow(Flow flow) {
+        this.fault = flow;
+    }
+
+    public void setInFlow(Flow flow) {
+        this.in = flow;
+    }
+
+    public void setOutFlow(Flow flow) {
+        this.out = flow;
+    }
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/ConcreateModuleInclude.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/ConcreateModuleInclude.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2001-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.core.registry;
+
+import java.util.Vector;
+
+/**
+ * @author hemapani@opensource.lk
+ */
+public class ConcreateModuleInclude implements ModuleInclude {
+    private Vector modules;
+
+    public ConcreateModuleInclude(){
+        this.modules = new Vector();
+    }
+    public Module getModule(int index) {
+        return (Module)modules.get(index);
+    }
+    public int getModuleCount() {
+       return modules.size();
+    }
+    public void addModule(Module module) {
+        modules.add(module);
+    }
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/ConcreateParameter.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/ConcreateParameter.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,43 @@
+/*
+ * 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.core.registry;
+
+
+/**
+ * @author Srinath Perera(hemapani@opensource.lk)
+ */
+public class ConcreateParameter implements Parameter  {
+    private String name;
+    private String value;
+    private int type = TEXT_PARAMETER;
+    
+    public ConcreateParameter(String name,String value) {
+        this.name = name;
+        this.value = value;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public Object getValue() {
+        return value;
+    }
+    public int getParameterType() {
+        return type;
+    }
+
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/ConcreateTypeMappingInclude.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/ConcreateTypeMappingInclude.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2001-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.core.registry;
+
+import java.util.HashMap;
+import java.util.Vector;
+
+import javax.xml.namespace.QName;
+
+/**
+ * @author hemapani@opensource.lk
+ */
+public class ConcreateTypeMappingInclude implements TypeMappingInclude{
+    private HashMap javamapping;
+    private HashMap xmlmapping;
+    private Vector mappingValues;
+    
+    public ConcreateTypeMappingInclude(){
+        javamapping = new HashMap();
+        xmlmapping = new HashMap();
+        mappingValues = new Vector();
+    }
+    
+    public void addTypeMapping(TypeMapping typeMapping) {
+        mappingValues.add(typeMapping); 
+        javamapping.put(typeMapping.getJavaType().getName(),typeMapping); 
+        xmlmapping.put(typeMapping.getXMLType(),typeMapping);
+
+    }
+
+    public TypeMapping getTypeMapping(Class javaType) {
+        return (TypeMapping)javamapping.get(javaType);
+    }
+
+    public TypeMapping getTypeMapping(int index) {
+        return (TypeMapping)mappingValues.get(index);
+    }
+
+    public TypeMapping getTypeMapping(QName xmlType) {
+        return (TypeMapping)xmlmapping.get(xmlType);
+    }
+
+    public int getTypeMappingCount() {
+        return mappingValues.size();
+    }
+
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/EngineElement.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/EngineElement.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2001-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.core.registry;
+
+import org.apache.axis.core.AxisFault;
+/**
+ * This is the base class of all the elements in the Engine Registry Object Model. 
+ */
+public interface EngineElement {
+    public void init()throws AxisFault;
+    public void cleanup()throws AxisFault;
+    public Parameter getParameter(String key);
+    public void addParameter(Parameter param);
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/EngineRegistry.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/EngineRegistry.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2001-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.core.registry;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axis.core.AxisFault;
+import org.apache.axis.core.Global;
+import org.apache.axis.core.Service;
+import org.apache.axis.core.Transport;
+
+/**
+ *  The palce where all the Globel states of Axis is kept. 
+ *  All the Global states kept in the <code>EngineRegistry</code> and all the 
+ *  Service states kept in the <code>MessageContext</code>. Other runtime
+ *  artifacts does not keep states foward from the execution.  
+ */
+
+public interface EngineRegistry {
+    public Global getGlobal()throws AxisFault;
+    
+    public int getTransportCount()throws AxisFault;
+    public Transport getTransPort(QName name)throws AxisFault;
+    public Transport getTransPort(int index)throws AxisFault;
+    public void addTransport(Transport transport)throws AxisFault;
+    public void removeTransport(QName name)throws AxisFault;
+    
+    public int getServiceCount()throws AxisFault;
+    public Service getService(QName name)throws AxisFault;
+    public Service getService(int index)throws AxisFault;
+    public void addService(Service service)throws AxisFault;
+    public void removeService(QName name)throws AxisFault;
+    
+    public int getModuleCount()throws AxisFault;
+    public Module getModule(QName name)throws AxisFault;
+    public Module getModule(int index)throws AxisFault;
+    public void addMdoule(Module module)throws AxisFault;
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/Flow.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/Flow.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2001-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.core.registry;
+
+import org.apache.axis.core.Handler;
+/**
+ * Represents logical collection of handlers. The order of Handlers do not have 
+ * any symantics.
+ */
+public interface Flow{
+    public int getHandlerCount();
+    public Handler getHandler(int index);
+    public void addHandler(Handler handler);
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/FlowInclude.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/FlowInclude.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2001-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.core.registry;
+/**
+ * Logical Bag of Flows, a inflow, outflow,faultflow  
+ */
+public interface FlowInclude{
+    public Flow getInFlow();
+    public Flow getOutFlow();
+    public Flow getFaultFlow();
+    
+    public void setInFlow(Flow flow);
+    public void setOutFlow(Flow flow);
+    public void setFaultFlow(Flow flow);
+
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/Module.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/Module.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2001-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.core.registry;
+
+/**
+ * Logical agrigation of TypeMapping,Handlers 
+ */
+
+public interface Module extends FlowInclude,NamedEngineElement,TypeMappingInclude{
+    
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/ModuleInclude.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/ModuleInclude.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2001-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.core.registry;
+/**
+ * Logical Bag of Modules, a inflow, outflow,faultflow  
+ */
+public interface ModuleInclude {
+    public int getModuleCount();
+    public Module getModule(int index);
+    public void addModule(Module module);
+
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/NamedEngineElement.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/NamedEngineElement.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2001-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.core.registry;
+
+import javax.xml.namespace.QName;
+/**
+ * Engine element which has a name. 
+ */
+public interface NamedEngineElement extends EngineElement{
+    public QName getName();
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/Parameter.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/Parameter.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2001-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.core.registry;
+
+public interface Parameter {
+    public static int TEXT_PARAMETER = 0;
+    public static int DOM_PARAMETER = 1; 
+    
+    public String getName();
+    public Object getValue();
+    public int getParameterType();
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/SimpleEngineRegistry.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/SimpleEngineRegistry.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,108 @@
+/*
+ * Copyright 2001-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.core.registry;
+
+import java.util.ArrayList;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axis.core.AxisFault;
+import org.apache.axis.core.Global;
+import org.apache.axis.core.Service;
+import org.apache.axis.core.Transport;
+import org.apache.axis.utils.HashedBaundle;
+
+public class SimpleEngineRegistry implements EngineRegistry{
+    private HashedBaundle modules;
+    private HashedBaundle transports;
+    private HashedBaundle services;
+    private Global global;
+    
+    public SimpleEngineRegistry(Global global){
+        this.modules = new HashedBaundle();
+        this.transports = new HashedBaundle();
+        this.services = new HashedBaundle();
+        this.global = global;
+    
+    }
+    public Global getGlobal() throws AxisFault {
+        return global;
+    }
+
+    public Module getModule(int index) throws AxisFault {
+        return (Module)modules.get(index);
+    }
+
+    public Module getModule(QName name) throws AxisFault {
+        return (Module)modules.get(name);
+    }
+
+    public int getModuleCount() throws AxisFault {
+        return modules.getCount();
+    }
+
+    public ArrayList getPahsesInOrder() throws AxisFault {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public Service getService(int index) throws AxisFault {
+        return (Service)services.get(index);
+    }
+
+    public Service getService(QName name) throws AxisFault {
+        return (Service)services.get(name);
+    }
+
+    public int getServiceCount() throws AxisFault {
+        return services.getCount();
+    }
+
+    public Transport getTransPort(int index) throws AxisFault {
+        return (Transport)transports.get(index);
+    }
+
+    public Transport getTransPort(QName name) throws AxisFault {
+        return (Transport)transports.get(name);
+    }
+
+    public int getTransportCount() throws AxisFault {
+        return transports.getCount();
+    }
+
+    public void addMdoule(Module module) throws AxisFault {
+        modules.add(module.getName(),module);
+    }
+
+    public void addService(Service service) throws AxisFault {
+        services.add(service.getName(),service);
+
+    }
+
+    public void addTransport(Transport transport) throws AxisFault {
+        transports.add(transport.getName(),transport);
+    }
+
+    public void removeService(QName name) throws AxisFault {
+        services.remove(name);
+    }
+
+    public void removeTransport(QName name) throws AxisFault {
+        transports.remove(name);
+    }
+
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/TypeMapping.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/TypeMapping.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2001-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.core.registry;
+
+import javax.xml.namespace.QName;
+
+/**
+ * @author hemapani@opensource.lk
+ */
+public interface TypeMapping {
+    public QName getXMLType();
+    public Class getJavaType();
+    /**
+     * @param style say it is litral or encoding 
+     * @return
+     */
+    public Class getSerializer4Type(String style);
+    public Class getDeserailizer4Type(String style);
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/TypeMappingInclude.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/core/registry/TypeMappingInclude.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,27 @@
+/*
+ * Copyright 2001-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.core.registry;
+
+import javax.xml.namespace.QName;
+
+public interface TypeMappingInclude {
+    public int getTypeMappingCount();
+    public TypeMapping getTypeMapping(int index);
+    public TypeMapping getTypeMapping(QName xmlType);
+    public TypeMapping getTypeMapping(Class javaType);
+    public void addTypeMapping(TypeMapping typeMapping);
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/encoding/DataBinder.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/encoding/DataBinder.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2001-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.encoding;
+
+/**
+ * This interface hides the Data Binding stuff. Engine always talks with the Data Binding
+ * throuh this interface. The Imples of this interface may use 
+ *  XMLBeans , JAXB, our own ones, what not   
+ * @author Srinath Perera (hemapani@opensource.lk)
+ */
+public interface DataBinder {
+//    public Object deserialize(QName xmlName,XMLPullParser parser);
+//    public int deserializeInt(XMLPullParser parser);
+//    public double deserializeDouble(XMLPullParser parser);
+//    public long deserializeLong(XMLPullParser parser);
+//    public float deserializeFloat(XMLPullParser parser);
+//    public boolean deserializeBoolean(XMLPullParser parser);
+//    public byte deserializeByte(XMLPullParser parser);
+//    public char deserializeChar(XMLPullParser parser);
+//    public short deserializeShort(XMLPullParser parser);
+}

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/encoding/push/Pusher.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/encoding/push/Pusher.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,24 @@
+/*
+ * 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.encoding.push;
+
+/**
+ * @author Srinath Perera (hemapani@opensource.lk)
+ */
+
+public interface Pusher {
+    public void push();
+}

Modified: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/handlers/AbstractHandler.java
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/handlers/AbstractHandler.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/handlers/AbstractHandler.java	Wed Nov 17 19:07:25 2004
@@ -17,10 +17,10 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.axis.AxisFault;
-import org.apache.axis.Handler;
-import org.apache.axis.context.MessageContext;
-import org.apache.axis.registry.Parameter;
+import org.apache.axis.core.AxisFault;
+import org.apache.axis.core.Handler;
+import org.apache.axis.core.context.MessageContext;
+import org.apache.axis.core.registry.Parameter;
 
 /**
  * @author Srinath Perera (hemapani@opensource.lk)
@@ -32,7 +32,7 @@
     }
     public void invoke(MessageContext msgContext) throws AxisFault {
     }
-    public void revoke(MessageContext msgContext) {
+    public void revoke(MessageContext msgContext){
     }
     public void setName(QName name) {
         this.name = name;

Modified: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/handlers/RPCOpNameFinder.java
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/handlers/RPCOpNameFinder.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/handlers/RPCOpNameFinder.java	Wed Nov 17 19:07:25 2004
@@ -19,13 +19,13 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.axis.AxisFault;
-import org.apache.axis.Constants;
-import org.apache.axis.context.MessageContext;
-import org.apache.axis.message.OMMessage;
+import org.apache.axis.core.AxisFault;
+import org.apache.axis.core.Constants;
+import org.apache.axis.core.context.MessageContext;
 import org.apache.axis.om.OMElement;
 import org.apache.axis.om.OMNamespace;
 import org.apache.axis.om.OMNode;
+import org.apache.axis.om.soap.SOAPMessage;
 
 /**
  * @author Srinath Perera (hemapani@opensource.lk)
@@ -34,7 +34,7 @@
     public void invoke(MessageContext msgContext) throws AxisFault {
         int style = msgContext.getMessageStyle();
         if(Constants.SOAP_STYLE_RPC_ENCODED == style || style == Constants.SOAP_STYLE_RPC_LITERAL){
-            OMMessage message = msgContext.getInMessage();
+            SOAPMessage message = msgContext.getInMessage();
             OMNode node = null;
             OMElement element = message.getEnvelope().getBody();
             if(Constants.ELEM_BODY.equals(element.getLocalName())){
@@ -58,8 +58,10 @@
                             if(ns != null){
                                 msgContext.setCurrentOperation(new QName(ns,bodyChild.getLocalName())); 
                             }
+                        }else{
+                            throw new AxisFault("SOAP Body must be NS Qualified");                            
                         }
-                        throw new AxisFault("SOAP Body must be NS Qualified");                
+                
                     }    
                 }
             }

Modified: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/providers/ASyncProvider.java
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/providers/ASyncProvider.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/providers/ASyncProvider.java	Wed Nov 17 19:07:25 2004
@@ -15,10 +15,10 @@
  */
 package org.apache.axis.providers;
 
-import org.apache.axis.AxisFault;
-import org.apache.axis.Provider;
-import org.apache.axis.context.MessageContext;
-import org.apache.axis.engine.Sender;
+import org.apache.axis.core.AxisFault;
+import org.apache.axis.core.Provider;
+import org.apache.axis.core.Sender;
+import org.apache.axis.core.context.MessageContext;
 import org.apache.axis.handlers.AbstractHandler;
 
 /**

Modified: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/providers/AbstractProvider.java
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/providers/AbstractProvider.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/providers/AbstractProvider.java	Wed Nov 17 19:07:25 2004
@@ -19,11 +19,11 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.axis.AxisFault;
-import org.apache.axis.Handler;
-import org.apache.axis.Provider;
-import org.apache.axis.context.MessageContext;
-import org.apache.axis.registry.AbstractEngineElement;
+import org.apache.axis.core.AxisFault;
+import org.apache.axis.core.Handler;
+import org.apache.axis.core.Provider;
+import org.apache.axis.core.context.MessageContext;
+import org.apache.axis.core.registry.AbstractEngineElement;
 
 /**
  * This is the Absract provider. It is just a another handler. the 

Modified: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/providers/SimpleJavaProvider.java
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/providers/SimpleJavaProvider.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/providers/SimpleJavaProvider.java	Wed Nov 17 19:07:25 2004
@@ -21,14 +21,17 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.axis.AxisFault;
-import org.apache.axis.Constants;
-import org.apache.axis.Handler;
-import org.apache.axis.context.MessageContext;
-import org.apache.axis.context.SessionContext;
-import org.apache.axis.engine.Service;
-import org.apache.axis.message.OMMessage;
-import org.apache.axis.registry.Parameter;
+import org.apache.axis.core.AxisFault;
+import org.apache.axis.core.Constants;
+import org.apache.axis.core.Handler;
+import org.apache.axis.core.Service;
+import org.apache.axis.core.context.MessageContext;
+import org.apache.axis.core.context.SessionContext;
+import org.apache.axis.core.registry.Parameter;
+import org.apache.axis.om.OMXMLParserWrapper;
+import org.apache.axis.om.impl.OMXMLPullParserWrapper;
+import org.apache.axis.om.impl.SOAPMessageImpl;
+import org.apache.axis.om.soap.SOAPMessage;
 
 /**
  * This is a Simple java Provider. 
@@ -124,7 +127,10 @@
             Object[] parms = deserializeParameters(msgContext,method);
             //invoke the WebService 
             Object result = method.invoke(obj,parms);
-            msgContext.setOutMessage(new OMMessage(parms)); 
+
+            //TODO fix the server side  
+//            OMXMLParserWrapper parser = new OMXMLPullParserWrapper();
+//            msgContext.setOutMessage(new SOAPMessageImpl(parser)); 
         }  catch (SecurityException e) {
             throw AxisFault.makeFault(e);
         } catch (IllegalArgumentException e) {

Modified: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/providers/SyncProvider.java
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/providers/SyncProvider.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/providers/SyncProvider.java	Wed Nov 17 19:07:25 2004
@@ -15,10 +15,10 @@
  */
 package org.apache.axis.providers;
 
-import org.apache.axis.AxisFault;
-import org.apache.axis.Provider;
-import org.apache.axis.context.MessageContext;
-import org.apache.axis.engine.Sender;
+import org.apache.axis.core.AxisFault;
+import org.apache.axis.core.Provider;
+import org.apache.axis.core.Sender;
+import org.apache.axis.core.context.MessageContext;
 import org.apache.axis.handlers.AbstractHandler;
 
 /**

Modified: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/schema/SchemaVersion1999.java
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/schema/SchemaVersion1999.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/schema/SchemaVersion1999.java	Wed Nov 17 19:07:25 2004
@@ -16,7 +16,7 @@
 
 package org.apache.axis.schema;
 
-import org.apache.axis.Constants;
+import org.apache.axis.core.Constants;
 
 import javax.xml.namespace.QName;
 

Modified: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/schema/SchemaVersion2000.java
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/schema/SchemaVersion2000.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/schema/SchemaVersion2000.java	Wed Nov 17 19:07:25 2004
@@ -16,7 +16,7 @@
 
 package org.apache.axis.schema;
 
-import org.apache.axis.Constants;
+import org.apache.axis.core.Constants;
 
 import javax.xml.namespace.QName;
 

Modified: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/schema/SchemaVersion2001.java
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/schema/SchemaVersion2001.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/schema/SchemaVersion2001.java	Wed Nov 17 19:07:25 2004
@@ -16,7 +16,7 @@
 
 package org.apache.axis.schema;
 
-import org.apache.axis.Constants;
+import org.apache.axis.core.Constants;
 
 import javax.xml.namespace.QName;
 

Modified: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/soap/SOAP11Constants.java
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/soap/SOAP11Constants.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/soap/SOAP11Constants.java	Wed Nov 17 19:07:25 2004
@@ -17,7 +17,7 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.axis.Constants;
+import org.apache.axis.core.Constants;
 
 /**
  * SOAP 1.1 constants

Modified: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/soap/SOAP12Constants.java
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/soap/SOAP12Constants.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/soap/SOAP12Constants.java	Wed Nov 17 19:07:25 2004
@@ -15,7 +15,7 @@
  */
 package org.apache.axis.soap;
 
-import org.apache.axis.Constants;
+import org.apache.axis.core.Constants;
 
 import javax.xml.namespace.QName;
 

Modified: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/transport/TransportSender.java
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/transport/TransportSender.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/transport/TransportSender.java	Wed Nov 17 19:07:25 2004
@@ -19,12 +19,12 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.axis.AxisFault;
-import org.apache.axis.Handler;
-import org.apache.axis.context.MessageContext;
+import org.apache.axis.core.AxisFault;
+import org.apache.axis.core.Handler;
+import org.apache.axis.core.context.MessageContext;
+import org.apache.axis.core.registry.Parameter;
 import org.apache.axis.handlers.AbstractHandler;
-import org.apache.axis.message.OMMessage;
-import org.apache.axis.registry.Parameter;
+import org.apache.axis.om.soap.SOAPMessage;
 
 /**
  * @author Srinath Perera (hemapani@opensource.lk)
@@ -35,7 +35,7 @@
         this.out = out;
     }
     public void invoke(MessageContext msgContext) throws AxisFault {
-        OMMessage message = msgContext.getOutMessage();
-        message.serialize(out);
+        SOAPMessage message = msgContext.getOutMessage();
+        //Serialize the Mesage
     }
 }

Modified: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/transport/http/SimpleAxisServer.java
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/transport/http/SimpleAxisServer.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/transport/http/SimpleAxisServer.java	Wed Nov 17 19:07:25 2004
@@ -22,7 +22,7 @@
 import java.net.ServerSocket;
 import java.net.Socket;
 
-import org.apache.axis.engine.AxisEngine;
+import org.apache.axis.core.AxisEngine;
 import org.apache.axis.utils.Messages;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;

Modified: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/transport/http/SimpleAxisWorker.java
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/transport/http/SimpleAxisWorker.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/java/org/apache/axis/transport/http/SimpleAxisWorker.java	Wed Nov 17 19:07:25 2004
@@ -16,21 +16,26 @@
 
 package org.apache.axis.transport.http;
 
+import java.io.InputStreamReader;
 import java.io.OutputStream;
 import java.net.Socket;
 
 import javax.xml.namespace.QName;
 import javax.xml.soap.MimeHeaders;
 
-import org.apache.axis.context.MessageContext;
+import org.apache.axis.core.AxisEngine;
+import org.apache.axis.core.context.MessageContext;
+import org.apache.axis.core.registry.EngineRegistry;
 import org.apache.axis.encoding.Base64;
-import org.apache.axis.engine.AxisEngine;
-import org.apache.axis.message.OMMessage;
-import org.apache.axis.registry.EngineRegistry;
+import org.apache.axis.om.OMXMLParserWrapper;
+import org.apache.axis.om.impl.OMXMLPullParserWrapper;
+import org.apache.axis.om.impl.SOAPMessageImpl;
 import org.apache.axis.transport.TransportSender;
 import org.apache.axis.utils.Messages;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserFactory;
 
 
 
@@ -275,7 +280,13 @@
                     log.info("status written");
                     msgContext.setTransportSender(new TransportSender(out));
 
-                    msgContext.setInMessage(new OMMessage(is));
+                    XmlPullParserFactory pf = XmlPullParserFactory.newInstance();
+                    pf.setNamespaceAware(true);
+                    XmlPullParser  parser = pf.newPullParser();
+                    parser.setInput(new InputStreamReader(is));
+                    
+                    OMXMLParserWrapper parserWrapper = new OMXMLPullParserWrapper(parser); 
+                    msgContext.setInMessage(new SOAPMessageImpl(parserWrapper));
                     EngineRegistry reg = engine.getRegistry();
                     // invoke the Axis engine
                     engine.recive(msgContext);

Modified: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/test/org/apache/axis/engine/EchoTest.java
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/test/org/apache/axis/engine/EchoTest.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/test/org/apache/axis/engine/EchoTest.java	Wed Nov 17 19:07:25 2004
@@ -28,15 +28,29 @@
 import javax.xml.namespace.QName;
 
 import org.apache.axis.AbstractTestCase;
-import org.apache.axis.context.MessageContext;
+import org.apache.axis.core.AxisEngine;
+import org.apache.axis.core.EngineUtils;
+import org.apache.axis.core.Global;
+import org.apache.axis.core.Operation;
+import org.apache.axis.core.Service;
+import org.apache.axis.core.SimpleGlobal;
+import org.apache.axis.core.SimpleModule;
+import org.apache.axis.core.SimpleOperation;
+import org.apache.axis.core.SimpleService;
+import org.apache.axis.core.SimpleTransport;
+import org.apache.axis.core.Transport;
+import org.apache.axis.core.context.MessageContext;
+import org.apache.axis.core.exec.Constants;
+import org.apache.axis.core.exec.ExecutionChain;
+import org.apache.axis.core.registry.ConcreateParameter;
+import org.apache.axis.core.registry.EngineRegistry;
+import org.apache.axis.core.registry.Module;
+import org.apache.axis.core.registry.Parameter;
+import org.apache.axis.core.registry.SimpleEngineRegistry;
 import org.apache.axis.engine.registry.EchoService;
 import org.apache.axis.engine.registry.MockFlow;
 import org.apache.axis.providers.SimpleJavaProvider;
-import org.apache.axis.registry.ConcreateParameter;
-import org.apache.axis.registry.EngineRegistry;
-import org.apache.axis.registry.Module;
-import org.apache.axis.registry.Parameter;
-import org.apache.axis.registry.SimpleEngineRegistry;
+import org.apache.axis.providers.SyncProvider;
 import org.apache.axis.transport.http.SimpleAxisServer;
 
 /**
@@ -46,6 +60,7 @@
     private QName serviceName = new QName("","EchoService");
     private QName operationName = new QName("http://ws.apache.org/axis2","echoVoid");
     private QName transportName = new QName("","NullTransport");
+
     private EngineRegistry engineRegistry;
     private MessageContext mc;
     private Thread thisThread = null;
@@ -57,45 +72,13 @@
     }
 
     protected void setUp() throws Exception {
-        Global global = new SimpleGlobal();
-        global.setInFlow(new MockFlow("globel inflow",4));
-        global.setOutFlow(new MockFlow("globel outflow",2));
-        global.setFaultFlow(new MockFlow("globel faultflow",1));
-        engineRegistry = new SimpleEngineRegistry(global);
-        
-        Transport transport = new SimpleTransport(transportName);
-        transport.setInFlow(new MockFlow("transport inflow",4));
-        transport.setOutFlow(new MockFlow("transport outflow",2));
-        transport.setFaultFlow(new MockFlow("transport faultflow",1));
-        engineRegistry.addTransport(transport);
-        
-        Service service = new SimpleService(serviceName);
-        service.setInFlow(new MockFlow("service inflow",4));
-        service.setOutFlow(new MockFlow("service outflow",5));
-        service.setFaultFlow(new MockFlow("service faultflow",1));
-        service.setClassLoader(Thread.currentThread().getContextClassLoader());
-        
-        Parameter classParam = new ConcreateParameter("className",EchoService.class.getName());
-        service.addParameter(classParam);
-         
-        service.setProvider(new SimpleJavaProvider());
-        
-        Module m1 = new SimpleModule(new QName("","A Mdoule 1"));
-        m1.setInFlow(new MockFlow("service module inflow",4));
-        m1.setFaultFlow(new MockFlow("service module faultflow",1));
-        service.addModule(m1);
-        
-        Operation operation = new SimpleOperation(operationName,service);
-        operation.setInFlow(new MockFlow("inflow",4));
-        
-        service.addOperation(operation);
-        engineRegistry.addService(service);
+        engineRegistry = Utils.createMockRegistry(serviceName,operationName,transportName);
         
         mc = new MessageContext(engineRegistry);
         mc.setCurrentTansport(transportName);
         mc.setCurrentService(serviceName);
         mc.setCurrentOperation(operationName);
-        
+
         AxisEngine engine = new AxisEngine(engineRegistry);
         sas = new SimpleAxisServer(engine);
         sas.setServerSocket(new ServerSocket(testingPort));

Modified: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/test/org/apache/axis/engine/EngineTest.java
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/test/org/apache/axis/engine/EngineTest.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/test/org/apache/axis/engine/EngineTest.java	Wed Nov 17 19:07:25 2004
@@ -20,15 +20,9 @@
 
 import junit.framework.TestCase;
 
-import org.apache.axis.context.MessageContext;
-import org.apache.axis.engine.registry.EchoService;
-import org.apache.axis.engine.registry.MockFlow;
-import org.apache.axis.providers.SimpleJavaProvider;
-import org.apache.axis.registry.ConcreateParameter;
-import org.apache.axis.registry.EngineRegistry;
-import org.apache.axis.registry.Module;
-import org.apache.axis.registry.Parameter;
-import org.apache.axis.registry.SimpleEngineRegistry;
+import org.apache.axis.core.AxisEngine;
+import org.apache.axis.core.context.MessageContext;
+import org.apache.axis.core.registry.EngineRegistry;
 
 /**
  * @author hemapani@opensource.lk
@@ -48,40 +42,7 @@
         super(arg0);
     }
     protected void setUp() throws Exception {
-        Global global = new SimpleGlobal();
-        global.setInFlow(new MockFlow("globel inflow",4));
-        global.setOutFlow(new MockFlow("globel outflow",2));
-        global.setFaultFlow(new MockFlow("globel faultflow",1));
-        engineRegistry = new SimpleEngineRegistry(global);
-        
-        Transport transport = new SimpleTransport(transportName);
-        transport.setInFlow(new MockFlow("transport inflow",4));
-        transport.setOutFlow(new MockFlow("transport outflow",2));
-        transport.setFaultFlow(new MockFlow("transport faultflow",1));
-        engineRegistry.addTransport(transport);
-        
-        Service service = new SimpleService(serviceName);
-        service.setInFlow(new MockFlow("service inflow",4));
-        service.setOutFlow(new MockFlow("service outflow",5));
-        service.setFaultFlow(new MockFlow("service faultflow",1));
-        service.setClassLoader(Thread.currentThread().getContextClassLoader());
-        
-        Parameter classParam = new ConcreateParameter("className",EchoService.class.getName());
-        service.addParameter(classParam);
-         
-        service.setProvider(new SimpleJavaProvider());
-        
-        Module m1 = new SimpleModule(new QName("","A Mdoule 1"));
-        m1.setInFlow(new MockFlow("service module inflow",4));
-        m1.setFaultFlow(new MockFlow("service module faultflow",1));
-        service.addModule(m1);
-        
-        Operation operation = new SimpleOperation(operationName,service);
-        operation.setInFlow(new MockFlow("inflow",4));
-        
-        service.addOperation(operation);
-        engineRegistry.addService(service);
-        
+        engineRegistry = Utils.createMockRegistry(serviceName,operationName,transportName);
         mc = new MessageContext(engineRegistry);
         mc.setCurrentTansport(transportName);
         mc.setCurrentService(serviceName);

Added: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/test/org/apache/axis/engine/Utils.java
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/test/org/apache/axis/engine/Utils.java	Wed Nov 17 19:07:25 2004
@@ -0,0 +1,115 @@
+/*
+ * 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.engine;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axis.core.AxisFault;
+import org.apache.axis.core.EngineUtils;
+import org.apache.axis.core.Global;
+import org.apache.axis.core.Operation;
+import org.apache.axis.core.Service;
+import org.apache.axis.core.SimpleGlobal;
+import org.apache.axis.core.SimpleModule;
+import org.apache.axis.core.SimpleOperation;
+import org.apache.axis.core.SimpleService;
+import org.apache.axis.core.SimpleTransport;
+import org.apache.axis.core.Transport;
+import org.apache.axis.core.context.MessageContext;
+import org.apache.axis.core.exec.Constants;
+import org.apache.axis.core.exec.ExecutionChain;
+import org.apache.axis.core.exec.Phase;
+import org.apache.axis.core.registry.ConcreateParameter;
+import org.apache.axis.core.registry.EngineRegistry;
+import org.apache.axis.core.registry.Module;
+import org.apache.axis.core.registry.Parameter;
+import org.apache.axis.core.registry.SimpleEngineRegistry;
+import org.apache.axis.engine.registry.EchoService;
+import org.apache.axis.engine.registry.MockFlow;
+import org.apache.axis.providers.SimpleJavaProvider;
+import org.apache.axis.providers.SyncProvider;
+
+/**
+ * @author Srinath Perera (hemapani@opensource.lk)
+ */
+public class Utils {
+    public static EngineRegistry createMockRegistry(QName serviceName,QName operationName,QName transportName) throws AxisFault{
+        EngineRegistry engineRegistry = null;
+        Global global = new SimpleGlobal();
+        global.setInFlow(new MockFlow("globel inflow",4));
+        global.setOutFlow(new MockFlow("globel outflow",2));
+        global.setFaultFlow(new MockFlow("globel faultflow",1));
+        engineRegistry = new SimpleEngineRegistry(global);
+        
+        Transport transport = new SimpleTransport(transportName);
+        transport.setInFlow(new MockFlow("transport inflow",4));
+        transport.setOutFlow(new MockFlow("transport outflow",2));
+        transport.setFaultFlow(new MockFlow("transport faultflow",1));
+        engineRegistry.addTransport(transport);
+        
+        Service service = new SimpleService(serviceName);
+        service.setInFlow(new MockFlow("service inflow",4));
+        service.setOutFlow(new MockFlow("service outflow",5));
+        service.setFaultFlow(new MockFlow("service faultflow",1));
+        service.setClassLoader(Thread.currentThread().getContextClassLoader());
+        
+        Parameter classParam = new ConcreateParameter("className",EchoService.class.getName());
+        service.addParameter(classParam);
+         
+        service.setProvider(new SyncProvider(new SimpleJavaProvider()));
+        
+        Module m1 = new SimpleModule(new QName("","A Mdoule 1"));
+        m1.setInFlow(new MockFlow("service module inflow",4));
+        m1.setFaultFlow(new MockFlow("service module faultflow",1));
+        service.addModule(m1);
+        
+        Operation operation = new SimpleOperation(operationName,service);
+        operation.setInFlow(new MockFlow("inflow",4));
+        
+        service.addOperation(operation);
+        engineRegistry.addService(service);
+        //create Execution Chains
+        ExecutionChain inchain = new ExecutionChain();
+        inchain.addPhase(new Phase(Constants.PHASE_TRANSPORT));
+        inchain.addPhase(new Phase(Constants.PHASE_GLOBAL));
+        inchain.addPhase(new Phase(Constants.PHASE_SERVICE));
+        EngineUtils.addHandlers(transport.getInFlow(),inchain,Constants.PHASE_TRANSPORT);
+        EngineUtils.addHandlers(global.getInFlow(),inchain,Constants.PHASE_GLOBAL);
+        EngineUtils.addHandlers(service.getInFlow(),inchain,Constants.PHASE_SERVICE);
+        service.setInputExecutionChain(inchain);
+        
+        ExecutionChain outchain = new ExecutionChain();
+        outchain.addPhase(new Phase(Constants.PHASE_SERVICE));
+        outchain.addPhase(new Phase(Constants.PHASE_GLOBAL));
+        outchain.addPhase(new Phase(Constants.PHASE_TRANSPORT));
+        EngineUtils.addHandlers(service.getInFlow(),outchain,Constants.PHASE_SERVICE);
+        EngineUtils.addHandlers(global.getInFlow(),outchain,Constants.PHASE_GLOBAL);
+        EngineUtils.addHandlers(transport.getInFlow(),outchain,Constants.PHASE_TRANSPORT);
+        service.setOutExecutionChain(outchain);
+        
+        ExecutionChain faultchain = new ExecutionChain();
+        
+        faultchain.addPhase(new Phase(Constants.PHASE_SERVICE));
+        faultchain.addPhase(new Phase(Constants.PHASE_GLOBAL));
+        faultchain.addPhase(new Phase(Constants.PHASE_TRANSPORT));
+        
+        EngineUtils.addHandlers(service.getInFlow(),faultchain,Constants.PHASE_SERVICE);
+        EngineUtils.addHandlers(global.getInFlow(),faultchain,Constants.PHASE_GLOBAL);
+        EngineUtils.addHandlers(transport.getInFlow(),faultchain,Constants.PHASE_TRANSPORT);
+        service.setFaultExecutionChain(outchain);
+        return engineRegistry;
+    }
+}

Modified: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/test/org/apache/axis/engine/registry/MockFlow.java
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/test/org/apache/axis/engine/registry/MockFlow.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/test/org/apache/axis/engine/registry/MockFlow.java	Wed Nov 17 19:07:25 2004
@@ -16,8 +16,8 @@
 
 package org.apache.axis.engine.registry;
 
-import org.apache.axis.registry.ConcreateFlow;
-import org.apache.axis.registry.Flow;
+import org.apache.axis.core.registry.ConcreateFlow;
+import org.apache.axis.core.registry.Flow;
 
 public class MockFlow extends ConcreateFlow implements Flow{
     public MockFlow(String message,int length){

Modified: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/test/org/apache/axis/engine/registry/SpeakingHandler.java
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/test/org/apache/axis/engine/registry/SpeakingHandler.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/test/org/apache/axis/engine/registry/SpeakingHandler.java	Wed Nov 17 19:07:25 2004
@@ -18,10 +18,10 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.axis.AxisFault;
-import org.apache.axis.Handler;
-import org.apache.axis.context.MessageContext;
-import org.apache.axis.registry.AbstractEngineElement;
+import org.apache.axis.core.AxisFault;
+import org.apache.axis.core.Handler;
+import org.apache.axis.core.context.MessageContext;
+import org.apache.axis.core.registry.AbstractEngineElement;
 
 public class SpeakingHandler extends AbstractEngineElement implements Handler {
     private String message;

Modified: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/test/org/apache/axis/engine/registry/SpeakingProvider.java
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/test/org/apache/axis/engine/registry/SpeakingProvider.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/test/org/apache/axis/engine/registry/SpeakingProvider.java	Wed Nov 17 19:07:25 2004
@@ -18,9 +18,9 @@
 
 import java.lang.reflect.Method;
 
-import org.apache.axis.AxisFault;
-import org.apache.axis.Handler;
-import org.apache.axis.context.MessageContext;
+import org.apache.axis.core.AxisFault;
+import org.apache.axis.core.Handler;
+import org.apache.axis.core.context.MessageContext;
 import org.apache.axis.providers.AbstractProvider;
 
 public class SpeakingProvider extends AbstractProvider implements Handler {

Modified: webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/test/org/apache/axis/om/OMTest.java
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/test/org/apache/axis/om/OMTest.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/srinath_eran_jaliya/src/test/org/apache/axis/om/OMTest.java	Wed Nov 17 19:07:25 2004
@@ -21,9 +21,9 @@
 import java.util.Iterator;
 
 
-import org.apache.axis.om.factory.OMDocumentFactory;
-import org.apache.axis.om.factory.XPPFactoryConfiguration;
-import org.apache.axis.om.xpp.StreamingXPPOMBuilder;
+import org.apache.axis.om.impl.OMXMLPullParserWrapper;
+import org.apache.axis.om.impl.SOAPMessageImpl;
+import org.apache.axis.om.soap.SOAPMessage;
 import org.xmlpull.v1.XmlPullParser;
 import org.xmlpull.v1.XmlPullParserFactory;
 
@@ -33,14 +33,18 @@
  * @author Srinath Perera (hemapani@opensource.lk)
  */
 public class OMTest extends TestCase{
-    OMDocument omdoc;
+    SOAPMessage omdoc;
     protected void setUp() throws Exception {
         File file = new File("src/samples/soap/sample1.xml");
         FileInputStream in = new FileInputStream(file);
         
-        OMDocumentFactory fac = OMDocumentFactory.newInstance(new XPPFactoryConfiguration());
+        XmlPullParserFactory pf = XmlPullParserFactory.newInstance();
+        pf.setNamespaceAware(true);
+        XmlPullParser  parser = pf.newPullParser();
+        parser.setInput(new InputStreamReader(in));
         
-        omdoc = fac.getDocument(new InputStreamReader(in));
+        OMXMLParserWrapper parserWrapper = new OMXMLPullParserWrapper(parser); 
+        omdoc = new SOAPMessageImpl(parserWrapper);
     }
 
     
@@ -57,7 +61,7 @@
      *
      */
     public void test4MissingNamespaces(){
-        isNameSpacesMissing(omdoc.getDocumentElement());
+        isNameSpacesMissing(omdoc.getEnvelope());
     }
     
     public void isNullChildrenAreThere(OMElement omeleent){