You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by de...@apache.org on 2005/10/04 14:47:45 UTC

svn commit: r293594 [1/2] - in /webservices/axis2/trunk/java/modules: addressing/src/org/apache/axis2/handlers/addressing/ codegen/src/org/apache/axis2/wsdl/template/java/ core/src/org/apache/axis2/clientapi/ core/src/org/apache/axis2/context/ core/src...

Author: deepal
Date: Tue Oct  4 05:45:03 2005
New Revision: 293594

URL: http://svn.apache.org/viewcvs?rev=293594&view=rev
Log:
Rather than having more that one opeartionContext depending on the MEP , creates OperationDescrition depending on the MEP using wsdl MEP and keep only one OpeartionContext  in the system. Opeartion Description inside the Opeartion context know how to handle the MEP.

So we have OperationDescriptionFactory to craete OperationDescription , we have fore OpeartionDescriptions
1.InonlyOperationDescription
2.OutonlyOperationDescription
3.InOutOpeartionDescription
4.OutInOperationDescription

Each OpearationDescription extend from abstract class called “OperationDescription”

Added:
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/InOnlyOperationDescription.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/InOutOperationDescrition.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/OperationDescriptionFactory.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/OutInOperationDescription.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/OutOnlyOperationDescription.java
Modified:
    webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java
    webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/clientapi/Call.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/clientapi/MessageSender.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/OperationContext.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/DeploymentEngine.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ModuleBuilder.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ServiceBuilder.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/AxisDescWSDLComponentFactory.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/OperationDescription.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/ServiceDescription.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/util/Utils.java
    webservices/axis2/trunk/java/modules/core/test-resources/deployment/module1/META-INF/module.xml
    webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/context/ContextHierarchyTest.java
    webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/context/ContextSerailzationWithEngine.java
    webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/context/ContextSerializationTest.java
    webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/context/OperationContextTest.java
    webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/description/RegistryTest.java
    webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/engine/EnginePausingTest.java
    webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/engine/EngineWithoutPhaseResolvingTest.java
    webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/engine/ParamterAddTest.java
    webservices/axis2/trunk/java/modules/integration/src/org/apache/axis2/interop/whitemesa/round1/Round1Client.java
    webservices/axis2/trunk/java/modules/integration/src/org/apache/axis2/interop/whitemesa/round2/SunRound2Client.java
    webservices/axis2/trunk/java/modules/integration/src/org/apache/axis2/interop/whitemesa/round3/SunRound3Client.java
    webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/MessageContextInjectionTest.java
    webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/MessageWithServerTest.java
    webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/OneWayRawXMLTest.java
    webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/util/MyInOutMEPClient.java
    webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/mail/MailCharSetEncodingTest.java
    webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/mail/MailOneWayRawXMLTest.java
    webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/mail/MailRequestResponseRawXMLTest.java
    webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/mail/MailetRequestResponceRawXMLTest.java
    webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/mtom/EchoRawMTOMFaultReportTest.java
    webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/swa/EchoRawSwATest.java
    webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/tcp/TCPEchoRawXMLTest.java
    webservices/axis2/trunk/java/modules/samples/src/sample/amazon/search/AsynchronousClient.java
    webservices/axis2/trunk/java/modules/samples/src/sample/google/search/AsynchronousClient.java
    webservices/axis2/trunk/java/modules/security/src/org/apache/axis2/security/WSDoAllReceiver.java
    webservices/axis2/trunk/java/modules/security/src/org/apache/axis2/security/WSDoAllSender.java

