axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From hemap...@apache.org
Subject svn commit: r109495 - in webservices/axis/trunk/java/dev/scratch/prototype2: . src/java/org/apache/axis/context src/java/org/apache/axis/deployment src/java/org/apache/axis/deployment/metadata src/java/org/apache/axis/deployment/metadata/phaserule src/java/org/apache/axis/deployment/repositary/utill src/java/org/apache/axis/encoding src/java/org/apache/axis/encoding/push src/java/org/apache/axis/engine src/java/org/apache/axis/engine/addressing src/java/org/apache/axis/engine/async src/java/org/apache/axis/engine/context src/java/org/apache/axis/engine/exec src/java/org/apache/axis/engine/registry src/java/org/apache/axis/handlers src/java/org/apache/axis/impl/context src/java/org/apache/axis/impl/engine src/java/org/apache/axis/impl/handlers src/java/org/apache/axis/impl/llom src/java/org/apache/axis/impl/llom/builder src/java/org/apache/axis/impl/llom/factory src/java/org/apache/axis/impl/llom/wrapper src/java/org/apache/axis/impl/providers src/java/org/apache/axis/impl/recivers src/java/org/apache/axis/impl/registry src/java/org/apache/axis/impl/transport src/java/org/apache/axis/impl/transport/http src/java/org/apache/axis/om src/java/org/apache/axis/om/impl src/java/org/apache/axis/providers src/java/org/apache/axis/recivers src/java/org/apache/axis/registry src/java/org/apache/axis/transport src/samples/deployment/service1 src/samples/deployment/service2 src/test/org/apache/axis/deployment src/test/org/apache/axis/engine src/test/org/apache/axis/engine/deployment src/test/org/apache/axis/engine/registry src/test/org/apache/axis/om src/test/org/apache/axis/om/builder src/test/org/apache/axis/registry
Date Thu, 02 Dec 2004 11:39:13 GMT
Author: hemapani
Date: Thu Dec  2 03:39:10 2004
New Revision: 109495

URL: http://svn.apache.org/viewcvs?view=rev&rev=109495
Log:
cleaning up the engine
Added:
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/context/
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/context/GlobalContext.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/context/MessageContext.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/context/SessionContext.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/EndPointReferance.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/ExecutionChain.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Phase.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/context/
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/context/SimpleSessionContext.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/engine/
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/engine/AbstractContainer.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/engine/GlobalImpl.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/engine/ModuleImpl.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/engine/OperationImpl.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/engine/ServiceImpl.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/engine/TransportImpl.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/handlers/
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/handlers/AbstractHandler.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/handlers/OpNameFinder.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/providers/
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/providers/AbstractProvider.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/providers/RawXMLProvider.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/providers/SimpleJavaProvider.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/providers/SyncProvider.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/recivers/
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/recivers/INReciver.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/recivers/InOutAsyncReciver.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/recivers/InOutSyncReciver.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/registry/
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/registry/AbstractEngineElement.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/registry/EngineRegistryImpl.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/registry/FlowImpl.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/registry/FlowIncludeImpl.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/registry/ModuleIncludeImpl.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/registry/ParameterImpl.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/registry/TypeMappingIncludeImpl.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/transport/
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/transport/TransportSender.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/transport/http/
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/transport/http/HTTPConstants.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/transport/http/NonBlockingBufferedInputStream.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/transport/http/SimpleAxisServer.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/transport/http/SimpleAxisWorker.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/transport/http/TCPTrasnportSender.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/om/OMChildrenIterator.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/om/OMChildrenQNameIterator.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/registry/
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/registry/EngineElement.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/registry/EngineRegistry.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/registry/Flow.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/registry/FlowInclude.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/registry/Module.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/registry/ModuleInclude.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/registry/NamedEngineElement.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/registry/Parameter.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/registry/TypeMapping.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/registry/TypeMappingInclude.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/deployment/
   webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/deployment/ServiceTest.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/
   webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/EchoService.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/MockFlow.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/SpeakingHandler.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/SpeakingHandler1.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/SpeakingProvider.java
Removed:
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/encoding/DataBinder.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/encoding/push/
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/AbstractContainer.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/SimpleGlobal.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/SimpleModule.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/SimpleOperation.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/SimpleService.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/SimpleTransport.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/addressing/
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/async/
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/context/
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/exec/
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/registry/
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/handlers/
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/om/impl/
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/providers/
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/recivers/
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/transport/
   webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/deployment/
   webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/registry/
Modified:
   webservices/axis/trunk/java/dev/scratch/prototype2/project.xml
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/DeploymentEngine.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/HandlerMetaData.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/ModuleMetaData.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/OperationMetaData.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/ParameterMetaData.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/ServerMetaData.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/ServiceMetaData.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/phaserule/HandlerChainMetaData.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/phaserule/HandlerChainMetaDataImpl.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/phaserule/PhaseHolder.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/phaserule/PhaseMetaData.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/repositary/utill/UnZipJAR.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/repositary/utill/WSInfo.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/AxisEngine.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Constants.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/EngineUtils.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Global.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Handler.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Operation.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Provider.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/ReciverLocator.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Sender.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Service.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/ServiceLocator.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Transport.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/TransportSenderLocator.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/OMElementImpl.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/OMNodeImpl.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/builder/OMStAXBuilder.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/factory/OMLinkedListImplFactory.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/wrapper/OMStAXWrapper.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/wrapper/OMXPPWrapper.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/service1/Handler1.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/service2/Handler1.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/EchoTest.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/EngineTest.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/Utils.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/CompareOMWithDOMTest.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/IteratorTester.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/MessagesTest.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMBodyTest.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMEnvelopeAnotherTest.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMEnvelopeTest.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMHeaderBlockTest.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMHeaderTest.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMNavigatorTest.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMTest.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMTestCase.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMTestUtils.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/Tester.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/builder/ObjectToOMBuilderTest.java

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/project.xml
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/project.xml?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/project.xml&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/project.xml&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/project.xml	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/project.xml	Thu Dec  2 03:39:10 2004
@@ -80,6 +80,8 @@
 	    <exclude>**/*Util*.java</exclude>
         <exclude>**/*SOAPEnvelopeAnotherTest.java</exclude>
         <exclude>**/*CompareOMWithDOMTest.java</exclude>
+       <exclude>**/*ServiceTest.java</exclude>
+        
       </excludes>
       <includes>
         <include>**/*Test.java</include>

Added: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/context/GlobalContext.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/context/GlobalContext.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/context/GlobalContext.java	Thu Dec  2 03:39:10 2004
@@ -0,0 +1,60 @@
+/*
+ * 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.context;
+
+import org.apache.axis.registry.EngineRegistry;
+
+import java.util.HashMap;
+
+/**
+ * All the engine componets are stateless accross the executions and all the states should be kept in the 
+ * Contexts, there are three context Global, Session and Message  
+ * @author Srinath Perera(hemapani@opensource.lk)
+ */
+public class GlobalContext {
+    
+    private EngineRegistry registry;
+    private HashMap map = new HashMap();
+    
+    
+    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/prototype2/src/java/org/apache/axis/context/MessageContext.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/context/MessageContext.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/context/MessageContext.java	Thu Dec  2 03:39:10 2004
@@ -0,0 +1,324 @@
+/*
+ * 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.context;
+
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.engine.Constants;
+import org.apache.axis.engine.EndPointReferance;
+import org.apache.axis.engine.Operation;
+import org.apache.axis.engine.Service;
+import org.apache.axis.impl.context.SimpleSessionContext;
+import org.apache.axis.om.OMEnvelope;
+import org.apache.axis.registry.EngineRegistry;
+
+import java.util.HashMap;
+
+/**
+ *  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();
+    
+	public static final String USER_NAME = "USER";
+	public static final String PASSWARD = "PASSWD";
+	public static final String TRANSPORT_TYPE = "TRANSPORT_TYPE";
+    public static final String SOAP_ACTION = "SOAP_ACTION";
+    public static final String TRANSPORT_DATA = "TRANSPORT_DATA";
+    
+    private boolean processingFault = false;
+    private EndPointReferance to;
+    private EndPointReferance from;
+    private EndPointReferance relatesTo;
+    private EndPointReferance replyTo;
+    private EndPointReferance faultTo;
+
+    //there is a no use cas found to set those proprties 
+    //so declare them final    
+    private final HashMap properties;
+    private final GlobalContext globalContext;
+
+    private SessionContext sessionContext;
+    private Service service;
+    private OMEnvelope envelope;
+    private boolean responseWritten;
+    private boolean infaultFlow;
+    private boolean serverSide;
+    private String messageID;
+    private Operation operation;
+    private boolean newThreadRequired = false;
+    
+    public MessageContext(EngineRegistry er) throws AxisFault{
+        this.globalContext = new GlobalContext(er);
+        this.sessionContext = new SimpleSessionContext();
+        properties = new HashMap();
+    }
+
+    
+    /**
+     * @return
+     */
+    public EndPointReferance getFaultTo() {
+        return faultTo;
+    }
+
+    /**
+     * @return
+     */
+    public EndPointReferance getFrom() {
+        return from;
+    }
+
+    /**
+     * @return
+     */
+    public GlobalContext getGlobalContext() {
+        return globalContext;
+    }
+
+    /**
+     * @return
+     */
+    public boolean isInfaultFlow() {
+        return infaultFlow;
+    }
+
+    /**
+     * @return
+     */
+    public OMEnvelope getEnvelope() {
+        return envelope;
+    }
+
+    /**
+     * @return
+     */
+    public String getMessageID() {
+        return messageID;
+    }
+
+
+    /**
+     * @return
+     */
+    public boolean isProcessingFault() {
+        return processingFault;
+    }
+
+    /**
+     * @return
+     */
+    public Object getProperty(Object key) {
+        return properties.get(key);
+    }
+
+    /**
+     * @return
+     */
+    public EndPointReferance getRelatesTo() {
+        return relatesTo;
+    }
+
+    /**
+     * @return
+     */
+    public EndPointReferance getReplyTo() {
+        return replyTo;
+    }
+
+    /**
+     * @return
+     */
+    public boolean isResponseWritten() {
+        return responseWritten;
+    }
+
+    /**
+     * @return
+     */
+    public boolean isServerSide() {
+        return serverSide;
+    }
+
+    /**
+     * @return
+     */
+    public SessionContext getSessionContext() {
+        return sessionContext;
+    }
+
+    /**
+     * @return
+     */
+    public EndPointReferance getTo() {
+        return to;
+    }
+
+    /**
+     * @param referance
+     */
+    public void setFaultTo(EndPointReferance referance) {
+        faultTo = referance;
+    }
+
+    /**
+     * @param referance
+     */
+    public void setFrom(EndPointReferance referance) {
+        from = referance;
+    }
+
+    /**
+     * @param b
+     */
+    public void setInfaultFlow(boolean b) {
+        infaultFlow = b;
+    }
+
+    /**
+     * @param envelope
+     */
+    public void setEnvelope(OMEnvelope envelope) {
+        this.envelope = envelope;
+    }
+
+    /**
+     * @param string
+     */
+    public void setMessageID(String string) {
+        messageID = string;
+    }
+
+
+    /**
+     * @param b
+     */
+    public void setProcessingFault(boolean b) {
+        processingFault = b;
+    }
+
+    /**
+     * @param map
+     */
+    public void setProperty(Object key,Object value) {
+        properties.put(key,value);
+    }
+
+    /**
+     * @param referance
+     */
+    public void setRelatesTo(EndPointReferance referance) {
+        relatesTo = referance;
+    }
+
+    /**
+     * @param referance
+     */
+    public void setReplyTo(EndPointReferance referance) {
+        replyTo = referance;
+    }
+
+    /**
+     * @param b
+     */
+    public void setResponseWritten(boolean b) {
+        responseWritten = b;
+    }
+
+    /**
+     * @param b
+     */
+    public void setServerSide(boolean b) {
+        serverSide = b;
+    }
+
+
+    /**
+     * @param referance
+     */
+    public void setTo(EndPointReferance referance) {
+        to = referance;
+    }
+
+    /**
+     * @return
+     */
+    public Service getService() {
+        return service;
+    }
+
+
+    /**
+     * @return
+     */
+    public Operation getOperation() {
+        return operation;
+    }
+
+    /**
+     * @param operation
+     */
+    public void setOperation(Operation operation) {
+        this.operation = operation;
+    }
+
+    /**
+     * @return
+     */
+    public boolean isNewThreadRequired() {
+        return newThreadRequired;
+    }
+
+    /**
+     * @param b
+     */
+    public void setNewThreadRequired(boolean b) {
+        newThreadRequired = b;
+    }
+
+    /**
+     * @param service
+     */
+    public void setService(Service service) {
+        this.service = service;
+    }
+
+    /**
+     * @param context
+     */
+    public void setSessionContext(SessionContext context) {
+        sessionContext = context;
+    }
+
+    /**
+     * @return
+     */
+    public int getMessageStyle() {
+        return messageStyle;
+    }
+
+    /**
+     * @param i
+     */
+    public void setMessageStyle(int i) {
+        messageStyle = i;
+    }
+
+}

Added: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/context/SessionContext.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/context/SessionContext.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/context/SessionContext.java	Thu Dec  2 03:39:10 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.context;
+/**
+ * All the engine componets are stateless accross the executions and all the states should be kept in the 
+ * Contexts, there are three context Global, Session and Message  
+ * @author Srinath Perera(hemapani@opensource.lk)
+ */
+public interface SessionContext {
+    public Object get(Object key);
+    public void put(Object key,Object obj);
+}

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/DeploymentEngine.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/DeploymentEngine.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/DeploymentEngine.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/DeploymentEngine.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/DeploymentEngine.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/DeploymentEngine.java	Thu Dec  2 03:39:10 2004
@@ -1,6 +1,20 @@
 package org.apache.axis.deployment;
 
-import org.apache.axis.deployment.metadata.*;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.InputStream;
+import java.util.Vector;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axis.deployment.metadata.FlowMetaData;
+import org.apache.axis.deployment.metadata.HandlerMetaData;
+import org.apache.axis.deployment.metadata.ModuleMetaData;
+import org.apache.axis.deployment.metadata.OperationMetaData;
+import org.apache.axis.deployment.metadata.ParameterMetaData;
+import org.apache.axis.deployment.metadata.ServerMetaData;
+import org.apache.axis.deployment.metadata.ServiceMetaData;
 import org.apache.axis.deployment.metadata.phaserule.PhaseException;
 import org.apache.axis.deployment.repositary.utill.HDFileItem;
 import org.apache.axis.deployment.repositary.utill.UnZipJAR;
@@ -8,16 +22,28 @@
 import org.apache.axis.deployment.scheduler.DeploymentIterator;
 import org.apache.axis.deployment.scheduler.Scheduler;
 import org.apache.axis.deployment.scheduler.SchedulerTask;
-import org.apache.axis.engine.*;
-import org.apache.axis.engine.exec.Constants;
-import org.apache.axis.engine.exec.ExecutionChain;
-import org.apache.axis.engine.exec.Phase;
-import org.apache.axis.engine.registry.*;
-import org.apache.axis.providers.SimpleJavaProvider;
-
-import javax.xml.namespace.QName;
-import java.io.*;
-import java.util.Vector;
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.engine.Constants;
+import org.apache.axis.engine.ExecutionChain;
+import org.apache.axis.engine.Global;
+import org.apache.axis.engine.Handler;
+import org.apache.axis.engine.Operation;
+import org.apache.axis.engine.Phase;
+import org.apache.axis.engine.Service;
+import org.apache.axis.engine.Transport;
+import org.apache.axis.impl.engine.GlobalImpl;
+import org.apache.axis.impl.engine.ModuleImpl;
+import org.apache.axis.impl.engine.OperationImpl;
+import org.apache.axis.impl.engine.ServiceImpl;
+import org.apache.axis.impl.engine.TransportImpl;
+import org.apache.axis.impl.providers.SimpleJavaProvider;
+import org.apache.axis.impl.registry.FlowImpl;
+import org.apache.axis.impl.registry.ParameterImpl;
+import org.apache.axis.impl.registry.EngineRegistryImpl;
+import org.apache.axis.registry.EngineRegistry;
+import org.apache.axis.registry.Flow;
+import org.apache.axis.registry.Module;
+import org.apache.axis.registry.Parameter;
 
 
 /**
@@ -160,23 +186,23 @@
         /**
          * adding Global
          */
-        ConcreateFlow globalinflow = new ConcreateFlow();
-        ConcreateFlow globaloutflow = new ConcreateFlow();
-        ConcreateFlow globalfaultflow = new ConcreateFlow();
+        FlowImpl globalinflow = new FlowImpl();
+        FlowImpl globaloutflow = new FlowImpl();
+        FlowImpl globalfaultflow = new FlowImpl();
 
-        Global global = new SimpleGlobal();
+        Global global = new GlobalImpl();
         global.setInFlow(globalinflow);
         global.setOutFlow(globaloutflow);
         global.setFaultFlow(globalfaultflow);
-        newEngineRegisty = new SimpleEngineRegistry(global);
+        newEngineRegisty = new EngineRegistryImpl(global);
         /**
          * adding transport
          */
-        ConcreateFlow transportinflow = new ConcreateFlow();
-        ConcreateFlow transportoutflow = new ConcreateFlow();
-        ConcreateFlow transportfaultflow = new ConcreateFlow();
+        FlowImpl transportinflow = new FlowImpl();
+        FlowImpl transportoutflow = new FlowImpl();
+        FlowImpl transportfaultflow = new FlowImpl();
 
-        Transport transport = new SimpleTransport(transportName);
+        Transport transport = new TransportImpl(transportName);
         transport.setInFlow(transportinflow);
         transport.setOutFlow(transportoutflow);
         transport.setFaultFlow(transportfaultflow);
@@ -197,11 +223,11 @@
         QName serviceName = new QName(serviceMetaData.getName());
         int count = 0;
 
-        ConcreateFlow serviceinflow = new ConcreateFlow();
-        ConcreateFlow serviceoutflow = new ConcreateFlow();
-        ConcreateFlow servicefaultflow = new ConcreateFlow();
+        FlowImpl serviceinflow = new FlowImpl();
+        FlowImpl serviceoutflow = new FlowImpl();
+        FlowImpl servicefaultflow = new FlowImpl();
 
-        Service service = new SimpleService(serviceName);
+        Service service = new ServiceImpl(serviceName);
         service.setInFlow(serviceinflow);
         service.setOutFlow(serviceoutflow);
         service.setFaultFlow(servicefaultflow);
@@ -241,7 +267,7 @@
         count = serviceMetaData.getParametercount();
         for (int j = 0; j < count; j++) {
             ParameterMetaData paraMD = serviceMetaData.getParameter(j);
-            Parameter parameter = new ConcreateParameter(paraMD.getName(), paraMD.getElement());
+            Parameter parameter = new ParameterImpl(paraMD.getName(), paraMD.getElement());
             service.addParameter(parameter);
         }
 
@@ -258,31 +284,31 @@
         /**
          * adding parametrs to module
          */
-        Module module = new SimpleModule(new QName(modulemd.getRef()));
+        Module module = new ModuleImpl(new QName(modulemd.getRef()));
         service.addModule(module);
         count = modulemd.getParameterCount();
 
         for (int j = 0; j < count; j++) {
             ParameterMetaData paraMD = modulemd.getParameter(j);
-            Parameter parameter = new ConcreateParameter(paraMD.getName(), paraMD.getElement());
+            Parameter parameter = new ParameterImpl(paraMD.getName(), paraMD.getElement());
             module.addParameter(parameter);
         }
 
-        ConcreateFlow operationinflow = new ConcreateFlow();
+        FlowImpl operationinflow = new FlowImpl();
         count = oprationmd.getInFlow().getHandlercount();
         addFlowHandlers(operationinflow, count, oprationmd.getInFlow(), serviceClassLoader);
 
-        ConcreateFlow operationutflow = new ConcreateFlow();
+        FlowImpl operationutflow = new FlowImpl();
         count = oprationmd.getOutFlow().getHandlercount();
         addFlowHandlers(operationutflow, count, oprationmd.getOutFlow(), serviceClassLoader);
 
-        ConcreateFlow operationfaultflow = new ConcreateFlow();
+        FlowImpl operationfaultflow = new FlowImpl();
         count = oprationmd.getFaultFlow().getHandlercount();
         addFlowHandlers(operationfaultflow, count, oprationmd.getFaultFlow(), serviceClassLoader);
 
 
         QName opname = new QName(oprationmd.getName());
-        Operation operation = new SimpleOperation(opname, service);
+        Operation operation = new OperationImpl(opname, service);
         operation.setInFlow(operationinflow);
         operation.setOutFlow(operationutflow);
         operation.setFaultFlow(operationfaultflow);
@@ -380,7 +406,7 @@
             for (int k = 0; k < paracount; k++) {
                 ParameterMetaData paraMD = handlermd.getParameter(k);
                 //todo check with srinath whether this is correct
-                Parameter parameter = new ConcreateParameter(paraMD.getName(), paraMD.getElement());
+                Parameter parameter = new ParameterImpl(paraMD.getName(), paraMD.getElement());
                 handler.addParameter(parameter);
             }
             flow.addHandler(handler);
@@ -395,7 +421,7 @@
         /**
          * adding parametrs to module
          */
-        Module module = new SimpleModule(new QName(modulemd.getName()));
+        Module module = new ModuleImpl(new QName(modulemd.getName()));
         int count = modulemd.getParameterCount();
 
         //todo change the classloder
@@ -403,19 +429,19 @@
 
         for (int j = 0; j < count; j++) {
             ParameterMetaData paraMD = modulemd.getParameter(j);
-            Parameter parameter = new ConcreateParameter(paraMD.getName(), paraMD.getElement());
+            Parameter parameter = new ParameterImpl(paraMD.getName(), paraMD.getElement());
             module.addParameter(parameter);
         }
 
-        ConcreateFlow moduleinflow = new ConcreateFlow();
+        FlowImpl moduleinflow = new FlowImpl();
         count = modulemd.getInFlow().getHandlercount();
         addFlowHandlers(moduleinflow, count, modulemd.getInFlow(), moduleclassLoder);
 
-        ConcreateFlow moduleoutflow = new ConcreateFlow();
+        FlowImpl moduleoutflow = new FlowImpl();
         count = modulemd.getOutFlow().getHandlercount();
         addFlowHandlers(moduleoutflow, count, modulemd.getOutFlow(), moduleclassLoder);
 
-        ConcreateFlow modulefaultflow = new ConcreateFlow();
+        FlowImpl modulefaultflow = new FlowImpl();
         count = modulemd.getFaultFlow().getHandlercount();
         addFlowHandlers(modulefaultflow, count, modulemd.getFaultFlow(), moduleclassLoder);
         return module;

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/HandlerMetaData.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/HandlerMetaData.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/HandlerMetaData.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/HandlerMetaData.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/HandlerMetaData.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/HandlerMetaData.java	Thu Dec  2 03:39:10 2004
@@ -1,7 +1,5 @@
 package org.apache.axis.deployment.metadata;
 
-import org.apache.axis.deployment.DeploymentException;
-
 import java.util.Vector;
 
 /**

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/ModuleMetaData.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/ModuleMetaData.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/ModuleMetaData.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/ModuleMetaData.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/ModuleMetaData.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/ModuleMetaData.java	Thu Dec  2 03:39:10 2004
@@ -1,7 +1,5 @@
 package org.apache.axis.deployment.metadata;
 
-import org.apache.axis.deployment.metadata.ParameterMetaData;
-
 import java.util.Vector;
 
 /**

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/OperationMetaData.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/OperationMetaData.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/OperationMetaData.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/OperationMetaData.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/OperationMetaData.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/OperationMetaData.java	Thu Dec  2 03:39:10 2004
@@ -1,6 +1,5 @@
 package org.apache.axis.deployment.metadata;
 
-import java.util.Vector;
 
 /**
  * Copyright 2001-2004 The Apache Software Foundation.

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/ParameterMetaData.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/ParameterMetaData.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/ParameterMetaData.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/ParameterMetaData.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/ParameterMetaData.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/ParameterMetaData.java	Thu Dec  2 03:39:10 2004
@@ -1,6 +1,5 @@
 package org.apache.axis.deployment.metadata;
 
-import org.w3c.dom.Document;
 
 /**
  * Copyright 2001-2004 The Apache Software Foundation.

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/ServerMetaData.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/ServerMetaData.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/ServerMetaData.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/ServerMetaData.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/ServerMetaData.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/ServerMetaData.java	Thu Dec  2 03:39:10 2004
@@ -1,8 +1,8 @@
 package org.apache.axis.deployment.metadata;
 
-import org.apache.axis.deployment.metadata.phaserule.PhaseMetaData;
-
 import java.util.Vector;
+
+import org.apache.axis.deployment.metadata.phaserule.PhaseMetaData;
 
 /**
  * Copyright 2001-2004 The Apache Software Foundation.

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/ServiceMetaData.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/ServiceMetaData.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/ServiceMetaData.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/ServiceMetaData.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/ServiceMetaData.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/ServiceMetaData.java	Thu Dec  2 03:39:10 2004
@@ -1,11 +1,11 @@
 package org.apache.axis.deployment.metadata;
 
+import java.util.Vector;
+
 import org.apache.axis.deployment.DeployCons;
 import org.apache.axis.deployment.metadata.phaserule.HandlerChainMetaData;
 import org.apache.axis.deployment.metadata.phaserule.HandlerChainMetaDataImpl;
 import org.apache.axis.deployment.metadata.phaserule.PhaseException;
-
-import java.util.Vector;
 
 //import com.thoughtworks.xstream.XStream;
 

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/phaserule/HandlerChainMetaData.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/phaserule/HandlerChainMetaData.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/phaserule/HandlerChainMetaData.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/phaserule/HandlerChainMetaData.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/phaserule/HandlerChainMetaData.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/phaserule/HandlerChainMetaData.java	Thu Dec  2 03:39:10 2004
@@ -1,7 +1,6 @@
 package org.apache.axis.deployment.metadata.phaserule;
 
 import org.apache.axis.deployment.metadata.HandlerMetaData;
-import org.apache.axis.deployment.metadata.ServerMetaData;
 
 /**
  * Copyright 2001-2004 The Apache Software Foundation.

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/phaserule/HandlerChainMetaDataImpl.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/phaserule/HandlerChainMetaDataImpl.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/phaserule/HandlerChainMetaDataImpl.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/phaserule/HandlerChainMetaDataImpl.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/phaserule/HandlerChainMetaDataImpl.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/phaserule/HandlerChainMetaDataImpl.java	Thu Dec  2 03:39:10 2004
@@ -1,7 +1,6 @@
 package org.apache.axis.deployment.metadata.phaserule;
 
 import org.apache.axis.deployment.metadata.HandlerMetaData;
-import org.apache.axis.deployment.metadata.ServerMetaData;
 
 /**
  * Copyright 2001-2004 The Apache Software Foundation.

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/phaserule/PhaseHolder.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/phaserule/PhaseHolder.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/phaserule/PhaseHolder.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/phaserule/PhaseHolder.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/phaserule/PhaseHolder.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/phaserule/PhaseHolder.java	Thu Dec  2 03:39:10 2004
@@ -1,11 +1,11 @@
 package org.apache.axis.deployment.metadata.phaserule;
 
-import org.apache.axis.deployment.metadata.HandlerMetaData;
-import org.apache.axis.deployment.metadata.ServerMetaData;
+import java.util.Vector;
+
 import org.apache.axis.deployment.DeployCons;
 import org.apache.axis.deployment.DeploymentEngine;
-
-import java.util.Vector;
+import org.apache.axis.deployment.metadata.HandlerMetaData;
+import org.apache.axis.deployment.metadata.ServerMetaData;
 
 /**
  * Copyright 2001-2004 The Apache Software Foundation.

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/phaserule/PhaseMetaData.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/phaserule/PhaseMetaData.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/phaserule/PhaseMetaData.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/phaserule/PhaseMetaData.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/phaserule/PhaseMetaData.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/phaserule/PhaseMetaData.java	Thu Dec  2 03:39:10 2004
@@ -1,8 +1,8 @@
 package org.apache.axis.deployment.metadata.phaserule;
 
-import org.apache.axis.deployment.metadata.HandlerMetaData;
-
 import java.util.Vector;
+
+import org.apache.axis.deployment.metadata.HandlerMetaData;
 
 /**
  * Copyright 2001-2004 The Apache Software Foundation.

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/repositary/utill/UnZipJAR.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/repositary/utill/UnZipJAR.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/repositary/utill/UnZipJAR.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/repositary/utill/UnZipJAR.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/repositary/utill/UnZipJAR.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/repositary/utill/UnZipJAR.java	Thu Dec  2 03:39:10 2004
@@ -21,17 +21,15 @@
  *
  */
 
+import java.io.FileInputStream;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipInputStream;
+
 import org.apache.axis.deployment.DeployCons;
 import org.apache.axis.deployment.DeploymentEngine;
-import org.apache.axis.deployment.metadata.ServiceMetaData;
-import org.apache.axis.deployment.metadata.ModuleMetaData;
 import org.apache.axis.deployment.DeploymentParser;