Modified: webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java?rev=293594&r1=293593&r2=293594&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java (original)
+++ webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java Tue Oct  4 05:45:03 2005
@@ -69,7 +69,7 @@
                     ? Final.WSA_NAMESPACE : Submission.WSA_NAMESPACE;
         }else if (msgContext.getOperationContext() != null) { // check for a IN message context, else default to WSA Submission
             MessageContext inMessageContext = msgContext.getOperationContext()
-                    .getMessageContext(WSDLConstants.MESSAGE_LABEL_IN);
+                    .getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
             if (inMessageContext == null) {
                 addressingNamespace = Submission.WSA_NAMESPACE; // setting Submission version as the default addressing namespace
             } else {

Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl?rev=293594&r1=293593&r2=293594&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl Tue Oct  4 05:45:03 2005
@@ -26,9 +26,9 @@
 
            //creating the operations
            org.apache.axis2.description.OperationDescription __operation;
-           _operations = new org.apache.axis2.description.OperationDescription[<xsl:value-of select="count(method)"/>];
+           _operations = new org.apache.axis2.description.OutInOperationDescription[<xsl:value-of select="count(method)"/>];
       <xsl:for-each select="method">
-           __operation = new org.apache.axis2.description.OperationDescription();
+           __operation = new org.apache.axis2.description.OutInOperationDescription();
            __operation.setName(new javax.xml.namespace.QName("<xsl:value-of select="@namespace"/>", "<xsl:value-of select="@name"/>"));
            _operations[<xsl:value-of select="position()-1"/>]=__operation;
            _service.addOperation(__operation);

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/clientapi/Call.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/clientapi/Call.java?rev=293594&r1=293593&r2=293594&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/clientapi/Call.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/clientapi/Call.java Tue Oct  4 05:45:03 2005
@@ -22,11 +22,14 @@
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.context.ServiceContext;
 import org.apache.axis2.deployment.util.PhasesInfo;
-import org.apache.axis2.description.OperationDescription;
 import org.apache.axis2.description.ServiceDescription;
+import org.apache.axis2.description.OperationDescriptionFactory;
+import org.apache.axis2.description.OperationDescription;
+import org.apache.axis2.description.OutInOperationDescription;
 import org.apache.axis2.engine.AxisConfigurationImpl;
 import org.apache.axis2.om.OMElement;
 import org.apache.axis2.soap.SOAPEnvelope;
+import org.apache.wsdl.WSDLConstants;
 
 import javax.xml.namespace.QName;
 
@@ -80,7 +83,7 @@
 
         OperationDescription opDesc =
                 serviceContext.getServiceConfig().getOperation(new QName(axisop));
-        opDesc = createOpDescAndFillInFlowInformation(opDesc,axisop);
+        opDesc = createOpDescAndFillInFlowInformation(opDesc,axisop,WSDLConstants.MEP_CONSTANT_IN_OUT);
         opDesc.setParent(serviceContext.getServiceConfig());
         MessageContext msgctx = prepareTheSOAPEnvelope(toSend);
 
@@ -102,7 +105,7 @@
 
         OperationDescription opDesc =
                 serviceContext.getServiceConfig().getOperation(new QName(axisop));
-        opDesc = createOpDescAndFillInFlowInformation(opDesc,axisop);
+        opDesc = createOpDescAndFillInFlowInformation(opDesc,axisop, WSDLConstants.MEP_CONSTANT_IN_OUT);
 
         MessageContext msgctx = new MessageContext(serviceContext.getEngineContext());
         msgctx.setEnvelope(envelope);
@@ -128,7 +131,7 @@
             throws AxisFault {
         OperationDescription opDesc =
                 serviceContext.getServiceConfig().getOperation(new QName(axisop));
-        opDesc = createOpDescAndFillInFlowInformation(opDesc,axisop);
+        opDesc = createOpDescAndFillInFlowInformation(opDesc,axisop,WSDLConstants.MEP_CONSTANT_IN_OUT);
         MessageContext msgctx = prepareTheSOAPEnvelope(toSend);
         //call the underline implementation
         super.invokeNonBlocking(opDesc, msgctx, callback);
@@ -150,7 +153,7 @@
             throws AxisFault {
         OperationDescription opDesc =
                 serviceContext.getServiceConfig().getOperation(new QName(axisop));
-        opDesc = createOpDescAndFillInFlowInformation(opDesc,axisop);
+        opDesc = createOpDescAndFillInFlowInformation(opDesc,axisop,WSDLConstants.MEP_CONSTANT_IN_OUT);
 
         MessageContext msgctx = new MessageContext(serviceContext.getEngineContext());
         msgctx.setEnvelope(envelope);
@@ -162,15 +165,17 @@
      * This method create a operation desc if it null and copy the flows from the template operation
      * @param opDesc
      * @param axisOp
-     * @return
      */
     private OperationDescription createOpDescAndFillInFlowInformation(
             OperationDescription opDesc,
-            String axisOp) {
+            String axisOp , int mepURL) throws AxisFault {
         if (opDesc == null) {
             //if the operation is not alrady define we will copy the 
             //crated Phases from the templete operation to the this Operation
-            opDesc = new OperationDescription(new QName(axisOp));
+
+//            opDesc = new OperationDescription(new QName(axisOp));
+            opDesc = OperationDescriptionFactory.getOperetionDescription(mepURL);
+            opDesc.setName(new QName(axisOp));
             opDesc.setRemainingPhasesInFlow(
                     operationTemplate.getRemainingPhasesInFlow());
             opDesc.setPhasesOutFlow(operationTemplate.getPhasesOutFlow());
@@ -206,7 +211,8 @@
         //we will assume a Service and operations
         QName assumedServiceName = new QName("AnonymousService");
         ServiceDescription axisService = new ServiceDescription(assumedServiceName);
-        operationTemplate = new OperationDescription(new QName("TemplateOperation"));
+//        operationTemplate = new OperationDescription(new QName("TemplateOperation"));
+        operationTemplate = new   OutInOperationDescription(new QName("TemplateOperation"));
 
         PhasesInfo info =((AxisConfigurationImpl)sysContext.getAxisConfiguration()).getPhasesinfo();
         //to set the operation flows

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/clientapi/MessageSender.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/clientapi/MessageSender.java?rev=293594&r1=293593&r2=293594&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/clientapi/MessageSender.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/clientapi/MessageSender.java Tue Oct  4 05:45:03 2005
@@ -23,6 +23,7 @@
 import org.apache.axis2.context.ServiceGroupContext;
 import org.apache.axis2.description.OperationDescription;
 import org.apache.axis2.description.ServiceDescription;
+import org.apache.axis2.description.OutInOperationDescription;
 import org.apache.axis2.om.OMElement;
 
 import javax.xml.namespace.QName;
@@ -64,7 +65,8 @@
         OperationDescription axisOp = serviceContext.getServiceConfig()
                 .getOperation(opName);
         if (axisOp == null) {
-            axisOp = new OperationDescription(new QName(opName));
+            //todo I just assumed mep is alwas in-out , this has to improve : Deepal
+            axisOp = new OutInOperationDescription(new QName(opName));
             serviceContext.getServiceConfig().addOperation(axisOp);
         }
         super.send(axisOp, prepareTheSOAPEnvelope(toSend));

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/OperationContext.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/OperationContext.java?rev=293594&r1=293593&r2=293594&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/OperationContext.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/OperationContext.java Tue Oct  4 05:45:03 2005
@@ -20,15 +20,14 @@
 import org.apache.axis2.description.OperationDescription;
 import org.apache.axis2.description.ServiceDescription;
 import org.apache.axis2.engine.AxisConfiguration;
-import org.apache.axis2.engine.AxisError;
-import org.apache.axis2.i18n.Messages;
-import org.apache.wsdl.WSDLConstants;
 
 import javax.xml.namespace.QName;
 import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 import java.util.Map;
+import java.util.HashMap;
+import java.util.Iterator;
 
 /**
  * An OperationContext represents a running "instance" of an operation, which is
@@ -45,10 +44,14 @@
  * creation in the OperationContexFactory.
  */
 public class OperationContext extends AbstractContext {
+
+
+    private HashMap messageContexts;
+
     // the in and out messages that may be present
-    private MessageContext inMessageContext;
+//    private MessageContext inMessageContext;
 
-    private MessageContext outMessageContext;
+//    private MessageContext outMessageContext;
 
     // the OperationDescription of which this is a running instance. The MEP of this
     // OperationDescription must be one of the 8 predefined ones in WSDL 2.0.
@@ -63,41 +66,40 @@
     private Map operationContextMap;
 
     private QName operationDescName = null;
-    
+
     private QName serviceDescName = null;
-    
+
     /**
      * The method is used to do the intialization of the EngineContext
      * @throws AxisFault
      */
 
     public void init(AxisConfiguration axisConfiguration) throws AxisFault {
-    	if (operationDescName!=null && serviceDescName!=null){
+        if (operationDescName!=null && serviceDescName!=null){
             //todo this lead to NPE : Chamikara
-            axisOperation = axisConfiguration.getService(serviceDescName.getLocalPart()).
-							getOperation(operationDescName);
-    	}
-    	
-    	if (inMessageContext!=null)
-    		inMessageContext.init(axisConfiguration);
-    	
-    	if (outMessageContext!=null)
-    		outMessageContext.init(axisConfiguration);
+            axisOperation = axisConfiguration.getService(serviceDescName.getLocalPart()).getOperation(operationDescName);
+        }
+
+        Iterator msgContexts =   messageContexts.values().iterator();
+        while (msgContexts.hasNext()) {
+            MessageContext messageContext = (MessageContext) msgContexts.next();
+            messageContext.init(axisConfiguration);
+        }
     }
-    
+
     private void writeObject(ObjectOutputStream out) throws IOException {
-    	if (axisOperation!=null)
-    		operationDescName = axisOperation.getName();
-    	if (axisOperation.getParent()!=null)
-    		serviceDescName = axisOperation.getParent().getName();
-    	
-    	out.defaultWriteObject();
+        if (axisOperation!=null)
+            operationDescName = axisOperation.getName();
+        if (axisOperation.getParent()!=null)
+            serviceDescName = axisOperation.getParent().getName();
+
+        out.defaultWriteObject();
     }
 
-    private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {	
-    	in.defaultReadObject();
+    private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
+        in.defaultReadObject();
     }
-    
+
     /**
      * Construct a new OperationContext.
      *
@@ -109,26 +111,28 @@
     public OperationContext(OperationDescription axisOperation,
                             ServiceContext serviceContext) {
         super(serviceContext);
+        this.messageContexts = new HashMap();
         this.axisOperation = axisOperation;
         this.operationMEP = axisOperation.getAxisSpecifMEPConstant();
         this.operationContextMap = getServiceContext().getEngineContext()
                 .getOperationContextMap();
-        
+
         operationDescName = axisOperation.getName();
         ServiceDescription serviceDescription = axisOperation.getParent();
         if (serviceDescription!=null)
-        	serviceDescName = serviceDescription.getName();
+            serviceDescName = serviceDescription.getName();
     }
 
     public OperationContext(OperationDescription axisOperation) {
         super(null);
+        this.messageContexts = new HashMap();
         this.axisOperation = axisOperation;
         this.operationMEP = axisOperation.getAxisSpecifMEPConstant();
 
         operationDescName = axisOperation.getName();
         ServiceDescription serviceDescription = axisOperation.getParent();
         if (serviceDescription!=null)
-        	serviceDescName = serviceDescription.getName();
+            serviceDescName = serviceDescription.getName();
     }
 
     /**
@@ -165,36 +169,8 @@
      * @param msgContext
      */
     public synchronized void addMessageContext(MessageContext msgContext) throws AxisFault {
-        // this needs to store the msgContext in either inMessageContext or
-        // outMessageContext depending on the MEP of the OperationDescription
-        // and on the current state of the operation.
-        if (WSDLConstants.MEP_CONSTANT_IN_OUT == operationMEP
-                || WSDLConstants.MEP_CONSTANT_IN_OPTIONAL_OUT == operationMEP
-                || WSDLConstants.MEP_CONSTANT_ROBUST_IN_ONLY == operationMEP) {
-            if (inMessageContext == null) {
-                inMessageContext = msgContext;
-            } else {
-                outMessageContext = msgContext;
-                isComplete = true;
-            }
-        } else if (WSDLConstants.MEP_CONSTANT_IN_ONLY == operationMEP) {
-            inMessageContext = msgContext;
-            isComplete = true;
-        } else if (WSDLConstants.MEP_CONSTANT_OUT_ONLY == operationMEP) {
-            outMessageContext = msgContext;
-            isComplete = true;
-        } else if (WSDLConstants.MEP_CONSTANT_OUT_IN == operationMEP
-                || WSDLConstants.MEP_CONSTANT_OUT_OPTIONAL_IN == operationMEP
-                || WSDLConstants.MEP_CONSTANT_ROBUST_IN_ONLY == operationMEP) {
-            if (outMessageContext == null) {
-                outMessageContext = msgContext;
-            } else {
-                inMessageContext = msgContext;
-                isComplete = true;
-            }
-        } else {
-            // NOT REACHED: the factory created this context incorrectly
-            throw new AxisError("Invalid behavior of OperationContextFactory");
+        if(axisOperation != null){
+            axisOperation.addMessageContext(msgContext,this);
         }
     }
 
@@ -203,26 +179,24 @@
      * @return
      * @throws AxisFault
      */
-    public MessageContext getMessageContext(int messageLabel) throws AxisFault {
-        if (messageLabel == WSDLConstants.MESSAGE_LABEL_IN) {
-            return inMessageContext;
-        } else if (messageLabel == WSDLConstants.MESSAGE_LABEL_OUT) {
-            return outMessageContext;
-        } else {
-            throw new AxisFault(Messages.getMessage("unknownMsgLabel"));
-        }
+
+    public MessageContext getMessageContext(String messageLabel) throws AxisFault {
+        return (MessageContext) messageContexts.get(messageLabel);
     }
 
     /**
      * Checks to see if the MEP is complete. i.e. whether all the messages that
      * are associated with the MEP has arrived and MEP is complete.
      *
-     * @return
      */
     public boolean isComplete() {
         return isComplete;
     }
 
+    public void setComplete(boolean complete) {
+        isComplete = complete;
+    }
+
     /**
      * Removes the pointers to this <code>OperationContext</code> in the
      * <code>EngineContext</code>'s OperationContextMap so that this
@@ -234,18 +208,24 @@
      * being complete due to the optional nature of the MEP.
      */
     public void cleanup() {
-        if (null != this.inMessageContext && operationContextMap != null) {
-            operationContextMap.remove(inMessageContext.getMessageID());
-        }
-        if (null != this.outMessageContext && operationContextMap != null) {
-            operationContextMap.remove(outMessageContext.getMessageID());
+        Iterator msgContexts =   messageContexts.values().iterator();
+        while (msgContexts.hasNext()) {
+            MessageContext messageContext = (MessageContext) msgContexts.next();
+            if (null != messageContext && operationContextMap != null) {
+                operationContextMap.remove(messageContext.getMessageID());
+            }
         }
+
     }
 
     public void setParent(AbstractContext context) {
         super.setParent(context);
         this.operationContextMap = getServiceContext().getEngineContext()
                 .getOperationContextMap();
+    }
+
+    public HashMap getMessageContexts() {
+        return messageContexts;
     }
 
 }

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/DeploymentEngine.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/DeploymentEngine.java?rev=293594&r1=293593&r2=293594&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/DeploymentEngine.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/DeploymentEngine.java Tue Oct  4 05:45:03 2005
@@ -595,6 +595,8 @@
                                 de.printStackTrace(error_ptintWriter);
                                 serviceStatus = "Error:\n" +
                                         errorWriter.toString();
+                                de.printStackTrace();
+
                             } catch (AxisFault axisFault) {
                                 log.info(Messages.getMessage(DeploymentErrorMsgs.IN_VALID_SERVICE,
                                         currentArchiveFile.getName(),axisFault.getMessage()));
@@ -602,6 +604,8 @@
                                 axisFault.printStackTrace(error_ptintWriter);
                                 serviceStatus = "Error:\n" +
                                         errorWriter.toString();
+
+                                axisFault.printStackTrace();
                             } catch (Exception e) {
                                 log.info(Messages.getMessage(DeploymentErrorMsgs.IN_VALID_SERVICE,
                                         currentArchiveFile.getName(),e.getMessage()));

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ModuleBuilder.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ModuleBuilder.java?rev=293594&r1=293593&r2=293594&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ModuleBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ModuleBuilder.java Tue Oct  4 05:45:03 2005
@@ -19,10 +19,13 @@
 import org.apache.axis2.deployment.util.PhasesInfo;
 import org.apache.axis2.description.ModuleDescription;
 import org.apache.axis2.description.OperationDescription;
+import org.apache.axis2.description.InOnlyOperationDescription;
+import org.apache.axis2.description.OperationDescriptionFactory;
 import org.apache.axis2.engine.MessageReceiver;
 import org.apache.axis2.i18n.Messages;
 import org.apache.axis2.om.OMAttribute;
 import org.apache.axis2.om.OMElement;
+import org.apache.axis2.AxisFault;
 
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamException;
@@ -137,8 +140,26 @@
             if(op_name_att == null){
                 throw new DeploymentException(Messages.getMessage("Invalide Operations"));
             }
+            OMAttribute op_mep_att = operation.getAttribute(
+                    new QName(MEP));
+            String mepURL =null;
+             OperationDescription op_descrip;
+            if(op_mep_att !=null){
+                mepURL= op_mep_att.getValue();
+            }
+
+            if(mepURL == null){
+                // assuming in-out mep
+                op_descrip = new InOnlyOperationDescription();
+            } else {
+                try {
+                    op_descrip = OperationDescriptionFactory.getOperetionDescription(mepURL);
+                } catch (AxisFault axisFault) {
+                    throw new DeploymentException("Error in processing operation " + axisFault);
+                }
+            }
             String opname = op_name_att.getValue();
-            OperationDescription op_descrip = new OperationDescription();
+//            OperationDescription op_descrip = new OperationDescription();
             op_descrip.setName(new QName(opname));
 
             //Opeartion Paramters
@@ -148,12 +169,7 @@
 
 
             //setting the mep of the operation
-            OMAttribute op_mep_att = operation.getAttribute(
-                    new QName(MEP));
-            if(op_mep_att !=null){
-                String mep = op_mep_att.getValue();
-                op_descrip.setMessageExchangePattern(mep);
-            }
+
 
             // loading the message recivers
             OMElement receiverElement = operation.getFirstChildWithName(

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ServiceBuilder.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ServiceBuilder.java?rev=293594&r1=293593&r2=293594&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ServiceBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ServiceBuilder.java Tue Oct  4 05:45:03 2005
@@ -19,16 +19,14 @@
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
 import org.apache.axis2.deployment.util.PhasesInfo;
-import org.apache.axis2.description.ModuleConfiguration;
-import org.apache.axis2.description.OperationDescription;
-import org.apache.axis2.description.Parameter;
-import org.apache.axis2.description.ParameterInclude;
-import org.apache.axis2.description.ServiceDescription;
+import org.apache.axis2.description.*;
 import org.apache.axis2.engine.MessageReceiver;
 import org.apache.axis2.i18n.Messages;
 import org.apache.axis2.om.OMAttribute;
 import org.apache.axis2.om.OMElement;
 import org.apache.axis2.om.impl.OMOutputImpl;
+import org.apache.wsdl.WSDLOperation;
+import org.apache.wsdl.WSDLConstants;
 
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLOutputFactory;
@@ -142,10 +140,12 @@
 
         } catch (XMLStreamException e) {
             throw new DeploymentException(e);
+        } catch (AxisFault axisFault) {
+             throw new DeploymentException("Error in preocessing operation +" + axisFault);
         }
     }
 
-    private ArrayList processOpeartions(Iterator opeartinsItr) throws DeploymentException {
+    private ArrayList processOpeartions(Iterator opeartinsItr) throws AxisFault {
         ArrayList operations = new ArrayList();
         while (opeartinsItr.hasNext()) {
             OMElement operation = (OMElement) opeartinsItr.next();
@@ -156,21 +156,35 @@
             if(op_name_att == null){
                 throw new DeploymentException(Messages.getMessage("Invalide Operations"));
             }
-            String opname = op_name_att.getValue();
-            OperationDescription op_descrip = service.getOperation(new QName(opname));
-            if(op_descrip == null){
-                op_descrip = new OperationDescription();
-                op_descrip.setName(new QName(opname));
-                log.info(Messages.getMessage(DeploymentErrorMsgs.OP_NOT_FOUN_IN_WSDL, opname));
-            }
 
-            //setting the mep of the operation
+              //setting the mep of the operation
             OMAttribute op_mep_att = operation.getAttribute(
                     new QName(MEP));
+             String mepurl =null;
             if(op_mep_att !=null){
-                String mep = op_mep_att.getValue();
-                op_descrip.setMessageExchangePattern(mep);
+                mepurl = op_mep_att.getValue();
+                //todo value has to be validate
+               //todo
+                // op_descrip.setMessageExchangePattern(mep);
             }
+
+            String opname = op_name_att.getValue();
+            WSDLOperation wsdlOperation =service.getWSDLOPOperation(new QName(opname)); 
+//            OperationDescription op_descrip = service.getOperation(new QName(opname));
+            OperationDescription op_descrip = null;
+            if(wsdlOperation == null){
+                if(mepurl == null){
+                     // assumed MEP is in-out
+                     op_descrip = new InOutOperationDescrition();
+                } else {
+                    op_descrip =OperationDescriptionFactory.getOperetionDescription(mepurl);
+                }
+//                op_descrip = new OperationDescription();
+                op_descrip.setName(new QName(opname));
+                log.info(Messages.getMessage(DeploymentErrorMsgs.OP_NOT_FOUN_IN_WSDL, opname));
+            }
+
+
 
             //Opeartion Paramters
             Iterator paramters = operation.getChildrenWithName(

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/AxisDescWSDLComponentFactory.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/AxisDescWSDLComponentFactory.java?rev=293594&r1=293593&r2=293594&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/AxisDescWSDLComponentFactory.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/AxisDescWSDLComponentFactory.java Tue Oct  4 05:45:03 2005
@@ -35,7 +35,8 @@
 
 
     public WSDLOperation createOperation() {
-        return new OperationDescription();
+//        return new OperationDescription();         // by Deepal
+        return new WSDLOperationImpl();
     }
 
 

Added: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/InOnlyOperationDescription.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/InOnlyOperationDescription.java?rev=293594&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/InOnlyOperationDescription.java (added)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/InOnlyOperationDescription.java Tue Oct  4 05:45:03 2005
@@ -0,0 +1,55 @@
+package org.apache.axis2.description;
+
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.context.OperationContext;
+import org.apache.axis2.AxisFault;
+import org.apache.wsdl.WSDLOperation;
+
+import javax.xml.namespace.QName;
+/*
+* Copyright 2004,2005 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: Deepal Jayasinghe
+ * Date: Oct 3, 2005
+ * Time: 2:06:31 PM
+ */
+public class InOnlyOperationDescription extends OperationDescription {
+
+    public InOnlyOperationDescription(WSDLOperation wsdlopeartion) {
+        super(wsdlopeartion);
+    }
+
+    public InOnlyOperationDescription() {
+        super();
+    }
+
+    public InOnlyOperationDescription(QName name) {
+        super(name);
+    }
+
+    public void addMessageContext(MessageContext msgContext, OperationContext opContext)
+            throws AxisFault {
+        if(!opContext.isComplete()){
+            opContext.getMessageContexts().put(MESSAGE_LABEL_IN_VALUE,msgContext);
+            opContext.setComplete(true);
+        } else {
+            throw new AxisFault("Invalid messge addition , operation context completed") ;
+        }
+    }
+}

Added: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/InOutOperationDescrition.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/InOutOperationDescrition.java?rev=293594&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/InOutOperationDescrition.java (added)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/InOutOperationDescrition.java Tue Oct  4 05:45:03 2005
@@ -0,0 +1,61 @@
+package org.apache.axis2.description;
+
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.context.OperationContext;
+import org.apache.axis2.AxisFault;
+import org.apache.wsdl.WSDLOperation;
+
+import javax.xml.namespace.QName;
+import java.util.HashMap;
+/*
+* Copyright 2004,2005 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: Deepal Jayasinghe
+ * Date: Oct 3, 2005
+ * Time: 2:07:15 PM
+ */
+public class InOutOperationDescrition extends OperationDescription {
+
+    public InOutOperationDescrition(WSDLOperation wsdlopeartion) {
+        super(wsdlopeartion);
+    }
+
+    public InOutOperationDescrition() {
+        super();
+    }
+
+    public InOutOperationDescrition(QName name) {
+        super(name);    
+    }
+
+    public void addMessageContext(MessageContext msgContext, OperationContext opContext) throws AxisFault {
+        HashMap mep = opContext.getMessageContexts();
+        MessageContext immsgContext =  (MessageContext)mep.get(MESSAGE_LABEL_IN_VALUE);
+        MessageContext outmsgContext =  (MessageContext)mep.get(MESSAGE_LABEL_OUT_VALUE);
+        if (immsgContext !=null && outmsgContext !=null){
+            throw new AxisFault("Invalid messge addition , operation context completed") ;
+        }
+        if(immsgContext == null){
+            mep.put(MESSAGE_LABEL_IN_VALUE,msgContext);
+        }  else{
+            mep.put(MESSAGE_LABEL_OUT_VALUE,msgContext);
+            opContext.setComplete(true);
+        }
+    }
+}

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/OperationDescription.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/OperationDescription.java?rev=293594&r1=293593&r2=293594&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/OperationDescription.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/OperationDescription.java Tue Oct  4 05:45:03 2005
@@ -1,29 +1,46 @@
 package org.apache.axis2.description;
 
-import org.apache.axis2.AxisFault;
-import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.context.OperationContext;
-import org.apache.axis2.context.OperationContextFactory;
-import org.apache.axis2.context.ServiceContext;
-import org.apache.axis2.engine.AxisError;
+import org.apache.wsdl.*;
+import org.apache.wsdl.impl.WSDLOperationImpl;
 import org.apache.axis2.engine.MessageReceiver;
 import org.apache.axis2.engine.Phase;
 import org.apache.axis2.engine.SOAPProcessingModelChecker;
-import org.apache.axis2.i18n.Messages;
+import org.apache.axis2.engine.AxisError;
 import org.apache.axis2.phaseresolver.PhaseMetadata;
-import org.apache.axis2.phaseresolver.PhaseResolver;
-import org.apache.wsdl.WSDLConstants;
-import org.apache.wsdl.WSDLOperation;
-import org.apache.wsdl.impl.WSDLOperationImpl;
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.i18n.Messages;
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.context.OperationContext;
+import org.apache.axis2.context.ServiceContext;
+import org.apache.axis2.context.ConfigurationContext;
+import org.w3c.dom.Document;
 
 import javax.xml.namespace.QName;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-
-public class OperationDescription extends WSDLOperationImpl implements
+import java.util.*;
+/*
+* Copyright 2004,2005 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: Deepal Jayasinghe
+ * Date: Sep 30, 2005
+ * Time: 5:35:07 PM
+ */
+public abstract class OperationDescription  implements
         ParameterInclude, WSDLOperation, DescriptionConstants,
         WSDLConstants {
 
@@ -37,12 +54,15 @@
 
     private int mep = MEP_CONSTANT_INVALID;
 
+    private WSDLOperationImpl wsdlopeartion;
+
     private ServiceDescription parent;
 
     //To store deploytime module refs
     private ArrayList modulerefs;
 
-    public OperationDescription() {
+    public OperationDescription(WSDLOperation wsdlopeartion) {
+        this.wsdlopeartion = (WSDLOperationImpl)wsdlopeartion;
         this.setMessageExchangePattern(MEP_URI_IN_OUT);
         this.setComponentProperty(PARAMETER_KEY, new ParameterIncludeImpl());
         this.setComponentProperty(MODULEREF_KEY, new ArrayList());
@@ -64,42 +84,43 @@
         moduleConfigmap = new HashMap();
     }
 
+    public OperationDescription() {
+        this(new WSDLOperationImpl());
+    }
+
     public OperationDescription(QName name) {
         this();
         this.setName(name);
     }
 
+
     /**
      * To ebgage a module it is reuired to use this method
      *
      * @param moduleref
-     * @throws AxisFault
+     * @throws org.apache.axis2.AxisFault
      */
-    public void engageModule(ModuleDescription moduleref) throws AxisFault {
+    public final void engageModule(ModuleDescription moduleref) throws AxisFault {
         if (moduleref == null) {
             return;
         }
-        if (moduleref != null) {
-            Collection collectionModule = (Collection) this.getComponentProperty(
-                    MODULEREF_KEY);
-            for (Iterator iterator = collectionModule.iterator();
-                 iterator.hasNext();) {
-                ModuleDescription modu = (ModuleDescription) iterator.next();
-                if (modu.getName().equals(moduleref.getName())) {
-                    throw new AxisFault(moduleref.getName().getLocalPart() +
-                            " module has alredy engaged to the operation" +
-                            "  operation terminated !!!");
-                }
-
-            }
-        }
-        new PhaseResolver().engageModuleToOperation(this, moduleref);
         Collection collectionModule = (Collection) this.getComponentProperty(
                 MODULEREF_KEY);
+        for (Iterator iterator = collectionModule.iterator();
+             iterator.hasNext();) {
+            ModuleDescription modu = (ModuleDescription) iterator.next();
+            if (modu.getName().equals(moduleref.getName())) {
+                throw new AxisFault(moduleref.getName().getLocalPart() +
+                        " module has alredy engaged to the operation" +
+                        "  operation terminated !!!");
+            }
+
+        }
+        //    new PhaseResolver().engageModuleToOperation(this, moduleref);
         collectionModule.add(moduleref);
     }
 
-    public void addToEngageModuleList(ModuleDescription moduleName) {
+    public final void addToEngageModuleList(ModuleDescription moduleName) {
         Collection collectionModule = (Collection) this.getComponentProperty(
                 MODULEREF_KEY);
         for (Iterator iterator = collectionModule.iterator();
@@ -124,7 +145,6 @@
     /**
      * Method getEngadgedModules
      *
-     * @return
      */
     public Collection getModules() {
         return (Collection) this.getComponentProperty(MODULEREF_KEY);
@@ -152,7 +172,6 @@
      * Method getParameter
      *
      * @param name Name of the parameter
-     * @return
      */
     public Parameter getParameter(String name) {
         ParameterIncludeImpl paramInclude = (ParameterIncludeImpl) this
@@ -165,103 +184,6 @@
                 .getComponentProperty(PARAMETER_KEY);
         return  paramInclude.getParameters();
     }
-
-    /**
-     * This method is responsible for finding a MEPContext for an incomming
-     * messages. An incomming message can be of two states.
-     * <p/>
-     * 1)This is a new incomming message of a given MEP. 2)This message is a
-     * part of an MEP which has already begun.
-     * <p/>
-     * The method is special cased for the two MEPs
-     * <p/>
-     * #IN_ONLY #IN_OUT
-     * <p/>
-     * for two reasons. First reason is the wide usage and the second being that
-     * the need for the MEPContext to be saved for further incomming messages.
-     * <p/>
-     * In the event that MEP of this operation is different from the two MEPs
-     * deafulted above the decession of creating a new or this message relates
-     * to a MEP which already in business is decided by looking at the WSA
-     * Relates TO of the incomming message.
-     *
-     * @param msgContext
-     * @return
-     */
-    public OperationContext findOperationContext(MessageContext msgContext, ServiceContext serviceContext) throws AxisFault {
-        OperationContext operationContext = null;
-
-        if (null == msgContext.getRelatesTo()) {
-            //Its a new incomming message so get the factory to create a new
-            // one
-            operationContext =
-                    OperationContextFactory.createOperationContext(
-                            getAxisSpecifMEPConstant(),  this, serviceContext);
-
-        } else {
-            // So this message is part of an ongoing MEP
-            //			operationContext =
-            ConfigurationContext configContext = msgContext.getSystemContext();
-            operationContext =
-                    configContext.getOperationContext(
-                            msgContext.getRelatesTo().getValue());
-
-            if (null == operationContext) {
-                throw new AxisFault(Messages.getMessage("cannotCorrelateMsg",
-                        this.getName().toString(),msgContext.getRelatesTo().getValue()));
-            }
-
-        }
-
-        registerOperationContext(msgContext, operationContext);
-
-        return operationContext;
-
-    }
-
-    /**
-     * This will not create a new operation context if there is no one already.
-     * @param msgContext
-     * @return
-     * @throws AxisFault
-     */
-    public OperationContext findForExistingOperationContext(MessageContext msgContext) throws AxisFault {
-        OperationContext operationContext = null;
-
-        if((operationContext = msgContext.getOperationContext()) != null) {
-        	return operationContext;
-        }
-        
-        if (null == msgContext.getRelatesTo()) {
-            return null;
-        } else {
-            // So this message is part of an ongoing MEP
-            //			operationContext =
-            ConfigurationContext configContext = msgContext.getSystemContext();
-            operationContext = configContext.getOperationContext(msgContext.getRelatesTo().getValue());
-
-            if (null == operationContext) {
-                throw new AxisFault(Messages.getMessage("cannotCorrealteMsg",
-                        this.getName().toString(),msgContext.getRelatesTo().getValue()));
-            }
-
-        }
-
-
-        return operationContext;
-
-    }
-
-    public void registerOperationContext(MessageContext msgContext, OperationContext operationContext) throws AxisFault {
-        msgContext.getSystemContext().registerOperationContext(
-                msgContext.getMessageID(), operationContext);
-        operationContext.addMessageContext(msgContext);
-        msgContext.setOperationContext(operationContext);
-        if (operationContext.isComplete()) {
-            operationContext.cleanup();
-        }
-    }
-
     public MessageReceiver getMessageReceiver() {
         return messageReceiver;
     }
@@ -270,13 +192,11 @@
         this.messageReceiver = messageReceiver;
     }
 
-
     /**
      * This method will simply map the String URI of the Message exchange
      * pattern to a integer. Further in the first lookup it will cash the looked
      * up value so that the subsequent method calls will be extremely efficient.
      *
-     * @return
      */
     public int getAxisSpecifMEPConstant() {
         if (this.mep != MEP_CONSTANT_INVALID) {
@@ -313,30 +233,21 @@
     }
 
 
-    /**
-     * @return
-     */
     public ArrayList getPhasesInFaultFlow() {
         return phasesInFaultFlow;
     }
 
-    /**
-     * @return
-     */
+
     public ArrayList getPhasesOutFaultFlow() {
         return phasesOutFaultFlow;
     }
 
-    /**
-     * @return
-     */
+
     public ArrayList getPhasesOutFlow() {
         return phasesOutFlow;
     }
 
-    /**
-     * @return
-     */
+
     public ArrayList getRemainingPhasesInFlow() {
         return remainingPhasesInFlow;
     }
@@ -396,11 +307,7 @@
             return true;
         } else {
             Parameter parameter = getParameter(paramterName);
-            if(parameter != null && parameter.isLocked()){
-                return true;
-            } else {
-                return false;
-            }
+            return parameter != null && parameter.isLocked();
         }
     }
 
@@ -416,5 +323,251 @@
         return  (ModuleConfiguration)moduleConfigmap.get(moduleName);
     }
 
-}
 
+    /**
+     * To add a message Context into a operation context depending on MEPs this method has to
+     * be overided.
+     * Depending on the mep operation description know how to fill the message conetxt map
+     * in operationContext.
+     * As an exmple if the MEP is IN-OUT then depending on messagelbl operation description
+     * should know how to keep them in corret locations 
+     * @param msgContext <code>MessageContext</code>
+     * @param opContext  <code>OperationContext</code>
+     * @throws AxisFault <code>AxisFault</code>
+     */
+    public abstract void addMessageContext(MessageContext msgContext, OperationContext opContext)
+            throws AxisFault ;
+
+    public List getInfaults() {
+        return wsdlopeartion.getInfaults();
+    }
+
+    public void setInfaults(List infaults) {
+        wsdlopeartion.setInfaults(infaults);
+    }
+
+    public MessageReference getInputMessage() {
+        return wsdlopeartion.getInputMessage();
+    }
+
+    public void setInputMessage(MessageReference inputMessage) {
+        wsdlopeartion.setInputMessage(inputMessage);
+    }
+
+    public String getMessageExchangePattern() {
+        return wsdlopeartion.getMessageExchangePattern();
+    }
+
+    public void setMessageExchangePattern(String messageExchangePattern) {
+        wsdlopeartion.setMessageExchangePattern(messageExchangePattern);
+    }
+
+    public QName getName() {
+        return wsdlopeartion.getName();
+    }
+
+    public void setName(QName name) {
+        wsdlopeartion.setName(name);
+    }
+
+    public List getOutfaults() {
+        return wsdlopeartion.getOutfaults();
+    }
+
+    public void setOutfaults(List outfaults) {
+        wsdlopeartion.setOutfaults(outfaults);
+    }
+
+    public MessageReference getOutputMessage() {
+        return wsdlopeartion.getOutputMessage();
+    }
+
+    public void setOutputMessage(MessageReference outputMessage) {
+        wsdlopeartion.setOutputMessage(outputMessage);
+    }
+
+    public boolean isSafe() {
+        return wsdlopeartion.isSafe();
+    }
+
+    public void setSafety(boolean safe) {
+        wsdlopeartion.setSafety(safe);
+    }
+
+    public String getStyle() {
+        return wsdlopeartion.getStyle();
+    }
+
+    public void setStyle(String style) {
+        wsdlopeartion.setStyle(style);
+    }
+
+    public String getTargetnamespace() {
+        return wsdlopeartion.getTargetnamespace();
+    }
+
+    public void addInFault(WSDLFaultReference inFault) {
+        wsdlopeartion.addInFault(inFault);
+    }
+
+    public void addOutFault(WSDLFaultReference outFault) {
+        wsdlopeartion.addOutFault(outFault);
+    }
+
+    public void addFeature(WSDLFeature feature) {
+        wsdlopeartion.addFeature(feature);
+    }
+
+    public List getFeatures() {
+        return wsdlopeartion.getFeatures();
+    }
+
+    public void addProperty(WSDLProperty wsdlProperty) {
+        wsdlopeartion.addProperty(wsdlProperty);
+    }
+
+    public List getProperties() {
+        return wsdlopeartion.getProperties();
+    }
+
+    public Document getDocumentation() {
+        return wsdlopeartion.getDocumentation();
+    }
+
+    public void setDocumentation(Document documentation) {
+        wsdlopeartion.setDocumentation(documentation);
+    }
+
+    public HashMap getComponentProperties() {
+        return wsdlopeartion.getComponentProperties();
+    }
+
+    public void setComponentProperties(HashMap properties) {
+        wsdlopeartion.setComponentProperties(properties);
+    }
+
+    public void setComponentProperty(Object key, Object obj) {
+        wsdlopeartion.setComponentProperty(key, obj);
+    }
+
+    public Object getComponentProperty(Object key) {
+        return wsdlopeartion.getComponentProperty(key);
+    }
+
+    public void addExtensibilityElement(WSDLExtensibilityElement element) {
+        wsdlopeartion.addExtensibilityElement(element);
+    }
+
+    public List getExtensibilityElements() {
+        return wsdlopeartion.getExtensibilityElements();
+    }
+
+    public void addExtensibleAttributes(WSDLExtensibilityAttribute attribute) {
+        wsdlopeartion.addExtensibleAttributes(attribute);
+    }
+
+    public List getExtensibilityAttributes() {
+        return wsdlopeartion.getExtensibilityAttributes();
+    }
+
+    public Map getMetadataBag() {
+        return wsdlopeartion.getMetadataBag();
+    }
+
+    public void setMetadataBag(Map meMap){
+         wsdlopeartion.setMetadataBag(meMap);
+    }
+
+
+    /**
+     * This method is responsible for finding a MEPContext for an incomming
+     * messages. An incomming message can be of two states.
+     * <p/>
+     * 1)This is a new incomming message of a given MEP. 2)This message is a
+     * part of an MEP which has already begun.
+     * <p/>
+     * The method is special cased for the two MEPs
+     * <p/>
+     * #IN_ONLY #IN_OUT
+     * <p/>
+     * for two reasons. First reason is the wide usage and the second being that
+     * the need for the MEPContext to be saved for further incomming messages.
+     * <p/>
+     * In the event that MEP of this operation is different from the two MEPs
+     * deafulted above the decession of creating a new or this message relates
+     * to a MEP which already in business is decided by looking at the WSA
+     * Relates TO of the incomming message.
+     *
+     * @param msgContext
+     */
+    public OperationContext findOperationContext(MessageContext msgContext, ServiceContext serviceContext) throws AxisFault {
+        OperationContext operationContext ;
+
+        if (null == msgContext.getRelatesTo()) {
+            //Its a new incomming message so get the factory to create a new
+            // one
+           operationContext =  new OperationContext(this,serviceContext);
+        } else {
+            // So this message is part of an ongoing MEP
+            //			operationContext =
+            ConfigurationContext configContext = msgContext.getSystemContext();
+            operationContext =
+                    configContext.getOperationContext( msgContext.getRelatesTo().getValue());
+
+            if (null == operationContext) {
+                throw new AxisFault(Messages.getMessage("cannotCorrelateMsg",
+                        this.getName().toString(),msgContext.getRelatesTo().getValue()));
+            }
+
+        }
+
+        registerOperationContext(msgContext, operationContext);
+
+        return operationContext;
+
+    }
+
+    /**
+     * This will not create a new operation context if there is no one already.
+     * @param msgContext
+     * @return
+     * @throws AxisFault
+     */
+    public OperationContext findForExistingOperationContext(MessageContext msgContext) throws AxisFault {
+        OperationContext operationContext = null;
+
+        if((operationContext = msgContext.getOperationContext()) != null) {
+        	return operationContext;
+        }
+
+        if (null == msgContext.getRelatesTo()) {
+            return null;
+        } else {
+            // So this message is part of an ongoing MEP
+            //			operationContext =
+            ConfigurationContext configContext = msgContext.getSystemContext();
+            operationContext = configContext.getOperationContext(msgContext.getRelatesTo().getValue());
+
+            if (null == operationContext) {
+                throw new AxisFault(Messages.getMessage("cannotCorrealteMsg",
+                        this.getName().toString(),msgContext.getRelatesTo().getValue()));
+            }
+
+        }
+
+
+        return operationContext;
+
+    }
+
+    public void registerOperationContext(MessageContext msgContext, OperationContext operationContext) throws AxisFault {
+        msgContext.getSystemContext().registerOperationContext(
+                msgContext.getMessageID(), operationContext);
+        operationContext.addMessageContext(msgContext);
+        msgContext.setOperationContext(operationContext);
+        if (operationContext.isComplete()) {
+            operationContext.cleanup();
+        }
+    }
+
+}

Added: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/OperationDescriptionFactory.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/OperationDescriptionFactory.java?rev=293594&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/OperationDescriptionFactory.java (added)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/OperationDescriptionFactory.java Tue Oct  4 05:45:03 2005
@@ -0,0 +1,98 @@
+package org.apache.axis2.description;
+
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.i18n.Messages;
+import org.apache.wsdl.WSDLConstants;
+/*
+* Copyright 2004,2005 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: Deepal Jayasinghe
+ * Date: Oct 1, 2005
+ * Time: 6:41:39 PM
+ */
+public class OperationDescriptionFactory implements WSDLConstants {
+
+    public static OperationDescription getOperetionDescription(int mepURI) throws AxisFault {
+        OperationDescription abOpdesc ;
+        switch(mepURI){
+            case MEP_CONSTANT_IN_ONLY : {
+                abOpdesc = new InOnlyOperationDescription();
+                break;
+            }
+            case MEP_CONSTANT_OUT_ONLY : {
+                abOpdesc = new OutOnlyOperationDescription();
+                break;
+            }
+            case MEP_CONSTANT_IN_OUT : {
+                abOpdesc = new InOutOperationDescrition();
+                break;
+            }
+            case MEP_CONSTANT_IN_OPTIONAL_OUT : {
+                abOpdesc = new InOutOperationDescrition();
+                break;
+            }
+            case MEP_CONSTANT_ROBUST_IN_ONLY : {
+                abOpdesc = new InOutOperationDescrition();
+                break;
+            }
+            case MEP_CONSTANT_OUT_IN : {
+                abOpdesc = new OutInOperationDescription();
+                break;
+            }
+            case MEP_CONSTANT_OUT_OPTIONAL_IN : {
+                abOpdesc = new OutInOperationDescription();
+                break;
+            }
+            case MEP_CONSTANT_ROBUST_OUT_ONLY : {
+                abOpdesc = new OutInOperationDescription();
+                break;
+            }
+            default : {
+                throw new AxisFault(Messages.getMessage("unSupportedMEP","ID is "+ mepURI));
+            }
+        }
+        return abOpdesc;
+    }
+
+
+
+    public static OperationDescription getOperetionDescription(String mepURI) throws AxisFault {
+        OperationDescription abOpdesc ;
+        if(MEP_URI_IN_ONLY.equals(mepURI)){
+            abOpdesc = new InOnlyOperationDescription();
+        } else if (MEP_URI_OUT_ONLY.equals(mepURI)) {
+            abOpdesc = new OutOnlyOperationDescription();
+        } else if (MEP_URI_IN_OUT.equals(mepURI)) {
+            abOpdesc = new InOutOperationDescrition();
+        }else if(MEP_URI_IN_OPTIONAL_OUT.equals(mepURI)){
+            abOpdesc = new InOutOperationDescrition();
+        } else if(MEP_URI_IN_ONLY.equals(mepURI)) {
+            abOpdesc = new InOutOperationDescrition();
+        } else if(MEP_URI_OUT_IN.equals(mepURI)) {
+            abOpdesc = new OutInOperationDescription();
+        } else if (MEP_URI_OUT_OPTIONAL_IN.equals(mepURI)) {
+            abOpdesc = new OutInOperationDescription();
+        } else if (MEP_URI_ROBUST_OUT_ONLY.equals(mepURI) ) {
+            abOpdesc = new OutInOperationDescription();
+        }  else  {
+            throw new AxisFault(Messages.getMessage("unSupportedMEP","ID is "+ mepURI));
+        }
+        return abOpdesc;
+    }
+}

Added: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/OutInOperationDescription.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/OutInOperationDescription.java?rev=293594&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/OutInOperationDescription.java (added)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/OutInOperationDescription.java Tue Oct  4 05:45:03 2005
@@ -0,0 +1,61 @@
+package org.apache.axis2.description;
+
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.context.OperationContext;
+import org.apache.axis2.AxisFault;
+import org.apache.wsdl.WSDLOperation;
+
+import javax.xml.namespace.QName;
+import java.util.HashMap;
+/*
+* Copyright 2004,2005 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: Deepal Jayasinghe
+ * Date: Oct 3, 2005
+ * Time: 6:01:33 PM
+ */
+public class OutInOperationDescription extends OperationDescription {
+
+    public OutInOperationDescription(WSDLOperation wsdlopeartion) {
+        super(wsdlopeartion);
+    }
+
+    public OutInOperationDescription() {
+        super();
+    }
+
+    public OutInOperationDescription(QName name) {
+        super(name);    
+    }
+
+    public void addMessageContext(MessageContext msgContext, OperationContext opContext) throws AxisFault {
+        HashMap mep = opContext.getMessageContexts();
+        MessageContext immsgContext =  (MessageContext)mep.get(MESSAGE_LABEL_IN_VALUE);
+        MessageContext outmsgContext =  (MessageContext)mep.get(MESSAGE_LABEL_OUT_VALUE);
+        if (immsgContext !=null && outmsgContext !=null){
+            throw new AxisFault("Invalid messge addition , operation context completed") ;
+        }
+        if(outmsgContext == null){
+            mep.put(MESSAGE_LABEL_OUT_VALUE,msgContext);
+        }  else{
+            mep.put(MESSAGE_LABEL_IN_VALUE,msgContext);
+            opContext.setComplete(true);
+        }
+    }
+}

Added: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/OutOnlyOperationDescription.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/OutOnlyOperationDescription.java?rev=293594&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/OutOnlyOperationDescription.java (added)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/OutOnlyOperationDescription.java Tue Oct  4 05:45:03 2005
@@ -0,0 +1,55 @@
+package org.apache.axis2.description;
+
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.context.OperationContext;
+import org.apache.axis2.AxisFault;
+import org.apache.wsdl.WSDLOperation;
+
+import javax.xml.namespace.QName;
+/*
+* Copyright 2004,2005 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: Deepal Jayasinghe
+ * Date: Oct 3, 2005
+ * Time: 6:04:11 PM
+ */
+public class OutOnlyOperationDescription extends OperationDescription {
+
+    public OutOnlyOperationDescription(WSDLOperation wsdlopeartion) {
+        super(wsdlopeartion);
+    }
+
+    public OutOnlyOperationDescription() {
+        super();
+    }
+
+    public OutOnlyOperationDescription(QName name) {
+        super(name);  
+    }
+
+    public void addMessageContext(MessageContext msgContext, OperationContext opContext)
+            throws AxisFault {
+        if(!opContext.isComplete()){
+            opContext.getMessageContexts().put(MESSAGE_LABEL_OUT_VALUE,msgContext);
+            opContext.setComplete(true);
+        } else {
+            throw new AxisFault("Invalid messge addition , operation context completed") ;
+        }
+    }
+}

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/ServiceDescription.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/ServiceDescription.java?rev=293594&r1=293593&r2=293594&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/ServiceDescription.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/ServiceDescription.java Tue Oct  4 05:45:03 2005
@@ -92,7 +92,7 @@
         this.setComponentProperty(MODULEREF_KEY, new ArrayList());
         this.setComponentProperty(PARAMETER_KEY, new ParameterIncludeImpl());
         this.setServiceInterface(new WSDLInterfaceImpl());
-         moduleConfigmap = new HashMap();
+        moduleConfigmap = new HashMap();
     }
 
     public ServiceDescription() {
@@ -101,7 +101,7 @@
         this.setComponentProperty(MODULEREF_KEY, new ArrayList());
         this.setComponentProperty(PARAMETER_KEY, new ParameterIncludeImpl());
         this.setServiceInterface(new WSDLInterfaceImpl());
-         moduleConfigmap = new HashMap();
+        moduleConfigmap = new HashMap();
     }
 
     /**
@@ -219,6 +219,16 @@
                     operationName.getLocalPart());
         }
         return opeartion;
+    }
+
+    /**
+     * To get the WSDL opeartion element in servic einterface
+     * @param operationName  <code>QName</cde>
+     * @return  WSDLOperation <code>WSDLOperation</code>
+     */
+    public WSDLOperation getWSDLOPOperation(QName operationName){
+        String opStr = operationName.getLocalPart();
+        return this.getServiceInterface().getOperation(opStr) ;
     }
 
     /*

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/util/Utils.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/util/Utils.java?rev=293594&r1=293593&r2=293594&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/util/Utils.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/util/Utils.java Tue Oct  4 05:45:03 2005
@@ -25,14 +25,7 @@
 import org.apache.axis2.context.OperationContextFactory;
 import org.apache.axis2.context.ServiceContext;
 import org.apache.axis2.context.ServiceGroupContext;
-import org.apache.axis2.description.Flow;
-import org.apache.axis2.description.HandlerDescription;
-import org.apache.axis2.description.OperationDescription;
-import org.apache.axis2.description.Parameter;
-import org.apache.axis2.description.ParameterImpl;
-import org.apache.axis2.description.PhaseRule;
-import org.apache.axis2.description.ServiceDescription;
-import org.apache.axis2.description.ServiceGroupDescription;
+import org.apache.axis2.description.*;
 import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.engine.Handler;
 import org.apache.axis2.engine.MessageReceiver;
@@ -100,7 +93,8 @@
                 new ParameterImpl(AbstractMessageReceiver.SERVICE_CLASS,
                         className));
 
-        OperationDescription axisOp = new OperationDescription(opName);
+        //todo I assumed in-out mep , this has to be imroved : Deepal
+        OperationDescription axisOp = new InOutOperationDescrition(opName);
         axisOp.setMessageReceiver(messageReceiver);
         axisOp.setStyle(WSDLService.STYLE_RPC);
         service.addOperation(axisOp);

Modified: webservices/axis2/trunk/java/modules/core/test-resources/deployment/module1/META-INF/module.xml
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/test-resources/deployment/module1/META-INF/module.xml?rev=293594&r1=293593&r2=293594&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/test-resources/deployment/module1/META-INF/module.xml (original)
+++ webservices/axis2/trunk/java/modules/core/test-resources/deployment/module1/META-INF/module.xml Tue Oct  4 05:45:03 2005
@@ -26,7 +26,7 @@
         </handler>
     </INfaultflow>
 
-    <operation name="creatSeq" mep="MEP_URI_IN_OUT">
+    <operation name="creatSeq" mep="http://www.w3.org/2004/08/wsdl/in-out">
         <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
         <parameter name="para1" locked="xsd:true">10</parameter>
     </operation>

Modified: webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/context/ContextHierarchyTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/context/ContextHierarchyTest.java?rev=293594&r1=293593&r2=293594&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/context/ContextHierarchyTest.java (original)
+++ webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/context/ContextHierarchyTest.java Tue Oct  4 05:45:03 2005
@@ -21,6 +21,7 @@
 import org.apache.axis2.description.OperationDescription;
 import org.apache.axis2.description.ParameterImpl;
 import org.apache.axis2.description.ServiceDescription;
+import org.apache.axis2.description.InOutOperationDescrition;
 import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.engine.AxisConfigurationImpl;
 
@@ -36,7 +37,7 @@
     }
 
     protected void setUp() throws Exception {
-        operationDescription = new OperationDescription(new QName("Temp"));
+        operationDescription = new InOutOperationDescrition(new QName("Temp"));
         serviceDescription = new ServiceDescription(new QName("Temp"));
         axisConfiguration = new AxisConfigurationImpl();
         serviceDescription.addOperation(operationDescription);

Modified: webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/context/ContextSerailzationWithEngine.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/context/ContextSerailzationWithEngine.java?rev=293594&r1=293593&r2=293594&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/context/ContextSerailzationWithEngine.java (original)
+++ webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/context/ContextSerailzationWithEngine.java Tue Oct  4 05:45:03 2005
@@ -116,8 +116,8 @@
             OperationContext operationContext1 = newConfigContext.getOperationContext(MSG1_ID);
             assertNotNull(operationContext1);
 
-            assertNotNull(operationContext1.getMessageContext(WSDLConstants.MESSAGE_LABEL_IN));
-            assertNotNull(operationContext1.getMessageContext(WSDLConstants.MESSAGE_LABEL_OUT));
+            assertNotNull(operationContext1.getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE));
+            assertNotNull(operationContext1.getMessageContext(WSDLConstants.MESSAGE_LABEL_OUT_VALUE));
 
 
             //Assertions to check weather description hierarchy is set correctly.

Modified: webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/context/ContextSerializationTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/context/ContextSerializationTest.java?rev=293594&r1=293593&r2=293594&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/context/ContextSerializationTest.java (original)
+++ webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/context/ContextSerializationTest.java Tue Oct  4 05:45:03 2005
@@ -22,6 +22,7 @@
 import org.apache.axis2.description.OperationDescription;
 import org.apache.axis2.description.ServiceDescription;
 import org.apache.axis2.description.ServiceGroupDescription;
+import org.apache.axis2.description.InOutOperationDescrition;
 import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.engine.AxisConfigurationImpl;
 import org.apache.wsdl.WSDLConstants;
@@ -63,7 +64,7 @@
 		serviceGroupDescription = new ServiceGroupDescription (axisConfiguration);
 		serviceGroupDescription.setServiceGroupName(SERVICE_GROUP_NAME);
 		serviceDescription = new ServiceDescription (serviceDescQName);
-		operationDescription = new OperationDescription (operationDescName);
+		operationDescription = new InOutOperationDescrition (operationDescName);
 		
 		//Creating links
 		axisConfiguration.addServiceGroup(serviceGroupDescription);
@@ -157,8 +158,8 @@
 		OperationContext operationContext1 = configurationContext.getOperationContext(MSG1_ID);
 		assertNotNull(operationContext1);
 		
-		assertNotNull(operationContext1.getMessageContext(WSDLConstants.MESSAGE_LABEL_IN));
-		assertNotNull(operationContext1.getMessageContext(WSDLConstants.MESSAGE_LABEL_OUT));
+		assertNotNull(operationContext1.getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE));
+		assertNotNull(operationContext1.getMessageContext(WSDLConstants.MESSAGE_LABEL_OUT_VALUE));
 		
 		
 		//Assertions to check weather description hierarchy is set correctly.

Modified: webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/context/OperationContextTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/context/OperationContextTest.java?rev=293594&r1=293593&r2=293594&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/context/OperationContextTest.java (original)
+++ webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/context/OperationContextTest.java Tue Oct  4 05:45:03 2005
@@ -19,10 +19,7 @@
 import org.apache.axis2.AbstractTestCase;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.addressing.miheaders.RelatesTo;
-import org.apache.axis2.description.OperationDescription;
-import org.apache.axis2.description.ServiceDescription;
-import org.apache.axis2.description.TransportInDescription;
-import org.apache.axis2.description.TransportOutDescription;
+import org.apache.axis2.description.*;
 import org.apache.axis2.engine.AxisConfigurationImpl;
 import org.apache.axis2.util.UUIDGenerator;
 
@@ -47,7 +44,7 @@
 
         messageContext1.setMessageID(
                 UUIDGenerator.getUUID());
-        OperationDescription axisOperation = new OperationDescription(
+        OperationDescription axisOperation = new InOutOperationDescrition(
                 new QName("test"));
         OperationContext operationContext1 = axisOperation.findOperationContext(
                 messageContext1, sessionContext);

Modified: webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/description/RegistryTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/description/RegistryTest.java?rev=293594&r1=293593&r2=293594&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/description/RegistryTest.java (original)
+++ webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/description/RegistryTest.java Tue Oct  4 05:45:03 2005
@@ -77,7 +77,7 @@
     }
 
     public void testOpeartion() throws AxisFault {
-        OperationDescription op = new OperationDescription(new QName("op"));
+        OperationDescription op = new InOutOperationDescrition(new QName("op"));
         op.setParent(service);
         testParameteInClude(op);
     }

Modified: webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/engine/EnginePausingTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/engine/EnginePausingTest.java?rev=293594&r1=293593&r2=293594&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/engine/EnginePausingTest.java (original)
+++ webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/engine/EnginePausingTest.java Tue Oct  4 05:45:03 2005
@@ -21,11 +21,7 @@
 import org.apache.axis2.addressing.EndpointReference;
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.description.HandlerDescription;
-import org.apache.axis2.description.OperationDescription;
-import org.apache.axis2.description.ServiceDescription;
-import org.apache.axis2.description.TransportInDescription;
-import org.apache.axis2.description.TransportOutDescription;
+import org.apache.axis2.description.*;
 import org.apache.axis2.handlers.AbstractHandler;
 import org.apache.axis2.om.OMAbstractFactory;
 import org.apache.axis2.soap.SOAPFactory;
@@ -64,7 +60,7 @@
         service.setStyle(WSDLService.STYLE_DOC);
         engineContext.getAxisConfiguration().addService(service);
 
-        OperationDescription axisOp = new OperationDescription(operationName);
+        OperationDescription axisOp = new InOutOperationDescrition(operationName);
         axisOp.setMessageReceiver(new MessageReceiver() {
             public void receive(MessageContext messgeCtx) throws AxisFault {
 

Modified: webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/engine/EngineWithoutPhaseResolvingTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/engine/EngineWithoutPhaseResolvingTest.java?rev=293594&r1=293593&r2=293594&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/engine/EngineWithoutPhaseResolvingTest.java (original)
+++ webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/engine/EngineWithoutPhaseResolvingTest.java Tue Oct  4 05:45:03 2005
@@ -21,10 +21,7 @@
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.context.OperationContextFactory;
-import org.apache.axis2.description.OperationDescription;
-import org.apache.axis2.description.ServiceDescription;
-import org.apache.axis2.description.TransportInDescription;
-import org.apache.axis2.description.TransportOutDescription;
+import org.apache.axis2.description.*;
 import org.apache.axis2.om.OMAbstractFactory;
 import org.apache.axis2.soap.SOAPFactory;
 import org.apache.axis2.transport.http.CommonsHTTPTransportSender;
@@ -62,7 +59,7 @@
 
         TransportInDescription transportIn = new TransportInDescription(
                 new QName("null"));
-        axisOp = new OperationDescription(opearationName);
+        axisOp = new InOutOperationDescrition(opearationName);
 
         service = new ServiceDescription(serviceName);
         axisOp.setMessageReceiver(new MessageReceiver() {

Modified: webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/engine/ParamterAddTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/engine/ParamterAddTest.java?rev=293594&r1=293593&r2=293594&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/engine/ParamterAddTest.java (original)
+++ webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/engine/ParamterAddTest.java Tue Oct  4 05:45:03 2005
@@ -18,11 +18,7 @@
 
 import junit.framework.TestCase;
 import org.apache.axis2.AxisFault;
-import org.apache.axis2.description.ModuleDescription;
-import org.apache.axis2.description.OperationDescription;
-import org.apache.axis2.description.Parameter;
-import org.apache.axis2.description.ParameterImpl;
-import org.apache.axis2.description.ServiceDescription;
+import org.apache.axis2.description.*;
 
 import javax.xml.namespace.QName;
 /**
@@ -76,7 +72,7 @@
             ServiceDescription service = new ServiceDescription(new QName("Service1"));
             reg.addService(service);
 
-            OperationDescription opertion = new OperationDescription();
+            OperationDescription opertion = new InOutOperationDescrition();
             opertion.setParent(service);
             opertion.addParameter(para);
             fail("This should fails with Parmter is locked can not overide");
@@ -98,7 +94,7 @@
             reg.addService(service);
             service.addParameter(para);
 
-            OperationDescription opertion = new OperationDescription();
+            OperationDescription opertion = new InOutOperationDescrition();
             opertion.setParent(service);
             opertion.addParameter(para);
             fail("This should fails with Parmter is locked can not overide");

Modified: webservices/axis2/trunk/java/modules/integration/src/org/apache/axis2/interop/whitemesa/round1/Round1Client.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/integration/src/org/apache/axis2/interop/whitemesa/round1/Round1Client.java?rev=293594&r1=293593&r2=293594&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/integration/src/org/apache/axis2/interop/whitemesa/round1/Round1Client.java (original)
+++ webservices/axis2/trunk/java/modules/integration/src/org/apache/axis2/interop/whitemesa/round1/Round1Client.java Tue Oct  4 05:45:03 2005
@@ -23,6 +23,7 @@
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.description.OperationDescription;
+import org.apache.axis2.description.OutInOperationDescription;
 import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.engine.AxisConfigurationImpl;
 import org.apache.axis2.interop.whitemesa.round1.util.Round1ClientUtil;
@@ -59,7 +60,7 @@
 
 
         QName opName = new QName("");
-        OperationDescription opDesc = new OperationDescription(opName);
+        OperationDescription opDesc = new OutInOperationDescription(opName);
         MessageContext retMsgCtx = call.invokeBlocking(opDesc, msgCtx);
         //SOAPEnvelope responseEnvelop = replyContext.getEnvelope();
         retEnv = retMsgCtx.getEnvelope();

Modified: webservices/axis2/trunk/java/modules/integration/src/org/apache/axis2/interop/whitemesa/round2/SunRound2Client.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/integration/src/org/apache/axis2/interop/whitemesa/round2/SunRound2Client.java?rev=293594&r1=293593&r2=293594&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/integration/src/org/apache/axis2/interop/whitemesa/round2/SunRound2Client.java (original)
+++ webservices/axis2/trunk/java/modules/integration/src/org/apache/axis2/interop/whitemesa/round2/SunRound2Client.java Tue Oct  4 05:45:03 2005
@@ -23,6 +23,7 @@
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.description.OperationDescription;
+import org.apache.axis2.description.OutInOperationDescription;
 import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.engine.AxisConfigurationImpl;
 import org.apache.axis2.interop.whitemesa.round2.util.SunRound2ClientUtil;
@@ -48,7 +49,7 @@
             AxisConfiguration axisConfig = new AxisConfigurationImpl();
             ConfigurationContext configCtx = new ConfigurationContext(axisConfig);
             MessageContext msgCtx = new MessageContext(configCtx);
-            OperationDescription opDesc = new OperationDescription(new QName(""));
+            OperationDescription opDesc = new OutInOperationDescription(new QName(""));
             SOAPEnvelope requestEnvilope = util.getEchoSoapEnvelope();
             msgCtx.setEnvelope(requestEnvilope);
             MessageContext responseMCtx = call.invokeBlocking(opDesc, msgCtx);

Modified: webservices/axis2/trunk/java/modules/integration/src/org/apache/axis2/interop/whitemesa/round3/SunRound3Client.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/integration/src/org/apache/axis2/interop/whitemesa/round3/SunRound3Client.java?rev=293594&r1=293593&r2=293594&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/integration/src/org/apache/axis2/interop/whitemesa/round3/SunRound3Client.java (original)
+++ webservices/axis2/trunk/java/modules/integration/src/org/apache/axis2/interop/whitemesa/round3/SunRound3Client.java Tue Oct  4 05:45:03 2005
@@ -23,6 +23,7 @@
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.description.OperationDescription;
+import org.apache.axis2.description.OutInOperationDescription;
 import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.engine.AxisConfigurationImpl;
 import org.apache.axis2.interop.whitemesa.round3.util.SunRound3ClientUtil;
@@ -50,7 +51,7 @@
             ConfigurationContext configCtx = new ConfigurationContext(axisConfig);
             MessageContext msgCtx = new MessageContext(configCtx);
 
-            OperationDescription opDesc = new OperationDescription(new QName(""));
+            OperationDescription opDesc = new OutInOperationDescription(new QName(""));
             SOAPEnvelope requestEnvilope = util.getEchoSoapEnvelope();
             msgCtx.setEnvelope(requestEnvilope);
             MessageContext resMsgCtx = call.invokeBlocking(opDesc, msgCtx);