-
-import java.io.*;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipInputStream;
-import java.util.zip.ZipFile;
-import java.util.Enumeration;
+import org.apache.axis.deployment.metadata.ModuleMetaData;
+import org.apache.axis.deployment.metadata.ServiceMetaData;
 
 public class UnZipJAR implements DeployCons {
     final int BUFFER = 2048;

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/repositary/utill/WSInfo.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/repositary/utill/WSInfo.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/repositary/utill/WSInfo.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/repositary/utill/WSInfo.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/repositary/utill/WSInfo.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/repositary/utill/WSInfo.java	Thu Dec  2 03:39:10 2004
@@ -1,6 +1,5 @@
 package org.apache.axis.deployment.repositary.utill;
 
-import java.io.File;
 
 /**
  * Copyright 2001-2004 The Apache Software Foundation.

Deleted: /webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/encoding/DataBinder.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/encoding/DataBinder.java?view=auto&rev=109494
==============================================================================

Deleted: /webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/AbstractContainer.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/AbstractContainer.java?view=auto&rev=109494
==============================================================================

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/AxisEngine.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/AxisEngine.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/AxisEngine.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/AxisEngine.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/AxisEngine.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/AxisEngine.java	Thu Dec  2 03:39:10 2004
@@ -16,10 +16,9 @@
 
 package org.apache.axis.engine;
 
-import org.apache.axis.engine.context.MessageContext;
-import org.apache.axis.engine.exec.ExecutionChain;
-import org.apache.axis.engine.registry.EngineRegistry;
-import org.apache.axis.handlers.OpNameFinder;
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.impl.handlers.OpNameFinder;
+import org.apache.axis.registry.EngineRegistry;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Constants.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Constants.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Constants.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Constants.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Constants.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Constants.java	Thu Dec  2 03:39:10 2004
@@ -30,6 +30,11 @@
     public static final String APPLICATION_SCOPE = "application";
     public static final String SESSION_SCOPE = "session";
     public static final String GLOBAL_SCOPE = "global";
+    
+    public static final String PHASE_SERVICE = "service";
+    public static final String PHASE_TRANSPORT = "transport";
+    public static final String PHASE_GLOBAL = "global";
+
 
 }
 //    public static final int SOAP_STYLE_DOC_LITRAL_UNWRAPPED = 1003;

Added: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/EndPointReferance.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/EndPointReferance.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/EndPointReferance.java	Thu Dec  2 03:39:10 2004
@@ -0,0 +1,24 @@
+package org.apache.axis.engine;
+
+/**
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * <p/>
+ * 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
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * 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.
+ *
+ * @author Axis team
+ * Date: Nov 29, 2004
+ * Time: 10:28:25 AM
+ * 
+ */
+public class EndPointReferance {
+}

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/EngineUtils.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/EngineUtils.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/EngineUtils.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/EngineUtils.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/EngineUtils.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/EngineUtils.java	Thu Dec  2 03:39:10 2004
@@ -15,8 +15,7 @@
  */
 package org.apache.axis.engine;
 
-import org.apache.axis.engine.exec.ExecutionChain;
-import org.apache.axis.engine.registry.Flow;
+import org.apache.axis.registry.Flow;
 
 /**
  * @author Srinath Perera (hemapani@opensource.lk)

Added: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/ExecutionChain.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/ExecutionChain.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/ExecutionChain.java	Thu Dec  2 03:39:10 2004
@@ -0,0 +1,86 @@
+/*
+ * 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 org.apache.axis.context.MessageContext;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Stack;
+
+/**
+ * <p>This is the ordered Collection of Phases as specified by the Server.xml file.</p> 
+ * @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);
+            }
+        }
+    }
+}

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Global.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Global.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Global.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Global.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Global.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Global.java	Thu Dec  2 03:39:10 2004
@@ -16,7 +16,11 @@
 
 package org.apache.axis.engine;
 
-import org.apache.axis.engine.registry.*;
+import org.apache.axis.registry.EngineElement;
+import org.apache.axis.registry.FlowInclude;
+import org.apache.axis.registry.Module;
+import org.apache.axis.registry.ModuleInclude;
+import org.apache.axis.registry.TypeMappingInclude;
 /**
  * Executes the Handlers that should be executed  for every web Service and
  * Contians the all global elements.   

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Handler.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Handler.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Handler.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Handler.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Handler.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Handler.java	Thu Dec  2 03:39:10 2004
@@ -16,8 +16,8 @@
 
 package org.apache.axis.engine;
 
-import org.apache.axis.engine.context.MessageContext;
-import org.apache.axis.engine.registry.NamedEngineElement;
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.registry.NamedEngineElement;
 
 import javax.xml.namespace.QName;
 import java.io.Serializable;

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Operation.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Operation.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Operation.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Operation.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Operation.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Operation.java	Thu Dec  2 03:39:10 2004
@@ -16,8 +16,8 @@
 
 package org.apache.axis.engine;
 
-import org.apache.axis.engine.registry.FlowInclude;
-import org.apache.axis.engine.registry.NamedEngineElement;
+import org.apache.axis.registry.FlowInclude;
+import org.apache.axis.registry.NamedEngineElement;
 /**
  * Runtime representation of the WSDL Operation
  */

Added: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Phase.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Phase.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Phase.java	Thu Dec  2 03:39:10 2004
@@ -0,0 +1,95 @@
+/*
+ * 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 org.apache.axis.context.MessageContext;
+import org.apache.axis.impl.handlers.AbstractHandler;
+
+import java.util.ArrayList;
+import java.util.Stack;
+
+/**
+ * <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;
+    }
+}

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Provider.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Provider.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Provider.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Provider.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Provider.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Provider.java	Thu Dec  2 03:39:10 2004
@@ -15,8 +15,8 @@
  */
 package org.apache.axis.engine;
 
-import org.apache.axis.engine.context.MessageContext;
-import org.apache.axis.engine.registry.NamedEngineElement;
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.registry.NamedEngineElement;
 
 import java.io.Serializable;
 

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/ReciverLocator.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/ReciverLocator.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/ReciverLocator.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/ReciverLocator.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/ReciverLocator.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/ReciverLocator.java	Thu Dec  2 03:39:10 2004
@@ -16,8 +16,8 @@
 
 package org.apache.axis.engine;
 
-import org.apache.axis.engine.context.MessageContext;
-import org.apache.axis.recivers.InOutSyncReciver;
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.impl.recivers.InOutSyncReciver;
 
 /**
  * @author Srinath Perera(hemapani@opensource.lk)

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Sender.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Sender.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Sender.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Sender.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Sender.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Sender.java	Thu Dec  2 03:39:10 2004
@@ -15,7 +15,7 @@
  */
 package org.apache.axis.engine;
 
-import org.apache.axis.engine.context.MessageContext;
+import org.apache.axis.context.MessageContext;
 
 
 public class Sender {

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Service.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Service.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Service.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Service.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Service.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Service.java	Thu Dec  2 03:39:10 2004
@@ -16,11 +16,10 @@
 
 package org.apache.axis.engine;
 
-import org.apache.axis.engine.exec.ExecutionChain;
-import org.apache.axis.engine.registry.FlowInclude;
-import org.apache.axis.engine.registry.ModuleInclude;
-import org.apache.axis.engine.registry.NamedEngineElement;
-import org.apache.axis.engine.registry.TypeMappingInclude;
+import org.apache.axis.registry.FlowInclude;
+import org.apache.axis.registry.ModuleInclude;
+import org.apache.axis.registry.NamedEngineElement;
+import org.apache.axis.registry.TypeMappingInclude;
 
 import javax.xml.namespace.QName;
 

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/ServiceLocator.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/ServiceLocator.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/ServiceLocator.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/ServiceLocator.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/ServiceLocator.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/ServiceLocator.java	Thu Dec  2 03:39:10 2004
@@ -16,7 +16,7 @@
 
 package org.apache.axis.engine;
 
-import org.apache.axis.engine.context.MessageContext;
+import org.apache.axis.context.MessageContext;
 
 import javax.xml.namespace.QName;
 

Deleted: /webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/SimpleGlobal.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/SimpleGlobal.java?view=auto&rev=109494
==============================================================================

Deleted: /webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/SimpleModule.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/SimpleModule.java?view=auto&rev=109494
==============================================================================

Deleted: /webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/SimpleOperation.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/SimpleOperation.java?view=auto&rev=109494
==============================================================================

Deleted: /webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/SimpleService.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/SimpleService.java?view=auto&rev=109494
==============================================================================

Deleted: /webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/SimpleTransport.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/SimpleTransport.java?view=auto&rev=109494
==============================================================================

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Transport.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Transport.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Transport.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Transport.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Transport.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Transport.java	Thu Dec  2 03:39:10 2004
@@ -16,9 +16,9 @@
 
 package org.apache.axis.engine;
 
-import org.apache.axis.engine.registry.FlowInclude;
-import org.apache.axis.engine.registry.ModuleInclude;
-import org.apache.axis.engine.registry.NamedEngineElement;
+import org.apache.axis.registry.FlowInclude;
+import org.apache.axis.registry.ModuleInclude;
+import org.apache.axis.registry.NamedEngineElement;
 
 /**
  * Runtime representation of the possible transport used. e.g. HTTP/SMTP

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/TransportSenderLocator.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/TransportSenderLocator.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/TransportSenderLocator.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/TransportSenderLocator.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/TransportSenderLocator.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/TransportSenderLocator.java	Thu Dec  2 03:39:10 2004
@@ -16,8 +16,8 @@
 
 package org.apache.axis.engine;
 
-import org.apache.axis.engine.context.MessageContext;
-import org.apache.axis.transport.http.TCPTrasnportSender;
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.impl.transport.http.TCPTrasnportSender;
 
 
 /**

Added: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/context/SimpleSessionContext.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/context/SimpleSessionContext.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/context/SimpleSessionContext.java	Thu Dec  2 03:39:10 2004
@@ -0,0 +1,35 @@
+/*
+ * 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.impl.context;
+
+import java.util.HashMap;
+
+import org.apache.axis.context.SessionContext;
+
+/**
+ * @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/prototype2/src/java/org/apache/axis/impl/engine/AbstractContainer.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/engine/AbstractContainer.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/engine/AbstractContainer.java	Thu Dec  2 03:39:10 2004
@@ -0,0 +1,158 @@
+/*
+ * 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.impl.engine;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axis.impl.registry.AbstractEngineElement;
+import org.apache.axis.impl.registry.FlowIncludeImpl;
+import org.apache.axis.impl.registry.ModuleIncludeImpl;
+import org.apache.axis.impl.registry.TypeMappingIncludeImpl;
+import org.apache.axis.registry.EngineElement;
+import org.apache.axis.registry.Flow;
+import org.apache.axis.registry.FlowInclude;
+import org.apache.axis.registry.Module;
+import org.apache.axis.registry.ModuleInclude;
+import org.apache.axis.registry.TypeMapping;
+import org.apache.axis.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 FlowIncludeImpl();
+        modules = new ModuleIncludeImpl();
+        typemappings = new TypeMappingIncludeImpl();
+    }
+    /**
+     * @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/prototype2/src/java/org/apache/axis/impl/engine/GlobalImpl.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/engine/GlobalImpl.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/engine/GlobalImpl.java	Thu Dec  2 03:39:10 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.impl.engine;
+
+import org.apache.axis.engine.Global;
+
+
+
+public class GlobalImpl extends AbstractContainer implements Global{
+    public GlobalImpl() {
+    }
+
+}

Added: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/engine/ModuleImpl.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/engine/ModuleImpl.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/engine/ModuleImpl.java	Thu Dec  2 03:39:10 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.impl.engine;
+
+import org.apache.axis.impl.registry.AbstractEngineElement;
+import org.apache.axis.registry.Flow;
+import org.apache.axis.registry.Module;
+import org.apache.axis.registry.TypeMapping;
+
+import javax.xml.namespace.QName;
+
+public class ModuleImpl extends AbstractEngineElement implements Module{
+    private Flow in;
+    private Flow out;
+    private Flow fault;
+    private QName name;
+    
+    public ModuleImpl(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/prototype2/src/java/org/apache/axis/impl/engine/OperationImpl.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/engine/OperationImpl.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/engine/OperationImpl.java	Thu Dec  2 03:39:10 2004
@@ -0,0 +1,44 @@
+/*
+ * 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.impl.engine;
+
+import org.apache.axis.engine.Operation;
+import org.apache.axis.engine.Service;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import javax.xml.namespace.QName;
+
+public class OperationImpl 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 OperationImpl(QName name,Service service){
+        this.name = name;
+        this.service = service;
+    }
+    public QName getName() {
+        return name;
+    }
+}

Added: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/engine/ServiceImpl.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/engine/ServiceImpl.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/engine/ServiceImpl.java	Thu Dec  2 03:39:10 2004
@@ -0,0 +1,116 @@
+/*
+ * 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.impl.engine;
+
+import org.apache.axis.engine.ExecutionChain;
+import org.apache.axis.engine.Handler;
+import org.apache.axis.engine.Operation;
+import org.apache.axis.engine.Provider;
+import org.apache.axis.engine.Service;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import javax.xml.namespace.QName;
+import java.util.HashMap;
+
+public class ServiceImpl 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 Provider provider;
+    private Handler sender;    
+    private ClassLoader classLoader;
+    
+    public ServiceImpl(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 Provider getProvider() {
+        return provider;
+    }
+
+    public void setProvider(Provider 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/prototype2/src/java/org/apache/axis/impl/engine/TransportImpl.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/engine/TransportImpl.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/engine/TransportImpl.java	Thu Dec  2 03:39:10 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.impl.engine;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axis.engine.Transport;
+
+public class TransportImpl extends AbstractContainer implements Transport{
+    private QName name;
+    
+    public TransportImpl(QName name){
+        this.name = name;
+    }
+
+    public QName getName() {
+        return name;
+    }
+
+}

Added: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/handlers/AbstractHandler.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/handlers/AbstractHandler.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/handlers/AbstractHandler.java	Thu Dec  2 03:39:10 2004
@@ -0,0 +1,51 @@
+/*
+ * 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.impl.handlers;
+
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.engine.Handler;
+import org.apache.axis.registry.Parameter;
+
+import javax.xml.namespace.QName;
+
+/**
+ * @author Srinath Perera (hemapani@opensource.lk)
+ */
+public abstract class AbstractHandler implements Handler{
+    private QName name;
+    public QName getName() {
+        return name;
+    }
+    public void invoke(MessageContext msgContext) throws AxisFault {
+    }
+    public void revoke(MessageContext msgContext){
+    }
+    public void setName(QName name) {
+        this.name = name;
+    }
+    public void addParameter(Parameter param) {
+            //TODO
+    }
+    public void cleanup() throws AxisFault {
+    }
+    public Parameter getParameter(String key) {
+        //TODO
+        return null;
+    }
+    public void init() throws AxisFault {
+    }
+}

Added: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/handlers/OpNameFinder.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/handlers/OpNameFinder.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/handlers/OpNameFinder.java	Thu Dec  2 03:39:10 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.impl.handlers;
+
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.engine.Constants;
+import org.apache.axis.engine.Service;
+import org.apache.axis.om.OMConstants;
+import org.apache.axis.om.OMElement;
+import org.apache.axis.om.OMEnvelope;
+import org.apache.axis.om.OMNamespace;
+import org.apache.axis.om.OMNode;
+
+import javax.xml.namespace.QName;
+import java.util.Iterator;
+
+/**
+ * @author Srinath Perera (hemapani@opensource.lk)
+ */
+public class OpNameFinder extends AbstractHandler{
+    public void invoke(MessageContext msgContext) throws AxisFault {
+        int style = msgContext.getMessageStyle();
+        if(Constants.SOAP_STYLE_RPC_ENCODED == style || style == Constants.SOAP_STYLE_RPC_LITERAL){
+            OMEnvelope envelope = msgContext.getEnvelope();
+            OMNode node = null;
+            OMElement element = envelope.getBody();
+            if(OMConstants.BODY_LOCAL_NAME.equals(element.getLocalName())){
+                Iterator bodychilderen = element.getChildren();
+                while(bodychilderen.hasNext()){
+                    node = (OMNode)bodychilderen.next();
+                    
+                    //TODO
+                    if(node == null){
+                        System.out.println("Why the some nodes are null :( :( :(");
+                        continue; 
+                    }
+                    
+                    if(node.getType() == OMNode.ELEMENT_NODE){
+                        OMElement bodyChild  = (OMElement)node;
+                    
+                        OMNamespace omns = bodyChild.getNamespace();
+    
+                        if(omns != null){
+                            String ns = omns.getValue();
+                            if(ns != null){
+                                QName opName = new QName(ns,bodyChild.getLocalName());
+                                Service service = msgContext.getService();
+                                msgContext.setOperation(service.getOperation(opName)); 
+                            }
+                        }else{
+                            throw new AxisFault("SOAP Body must be NS Qualified");                            
+                        }
+                
+                    }    
+                }
+            }
+        }
+    }
+}

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/OMElementImpl.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/OMElementImpl.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/OMElementImpl.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/OMElementImpl.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/OMElementImpl.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/OMElementImpl.java	Thu Dec  2 03:39:10 2004
@@ -1,13 +1,16 @@
 package org.apache.axis.impl.llom;
 
-import org.apache.axis.om.*;
-import org.apache.axis.om.impl.util.OMChildrenIterator;
-import org.apache.axis.om.impl.util.OMChildrenQNameIterator;
-import org.apache.axis.impl.llom.OMAttributeImpl;
-import org.apache.xml.utils.QName;
-
-import java.io.PrintStream;
 import java.util.Iterator;
+
+import org.apache.axis.om.OMAttribute;
+import org.apache.axis.om.OMChildrenIterator;
+import org.apache.axis.om.OMChildrenQNameIterator;
+import org.apache.axis.om.OMElement;
+import org.apache.axis.om.OMException;
+import org.apache.axis.om.OMNamespace;
+import org.apache.axis.om.OMNode;
+import org.apache.axis.om.OMXMLParserWrapper;
+import org.apache.xml.utils.QName;
 
 /**
  * Copyright 2001-2004 The Apache Software Foundation.

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/OMNodeImpl.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/OMNodeImpl.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/OMNodeImpl.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/OMNodeImpl.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/OMNodeImpl.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/OMNodeImpl.java	Thu Dec  2 03:39:10 2004
@@ -3,9 +3,6 @@
 import org.apache.axis.om.OMElement;
 import org.apache.axis.om.OMException;
 import org.apache.axis.om.OMNode;
-import org.apache.axis.impl.llom.OMElementImpl;
-
-import java.io.PrintStream;
 
 /**
  * Copyright 2001-2004 The Apache Software Foundation.

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/builder/OMStAXBuilder.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/builder/OMStAXBuilder.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/builder/OMStAXBuilder.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/builder/OMStAXBuilder.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/builder/OMStAXBuilder.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/builder/OMStAXBuilder.java	Thu Dec  2 03:39:10 2004
@@ -1,14 +1,19 @@
 package org.apache.axis.impl.llom.builder;
 
-import org.apache.axis.om.*;
+import javax.xml.stream.XMLStreamConstants;
+import javax.xml.stream.XMLStreamReader;
+
 import org.apache.axis.impl.llom.OMElementImpl;
 import org.apache.axis.impl.llom.OMNodeImpl;
-import org.apache.axis.impl.llom.OMNodeImpl;
 import org.apache.axis.impl.llom.OMTextImpl;
 import org.apache.axis.impl.llom.factory.OMLinkedListImplFactory;
-
-import javax.xml.stream.XMLStreamConstants;
-import javax.xml.stream.XMLStreamReader;
+import org.apache.axis.om.OMElement;
+import org.apache.axis.om.OMEnvelope;
+import org.apache.axis.om.OMException;
+import org.apache.axis.om.OMFactory;
+import org.apache.axis.om.OMNamespace;
+import org.apache.axis.om.OMNode;
+import org.apache.axis.om.OMXMLParserWrapper;
 
 /**
  * Copyright 2001-2004 The Apache Software Foundation.

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/factory/OMLinkedListImplFactory.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/factory/OMLinkedListImplFactory.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/factory/OMLinkedListImplFactory.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/factory/OMLinkedListImplFactory.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/factory/OMLinkedListImplFactory.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/factory/OMLinkedListImplFactory.java	Thu Dec  2 03:39:10 2004
@@ -1,8 +1,29 @@
 package org.apache.axis.impl.llom.factory;
 
-import org.apache.axis.om.*;
-import org.apache.axis.om.impl.*;
-import org.apache.axis.impl.llom.*;
+import org.apache.axis.impl.llom.OMAttributeImpl;
+import org.apache.axis.impl.llom.OMBodyElementImpl;
+import org.apache.axis.impl.llom.OMBodyImpl;
+import org.apache.axis.impl.llom.OMElementImpl;
+import org.apache.axis.impl.llom.OMEnvelopeImpl;
+import org.apache.axis.impl.llom.OMHeaderBlockImpl;
+import org.apache.axis.impl.llom.OMHeaderImpl;
+import org.apache.axis.impl.llom.OMNamedNodeImpl;
+import org.apache.axis.impl.llom.OMNamespaceImpl;
+import org.apache.axis.impl.llom.OMNodeImpl;
+import org.apache.axis.impl.llom.OMTextImpl;
+import org.apache.axis.om.OMAttribute;
+import org.apache.axis.om.OMBody;
+import org.apache.axis.om.OMBodyBlock;
+import org.apache.axis.om.OMElement;
+import org.apache.axis.om.OMEnvelope;
+import org.apache.axis.om.OMFactory;
+import org.apache.axis.om.OMHeader;
+import org.apache.axis.om.OMHeaderBlock;
+import org.apache.axis.om.OMNamedNode;
+import org.apache.axis.om.OMNamespace;
+import org.apache.axis.om.OMNode;
+import org.apache.axis.om.OMText;
+import org.apache.axis.om.OMXMLParserWrapper;
 
 /**
  * Copyright 2001-2004 The Apache Software Foundation.

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/wrapper/OMStAXWrapper.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/wrapper/OMStAXWrapper.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/wrapper/OMStAXWrapper.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/wrapper/OMStAXWrapper.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/wrapper/OMStAXWrapper.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/wrapper/OMStAXWrapper.java	Thu Dec  2 03:39:10 2004
@@ -1,16 +1,23 @@
 package org.apache.axis.impl.llom.wrapper;
 
-import org.apache.axis.om.*;
-import org.apache.axis.impl.llom.exception.OMStreamingException;
-import org.apache.axis.impl.llom.OMNavigator;
-import org.apache.axis.impl.llom.OMNavigator;
+import java.util.Iterator;
+import java.util.Stack;
 
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamConstants;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
-import java.util.Iterator;
-import java.util.Stack;
+
+import org.apache.axis.impl.llom.OMNavigator;
+import org.apache.axis.impl.llom.exception.OMStreamingException;
+import org.apache.axis.om.OMAttribute;
+import org.apache.axis.om.OMElement;
+import org.apache.axis.om.OMNamedNode;
+import org.apache.axis.om.OMNamespace;
+import org.apache.axis.om.OMNode;
+import org.apache.axis.om.OMText;
+import org.apache.axis.om.OMXMLParserWrapper;
+import org.apache.axis.om.StreamingWrapper;
 
 /**
  * Copyright 2001-2004 The Apache Software Foundation.

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/wrapper/OMXPPWrapper.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/wrapper/OMXPPWrapper.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/wrapper/OMXPPWrapper.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/wrapper/OMXPPWrapper.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/wrapper/OMXPPWrapper.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/llom/wrapper/OMXPPWrapper.java	Thu Dec  2 03:39:10 2004
@@ -1,9 +1,23 @@
 package org.apache.axis.impl.llom.wrapper;
 
-import org.apache.axis.om.*;
-import org.apache.axis.om.impl.*;
+import org.apache.axis.impl.llom.OMAttributeImpl;
+import org.apache.axis.impl.llom.OMBodyElementImpl;
+import org.apache.axis.impl.llom.OMBodyImpl;
+import org.apache.axis.impl.llom.OMElementImpl;
+import org.apache.axis.impl.llom.OMHeaderBlockImpl;
+import org.apache.axis.impl.llom.OMHeaderImpl;
+import org.apache.axis.impl.llom.OMNavigator;
+import org.apache.axis.impl.llom.OMNodeImpl;
+import org.apache.axis.impl.llom.OMTextImpl;
 import org.apache.axis.impl.llom.factory.OMLinkedListImplFactory;
-import org.apache.axis.impl.llom.*;
+import org.apache.axis.om.OMElement;
+import org.apache.axis.om.OMEnvelope;
+import org.apache.axis.om.OMException;
+import org.apache.axis.om.OMFactory;
+import org.apache.axis.om.OMNamespace;
+import org.apache.axis.om.OMNode;
+import org.apache.axis.om.OMText;
+import org.apache.axis.om.OMXMLParserWrapper;
 import org.xmlpull.v1.XmlPullParser;
 import org.xmlpull.v1.XmlPullParserException;
 

Added: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/providers/AbstractProvider.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/providers/AbstractProvider.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/providers/AbstractProvider.java	Thu Dec  2 03:39:10 2004
@@ -0,0 +1,38 @@
+/*
+ * 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.impl.providers;
+
+import org.apache.axis.engine.Provider;
+import org.apache.axis.impl.registry.AbstractEngineElement;
+
+import javax.xml.namespace.QName;
+
+/**
+ * This is the Absract provider. It is just a another handler. the 
+ * protected abstract methods are only for the sake of braking down the logic
+ * @author Srinath Perera(hemapani@opensource.lk)
+ */
+public abstract class AbstractProvider extends AbstractEngineElement implements Provider{
+    private QName name;
+    private String scope;
+    public QName getName() {
+        return name;
+    }
+
+    public void setName(QName name) {
+        this.name = name;
+    }
+}

Added: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/providers/RawXMLProvider.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/providers/RawXMLProvider.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/providers/RawXMLProvider.java	Thu Dec  2 03:39:10 2004
@@ -0,0 +1,161 @@
+/*
+ * 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.impl.providers;
+
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.context.SessionContext;
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.engine.Constants;
+import org.apache.axis.engine.Provider;
+import org.apache.axis.engine.Service;
+import org.apache.axis.om.OMEnvelope;
+import org.apache.axis.registry.Parameter;
+
+import javax.xml.namespace.QName;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+/**
+ * This is a Simple java Provider. 
+ * @author Srinath Perera(hemapani@opensource.lk)
+ */
+
+public class RawXMLProvider extends AbstractProvider implements Provider {
+    private String message;
+    private QName name;
+    private String scope;
+    private Method method;
+    private ClassLoader classLoader;
+    
+    public RawXMLProvider(){
+        scope = Constants.APPLICATION_SCOPE;
+
+    }
+    
+    protected Object makeNewServiceObject(MessageContext msgContext)
+        throws AxisFault
+    {
+        try {
+            Service service = msgContext.getService();
+            classLoader = service.getClassLoader();
+            Parameter classParm = service.getParameter("className");
+            String className = (String)classParm.getValue();
+            if(className == null)
+                throw new AxisFault("className parameter is null");
+            if(classLoader == null){
+                classLoader = Thread.currentThread().getContextClassLoader();
+            }
+            Class implClass =Class.forName(className,true,classLoader);
+            return implClass.newInstance();
+        } catch (Exception e) {
+            throw AxisFault.makeFault(e);
+        }
+    }
+
+    public Object getTheImplementationObject(
+            MessageContext msgContext)throws AxisFault{
+            Service service = msgContext.getService();
+            QName serviceName = service.getName();
+        if(Constants.APPLICATION_SCOPE.equals(scope)){
+            return makeNewServiceObject(msgContext);
+        }else if(Constants.SESSION_SCOPE.equals(scope)){
+            SessionContext sessionContext = msgContext.getSessionContext();
+            Object obj = sessionContext.get(serviceName);
+            if(obj == null){
+                obj = makeNewServiceObject(msgContext);
+                sessionContext.put(serviceName,obj);
+            }
+            return obj;            
+        }else if(Constants.GLOBAL_SCOPE.equals(scope)){
+            SessionContext globalContext = msgContext.getSessionContext();
+            Object obj = globalContext.get(serviceName);
+            if(obj == null){
+                obj = makeNewServiceObject(msgContext);
+                globalContext.put(serviceName,obj);
+            }
+            return obj;
+        }else{
+            throw new AxisFault("unknown scope "+ scope);
+        }
+            
+    } 
+    
+
+
+    public QName getName() {
+        return name;
+    }
+
+    public MessageContext invoke(MessageContext msgContext) throws AxisFault {
+        try {
+            //get the implementation class for the Web Service 
+            Object obj = getTheImplementationObject(msgContext);
+            
+            //find the WebService method  
+            Class ImplClass =obj.getClass();
+            String methodName = msgContext.getOperation().getName().getLocalPart();
+            Method[] methods = ImplClass.getMethods();
+            for(int i = 0;i<methods.length;i++){
+                if(methods[i].getName().equals(methodName)){
+                    this.method = methods[i];
+                    break;
+                }
+            }
+
+            Object[] parms = new Object[]{msgContext.getEnvelope()};
+            //invoke the WebService 
+            OMEnvelope result = (OMEnvelope)method.invoke(obj,parms);
+            MessageContext msgContext1 = new MessageContext(msgContext.getGlobalContext().getRegistry());
+            msgContext1.setEnvelope(result);
+            
+            return msgContext1;
+        }  catch (SecurityException e) {
+            throw AxisFault.makeFault(e);
+        } catch (IllegalArgumentException e) {
+            throw AxisFault.makeFault(e);
+        } catch (IllegalAccessException e) {
+            throw AxisFault.makeFault(e);
+        } catch (InvocationTargetException e) {
+            throw AxisFault.makeFault(e);
+        } catch (Exception e) {
+            throw AxisFault.makeFault(e);
+        }
+    }
+
+    public void revoke(MessageContext msgContext) {
+        System.out.println("I am Speaking Provider revoking :)");
+    }
+
+    public void setName(QName name) {
+        this.name = name;
+    }
+
+    /**
+     * @return
+     */
+    public ClassLoader getClassLoader() {
+        return classLoader;
+    }
+
+    /**
+     * @param loader
+     */
+    public void setClassLoader(ClassLoader loader) {
+        classLoader = loader;
+    }
+
+}

Added: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/providers/SimpleJavaProvider.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/providers/SimpleJavaProvider.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/providers/SimpleJavaProvider.java	Thu Dec  2 03:39:10 2004
@@ -0,0 +1,165 @@
+/*
+ * 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.impl.providers;
+
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.context.SessionContext;
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.engine.Constants;
+import org.apache.axis.engine.Provider;
+import org.apache.axis.engine.Service;
+import org.apache.axis.registry.Parameter;
+
+import javax.xml.namespace.QName;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+/**
+ * This is a Simple java Provider. 
+ * @author Srinath Perera(hemapani@opensource.lk)
+ */
+
+public class SimpleJavaProvider extends AbstractProvider implements Provider {
+    private String message;
+    private QName name;
+    private String scope;
+    private Method method;
+    private ClassLoader classLoader;
+    
+    public SimpleJavaProvider(){
+        scope = Constants.APPLICATION_SCOPE;
+
+    }
+    
+    protected Object makeNewServiceObject(MessageContext msgContext)
+        throws AxisFault
+    {
+        try {
+            Service service = msgContext.getService();
+            classLoader = service.getClassLoader();
+            Parameter classParm = service.getParameter("className");
+            String className = (String)classParm.getValue();
+            if(className == null)
+                throw new AxisFault("className parameter is null");
+            if(classLoader == null){
+                classLoader = Thread.currentThread().getContextClassLoader();
+            }
+            Class implClass =Class.forName(className,true,classLoader);
+            return implClass.newInstance();
+        } catch (Exception e) {
+            throw AxisFault.makeFault(e);
+        }
+    }
+
+    public Object getTheImplementationObject(
+            MessageContext msgContext)throws AxisFault{
+            Service service = msgContext.getService();
+            QName serviceName = service.getName();
+        if(Constants.APPLICATION_SCOPE.equals(scope)){
+            return makeNewServiceObject(msgContext);
+        }else if(Constants.SESSION_SCOPE.equals(scope)){
+            SessionContext sessionContext = msgContext.getSessionContext();
+            Object obj = sessionContext.get(serviceName);
+            if(obj == null){
+                obj = makeNewServiceObject(msgContext);
+                sessionContext.put(serviceName,obj);
+            }
+            return obj;            
+        }else if(Constants.GLOBAL_SCOPE.equals(scope)){
+            SessionContext globalContext = msgContext.getSessionContext();
+            Object obj = globalContext.get(serviceName);
+            if(obj == null){
+                obj = makeNewServiceObject(msgContext);
+                globalContext.put(serviceName,obj);
+            }
+            return obj;
+        }else{
+            throw new AxisFault("unknown scope "+ scope);
+        }
+            
+    } 
+    
+    public Object[] deserializeParameters(MessageContext msgContext,Method method){
+        //TODO deserialize the parameters here
+        return null;
+    }
+
+
+    public QName getName() {
+        return name;
+    }
+
+    public MessageContext invoke(MessageContext msgContext) throws AxisFault {
+        try {
+            //get the implementation class for the Web Service 
+            Object obj = getTheImplementationObject(msgContext);
+            
+            //find the WebService method  
+            Class ImplClass =obj.getClass();
+            String methodName = msgContext.getOperation().getName().getLocalPart();
+            Method[] methods = ImplClass.getMethods();
+            for(int i = 0;i<methods.length;i++){
+                if(methods[i].getName().equals(methodName)){
+                    this.method = methods[i];
+                    break;
+                }
+            }
+            //deserialize (XML-> java)
+            Object[] parms = deserializeParameters(msgContext,method);
+            //invoke the WebService 
+            Object result = method.invoke(obj,parms);
+
+            //TODO fix the server side  
+//            OMXMLParserWrapper parser = new OMXMLPullParserWrapper();
+//            msgContext.setOutMessage(new OMMessageImpl(parser));
+            return msgContext;
+        }  catch (SecurityException e) {
+            throw AxisFault.makeFault(e);
+        } catch (IllegalArgumentException e) {
+            throw AxisFault.makeFault(e);
+        } catch (IllegalAccessException e) {
+            throw AxisFault.makeFault(e);
+        } catch (InvocationTargetException e) {
+            throw AxisFault.makeFault(e);
+        } catch (Exception e) {
+            throw AxisFault.makeFault(e);
+        }
+    }
+
+    public void revoke(MessageContext msgContext) {
+        System.out.println("I am Speaking Provider revoking :)");
+    }
+
+    public void setName(QName name) {
+        this.name = name;
+    }
+
+    /**
+     * @return
+     */
+    public ClassLoader getClassLoader() {
+        return classLoader;
+    }
+
+    /**
+     * @param loader
+     */
+    public void setClassLoader(ClassLoader loader) {
+        classLoader = loader;
+    }
+
+}

Added: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/providers/SyncProvider.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/providers/SyncProvider.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/providers/SyncProvider.java	Thu Dec  2 03:39:10 2004
@@ -0,0 +1,40 @@
+/*
+ * 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.impl.providers;
+
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.engine.Provider;
+import org.apache.axis.engine.Sender;
+import org.apache.axis.impl.handlers.AbstractHandler;
+
+/**
+ * @author Srinath Perera (hemapani@opensource.lk)
+ */
+public class SyncProvider extends AbstractHandler{
+    private Provider doworkProvider;
+    public SyncProvider(Provider doworkProvider){
+        this.doworkProvider = doworkProvider;
+    }
+
+    public void invoke(MessageContext msgContext) throws AxisFault {
+        doworkProvider.invoke(msgContext);
+        Sender sender = new Sender();
+        //TODO .. do we create a new MsgContext
+        sender.send(msgContext);
+
+    }
+}

Added: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/recivers/INReciver.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/recivers/INReciver.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/recivers/INReciver.java	Thu Dec  2 03:39:10 2004
@@ -0,0 +1,24 @@
+/*
+ * 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.impl.recivers;
+
+/**
+ * @author Srinath Perera(hemapani@opensource.lk)
+ */
+public class INReciver {
+
+}

Added: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/recivers/InOutAsyncReciver.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/recivers/InOutAsyncReciver.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/recivers/InOutAsyncReciver.java	Thu Dec  2 03:39:10 2004
@@ -0,0 +1,24 @@
+/*
+ * 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.impl.recivers;
+
+/**
+ * @author Srinath Perera(hemapani@opensource.lk)
+ */
+public class InOutAsyncReciver {
+
+}

Added: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/recivers/InOutSyncReciver.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/recivers/InOutSyncReciver.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/recivers/InOutSyncReciver.java	Thu Dec  2 03:39:10 2004
@@ -0,0 +1,60 @@
+/*
+ * 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.impl.recivers;
+
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.engine.Provider;
+import org.apache.axis.engine.Reciver;
+import org.apache.axis.engine.Sender;
+import org.apache.axis.impl.handlers.AbstractHandler;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * @author Srinath Perera(hemapani@opensource.lk)
+ */
+public class InOutSyncReciver extends AbstractHandler implements Reciver {
+    protected Log log = LogFactory.getLog(getClass()); 
+
+    public void invoke(final MessageContext msgContext) throws AxisFault {
+        if(msgContext.isNewThreadRequired()){
+            Runnable runner = new Runnable() {
+                public void run() {
+                    try{
+                        send(msgContext);
+                    }catch(AxisFault e){
+                        log.error("Exception occured in new thread starting response",e);
+                    }
+                    
+                }
+            }; 
+            Thread thread = new Thread(runner);
+            thread.start();           
+        }else{
+            send(msgContext);
+        }
+    }
+    
+    public void send(MessageContext msgContext)throws AxisFault{
+        Provider provider = msgContext.getService().getProvider();
+        MessageContext outMsgContext = provider.invoke(msgContext);
+        Sender sender = new Sender();
+        sender.send(msgContext);
+    }
+
+}

Added: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/registry/AbstractEngineElement.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/registry/AbstractEngineElement.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/registry/AbstractEngineElement.java	Thu Dec  2 03:39:10 2004
@@ -0,0 +1,42 @@
+/*
+ * 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.impl.registry;
+
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.registry.EngineElement;
+import org.apache.axis.registry.Parameter;
+
+import java.util.HashMap;
+/**
+ * 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/prototype2/src/java/org/apache/axis/impl/registry/EngineRegistryImpl.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/registry/EngineRegistryImpl.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/registry/EngineRegistryImpl.java	Thu Dec  2 03:39:10 2004
@@ -0,0 +1,109 @@
+/*
+ * 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.impl.registry;
+
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.engine.Global;
+import org.apache.axis.engine.Service;
+import org.apache.axis.engine.Transport;
+import org.apache.axis.registry.EngineRegistry;
+import org.apache.axis.registry.Module;
+import org.apache.axis.utils.HashedBaundle;
+
+import javax.xml.namespace.QName;
+import java.util.ArrayList;
+
+public class EngineRegistryImpl implements EngineRegistry{
+    private HashedBaundle modules;
+    private HashedBaundle transports;
+    private HashedBaundle services;
+    private Global global;
+    
+    public EngineRegistryImpl(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/prototype2/src/java/org/apache/axis/impl/registry/FlowImpl.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/registry/FlowImpl.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/registry/FlowImpl.java	Thu Dec  2 03:39:10 2004
@@ -0,0 +1,41 @@
+/*
+ * 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.impl.registry;
+
+import org.apache.axis.engine.Handler;
+import org.apache.axis.registry.Flow;
+
+import java.util.Vector;
+
+/**
+ * @author hemapani@opensource.lk
+ */
+public class FlowImpl implements Flow {
+   protected Vector list = null; 
+   public FlowImpl(){
+        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/prototype2/src/java/org/apache/axis/impl/registry/FlowIncludeImpl.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/registry/FlowIncludeImpl.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/registry/FlowIncludeImpl.java	Thu Dec  2 03:39:10 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.impl.registry;
+
+import org.apache.axis.registry.Flow;
+import org.apache.axis.registry.FlowInclude;
+
+/**
+ * @author hemapani@opensource.lk
+ */
+public class FlowIncludeImpl 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/prototype2/src/java/org/apache/axis/impl/registry/ModuleIncludeImpl.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/registry/ModuleIncludeImpl.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/registry/ModuleIncludeImpl.java	Thu Dec  2 03:39:10 2004
@@ -0,0 +1,42 @@
+/*
+ * 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.impl.registry;
+
+import java.util.Vector;
+
+import org.apache.axis.registry.Module;
+import org.apache.axis.registry.ModuleInclude;
+
+/**
+ * @author hemapani@opensource.lk
+ */
+public class ModuleIncludeImpl implements ModuleInclude {
+    private Vector modules;
+
+    public ModuleIncludeImpl(){
+        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/prototype2/src/java/org/apache/axis/impl/registry/ParameterImpl.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/registry/ParameterImpl.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/registry/ParameterImpl.java	Thu Dec  2 03:39:10 2004
@@ -0,0 +1,45 @@
+/*
+ * 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.impl.registry;
+
+import org.apache.axis.registry.Parameter;
+
+
+/**
+ * @author Srinath Perera(hemapani@opensource.lk)
+ */
+public class ParameterImpl implements Parameter  {
+    private String name;
+    private String value;
+    private int type = TEXT_PARAMETER;
+    
+    public ParameterImpl(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/prototype2/src/java/org/apache/axis/impl/registry/TypeMappingIncludeImpl.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/registry/TypeMappingIncludeImpl.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/registry/TypeMappingIncludeImpl.java	Thu Dec  2 03:39:10 2004
@@ -0,0 +1,64 @@
+/*
+ * 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.impl.registry;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axis.registry.TypeMapping;
+import org.apache.axis.registry.TypeMappingInclude;
+
+import java.util.HashMap;
+import java.util.Vector;
+
+/**
+ * @author hemapani@opensource.lk
+ */
+public class TypeMappingIncludeImpl implements TypeMappingInclude{
+    private HashMap javamapping;
+    private HashMap xmlmapping;
+    private Vector mappingValues;
+    
+    public TypeMappingIncludeImpl(){
+        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/prototype2/src/java/org/apache/axis/impl/transport/TransportSender.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/transport/TransportSender.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/transport/TransportSender.java	Thu Dec  2 03:39:10 2004
@@ -0,0 +1,38 @@
+/*
+ * 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.impl.transport;
+
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.engine.Handler;
+import org.apache.axis.impl.handlers.AbstractHandler;
+import org.apache.axis.om.OMEnvelope;
+
+import java.io.OutputStream;
+
+/**
+ * @author Srinath Perera (hemapani@opensource.lk)
+ */
+public class TransportSender extends AbstractHandler implements Handler {
+    private OutputStream out;
+    public TransportSender(OutputStream out){
+        this.out = out;
+    }
+    public void invoke(MessageContext msgContext) throws AxisFault {
+        OMEnvelope envelope = msgContext.getEnvelope();
+        //Serialize the Mesage
+    }
+}

Added: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/transport/http/HTTPConstants.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/transport/http/HTTPConstants.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/transport/http/HTTPConstants.java	Thu Dec  2 03:39:10 2004
@@ -0,0 +1,123 @@
+/*
+ * 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.impl.transport.http;
+
+/**
+ * HTTP protocol and message context constants.
+ *
+ * @author Rob Jellinghaus (robj@unrealities.com)
+ * @author Doug Davis (dug@us.ibm.com)
+ * @author Jacek Kopecky (jacek@idoox.com)
+ */
+public class HTTPConstants {
+    /** The MessageContext transport ID of HTTP.
+     *  (Maybe this should be more specific, like "http_servlet",
+     *   whaddya think? - todo by Jacek)
+     */
+
+    public static final String HEADER_PROTOCOL_10 = "HTTP/1.0";
+    public static final String HEADER_PROTOCOL_11 = "HTTP/1.1";
+    public static final String HEADER_PROTOCOL_V10 = "1.0".intern();
+    public static final String HEADER_PROTOCOL_V11 = "1.1".intern();
+    public static final String HEADER_POST = "POST";
+    public static final String HEADER_HOST = "Host";
+    public static final String HEADER_CONTENT_DESCRIPTION = "Content-Description";
+    public static final String HEADER_CONTENT_TYPE = "Content-Type";
+    public static final String HEADER_CONTENT_TRANSFER_ENCODING = "Content-Transfer-Encoding";
+    public static final String HEADER_CONTENT_TYPE_JMS = "ContentType";
+    public static final String HEADER_CONTENT_LENGTH = "Content-Length";
+    public static final String HEADER_CONTENT_LOCATION = "Content-Location";
+    public static final String HEADER_CONTENT_ID = "Content-Id";
+    public static final String HEADER_SOAP_ACTION = "SOAPAction";
+    public static final String HEADER_AUTHORIZATION = "Authorization";
+    public static final String HEADER_PROXY_AUTHORIZATION = "Proxy-Authorization";
+    public static final String HEADER_EXPECT = "Expect";
+    public static final String HEADER_EXPECT_100_Continue = "100-continue";
+    public static final String HEADER_USER_AGENT = "User-Agent";
+    public static final String HEADER_CACHE_CONTROL = "Cache-Control";
+    public static final String HEADER_CACHE_CONTROL_NOCACHE = "no-cache";
+    public static final String HEADER_PRAGMA = "Pragma";
+    public static final String HEADER_LOCATION = "Location";
+
+
+
+    
+    public static final String REQUEST_HEADERS = "HTTP-Request-Headers";
+    public static final String RESPONSE_HEADERS = "HTTP-Response-Headers";
+
+    /*http 1.1*/
+    public static final String HEADER_TRANSFER_ENCODING = "Transfer-Encoding".intern();
+    public static final String HEADER_TRANSFER_ENCODING_CHUNKED = "chunked".intern();
+
+    public static final String HEADER_CONNECTION = "Connection";
+    public static final String HEADER_CONNECTION_CLOSE = "close".intern();
+    public static final String HEADER_CONNECTION_KEEPALIVE = "Keep-Alive".intern();//The default don't send.
+
+    public static final String HEADER_ACCEPT = "Accept";
+    public static final String HEADER_ACCEPT_TEXT_ALL = "text/*";
+    public static final String HEADER_ACCEPT_APPL_SOAP = "application/soap+xml";
+    public static final String HEADER_ACCEPT_MULTIPART_RELATED = "multipart/related";
+    public static final String HEADER_ACCEPT_APPLICATION_DIME = "application/dime";
+    
+
+    /**
+     * Cookie headers
+     */
+    public static final String HEADER_COOKIE = "Cookie";
+    public static final String HEADER_COOKIE2 = "Cookie2";
+    public static final String HEADER_SET_COOKIE = "Set-Cookie";
+    public static final String HEADER_SET_COOKIE2 = "Set-Cookie2";
+    
+    /** Integer
+     */
+    public static String MC_HTTP_STATUS_CODE    = "transport.http.statusCode";
+
+    /** String
+     */
+    public static String MC_HTTP_STATUS_MESSAGE = "transport.http.statusMessage";
+
+    /** HttpServlet
+     */
+    public static String MC_HTTP_SERVLET        = "transport.http.servlet" ;
+
+    /** HttpServletRequest
+     */
+    public static String MC_HTTP_SERVLETREQUEST = "transport.http.servletRequest";
+    /** HttpServletResponse
+     */
+    public static String MC_HTTP_SERVLETRESPONSE= "transport.http.servletResponse";
+    public static String MC_HTTP_SERVLETLOCATION= "transport.http.servletLocation";
+    public static String MC_HTTP_SERVLETPATHINFO= "transport.http.servletPathInfo";
+
+
+    /** HTTP header field values
+     */
+    public static final String HEADER_DEFAULT_CHAR_ENCODING = "iso-8859-1";
+    
+    /**
+     * AXIS servlet plugin parameter names.
+     */
+    
+    public static final String PLUGIN_NAME = "transport.http.plugin.pluginName";
+    public static final String PLUGIN_SERVICE_NAME = "transport.http.plugin.serviceName";
+    public static final String PLUGIN_IS_DEVELOPMENT = "transport.http.plugin.isDevelopment";
+    public static final String PLUGIN_ENABLE_LIST = "transport.http.plugin.enableList";
+    public static final String PLUGIN_ENGINE = "transport.http.plugin.engine";
+    public static final String PLUGIN_WRITER = "transport.http.plugin.writer";
+    public static final String PLUGIN_LOG = "transport.http.plugin.log";
+    public static final String PLUGIN_EXCEPTION_LOG = "transport.http.plugin.exceptionLog";
+}

Added: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/transport/http/NonBlockingBufferedInputStream.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/transport/http/NonBlockingBufferedInputStream.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/transport/http/NonBlockingBufferedInputStream.java	Thu Dec  2 03:39:10 2004
@@ -0,0 +1,176 @@
+/*
+ * 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.impl.transport.http;
+
+import java.io.IOException;
+import java.io.InputStream; 
+
+public class NonBlockingBufferedInputStream extends InputStream {
+
+    // current stream to be processed
+    private InputStream in;
+
+    // maximum number of bytes allowed to be returned.
+    private int remainingContent = Integer.MAX_VALUE;
+
+    // Internal buffer for the input stream
+    private byte[] buffer = new byte[4096];
+    private int offset = 0;     // bytes before this offset have been processed
+    private int numbytes = 0;   // number of valid bytes in this buffer
+
+    /**
+     * set the input stream to be used for subsequent reads
+     * @param in the InputStream
+     */
+    public void setInputStream (InputStream in) {
+        this.in = in;
+        numbytes = 0;
+        offset = 0;
+        remainingContent = (in==null)? 0 : Integer.MAX_VALUE;
+    }
+
+    /**
+     * set the maximum number of bytes allowed to be read from this input
+     * stream.
+     * @param value the Content Length
+     */
+    public void setContentLength (int value) {
+        if (in != null) this.remainingContent = value - (numbytes-offset);
+    }
+
+    /**
+     * Replenish the buffer with data from the input stream.  This is 
+     * guaranteed to read atleast one byte or throw an exception.  When
+     * possible, it will read up to the length of the buffer
+     * the data is buffered for efficiency.
+     * @return the byte read
+     */
+    private void refillBuffer() throws IOException {
+        if (remainingContent <= 0 || in == null) return;
+
+        // determine number of bytes to read
+        numbytes = in.available();
+        if (numbytes > remainingContent) numbytes=remainingContent;
+        if (numbytes > buffer.length) numbytes=buffer.length;
+        if (numbytes <= 0) numbytes = 1;
+
+        // actually attempt to read those bytes
+        numbytes = in.read(buffer, 0, numbytes);
+
+        // update internal state to reflect this read
+        remainingContent -= numbytes;
+        offset = 0;
+    }
+
+    /**
+     * Read a byte from the input stream, blocking if necessary.  Internally
+     * the data is buffered for efficiency.
+     * @return the byte read
+     */
+    public int read() throws IOException {
+        if (in == null) return -1;
+        if (offset >= numbytes) refillBuffer();
+        if (offset >= numbytes) return -1;
+        return buffer[offset++] & 0xFF;
+    }
+    
+    /**
+     * Read bytes from the input stream.  This is guaranteed to return at 
+     * least one byte or throw an exception.  When possible, it will return 
+     * more bytes, up to the length of the array, as long as doing so would 
+     * not require waiting on bytes from the input stream.
+     * @param dest      byte array to read into
+     * @return the number of bytes actually read
+     */
+    public int read(byte[] dest) throws IOException {
+        return read(dest, 0, dest.length);
+    }
+
+    /**
+     * Read a specified number of bytes from the input stream.  This is
+     * guaranteed to return at least one byte or throw an execption.  When
+     * possible, it will return more bytes, up to the length specified,
+     * as long as doing so would not require waiting on bytes from the
+     * input stream.
+     * @param dest      byte array to read into
+     * @param off       starting offset into the byte array
+     * @param len       maximum number of bytes to read
+     * @return the number of bytes actually read
+     */
+    public int read(byte[] dest, int off, int len) throws IOException {
+        int ready = numbytes - offset;
+
+        if (ready >= len) {
+            System.arraycopy(buffer, offset, dest, off, len);
+            offset += len;
+            return len;
+        } else if (ready>0) {
+            System.arraycopy(buffer, offset, dest, off, ready);
+            offset = numbytes;
+            return ready;
+        } else {
+            if (in == null) return -1;
+            refillBuffer();
+            if (offset >= numbytes) return -1;
+            return read(dest,off,len);
+        }
+    }
+    
+    /**
+     * skip over (and discard) a specified number of bytes in this input
+     * stream
+     * @param len the number of bytes to be skipped
+     * @return the action number of bytes skipped
+     */
+    public int skip(int len) throws IOException {
+        int count = 0;
+        while (len-->0 && read()>=0) count++;
+        return count;
+    }
+
+    /**
+     * return the number of bytes available to be read without blocking
+     * @return the number of bytes
+     */
+    public int available() throws IOException {
+        if (in == null) return 0;
+
+        // return buffered + available from the stream
+        return (numbytes-offset) + in.available();
+    }
+
+    /**
+     * disassociate from the underlying input stream
+     */
+    public void close() throws IOException {
+        setInputStream(null);
+    }
+
+    /**
+     * Just like read except byte is not removed from the buffer. 
+     * the data is buffered for efficiency.
+     * Was added to support multiline http headers. ;-)
+     * @return the byte read
+     */
+    public int peek() throws IOException {
+        if (in == null) return -1;
+        if (offset >= numbytes) refillBuffer();
+        if (offset >= numbytes) return -1;
+        return buffer[offset] & 0xFF;
+    }
+}
+

Added: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/transport/http/SimpleAxisServer.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/transport/http/SimpleAxisServer.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/transport/http/SimpleAxisServer.java	Thu Dec  2 03:39:10 2004
@@ -0,0 +1,154 @@
+/*
+ * 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.impl.transport.http;
+
+
+
+import org.apache.axis.engine.AxisEngine;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import java.io.IOException;
+import java.net.ServerSocket;
+
+import java.net.Socket;
+
+/**
+ * This is a simple implementation of an HTTP server for processing
+ * SOAP requests via Apache's xml-axis.  This is not intended for production
+ * use.  Its intended uses are for demos, debugging, and performance
+ * profiling.
+ *
+ * Note this classes uses static objects to provide a thread pool, so you should
+ * not use multiple instances of this class in the same JVM/classloader unless
+ * you want bad things to happen at shutdown.
+ * @author Sam Ruby (ruby@us.ibm.com)
+ * @author Rob Jellinghaus (robj@unrealities.com)
+ * @author Alireza Taherkordi (a_taherkordi@users.sourceforge.net)
+ */
+public class SimpleAxisServer implements Runnable {
+    protected static Log log =
+            LogFactory.getLog(SimpleAxisServer.class.getName());
+    private static AxisEngine myAxisServer = null;
+    private ServerSocket serverSocket;    
+    /**
+    are we stopped?
+    latch to true if stop() is called
+     */
+    private boolean stopped = false;
+    
+
+    public SimpleAxisServer(AxisEngine myAxisServer) {
+    	SimpleAxisServer.myAxisServer = myAxisServer;
+		
+    }
+
+
+    /**
+     * stop the server if not already told to.
+     * @throws Throwable
+     */
+    protected void finalize() throws Throwable {
+        stop();
+        super.finalize();
+    }
+
+
+
+
+
+    /**
+     * Accept requests from a given TCP port and send them through the
+     * Axis engine for processing.
+     */
+    public void run() {
+        // Accept and process requests from the socket
+        while (!stopped) {
+            Socket socket = null;
+            try {
+                socket = serverSocket.accept();
+               
+            } catch (java.io.InterruptedIOException iie) {
+            } catch (Exception e) {
+                log.debug(e.getMessage(), e);
+                break;
+            }
+            if (socket != null) {
+                SimpleAxisWorker worker = new SimpleAxisWorker(this, socket,myAxisServer);
+                worker.run();
+            }
+        }
+        log.info("Simple Axis Server Quit");
+    }
+
+
+    /**
+     * Obtain the serverSocket that that SimpleAxisServer is listening on.
+     */
+    public ServerSocket getServerSocket() {
+        return serverSocket;
+    }
+
+    /**
+     * Set the serverSocket this server should listen on.
+     * (note : changing this will not affect a running server, but if you
+     *  stop() and then start() the server, the new socket will be used).
+     */
+    public void setServerSocket(ServerSocket serverSocket) {
+        this.serverSocket = serverSocket;
+    }
+
+
+    /**
+     * Start this server as a NON-daemon.
+     */
+    public void start() throws Exception {
+    	run();
+    }
+
+    /**
+     * Stop this server. Can be called safely if the system is already stopped,
+     * or if it was never started.
+     *
+     * This will interrupt any pending accept().
+     */
+    public void stop() {
+        //recognise use before we are live
+        if(stopped ) {
+            return;
+        }
+        /*
+         * Close the server socket cleanly, but avoid fresh accepts while
+         * the socket is closing.
+         */
+        stopped = true;
+
+        try {
+            if(serverSocket != null) {
+                serverSocket.close();
+            }
+        } catch (IOException e) {
+            log.info(e);
+        } finally {
+            serverSocket=null;
+        }
+
+        log.info("Simple Axis Server Quits");
+
+    }
+
+}

Added: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/transport/http/SimpleAxisWorker.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/transport/http/SimpleAxisWorker.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/transport/http/SimpleAxisWorker.java	Thu Dec  2 03:39:10 2004
@@ -0,0 +1,546 @@
+/*
+ * 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.impl.transport.http;
+
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.encoding.Base64;
+import org.apache.axis.engine.*;
+import org.apache.axis.om.OMXMLParserWrapper;
+import org.apache.axis.registry.EngineRegistry;
+import org.apache.axis.impl.llom.wrapper.OMXPPWrapper;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserFactory;
+
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.net.Socket;
+
+
+
+public class SimpleAxisWorker implements Runnable {
+    protected static Log log =
+            LogFactory.getLog(SimpleAxisWorker.class.getName());
+
+    private AxisEngine engine;
+    private SimpleAxisServer server;
+    private Socket socket;
+    private String serviceFromURI;
+
+
+    // Axis specific constants
+    private static String transportName = "SimpleHTTP";
+
+    // HTTP status codes
+    private static byte OK[] = ("200 OK").getBytes();
+    private static byte NOCONTENT[] = ("202 OK\n\n").getBytes();
+    private static byte UNAUTH[] = ("401 Unauthorized").getBytes();
+    private static byte SENDER[] = "400".getBytes();
+    private static byte ISE[] = ("500 Internal server error").getBytes();
+
+    // HTTP prefix
+    private static byte HTTP[] = "HTTP/1.0 ".getBytes();
+
+    // Standard MIME headers for XML payload
+    private static byte XML_MIME_STUFF[] =
+            ("\r\nContent-Type: text/xml; charset=utf-8\r\n" +
+            "Content-Length: ").getBytes();
+
+    // Standard MIME headers for HTML payload
+    private static byte HTML_MIME_STUFF[] =
+            ("\r\nContent-Type: text/html; charset=utf-8\r\n" +
+            "Content-Length: ").getBytes();
+
+    // Mime/Content separator
+    private static byte SEPARATOR[] = "\r\n\r\n".getBytes();
+
+    // Tiddly little response
+//    private static final String responseStr =
+//            "<html><head><title>SimpleAxisServer</title></head>" +
+//            "<body><h1>SimpleAxisServer</h1>" +
+//            Messages.getEnvelope("reachedServer00") +
+//            "</html>";
+//    private static byte cannedHTMLResponse[] = responseStr.getBytes();
+
+    // ASCII character mapping to lower case
+    private static final byte[] toLower = new byte[256];
+
+    static {
+        for (int i = 0; i < 256; i++) {
+            toLower[i] = (byte) i;
+        }
+
+        for (int lc = 'a'; lc <= 'z'; lc++) {
+            toLower[lc + 'A' - 'a'] = (byte) lc;
+        }
+    }
+
+    // buffer for IO
+    private static final int BUFSIZ = 4096;
+
+    // mime header for content length
+    private static final byte lenHeader[] = "content-length: ".getBytes();
+    private static final int lenLen = lenHeader.length;
+
+    // mime header for content type
+    private static final byte typeHeader[] = (HTTPConstants.HEADER_CONTENT_TYPE.toLowerCase() + ": ").getBytes();
+    private static final int typeLen = typeHeader.length;
+
+    // mime header for content location
+    private static final byte locationHeader[] = (HTTPConstants.HEADER_CONTENT_LOCATION.toLowerCase() + ": ").getBytes();
+    private static final int locationLen = locationHeader.length;
+
+    // mime header for soap action
+    private static final byte actionHeader[] = "soapaction: ".getBytes();
+    private static final int actionLen = actionHeader.length;
+
+    // mime header for cookie
+    private static final byte cookieHeader[] = "cookie: ".getBytes();
+    private static final int cookieLen = cookieHeader.length;
+
+    // mime header for cookie2
+    private static final byte cookie2Header[] = "cookie2: ".getBytes();
+    private static final int cookie2Len = cookie2Header.length;
+
+    // HTTP header for authentication
+    private static final byte authHeader[] = "authorization: ".getBytes();
+    private static final int authLen = authHeader.length;
+
+    // mime header for GET
+    private static final byte getHeader[] = "GET".getBytes();
+
+    // mime header for POST
+    private static final byte postHeader[] = "POST".getBytes();
+
+    // header ender
+    private static final byte headerEnder[] = ": ".getBytes();
+
+    // "Basic" auth string
+    private static final byte basicAuth[] = "basic ".getBytes();
+
+    public SimpleAxisWorker(SimpleAxisServer server, Socket socket,AxisEngine engine) {
+        this.server = server;
+        this.socket = socket;
+        this.engine = engine;
+    }
+
+    /**
+     * Run method
+     */ 
+    public void run() {
+        try {
+            execute();
+        }catch(AxisFault e){
+            log.error(e);
+        }finally {
+            
+        }
+    }
+    
+    /**
+     * The main workhorse method.
+     */
+    public void execute () throws AxisFault {
+        byte buf[] = new byte[BUFSIZ];
+        // create an Axis server
+
+        MessageContext msgContext = new MessageContext(engine.getRegistry());
+        msgContext.setServerSide(true);
+
+        // Reusuable, buffered, content length controlled, InputStream
+        NonBlockingBufferedInputStream is =
+                new NonBlockingBufferedInputStream();
+
+        // buffers for the headers we care about
+        StringBuffer soapAction = new StringBuffer();
+        StringBuffer httpRequest = new StringBuffer();
+        StringBuffer fileName = new StringBuffer();
+        StringBuffer cookie = new StringBuffer();
+        StringBuffer cookie2 = new StringBuffer();
+        StringBuffer authInfo = new StringBuffer();
+        StringBuffer contentType = new StringBuffer();
+        StringBuffer contentLocation = new StringBuffer();
+
+
+        try {
+            // assume the best
+            byte[] status = OK;
+
+            // assume we're not getting WSDL
+            boolean doWsdl = false;
+
+            // cookie for this session, if any
+            String cooky = null;
+
+            String methodName = null;
+
+            try {
+                authInfo.delete(0, authInfo.length());
+
+                // read headers
+                is.setInputStream(socket.getInputStream());
+                // parse all headers into hashtable
+//                MimeHeaders requestHeaders = new MimeHeaders();
+                int contentLength = parseHeaders(is, buf, contentType,
+                        contentLocation, soapAction,
+                        httpRequest, fileName,
+                        cookie, cookie2, authInfo);
+//                        cookie, cookie2, authInfo, requestHeaders);
+                is.setContentLength(contentLength);
+
+                int paramIdx = fileName.toString().indexOf('?');
+                if (paramIdx != -1) {
+                    // Got params
+                    String params = fileName.substring(paramIdx + 1);
+                    fileName.setLength(paramIdx);
+
+
+                    if ("wsdl".equalsIgnoreCase(params))
+                        doWsdl = true;
+
+                    if (params.startsWith("method=")) {
+                        methodName = params.substring(7);
+                    }
+                }
+
+
+
+                String filePart = fileName.toString();
+                if (filePart.startsWith("axis/services/")) {
+                    String servicePart = filePart.substring(14);
+                    int separator = servicePart.indexOf('/');
+                    if (separator > -1) {
+                        msgContext.setProperty("objectID",
+                                       servicePart.substring(separator + 1));
+                        servicePart = servicePart.substring(0, separator);
+                    }
+                   this.serviceFromURI = servicePart;
+                }
+
+                if (authInfo.length() > 0) {
+                    // Process authentication info
+                    //authInfo = new StringBuffer("dXNlcjE6cGFzczE=");
+                    byte[] decoded = Base64.decode(authInfo.toString());
+                    StringBuffer userBuf = new StringBuffer();
+                    StringBuffer pwBuf = new StringBuffer();
+                    StringBuffer authBuf = userBuf;
+                    for (int i = 0; i < decoded.length; i++) {
+                        if ((char) (decoded[i] & 0x7f) == ':') {
+                            authBuf = pwBuf;
+                            continue;
+                        }
+                        authBuf.append((char) (decoded[i] & 0x7f));
+                    }
+
+
+                    msgContext.setProperty(MessageContext.USER_NAME,userBuf.toString());
+                    msgContext.setProperty(MessageContext.PASSWARD,pwBuf.toString());
+                }
+                if (httpRequest.toString().equals("GET")) {
+                		throw new UnsupportedOperationException("GET not supported"); 
+                } else {
+
+                    // this may be "" if either SOAPAction: "" or if no SOAPAction at all.
+                    // for now, do not complain if no SOAPAction at all
+                    String soapActionString = soapAction.toString();
+                    if (soapActionString != null) {
+                        msgContext.setProperty(MessageContext.SOAP_ACTION,soapActionString);
+                    }
+                    
+                    Service service = ServiceLocator.locateService(serviceFromURI,soapActionString,msgContext);
+                    msgContext.setService(service);
+                    // Send it on its way...
+                    OutputStream out = socket.getOutputStream();
+                    out.write(HTTP);
+                    out.write(status);
+                    log.info("status written");
+                    
+                    
+                    
+                    //We do not have any Addressing Headers to put
+                    //let us put the information about incoming transport
+                    msgContext.setProperty(MessageContext.TRANSPORT_TYPE,
+                        TransportSenderLocator.TRANSPORT_TCP);
+                    msgContext.setProperty(MessageContext.TRANSPORT_DATA,out);
+
+                    XmlPullParserFactory pf = XmlPullParserFactory.newInstance();
+                    pf.setNamespaceAware(true);
+                    XmlPullParser  parser = pf.newPullParser();
+                    parser.setInput(new InputStreamReader(is));
+                    
+                    OMXMLParserWrapper parserWrapper = new OMXPPWrapper(parser); 
+                    msgContext.setEnvelope(parserWrapper.getOMEnvelope());
+                    EngineRegistry reg = engine.getRegistry();
+                    // invoke the Axis engine
+                    engine.recive(msgContext);
+                    log.info("revice done");
+                    out.flush();
+                }
+
+            } catch (Exception e) {
+            	e.printStackTrace();
+            }
+
+
+//            if (resposeMessage != null) {
+//
+//                //out.write(XML_MIME_STUFF);
+//                out.write(("\r\n" + HTTPConstants.HEADER_CONTENT_TYPE + ": " +resposeMessage.getContentType()).getBytes());
+//
+//            }
+
+            // out.write(response);
+            
+        } catch (Exception e) {
+            log.info(e);
+        } finally {
+            try {
+                if (socket != null) socket.close();
+            } catch (Exception e) {
+            }
+        }
+    }
+
+    protected void invokeMethodFromGet(String methodName, String args) throws Exception {
+
+    }
+
+    /**
+     * Read all mime headers, returning the value of Content-Length and
+     * SOAPAction.
+     * @param is         InputStream to read from
+     * @param contentType The content type.
+     * @param contentLocation The content location
+     * @param soapAction StringBuffer to return the soapAction into
+     * @param httpRequest StringBuffer for GET / POST
+     * @param cookie first cookie header (if doSessions)
+     * @param cookie2 second cookie header (if doSessions)
+     * @param headers HTTP headers to transfer to MIME headers
+     * @return Content-Length
+     */
+    private int parseHeaders(NonBlockingBufferedInputStream is,
+                             byte buf[],
+                             StringBuffer contentType,
+                             StringBuffer contentLocation,
+                             StringBuffer soapAction,
+                             StringBuffer httpRequest,
+                             StringBuffer fileName,
+                             StringBuffer cookie,
+                             StringBuffer cookie2,
+                             StringBuffer authInfo)
+//                             MimeHeaders headers)
+            throws java.io.IOException {
+        int n;
+        int len = 0;
+
+        // parse first line as GET or POST
+        n = this.readLine(is, buf, 0, buf.length);
+        if (n < 0) {
+            // nothing!
+            throw new java.io.IOException("Unexpected end of stream");
+        }
+
+        // which does it begin with?
+        httpRequest.delete(0, httpRequest.length());
+        fileName.delete(0, fileName.length());
+        contentType.delete(0, contentType.length());
+        contentLocation.delete(0, contentLocation.length());
+
+        if (buf[0] == getHeader[0]) {
+            httpRequest.append("GET");
+            for (int i = 0; i < n - 5; i++) {
+                char c = (char) (buf[i + 5] & 0x7f);
+                if (c == ' ')
+                    break;
+                fileName.append(c);
+            }
+            return 0;
+        } else if (buf[0] == postHeader[0]) {
+            httpRequest.append("POST");
+            for (int i = 0; i < n - 6; i++) {
+                char c = (char) (buf[i + 6] & 0x7f);
+                if (c == ' ')
+                    break;
+                fileName.append(c);
+            }
+        } else {
+            throw new java.io.IOException("Cannot handle non-GET, non-POST request");
+        }
+
+        while ((n = readLine(is, buf, 0, buf.length)) > 0) {
+
+            if ((n <= 2) && (buf[0] == '\n' || buf[0] == '\r') && (len > 0)) break;
+
+            // RobJ gutted the previous logic; it was too hard to extend for more headers.
+            // Now, all it does is search forwards for ": " in the buf,
+            // then do a length / byte compare.
+            // Hopefully this is still somewhat efficient (Sam is watching!).
+
+            // First, search forwards for ": "
+            int endHeaderIndex = 0;
+            while (endHeaderIndex < n && toLower[buf[endHeaderIndex]] != headerEnder[0]) {
+                endHeaderIndex++;
+            }
+            endHeaderIndex += 2;
+            // endHeaderIndex now points _just past_ the ": ", and is
+            // comparable to the various lenLen, actionLen, etc. values
+
+            // convenience; i gets pre-incremented, so initialize it to one less
+            int i = endHeaderIndex - 1;
+
+            // which header did we find?
+            if (endHeaderIndex == lenLen && matches(buf, lenHeader)) {
+                // parse content length
+
+                while ((++i < n) && (buf[i] >= '0') && (buf[i] <= '9')) {
+                    len = (len * 10) + (buf[i] - '0');
+                }
+//                headers.addHeader(HTTPConstants.HEADER_CONTENT_LENGTH, String.valueOf(len));
+
+            } else if (endHeaderIndex == actionLen
+                    && matches(buf, actionHeader)) {
+
+                soapAction.delete(0, soapAction.length());
+                // skip initial '"'
+                i++;
+                while ((++i < n) && (buf[i] != '"')) {
+                    soapAction.append((char) (buf[i] & 0x7f));
+                }
+//                headers.addHeader(HTTPConstants.HEADER_SOAP_ACTION, "\"" + soapAction.toString() + "\"");
+
+            } else if (endHeaderIndex == authLen && matches(buf, authHeader)) {
+                if (matches(buf, endHeaderIndex, basicAuth)) {
+                    i += basicAuth.length;
+                    while (++i < n && (buf[i] != '\r') && (buf[i] != '\n')) {
+                        if (buf[i] == ' ') continue;
+                        authInfo.append((char) (buf[i] & 0x7f));
+                    }
+//                    headers.addHeader(HTTPConstants.HEADER_AUTHORIZATION, new String(basicAuth) + authInfo.toString());
+                } else {
+                    throw new java.io.IOException("Bad authentication type (I can only handle \"Basic\")");
+                }
+            } else if (endHeaderIndex == locationLen && matches(buf, locationHeader)) {
+                while (++i < n && (buf[i] != '\r') && (buf[i] != '\n')) {
+                    if (buf[i] == ' ') continue;
+                    contentLocation.append((char) (buf[i] & 0x7f));
+                }
+//                headers.addHeader(HTTPConstants.HEADER_CONTENT_LOCATION, contentLocation.toString());
+            } else if (endHeaderIndex == typeLen && matches(buf, typeHeader)) {
+                while (++i < n && (buf[i] != '\r') && (buf[i] != '\n')) {
+                    if (buf[i] == ' ') continue;
+                    contentType.append((char) (buf[i] & 0x7f));
+                }
+//                headers.addHeader(HTTPConstants.HEADER_CONTENT_TYPE, contentLocation.toString());
+            } else {
+                String customHeaderName = new String(buf, 0, endHeaderIndex - 2);
+                StringBuffer customHeaderValue = new StringBuffer();
+                while (++i < n && (buf[i] != '\r') && (buf[i] != '\n')) {
+                    if (buf[i] == ' ') continue;
+                    customHeaderValue.append((char) (buf[i] & 0x7f));
+                }
+//                headers.addHeader(customHeaderName, customHeaderValue.toString());
+            }
+
+        }
+        return len;
+    }
+
+    /**
+     * does tolower[buf] match the target byte array, up to the target's length?
+     */
+    public boolean matches(byte[] buf, byte[] target) {
+        for (int i = 0; i < target.length; i++) {
+            if (toLower[buf[i]] != target[i]) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    /**
+     * Case-insensitive match of a target byte [] to a source byte [],
+     * starting from a particular offset into the source.
+     */
+    public boolean matches(byte[] buf, int bufIdx, byte[] target) {
+        for (int i = 0; i < target.length; i++) {
+            if (toLower[buf[bufIdx + i]] != target[i]) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    /**
+     * output an integer into the output stream
+     * @param out       OutputStream to be written to
+     * @param value     Integer value to be written.
+     */
+    private void putInt(byte buf[], OutputStream out, int value)
+            throws java.io.IOException {
+        int len = 0;
+        int offset = buf.length;
+
+        // negative numbers
+        if (value < 0) {
+            buf[--offset] = (byte) '-';
+            value = -value;
+            len++;
+        }
+
+        // zero
+        if (value == 0) {
+            buf[--offset] = (byte) '0';
+            len++;
+        }
+
+        // positive numbers
+        while (value > 0) {
+            buf[--offset] = (byte) (value % 10 + '0');
+            value = value / 10;
+            len++;
+        }
+
+        // write the result
+        out.write(buf, offset, len);
+    }
+
+    /**
+     * Read a single line from the input stream
+     * @param is        inputstream to read from
+     * @param b         byte array to read into
+     * @param off       starting offset into the byte array
+     * @param len       maximum number of bytes to read
+     */
+    private int readLine(NonBlockingBufferedInputStream is, byte[] b, int off, int len)
+            throws java.io.IOException {
+        int count = 0, c;
+
+        while ((c = is.read()) != -1) {
+            if (c != '\n' && c != '\r') {
+                b[off++] = (byte) c;
+                count++;
+            }
+            if (count == len) break;
+            if ('\n' == c) {
+                int peek = is.peek(); //If the next line begins with tab or space then this is a continuation.
+                if (peek != ' ' && peek != '\t') break;
+            }
+        }
+        return count > 0 ? count : -1;
+    }
+}

Added: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/transport/http/TCPTrasnportSender.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/transport/http/TCPTrasnportSender.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/transport/http/TCPTrasnportSender.java	Thu Dec  2 03:39:10 2004
@@ -0,0 +1,42 @@
+/*
+ * 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.impl.transport.http;
+
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.engine.TransportSender;
+import org.apache.axis.impl.handlers.AbstractHandler;
+import org.apache.axis.om.OMEnvelope;
+
+import java.io.OutputStream;
+
+/**
+ * @author Srinath Perera(hemapani@opensource.lk)
+ */
+public class TCPTrasnportSender extends AbstractHandler implements TransportSender{
+
+    public void invoke(MessageContext msgContext) throws AxisFault {
+        OutputStream out = (OutputStream)msgContext.getProperty(MessageContext.TRANSPORT_DATA);
+        OMEnvelope envelope = msgContext.getEnvelope();
+        //TODO write OM  
+    }
+
+    public void revoke(MessageContext msgContext) {
+
+    }
+
+}

Added: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/om/OMChildrenIterator.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/om/OMChildrenIterator.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/om/OMChildrenIterator.java	Thu Dec  2 03:39:10 2004
@@ -0,0 +1,81 @@
+package org.apache.axis.om;
+
+
+import java.util.Iterator;
+
+/**
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * <p/>
+ * 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
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * 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.
+ * <p/>
+ * User: Eran Chinthaka - Lanka Software Foundation
+ * Date: Oct 11, 2004
+ * Time: 11:23:07 AM
+ */
+public class OMChildrenIterator implements Iterator {
+
+    private OMNode currentChild;
+
+    public OMChildrenIterator(OMNode currentChild) {
+        this.currentChild = currentChild;
+    }
+
+    /**
+     * Removes from the underlying collection the last element returned by the
+     * iterator (optional operation).  This method can be called only once per
+     * call to <tt>next</tt>.  The behavior of an iterator is unspecified if
+     * the underlying collection is modified while the iteration is in
+     * progress in any way other than by calling this method.
+     *
+     * @throws UnsupportedOperationException if the <tt>remove</tt>
+     *                                       operation is not supported by this Iterator.
+     * @throws IllegalStateException         if the <tt>next</tt> method has not
+     *                                       yet been called, or the <tt>remove</tt> method has already
+     *                                       been called after the last call to the <tt>next</tt>
+     *                                       method.
+     */
+    public void remove() {
+        OMNode temp = currentChild.getNextSibling();
+        currentChild.detach();
+        currentChild = temp;
+    }
+
+    /**
+     * Returns <tt>true</tt> if the iteration has more elements. (In other
+     * words, returns <tt>true</tt> if <tt>next</tt> would return an element
+     * rather than throwing an exception.)
+     *
+     * @return <tt>true</tt> if the iterator has more elements.
+     */
+    public boolean hasNext() {
+        return (currentChild != null);
+    }
+
+    /**
+     * Returns the next element in the iteration.
+     *
+     * @return the next element in the iteration.
+     * @throws java.util.NoSuchElementException
+     *          iteration has no more elements.
+     */
+    public Object next() {
+
+        if (hasNext()) {
+            OMNode returnNode = currentChild;
+            currentChild = currentChild.getNextSibling();
+            return returnNode;
+        }
+        return null;
+
+    }
+}

Added: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/om/OMChildrenQNameIterator.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/om/OMChildrenQNameIterator.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/om/OMChildrenQNameIterator.java	Thu Dec  2 03:39:10 2004
@@ -0,0 +1,127 @@
+package org.apache.axis.om;
+
+import org.apache.axis.impl.llom.OMNamedNodeImpl;
+import org.apache.axis.impl.llom.OMNodeImpl;
+import org.apache.xml.utils.QName;
+
+import java.util.Iterator;
+
+/**
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * <p/>
+ * 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
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * 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.
+ * <p/>
+ * User: Eran Chinthaka - Lanka Software Foundation
+ * Date: Oct 13, 2004
+ * Time: 11:25:29 AM
+ */
+public class OMChildrenQNameIterator implements Iterator {
+
+    private OMNode omNode;
+    private QName givenQName;
+
+    private boolean picked = false;
+
+    public OMChildrenQNameIterator(OMNodeImpl firstChild, QName qName) {
+        this.omNode = firstChild;
+        this.givenQName = qName;
+    }
+
+    /**
+     * Removes from the underlying collection the last element returned by the
+     * iterator (optional operation).  This method can be called only once per
+     * call to <tt>next</tt>.  The behavior of an iterator is unspecified if
+     * the underlying collection is modified while the iteration is in
+     * progress in any way other than by calling this method.
+     *
+     * @throws UnsupportedOperationException if the <tt>remove</tt>
+     *                                       operation is not supported by this Iterator.
+     * @throws IllegalStateException         if the <tt>next</tt> method has not
+     *                                       yet been called, or the <tt>remove</tt> method has already
+     *                                       been called after the last call to the <tt>next</tt>
+     *                                       method.
+     */
+    public void remove() {
+        throw new UnsupportedOperationException(); //TODO implement this
+    }
+
+    /**
+     * Returns <tt>true</tt> if the iteration has more elements. (In other
+     * words, returns <tt>true</tt> if <tt>next</tt> would return an element
+     * rather than throwing an exception.)
+     *
+     * @return <tt>true</tt> if the iterator has more elements.
+     */
+    public boolean hasNext() {
+
+        boolean needToMoveForward = true;
+        boolean isMatchingNodeFound = false;
+
+        while (needToMoveForward) {
+            if (omNode != null) {
+
+                // check the current node for the criteria
+                if ((omNode instanceof OMNamedNodeImpl) && (isQNamesMatch(((OMNamedNodeImpl) omNode).getQName(), this.givenQName))) {
+                    isMatchingNodeFound = true;
+                    needToMoveForward = false;
+                } else {
+                    // get the next named node
+                    omNode = omNode.getNextSibling();
+                    isMatchingNodeFound = needToMoveForward = !(omNode == null);
+                }
+            } else {
+                needToMoveForward = false;
+            }
+        }
+        return isMatchingNodeFound;
+    }
+
+    /**
+     * Returns the next element in the iteration.
+     *
+     * @return the next element in the iteration.
+     * @throws java.util.NoSuchElementException
+     *          iteration has no more elements.
+     */
+    public Object next() {
+        OMNode tempNode = omNode;
+        omNode = omNode.getNextSibling();
+        return tempNode;
+    }
+
+     /**
+     *    Here I can not use the overriden equals method of QName, as one might want to get
+     * some element just by giving the localname, even though a matching element has a namespace uri as well.
+     * This will not be supported in the equals method of the QName
+     * @param elementQName
+     * @param qNameToBeMatched
+     * @return
+     */
+    private boolean isQNamesMatch(QName elementQName, QName qNameToBeMatched){
+
+         // if no QName was given, that means one needs all
+         if(qNameToBeMatched == null){
+             return true;
+         }
+
+        // if the given localname is null, whatever value this.qname has, its a match
+        boolean localNameMatch = qNameToBeMatched.getLocalName() == null || qNameToBeMatched.getLocalName() == "" || (elementQName != null && elementQName.getLocalName().equalsIgnoreCase(qNameToBeMatched.getLocalName()));
+        boolean namespaceURIMatch = qNameToBeMatched.getNamespaceURI() == null || qNameToBeMatched.getNamespaceURI() == "" ||  (elementQName != null && elementQName.getNamespaceURI().equalsIgnoreCase(qNameToBeMatched.getNamespaceURI()));
+
+        return localNameMatch && namespaceURIMatch;
+
+
+    }
+
+
+}

Added: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/registry/EngineElement.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/registry/EngineElement.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/registry/EngineElement.java	Thu Dec  2 03:39:10 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.registry;
+
+import org.apache.axis.engine.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/prototype2/src/java/org/apache/axis/registry/EngineRegistry.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/registry/EngineRegistry.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/registry/EngineRegistry.java	Thu Dec  2 03:39:10 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.registry;
+
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.engine.Global;
+import org.apache.axis.engine.Service;
+import org.apache.axis.engine.Transport;
+
+import javax.xml.namespace.QName;
+
+/**
+ *  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/prototype2/src/java/org/apache/axis/registry/Flow.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/registry/Flow.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/registry/Flow.java	Thu Dec  2 03:39:10 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.registry;
+
+import org.apache.axis.engine.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/prototype2/src/java/org/apache/axis/registry/FlowInclude.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/registry/FlowInclude.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/registry/FlowInclude.java	Thu Dec  2 03:39:10 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.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/prototype2/src/java/org/apache/axis/registry/Module.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/registry/Module.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/registry/Module.java	Thu Dec  2 03:39:10 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.registry;
+
+/**
+ * Logical agrigation of TypeMapping,Handlers 
+ */
+
+public interface Module extends FlowInclude,NamedEngineElement,TypeMappingInclude{
+    
+}

Added: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/registry/ModuleInclude.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/registry/ModuleInclude.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/registry/ModuleInclude.java	Thu Dec  2 03:39:10 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.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/prototype2/src/java/org/apache/axis/registry/NamedEngineElement.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/registry/NamedEngineElement.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/registry/NamedEngineElement.java	Thu Dec  2 03:39:10 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.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/prototype2/src/java/org/apache/axis/registry/Parameter.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/registry/Parameter.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/registry/Parameter.java	Thu Dec  2 03:39:10 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.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/prototype2/src/java/org/apache/axis/registry/TypeMapping.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/registry/TypeMapping.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/registry/TypeMapping.java	Thu Dec  2 03:39:10 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.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/prototype2/src/java/org/apache/axis/registry/TypeMappingInclude.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/registry/TypeMappingInclude.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/registry/TypeMappingInclude.java	Thu Dec  2 03:39:10 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.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);
+}

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/service1/Handler1.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/service1/Handler1.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/service1/Handler1.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/service1/Handler1.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/service1/Handler1.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/service1/Handler1.java	Thu Dec  2 03:39:10 2004
@@ -16,10 +16,12 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.axis.engine.registry.*;
+
+import org.apache.axis.context.MessageContext;
 import org.apache.axis.engine.AxisFault;
 import org.apache.axis.engine.Handler;
-import org.apache.axis.engine.context.MessageContext;
+import org.apache.axis.impl.registry.AbstractEngineElement;
+
 
 public class Handler1 extends AbstractEngineElement implements Handler {
     private QName name;

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/service2/Handler1.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/service2/Handler1.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/service2/Handler1.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/service2/Handler1.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/service2/Handler1.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/service2/Handler1.java	Thu Dec  2 03:39:10 2004
@@ -16,10 +16,12 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.axis.engine.registry.*;
+
+import org.apache.axis.context.MessageContext;
 import org.apache.axis.engine.AxisFault;
 import org.apache.axis.engine.Handler;
-import org.apache.axis.engine.context.MessageContext;
+import org.apache.axis.impl.registry.AbstractEngineElement;
+
 
 public class Handler1 extends AbstractEngineElement implements Handler {
     private QName name;

Added: webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/deployment/ServiceTest.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/deployment/ServiceTest.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/deployment/ServiceTest.java	Thu Dec  2 03:39:10 2004
@@ -0,0 +1,54 @@
+package org.apache.axis.deployment;
+
+import junit.framework.TestCase;
+import org.apache.axis.deployment.DeploymentEngine;
+import org.apache.axis.deployment.DeploymentException;
+import org.apache.axis.deployment.metadata.phaserule.PhaseException;
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.registry.EngineRegistry;
+
+/**
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * <p/>
+ * 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
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * 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.
+ *
+ * @author Deepal Jayasinghe
+ *         Nov 19, 2004
+ *         4:47:32 PM
+ *
+ */
+public class ServiceTest extends TestCase {
+
+    public void testparseService1() throws PhaseException ,DeploymentException, AxisFault{
+        //String filename = "src/test-resources/deployment";
+        String filename = "./target/test-resources" ;
+        DeploymentEngine deploymentEngine = new DeploymentEngine(filename);
+        try {
+            EngineRegistry er = null;
+            try {
+                er = deploymentEngine.start();
+            } catch (AxisFault axisFault) {
+                axisFault.printStackTrace();  //To change body of catch statement use Options | File Templates.
+            } catch (PhaseException e) {
+                e.printStackTrace();  //To change body of catch statement use Options | File Templates.
+            } catch (DeploymentException e) {
+                e.printStackTrace();  //To change body of catch statement use Options | File Templates.
+            }
+            if(er != null){
+                System.out.println("Number of service" + er.getServiceCount());
+            }
+        } catch (AxisFault axisFault) {
+            axisFault.printStackTrace();  //To change body of catch statement use Options | File Templates.
+        }
+    }
+}

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/EchoTest.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/EchoTest.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/EchoTest.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/EchoTest.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/EchoTest.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/EchoTest.java	Thu Dec  2 03:39:10 2004
@@ -27,9 +27,9 @@
 import javax.xml.namespace.QName;
 
 import org.apache.axis.AbstractTestCase;
-import org.apache.axis.engine.context.MessageContext;
-import org.apache.axis.engine.registry.EngineRegistry;
-import org.apache.axis.transport.http.SimpleAxisServer;
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.impl.transport.http.SimpleAxisServer;
+import org.apache.axis.registry.EngineRegistry;
 
 /**
  * @author Srinath Perera(hemapani@opensource.lk)

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/EngineTest.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/EngineTest.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/EngineTest.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/EngineTest.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/EngineTest.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/EngineTest.java	Thu Dec  2 03:39:10 2004
@@ -22,8 +22,8 @@
 
 import junit.framework.TestCase;
 
-import org.apache.axis.engine.context.MessageContext;
-import org.apache.axis.engine.registry.EngineRegistry;
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.registry.EngineRegistry;
 
 /**
  * @author hemapani@opensource.lk

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/Utils.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/Utils.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/Utils.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/Utils.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/Utils.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/Utils.java	Thu Dec  2 03:39:10 2004
@@ -17,17 +17,20 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.axis.engine.exec.Constants;
-import org.apache.axis.engine.exec.ExecutionChain;
-import org.apache.axis.engine.exec.Phase;
-import org.apache.axis.engine.registry.ConcreateParameter;
-import org.apache.axis.engine.registry.EchoService;
-import org.apache.axis.engine.registry.EngineRegistry;
-import org.apache.axis.engine.registry.MockFlow;
-import org.apache.axis.engine.registry.Module;
-import org.apache.axis.engine.registry.Parameter;
-import org.apache.axis.engine.registry.SimpleEngineRegistry;
-import org.apache.axis.providers.SimpleJavaProvider;
+
+import org.apache.axis.impl.engine.GlobalImpl;
+import org.apache.axis.impl.engine.ModuleImpl;
+import org.apache.axis.impl.engine.OperationImpl;
+import org.apache.axis.impl.engine.ServiceImpl;
+import org.apache.axis.impl.engine.TransportImpl;
+import org.apache.axis.impl.providers.SimpleJavaProvider;
+import org.apache.axis.impl.registry.ParameterImpl;
+import org.apache.axis.impl.registry.EngineRegistryImpl;
+import org.apache.axis.registry.EchoService;
+import org.apache.axis.registry.EngineRegistry;
+import org.apache.axis.registry.MockFlow;
+import org.apache.axis.registry.Module;
+import org.apache.axis.registry.Parameter;
 
 /**
  * @author Srinath Perera (hemapani@opensource.lk)
@@ -35,35 +38,35 @@
 public class Utils {
     public static EngineRegistry createMockRegistry(QName serviceName,QName operationName,QName transportName) throws AxisFault{
         EngineRegistry engineRegistry = null;
-        Global global = new SimpleGlobal();
+        Global global = new GlobalImpl();
         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);
+        engineRegistry = new EngineRegistryImpl(global);
         
-        Transport transport = new SimpleTransport(transportName);
+        Transport transport = new TransportImpl(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 service = new ServiceImpl(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());
+        Parameter classParam = new ParameterImpl("className",EchoService.class.getName());
         service.addParameter(classParam);
          
         service.setProvider(new SimpleJavaProvider());
         
-        Module m1 = new SimpleModule(new QName("","A Mdoule 1"));
+        Module m1 = new ModuleImpl(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 operation = new OperationImpl(operationName,service);
         operation.setInFlow(new MockFlow("inflow",4));
         
         service.addOperation(operation);

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/CompareOMWithDOMTest.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/CompareOMWithDOMTest.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/CompareOMWithDOMTest.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/CompareOMWithDOMTest.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/CompareOMWithDOMTest.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/CompareOMWithDOMTest.java	Thu Dec  2 03:39:10 2004
@@ -20,8 +20,6 @@
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 
-import junit.framework.TestCase;
-
 import org.apache.axis.AbstractTestCase;
 import org.w3c.dom.Document;
 

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/IteratorTester.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/IteratorTester.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/IteratorTester.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/IteratorTester.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/IteratorTester.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/IteratorTester.java	Thu Dec  2 03:39:10 2004
@@ -1,11 +1,13 @@
 package org.apache.axis.om;
 
-import junit.framework.TestCase;
-import org.apache.axis.impl.llom.builder.OMStAXBuilder;
-
-import javax.xml.stream.XMLInputFactory;
 import java.io.FileReader;
 import java.util.Iterator;
+
+import javax.xml.stream.XMLInputFactory;
+
+import junit.framework.TestCase;
+
+import org.apache.axis.impl.llom.builder.OMStAXBuilder;
 
 /**
  * Copyright 2001-2004 The Apache Software Foundation.

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/MessagesTest.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/MessagesTest.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/MessagesTest.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/MessagesTest.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/MessagesTest.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/MessagesTest.java	Thu Dec  2 03:39:10 2004
@@ -19,7 +19,6 @@
 */
 package org.apache.axis.om;
 
-import org.apache.axis.om.*;
 
 
 public class MessagesTest extends OMTestCase {

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMBodyTest.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMBodyTest.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMBodyTest.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMBodyTest.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMBodyTest.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMBodyTest.java	Thu Dec  2 03:39:10 2004
@@ -20,9 +20,6 @@
 package org.apache.axis.om;
 
 import org.apache.axis.impl.llom.OMNamespaceImpl;
-import org.apache.axis.om.OMBody;
-import org.apache.axis.om.OMBodyBlock;
-import org.apache.axis.om.OMTestCase;
 
 
 public class OMBodyTest extends OMTestCase {

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMEnvelopeAnotherTest.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMEnvelopeAnotherTest.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMEnvelopeAnotherTest.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMEnvelopeAnotherTest.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMEnvelopeAnotherTest.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMEnvelopeAnotherTest.java	Thu Dec  2 03:39:10 2004
@@ -19,7 +19,6 @@
 */
 package org.apache.axis.om;
 
-import org.apache.axis.om.*;
 
 
 public class OMEnvelopeAnotherTest extends OMTestCase {

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMEnvelopeTest.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMEnvelopeTest.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMEnvelopeTest.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMEnvelopeTest.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMEnvelopeTest.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMEnvelopeTest.java	Thu Dec  2 03:39:10 2004
@@ -19,9 +19,6 @@
 */
 package org.apache.axis.om;
 
-import org.apache.axis.om.OMTestCase;
-import org.apache.axis.om.OMBody;
-import org.apache.axis.om.OMHeader;
 
 
 public class OMEnvelopeTest extends OMTestCase {

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMHeaderBlockTest.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMHeaderBlockTest.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMHeaderBlockTest.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMHeaderBlockTest.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMHeaderBlockTest.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMHeaderBlockTest.java	Thu Dec  2 03:39:10 2004
@@ -19,11 +19,6 @@
 */
 package org.apache.axis.om;
 
-import org.apache.axis.om.OMHeader;
-import org.apache.axis.om.OMHeaderBlock;
-import org.apache.axis.om.OMTestCase;
-import org.apache.axis.om.OMHeaderBlock;
-
 import java.util.Iterator;
 
 

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMHeaderTest.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMHeaderTest.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMHeaderTest.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMHeaderTest.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMHeaderTest.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMHeaderTest.java	Thu Dec  2 03:39:10 2004
@@ -19,13 +19,9 @@
 */
 package org.apache.axis.om;
 
-import org.apache.axis.impl.llom.OMNamespaceImpl;
-import org.apache.axis.om.OMHeader;
-import org.apache.axis.om.OMHeaderBlock;
-import org.apache.axis.om.OMTestCase;
-import org.apache.axis.om.OMHeaderBlock;
-
 import java.util.Iterator;
+
+import org.apache.axis.impl.llom.OMNamespaceImpl;
 
 
 public class OMHeaderTest extends OMTestCase {

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMNavigatorTest.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMNavigatorTest.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMNavigatorTest.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMNavigatorTest.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMNavigatorTest.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMNavigatorTest.java	Thu Dec  2 03:39:10 2004
@@ -1,15 +1,16 @@
 package org.apache.axis.om;
 
+import java.io.FileReader;
+
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamReader;
+
 import junit.framework.TestCase;
+
 import org.apache.axis.impl.llom.OMNavigator;
+import org.apache.axis.impl.llom.builder.OMStAXBuilder;
 import org.apache.axis.impl.llom.factory.OMLinkedListImplFactory;
 import org.apache.axis.impl.llom.serialize.SimpleOMSerializer;
-import org.apache.axis.impl.llom.builder.OMStAXBuilder;
-import org.apache.axis.impl.llom.OMNavigator;
-
-import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLStreamReader;
-import java.io.FileReader;
 
 /**
  * Copyright 2001-2004 The Apache Software Foundation.

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMTest.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMTest.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMTest.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMTest.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMTest.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMTest.java	Thu Dec  2 03:39:10 2004
@@ -15,17 +15,15 @@
  */
 package org.apache.axis.om;
 
-import junit.framework.TestCase;
-import org.apache.axis.impl.llom.wrapper.OMXPPWrapper;
-import org.apache.axis.AbstractTestCase;
-import org.apache.axis.impl.llom.wrapper.OMXPPWrapper;
-import org.xmlpull.v1.XmlPullParser;
-import org.xmlpull.v1.XmlPullParserFactory;
-
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.InputStreamReader;
 import java.util.Iterator;
+
+import org.apache.axis.AbstractTestCase;
+import org.apache.axis.impl.llom.wrapper.OMXPPWrapper;
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserFactory;
 
 /**
  * This test case tests the basic expectations of the engine from the OM.

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMTestCase.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMTestCase.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMTestCase.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMTestCase.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMTestCase.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMTestCase.java	Thu Dec  2 03:39:10 2004
@@ -1,14 +1,11 @@
 package org.apache.axis.om;
 
-import junit.framework.TestCase;
-import org.apache.axis.impl.llom.wrapper.OMXPPWrapper;
-import org.apache.axis.om.OMEnvelope;
+import java.io.FileReader;
+
 import org.apache.axis.AbstractTestCase;
 import org.apache.axis.impl.llom.wrapper.OMXPPWrapper;
 import org.xmlpull.v1.XmlPullParser;
 import org.xmlpull.v1.XmlPullParserFactory;
-
-import java.io.FileReader;
 
 /**
  * Copyright 2001-2004 The Apache Software Foundation.

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMTestUtils.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMTestUtils.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMTestUtils.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMTestUtils.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMTestUtils.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/OMTestUtils.java	Thu Dec  2 03:39:10 2004
@@ -19,10 +19,8 @@
 import java.io.FileReader;
 import java.util.Iterator;
 
-
 import junit.framework.TestCase;
 
-import org.apache.axis.impl.llom.wrapper.OMXPPWrapper;
 import org.apache.axis.impl.llom.wrapper.OMXPPWrapper;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/Tester.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/Tester.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/Tester.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/Tester.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/Tester.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/Tester.java	Thu Dec  2 03:39:10 2004
@@ -18,23 +18,24 @@
 
 package org.apache.axis.om;
 
-import junit.framework.TestCase;
-import org.apache.axis.impl.llom.OMTextImpl;
-import org.apache.axis.impl.llom.serialize.SimpleOMSerializer;
-import org.apache.axis.impl.llom.builder.OMStAXBuilder;
-import org.apache.axis.impl.llom.OMAttributeImpl;
-import org.apache.axis.impl.llom.OMElementImpl;
-import org.apache.axis.impl.llom.*;
-import org.apache.axis.impl.llom.builder.OMStAXBuilder;
-import org.xmlpull.v1.XmlPullParser;
-
-import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLStreamReader;
 import java.io.FileOutputStream;
 import java.io.FileReader;
 import java.io.OutputStream;
 import java.io.PrintStream;
 import java.lang.reflect.Field;
+
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamReader;
+
+import junit.framework.TestCase;
+
+import org.apache.axis.impl.llom.OMAttributeImpl;
+import org.apache.axis.impl.llom.OMElementImpl;
+import org.apache.axis.impl.llom.OMNavigator;
+import org.apache.axis.impl.llom.OMTextImpl;
+import org.apache.axis.impl.llom.builder.OMStAXBuilder;
+import org.apache.axis.impl.llom.serialize.SimpleOMSerializer;
+import org.xmlpull.v1.XmlPullParser;
 
 
 /**

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/builder/ObjectToOMBuilderTest.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/builder/ObjectToOMBuilderTest.java?view=diff&rev=109495&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/builder/ObjectToOMBuilderTest.java&r1=109494&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/builder/ObjectToOMBuilderTest.java&r2=109495
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/builder/ObjectToOMBuilderTest.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/om/builder/ObjectToOMBuilderTest.java	Thu Dec  2 03:39:10 2004
@@ -1,18 +1,16 @@
 package org.apache.axis.om.builder;
 
+import java.util.Iterator;
+
 import junit.framework.TestCase;
-import org.xml.sax.XMLReader;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.apache.axis.om.*;
-import org.apache.axis.impl.llom.factory.OMLinkedListImplFactory;
+
 import org.apache.axis.impl.llom.builder.ObjectToOMBuilder;
+import org.apache.axis.impl.llom.factory.OMLinkedListImplFactory;
+import org.apache.axis.om.OMElement;
+import org.apache.axis.om.OMFactory;
+import org.apache.axis.om.OMNode;
+import org.apache.axis.om.OutObject;
 import org.apache.axis.om.builder.dummy.DummyOutObject;
-import org.apache.axis.om.builder.dummy.DummyOutObject;
-
-import java.io.FileReader;
-import java.io.IOException;
-import java.util.Iterator;
 
 /**
  * Copyright 2001-2004 The Apache Software Foundation.

Added: webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/EchoService.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/EchoService.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/EchoService.java	Thu Dec  2 03:39:10 2004
@@ -0,0 +1,24 @@
+package org.apache.axis.registry;
+/*
+ * 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.
+ */
+/**
+ * @author Srinath Perera(hemapani@opensource.lk)
+ */
+public class EchoService {
+    public void echoVoid(){
+        System.out.println("echo Service Called");
+    }
+}

Added: webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/MockFlow.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/MockFlow.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/MockFlow.java	Thu Dec  2 03:39:10 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.registry;
+
+import org.apache.axis.impl.registry.FlowImpl;
+import org.apache.axis.registry.Flow;
+
+
+public class MockFlow extends FlowImpl implements Flow {
+    public MockFlow(String message, int length) {
+        super();
+        for (int i = 0; i < length; i++) {
+            SpeakingHandler1 h1 = new SpeakingHandler1("Executing " + i + " inside " + message);
+            super.addHandler(h1);
+        }
+    }
+
+}

Added: webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/SpeakingHandler.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/SpeakingHandler.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/SpeakingHandler.java	Thu Dec  2 03:39:10 2004
@@ -0,0 +1,48 @@
+/*
+ * 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.registry;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.engine.Handler;
+import org.apache.axis.impl.registry.AbstractEngineElement;
+
+public class SpeakingHandler extends AbstractEngineElement implements Handler {
+    private String message;
+    private QName name;
+    public SpeakingHandler() {
+       this.message = "Hi I amtesting ";
+    }
+    public QName getName() {
+        return name;
+    }
+
+    public void invoke(MessageContext msgContext) throws AxisFault {
+        System.out.println("I am " + message + " Handler Running :)");
+    }
+
+    public void revoke(MessageContext msgContext) {
+        System.out.println("I am " + message + " Handler Running :)");
+    }
+
+    public void setName(QName name) {
+        this.name = name;
+    }
+
+}

Added: webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/SpeakingHandler1.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/SpeakingHandler1.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/SpeakingHandler1.java	Thu Dec  2 03:39:10 2004
@@ -0,0 +1,48 @@
+/*
+ * 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.registry;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.engine.Handler;
+import org.apache.axis.impl.registry.AbstractEngineElement;
+
+public class SpeakingHandler1 extends AbstractEngineElement implements Handler {
+    private String message;
+    private QName name;
+    public SpeakingHandler1(String message) {
+       this.message = message;
+    }
+    public QName getName() {
+        return name;
+    }
+
+    public void invoke(MessageContext msgContext) throws AxisFault {
+        System.out.println("I am " + message + " Handler Running :)");
+    }
+
+    public void revoke(MessageContext msgContext) {
+        System.out.println("I am " + message + " Handler Running :)");
+    }
+
+    public void setName(QName name) {
+        this.name = name;
+    }
+
+}

Added: webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/SpeakingProvider.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/SpeakingProvider.java?view=auto&rev=109495
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/registry/SpeakingProvider.java	Thu Dec  2 03:39:10 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.registry;
+
+import java.lang.reflect.Method;
+
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.engine.Provider;
+import org.apache.axis.impl.providers.AbstractProvider;
+
+public class SpeakingProvider extends AbstractProvider implements Provider {
+    private String message;
+    public SpeakingProvider(){}
+
+
+    public MessageContext invoke(MessageContext msgContext) throws AxisFault {
+        System.out.println("I am Speaking Provider Running :)");
+        return msgContext;
+    }
+
+    public void revoke(MessageContext msgContext) {
+        System.out.println("I am Speaking Provider revoking :)");
+    }
+    /* (non-Javadoc)
+     * @see org.apache.axis.engine.AbstractProvider#deserializeParameters(org.apache.axis.engine.MessageContext, java.lang.reflect.Method)
+     */
+    public Object[] deserializeParameters(
+        MessageContext msgContext,
+        Method method)
+        throws AxisFault {
+        return null;
+    }
+
+    public Object getTheImplementationObject(MessageContext msgContext)
+        throws AxisFault {
+        return null;
+    }
+
+    protected Object makeNewServiceObject(
+        MessageContext msgContext)
+        throws AxisFault {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+}

Mime
View raw message