You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fx-dev@ws.apache.org by ch...@apache.org on 2005/10/25 08:03:37 UTC

svn commit: r328267 [1/2] - in /webservices/sandesha/trunk/src/org/apache/sandesha2: ./ handlers/ msgprocessors/ storage/beanmanagers/ util/ workers/ wsrm/

Author: chamikara
Date: Mon Oct 24 23:01:50 2005
New Revision: 328267

URL: http://svn.apache.org/viewcvs?rev=328267&view=rev
Log:
Refactored source classes.

Added:
    webservices/sandesha/trunk/src/org/apache/sandesha2/util/FaultMgr.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/util/MsgInitializer.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/util/MsgValidator.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/util/RMMsgCreator.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/util/SOAPAbstractFactory.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/util/SequenceManager.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/workers/
    webservices/sandesha/trunk/src/org/apache/sandesha2/workers/InOrderInvoker.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/workers/Sender.java
Removed:
    webservices/sandesha/trunk/src/org/apache/sandesha2/FaultMgr.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/InOrderInvoker.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/MsgInitializer.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/MsgValidator.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/RMMsgCreator.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/SOAPAbstractFactory.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/Sender.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/SequenceMenager.java
Modified:
    webservices/sandesha/trunk/src/org/apache/sandesha2/RMMsgContext.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaInHandler.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaOutHandler.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqResponseMsgProcessor.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/storage/beanmanagers/RetransmitterBeanMgr.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaUtil.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/Accept.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/AckRequested.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/AcknowledgementRange.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/AcksTo.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/Address.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/CreateSequence.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/CreateSequenceResponse.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/Expires.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/FaultCode.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/Identifier.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/LastMessage.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/MessageNumber.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/Nack.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/Sequence.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/SequenceAcknowledgement.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/SequenceFault.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/SequenceOffer.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/TerminateSequence.java

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/RMMsgContext.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/RMMsgContext.java?rev=328267&r1=328266&r2=328267&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/RMMsgContext.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/RMMsgContext.java Mon Oct 24 23:01:50 2005
@@ -30,6 +30,7 @@
 import org.apache.axis2.context.AbstractContext;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.soap.SOAPEnvelope;
+import org.apache.sandesha2.util.SOAPAbstractFactory;
 import org.apache.sandesha2.util.SandeshaUtil;
 import org.apache.sandesha2.wsrm.CreateSequence;
 import org.apache.sandesha2.wsrm.IOMRMElement;

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaInHandler.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaInHandler.java?rev=328267&r1=328266&r2=328267&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaInHandler.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaInHandler.java Mon Oct 24 23:01:50 2005
@@ -31,13 +31,13 @@
 import org.apache.axis2.handlers.AbstractHandler;
 import org.apache.axis2.soap.SOAPEnvelope;
 import org.apache.sandesha2.Constants;
-import org.apache.sandesha2.MsgInitializer;
-import org.apache.sandesha2.MsgValidator;
 import org.apache.sandesha2.SandeshaException;
 import org.apache.sandesha2.RMMsgContext;
 import org.apache.sandesha2.msgprocessors.MsgProcessor;
 import org.apache.sandesha2.msgprocessors.MsgProcessorFactory;
 import org.apache.sandesha2.storage.beanmanagers.SequencePropertyBeanMgr;
+import org.apache.sandesha2.util.MsgInitializer;
+import org.apache.sandesha2.util.MsgValidator;
 import org.apache.sandesha2.util.SandeshaUtil;
 
 /**

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaOutHandler.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaOutHandler.java?rev=328267&r1=328266&r2=328267&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaOutHandler.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaOutHandler.java Mon Oct 24 23:01:50 2005
@@ -30,12 +30,8 @@
 import org.apache.axis2.soap.SOAPEnvelope;
 import org.apache.axis2.util.UUIDGenerator;
 import org.apache.sandesha2.Constants;
-import org.apache.sandesha2.MsgInitializer;
-import org.apache.sandesha2.SOAPAbstractFactory;
 import org.apache.sandesha2.SandeshaException;
 import org.apache.sandesha2.RMMsgContext;
-import org.apache.sandesha2.RMMsgCreator;
-import org.apache.sandesha2.SequenceMenager;
 import org.apache.sandesha2.storage.AbstractBeanMgrFactory;
 import org.apache.sandesha2.storage.beanmanagers.CreateSeqBeanMgr;
 import org.apache.sandesha2.storage.beanmanagers.RetransmitterBeanMgr;
@@ -43,7 +39,11 @@
 import org.apache.sandesha2.storage.beans.CreateSeqBean;
 import org.apache.sandesha2.storage.beans.RetransmitterBean;
 import org.apache.sandesha2.storage.beans.SequencePropertyBean;
+import org.apache.sandesha2.util.MsgInitializer;
+import org.apache.sandesha2.util.RMMsgCreator;
+import org.apache.sandesha2.util.SOAPAbstractFactory;
 import org.apache.sandesha2.util.SandeshaUtil;
+import org.apache.sandesha2.util.SequenceManager;
 import org.apache.sandesha2.wsrm.CreateSequence;
 import org.apache.sandesha2.wsrm.Identifier;
 import org.apache.sandesha2.wsrm.LastMessage;
@@ -163,7 +163,7 @@
 		//if fist message - setup the sequence for the client side
 		if (!serverSide && sendCreateSequence) {
 			try {
-				SequenceMenager.setUpNewClientSequence(msgCtx, tempSequenceId);
+				SequenceManager.setupNewClientSequence(msgCtx, tempSequenceId);
 			} catch (SandeshaException e1) {
 				throw new AxisFault(e1.getMessage());
 			}

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java?rev=328267&r1=328266&r2=328267&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java Mon Oct 24 23:01:50 2005
@@ -34,7 +34,6 @@
 import org.apache.axis2.soap.SOAPEnvelope;
 import org.apache.sandesha2.Constants;
 import org.apache.sandesha2.RMMsgContext;
-import org.apache.sandesha2.RMMsgCreator;
 import org.apache.sandesha2.SandeshaException;
 import org.apache.sandesha2.handlers.SandeshaOutHandler;
 import org.apache.sandesha2.storage.AbstractBeanMgrFactory;
@@ -42,6 +41,7 @@
 import org.apache.sandesha2.storage.beanmanagers.SequencePropertyBeanMgr;
 import org.apache.sandesha2.storage.beans.RetransmitterBean;
 import org.apache.sandesha2.storage.beans.SequencePropertyBean;
+import org.apache.sandesha2.util.RMMsgCreator;
 import org.apache.sandesha2.util.SandeshaUtil;
 import org.apache.sandesha2.wsrm.AcknowledgementRange;
 import org.apache.sandesha2.wsrm.LastMessage;

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java?rev=328267&r1=328266&r2=328267&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java Mon Oct 24 23:01:50 2005
@@ -34,12 +34,7 @@
 import org.apache.axis2.engine.AxisEngine;
 import org.apache.axis2.soap.SOAPEnvelope;
 import org.apache.sandesha2.Constants;
-import org.apache.sandesha2.InOrderInvoker;
-import org.apache.sandesha2.MsgInitializer;
-import org.apache.sandesha2.MsgValidator;
 import org.apache.sandesha2.RMMsgContext;
-import org.apache.sandesha2.RMMsgCreator;
-import org.apache.sandesha2.SOAPAbstractFactory;
 import org.apache.sandesha2.SandeshaException;
 import org.apache.sandesha2.handlers.SandeshaOutHandler;
 import org.apache.sandesha2.msgreceivers.RMMessageReceiver;
@@ -50,7 +45,12 @@
 import org.apache.sandesha2.storage.beans.NextMsgBean;
 import org.apache.sandesha2.storage.beans.SequencePropertyBean;
 import org.apache.sandesha2.storage.beans.StorageMapBean;
+import org.apache.sandesha2.util.MsgInitializer;
+import org.apache.sandesha2.util.MsgValidator;
+import org.apache.sandesha2.util.RMMsgCreator;
+import org.apache.sandesha2.util.SOAPAbstractFactory;
 import org.apache.sandesha2.util.SandeshaUtil;
+import org.apache.sandesha2.workers.InOrderInvoker;
 import org.apache.sandesha2.wsrm.AcknowledgementRange;
 import org.apache.sandesha2.wsrm.Sequence;
 import org.apache.sandesha2.wsrm.SequenceAcknowledgement;

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java?rev=328267&r1=328266&r2=328267&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java Mon Oct 24 23:01:50 2005
@@ -27,15 +27,15 @@
 import org.apache.axis2.util.Utils;
 import org.apache.sandesha2.Constants;
 import org.apache.sandesha2.RMMsgContext;
-import org.apache.sandesha2.RMMsgCreator;
 import org.apache.sandesha2.SandeshaException;
-import org.apache.sandesha2.SequenceMenager;
 import org.apache.sandesha2.storage.AbstractBeanMgrFactory;
 import org.apache.sandesha2.storage.beanmanagers.CreateSeqBeanMgr;
 import org.apache.sandesha2.storage.beanmanagers.SequencePropertyBeanMgr;
 import org.apache.sandesha2.storage.beans.CreateSeqBean;
 import org.apache.sandesha2.storage.beans.SequencePropertyBean;
+import org.apache.sandesha2.util.RMMsgCreator;
 import org.apache.sandesha2.util.SandeshaUtil;
+import org.apache.sandesha2.util.SequenceManager;
 import org.apache.sandesha2.wsrm.Accept;
 import org.apache.sandesha2.wsrm.CreateSequence;
 import org.apache.sandesha2.wsrm.CreateSequenceResponse;
@@ -66,7 +66,7 @@
 		
 		
 		try {
-			String newSequenceId = SequenceMenager.setUpNewSequence(createSeqRMMsg);
+			String newSequenceId = SequenceManager.setupNewSequence(createSeqRMMsg);
 			ConfigurationContext context = createSeqRMMsg.getMessageContext().getSystemContext();
 			if (newSequenceId == null)
 				throw new AxisFault("Internal error - Generated sequence id is null");

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqResponseMsgProcessor.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqResponseMsgProcessor.java?rev=328267&r1=328266&r2=328267&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqResponseMsgProcessor.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqResponseMsgProcessor.java Mon Oct 24 23:01:50 2005
@@ -18,7 +18,6 @@
 package org.apache.sandesha2.msgprocessors;
 
 import org.apache.sandesha2.Constants;
-import org.apache.sandesha2.MsgInitializer;
 import org.apache.sandesha2.RMMsgContext;
 import org.apache.sandesha2.SandeshaException;
 import org.apache.sandesha2.storage.AbstractBeanMgrFactory;
@@ -30,6 +29,7 @@
 import org.apache.sandesha2.storage.beanmanagers.NextMsgBeanMgr;
 import org.apache.sandesha2.storage.beanmanagers.RetransmitterBeanMgr;
 import org.apache.sandesha2.storage.beanmanagers.SequencePropertyBeanMgr;
+import org.apache.sandesha2.util.MsgInitializer;
 import org.apache.sandesha2.util.SandeshaUtil;
 import org.apache.sandesha2.wsrm.Accept;
 import org.apache.sandesha2.wsrm.CreateSequenceResponse;

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/storage/beanmanagers/RetransmitterBeanMgr.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/storage/beanmanagers/RetransmitterBeanMgr.java?rev=328267&r1=328266&r2=328267&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/storage/beanmanagers/RetransmitterBeanMgr.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/storage/beanmanagers/RetransmitterBeanMgr.java Mon Oct 24 23:01:50 2005
@@ -25,9 +25,9 @@
 import org.apache.axis2.context.AbstractContext;
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.sandesha2.Constants;
-import org.apache.sandesha2.MsgInitializer;
 import org.apache.sandesha2.SandeshaException;
 import org.apache.sandesha2.storage.beans.RetransmitterBean;
+import org.apache.sandesha2.util.MsgInitializer;
 
 /**
  * @author Chamikara Jayalath <ch...@wso2.com>

Added: webservices/sandesha/trunk/src/org/apache/sandesha2/util/FaultMgr.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/util/FaultMgr.java?rev=328267&view=auto
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/util/FaultMgr.java (added)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/util/FaultMgr.java Mon Oct 24 23:01:50 2005
@@ -0,0 +1,510 @@
+package org.apache.sandesha2.util;
+
+import java.math.BigInteger;
+import java.util.Iterator;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.addressing.AddressingConstants;
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.om.OMAttribute;
+import org.apache.axis2.om.OMElement;
+import org.apache.axis2.om.OMNamespace;
+import org.apache.axis2.soap.SOAP11Constants;
+import org.apache.axis2.soap.SOAP12Constants;
+import org.apache.axis2.soap.SOAPBody;
+import org.apache.axis2.soap.SOAPEnvelope;
+import org.apache.axis2.soap.SOAPFactory;
+import org.apache.axis2.soap.SOAPFault;
+import org.apache.axis2.soap.SOAPFaultCode;
+import org.apache.axis2.soap.SOAPFaultDetail;
+import org.apache.axis2.soap.SOAPFaultReason;
+import org.apache.axis2.soap.SOAPFaultSubCode;
+import org.apache.axis2.soap.SOAPFaultText;
+import org.apache.axis2.soap.SOAPFaultValue;
+import org.apache.axis2.soap.SOAPHeader;
+import org.apache.axis2.soap.impl.llom.SOAPConstants;
+import org.apache.axis2.soap.impl.llom.soap12.SOAP12Factory;
+import org.apache.sandesha2.Constants;
+import org.apache.sandesha2.RMMsgContext;
+import org.apache.sandesha2.SandeshaException;
+import org.apache.sandesha2.Constants.MessageTypes;
+import org.apache.sandesha2.Constants.SOAPVersion;
+import org.apache.sandesha2.Constants.SequenceProperties;
+import org.apache.sandesha2.Constants.WSRM;
+import org.apache.sandesha2.storage.AbstractBeanMgrFactory;
+import org.apache.sandesha2.storage.beanmanagers.NextMsgBeanMgr;
+import org.apache.sandesha2.storage.beanmanagers.SequencePropertyBeanMgr;
+import org.apache.sandesha2.storage.beanmanagers.StorageMapBeanMgr;
+import org.apache.sandesha2.storage.beans.SequencePropertyBean;
+import org.apache.sandesha2.wsrm.FaultCode;
+import org.apache.sandesha2.wsrm.SequenceFault;
+
+/**
+ * @author Sanka
+ * @author Chamikara
+ */
+
+public class FaultMgr {
+
+    private static final String WSA_ACTION_FAULT 
+        = "http://schemas.xmlsoap.org/ws/2004/08/addressing/fault";
+    
+    public static final int UNKNOWN_SEQUENCE_TYPE = 1;
+    public static final int MESSAGE_NUMBER_ROLLOVER_TYPE = 2;
+    public static final int INVALID_ACKNOWLEDGEMENT_TYPE = 3;
+    
+    
+    public static final String UNKNOW_SEQUENCE_CODE = "Sender";
+    public static final String UNKNOW_SEQUENCE_SUBCODE 
+            = "wsrm:UnknowSequence";
+    public static final String UNKNOW_SEQUENCE_RESON 
+            = "The vaule of wsrm:Identifier is not a known Sequence Identifer";
+    
+   public static final String  MESSAGE_NUMBER_ROLLOVER_CODE = "Sender";
+   public static final String MESSAGE_NUMBER_ROLLOVER_SUBCODE 
+           = "wsrm:MessageNumberRollover";
+   public static final String MESSAGE_NUMBER_ROLLOVER_REASON 
+           = "The maximum value of wsrm:MessageNumber has been exceeded.";
+   
+   public static final String INVALID_ACKNOWLEDGEMENT_CODE = "Sender";
+   public static final String INVALID_ACKNOWLEDGEMENT_SUBCODE 
+           = "wsrm:InvalidAcknowledgement";
+   public static final String INVALID_ACKNOWLEDGEMENT_REASON 
+           = "The SequenceAcknowledgement violates the cumlative acknowledgement";
+   
+   protected class FaultData {
+        int type;
+        String code;
+        String subcode;
+        String reason; 
+        OMElement detail;
+        MessageContext msgCtx;
+    }
+    
+    public FaultMgr() {
+    }
+    
+    /**
+     * 
+     * @param msgCtx
+     * @return
+     * @throws SandeshaException
+     */
+    public RMMsgContext check(MessageContext msgCtx) throws SandeshaException {
+        int msgType = getMessageType(msgCtx);
+        
+        switch (msgType) {
+        
+            case Constants.MessageTypes.APPLICATION:
+            
+                /* Sequence*/
+                return checkSequenceMsg(msgCtx);
+            
+            case Constants.MessageTypes.ACK:
+                
+                /* SequenceAcknowledgement */
+                return checkSequenceAcknowledgementMsg(msgCtx);
+            
+            default:
+                
+                /* TODO check for other message types */
+                return null;       
+        }
+    }
+    
+    /**
+     * Check whether a Sequence message
+     * (a) belongs to a unknown sequence (generates an UnknownSequence fault)
+     * (b) message number exceeds a predifined limit ( genenrates a Message 
+     *     Number Rollover fault)
+     * 
+     * @param msgCtx
+     * @return
+     * @throws SandeshaException
+     */
+    public RMMsgContext checkSequenceMsg(MessageContext msgCtx) 
+            throws SandeshaException {
+        
+        NextMsgBeanMgr mgr =
+            AbstractBeanMgrFactory.getInstance(msgCtx).getNextMsgBeanMgr();
+        SOAPEnvelope envelope = msgCtx.getEnvelope();
+        
+        OMElement element = envelope.getHeader().getFirstChildWithName(
+                new QName(Constants.WSRM.NS_URI_RM, Constants.WSRM.SEQUENCE));
+        OMElement identifier = element.getFirstChildWithName(
+                new QName(Constants.WSRM.NS_URI_RM, Constants.WSRM.IDENTIFIER));
+
+        String identifierString = identifier.getText().trim();
+        
+        if (mgr.retrieve(identifierString) == null) {
+        
+            // should throw an UnknownSequence fault
+            return getFault(FaultMgr.UNKNOWN_SEQUENCE_TYPE, msgCtx);
+        }
+
+        OMElement msgNumber = element.getFirstChildWithName(
+            new QName (Constants.WSRM.NS_URI_RM,Constants.WSRM.MSG_NUMBER));
+
+        BigInteger bigInteger = new BigInteger(msgNumber.getText().trim());
+        
+        // throws new MessageNumberRollover fault
+        if (bigInteger.compareTo(BigInteger.valueOf(Long.MAX_VALUE)) == 1) {
+            return getFault(FaultMgr.MESSAGE_NUMBER_ROLLOVER_TYPE,
+                    msgCtx);
+        }
+        
+        // Phew !! no faults ..
+        return null;
+    }
+    
+    /**
+     * 
+     * @param msgCtx
+     * @return
+     * @throws SandeshaException
+     */
+    public RMMsgContext checkSequenceAcknowledgementMsg(MessageContext msgCtx) 
+            throws SandeshaException {
+        NextMsgBeanMgr mgr 
+            = AbstractBeanMgrFactory.getInstance(msgCtx).getNextMsgBeanMgr();
+        StorageMapBeanMgr smgr 
+            = AbstractBeanMgrFactory.getInstance(msgCtx).getStorageMapBeanMgr();
+        SequencePropertyBeanMgr propertyBeanMgr 
+            = AbstractBeanMgrFactory.getInstance(msgCtx).getSequencePropretyBeanMgr();
+    
+        SOAPEnvelope envelope = msgCtx.getEnvelope();
+        // this is a SequenceAcknowledgement message
+        OMElement element = envelope.getFirstChildWithName(
+                new QName(Constants.WSRM.NS_URI_RM, Constants.WSRM.SEQUENCE_ACK));
+        OMElement identifier = element.getFirstChildWithName(
+                new QName(Constants.WSRM.NS_URI_RM, Constants.WSRM.IDENTIFIER));
+        
+        if (mgr.retrieve(identifier.getText()) == null) {
+            //throw UnknownSequenceFault
+            return getFault(FaultMgr.UNKNOWN_SEQUENCE_TYPE, msgCtx);
+        }
+        
+        String identifierString = identifier.getText().trim();
+        SequencePropertyBean propertyBean = 
+            propertyBeanMgr.retrieve(identifierString, 
+                    Constants.SequenceProperties.TEMP_SEQUENCE_ID);
+        
+        //TODO 
+        String acksString = ""; //propertyBean.getAcksString();
+        String[] msgNumberStrs = acksString.split(",");
+
+        //TODO move this to a util class
+        long[] msgNumbers = new long[msgNumberStrs.length];
+        for (int i=0; i < msgNumbers.length; i++) {
+            msgNumbers[i] = Long.parseLong(msgNumberStrs[i]);
+        }
+        
+        Iterator acks = element.getChildrenWithName(new QName(
+                Constants.WSRM.NS_URI_RM, Constants.WSRM.ACK_RANGE));
+        while (acks.hasNext()) {
+            OMElement ack = (OMElement) acks.next();
+
+            OMAttribute lowerAttrib = ack.getAttribute(
+                    new QName(Constants.WSRM.LOWER));
+            long lower = Long.parseLong(lowerAttrib.getAttributeValue());
+
+            OMAttribute upperAttrib = ack.getAttribute(
+                    new QName(Constants.WSRM.UPPER));
+            long upper = Long.parseLong(upperAttrib.getAttributeValue());
+            
+            for (; lower <= upper; lower++) {    
+                boolean found = false;
+                for (int j = 0; j < msgNumbers.length; j++) {
+                    if (lower == msgNumbers[j]) {
+                        found = true;
+                        break;
+                    }
+                }
+                if (!found) {
+                    //TODO throw new InvalidAcknowledgement   
+                }
+            }
+        }
+        
+        Iterator nacks = element.getChildrenWithName(new QName(
+                Constants.WSRM.NS_URI_RM, Constants.WSRM.NACK));
+        
+        while (nacks.hasNext()) {
+            OMElement nack = (OMElement) nacks.next();
+            long msgNo = Long.parseLong(nack.getText());
+            
+            boolean found = false;
+            for (int j = 0; j < msgNumbers.length; j++) {
+                if (msgNo == msgNumbers[j]) {
+                    found = true;
+                    break;
+                }
+            }
+            if (!found) {
+                //TODO throw new InvalidAcknowledgement   
+            }
+        }        
+        return null;
+    }
+    
+    /**
+     * 
+     * @param type
+     * @param msgCtx
+     * @return
+     * @throws SandeshaException
+     */
+    public RMMsgContext getFault(int type, MessageContext msgCtx) 
+            throws SandeshaException {
+
+        FaultData data = new FaultData();
+
+        switch (type) {
+            case FaultMgr.UNKNOWN_SEQUENCE_TYPE:
+                data.code = FaultMgr.UNKNOW_SEQUENCE_CODE;
+                data.subcode = FaultMgr.UNKNOW_SEQUENCE_SUBCODE;
+                data.reason = FaultMgr.UNKNOW_SEQUENCE_RESON;
+                data.msgCtx = msgCtx;
+                break;
+            
+            case FaultMgr.MESSAGE_NUMBER_ROLLOVER_TYPE:  
+                data.code = FaultMgr.MESSAGE_NUMBER_ROLLOVER_CODE;
+                data.subcode = FaultMgr.MESSAGE_NUMBER_ROLLOVER_SUBCODE;
+                data.reason = FaultMgr.MESSAGE_NUMBER_ROLLOVER_REASON;
+                data.msgCtx = msgCtx;
+                break;
+            
+            case FaultMgr.INVALID_ACKNOWLEDGEMENT_TYPE:
+                data.code = FaultMgr.INVALID_ACKNOWLEDGEMENT_CODE;
+                data.subcode = FaultMgr.INVALID_ACKNOWLEDGEMENT_SUBCODE;
+                data.reason = FaultMgr.INVALID_ACKNOWLEDGEMENT_REASON;
+                data.msgCtx = msgCtx;
+                break;
+        }
+        
+        data.type = getMessageType(msgCtx);
+        
+        MessageContext newMsgCtx = SandeshaUtil.shallowCopy(msgCtx);
+        newMsgCtx.setServiceGroupContextId(msgCtx.getServiceGroupContextId());
+        newMsgCtx.setServiceContext(msgCtx.getServiceContext());
+        RMMsgContext newRMMsgCtx = new RMMsgContext(newMsgCtx);
+        
+        SequenceFault seqFault = new SequenceFault();
+        FaultCode faultCode = new FaultCode();
+        faultCode.setFaultCode(data.code);
+        seqFault.setFaultCode(faultCode);
+        
+        //TODO 
+        //newRMMsgCtx.setMessagePart(Constants.MessageParts.SEQUENCE_FAULT, seqFault);
+        
+        String str = msgCtx.getEnvelope().getNamespace().getName();
+        
+        if (SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(
+                msgCtx.getEnvelope().getNamespace().getName())) {
+            doSOAP11Encoding(data, newMsgCtx);
+        
+        } else if (SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(
+                msgCtx.getEnvelope().getNamespace().getName())) {
+            doSOAP12Encoding(data, newMsgCtx);
+        
+        } else {
+            //TODO should I throw an exception ?
+        }
+        
+        return newRMMsgCtx;
+    }
+    
+    /**
+     * 
+     * @param data
+     * @param msgCtx
+     * @throws SandeshaException
+     */
+    public void doSOAP11Encoding(FaultData data, MessageContext msgCtx) 
+            throws SandeshaException {
+        
+        
+        SOAPFactory factory = SOAPAbstractFactory.getSOAPFactory(Constants.SOAPVersion.v1_1);
+        SOAPEnvelope faultMsgEnvelope = factory.getDefaultFaultEnvelope();
+        
+        SOAPFault fault;
+        SOAPFaultCode faultCode;
+        SOAPFaultReason faultReason;
+        SOAPFaultText faultText;
+
+        switch (data.type) {
+            case Constants.MessageTypes.CREATE_SEQ:
+                
+                /* CreateSequence */
+                fault = faultMsgEnvelope.getBody().getFault();
+                faultCode = fault.getCode();
+                faultCode.getValue().setText(data.subcode);
+                
+                faultReason = fault.getReason();
+                faultReason.getSOAPText().setText(data.reason);
+                // TODO
+                OMNamespace namespace = 
+                    factory.createOMNamespace(
+                            SOAP11Constants.XMLNS_URI,
+                            SOAP11Constants.XMLNS_PREFIX);
+                faultReason.getSOAPText().addAttribute("lang", "en", namespace);
+                break;
+                
+            default:
+                
+                /* */
+                fault = faultMsgEnvelope.getBody().getFault();
+                faultCode = fault.getCode();
+                faultCode.getValue().setText(data.code);
+                
+                faultReason = fault.getReason();
+                faultReason.getSOAPText().setText(data.reason);
+                break;
+        }
+                
+        try {
+            msgCtx.setEnvelope(faultMsgEnvelope);
+            
+        } catch (AxisFault axisFault) {
+            throw new SandeshaException(axisFault.getMessage());
+        }
+    }
+    
+    /**
+     * 
+     * @param msgCtx
+     * @return
+     */
+    public void doSOAP12Encoding(FaultData data, MessageContext msgCtx) 
+        throws SandeshaException{
+           
+        SOAPFactory factory = 
+                SOAPAbstractFactory.getSOAPFactory(Constants.SOAPVersion.v1_2);
+        SOAPEnvelope envelope = factory.getDefaultFaultEnvelope();
+                
+        SOAPFault fault = envelope.getBody().getFault();
+        SOAPFaultCode faultCode = fault.getCode();
+        SOAPFaultValue codeValue = faultCode.getValue();
+        codeValue.setText(data.code);
+        
+        SOAPFaultSubCode faultSubCode = factory.createSOAPFaultSubCode(faultCode);
+        SOAPFaultValue subCodeValue = factory.createSOAPFaultValue(faultSubCode);
+        subCodeValue.setText(data.subcode);
+        
+        SOAPFaultReason faultReason = fault.getReason();
+        SOAPFaultText faultText = faultReason.getSOAPText();
+        faultText.setText(data.reason);
+                
+        SOAPFaultDetail faultDetail = fault.getDetail();
+        
+        SOAPEnvelope ienvelope = data.msgCtx.getEnvelope();
+       
+        switch (data.type) {
+            case Constants.MessageTypes.APPLICATION:
+                
+                /* Sequence */
+                OMElement sequence = ienvelope.getHeader().getFirstChildWithName(
+                        new QName(Constants.WSRM.NS_URI_RM, 
+                                Constants.WSRM.SEQUENCE));
+                OMElement sidentifier = sequence.getFirstChildWithName(
+                       new QName(Constants.WSRM.NS_URI_RM,
+                               Constants.WSRM.IDENTIFIER));
+                
+                OMNamespace snamespace = 
+                        factory.createOMNamespace(
+                                Constants.WSRM.NS_URI_RM, 
+                                Constants.WSRM.NS_PREFIX_RM);
+                OMElement selement = factory.createOMElement(
+                        Constants.WSRM.IDENTIFIER, snamespace);
+                
+                selement.setText(sidentifier.getText());
+                faultDetail.addChild(selement);
+                break;
+                
+            case Constants.MessageTypes.ACK:
+                
+                /* SequenceAcknowledge */
+                
+                OMElement sequenceAck 
+                    = ienvelope.getHeader().getFirstChildWithName(
+                            new QName(
+                                    Constants.WSRM.NS_URI_RM, 
+                                    Constants.WSRM.SEQUENCE_ACK));
+                OMElement aidentifier 
+                    = sequenceAck.getFirstChildWithName(
+                            new QName(Constants.WSRM.NS_URI_RM, 
+                                    Constants.WSRM.IDENTIFIER));
+                OMNamespace anamespace = 
+                    factory.createOMNamespace(
+                            Constants.WSRM.NS_URI_RM, 
+                            Constants.WSRM.NS_PREFIX_RM);
+                OMElement aelement = factory.createOMElement(
+                    Constants.WSRM.IDENTIFIER, anamespace);
+            
+                aelement.setText(aidentifier.getText());
+                faultDetail.addChild(aelement);
+                break;
+            
+                default:
+                    
+                    /* TODO for other message types */
+                    break;
+                
+        }
+        
+        msgCtx.setProperty(AddressingConstants.WSA_ACTION, WSA_ACTION_FAULT);
+        
+        try {
+            msgCtx.setEnvelope(envelope);
+        } catch (AxisFault e) {
+            throw new SandeshaException(e.getMessage());
+        }
+    }
+
+    
+    public int getMessageType(MessageContext msgCtx) {
+        
+        SOAPHeader header = msgCtx.getEnvelope().getHeader();
+        SOAPBody body = msgCtx.getEnvelope().getBody();
+        
+        if (header.getFirstChildWithName(
+                    new QName(Constants.WSRM.NS_URI_RM, Constants.WSRM.SEQUENCE)) 
+            != null) {
+            return Constants.MessageTypes.APPLICATION;
+            
+        } else if (header.getFirstChildWithName(
+                    new QName(Constants.WSRM.NS_URI_RM, Constants.WSRM.SEQUENCE_ACK))
+            != null) {
+            return Constants.MessageTypes.ACK;
+            
+        } else if (body.getFirstChildWithName(
+                    new QName(Constants.WSRM.NS_URI_RM, Constants.WSRM.CREATE_SEQUENCE))
+            != null) {
+            return Constants.MessageTypes.CREATE_SEQ;
+            
+        } else if (body.getFirstChildWithName(
+                    new QName(Constants.WSRM.NS_URI_RM, Constants.WSRM.CREATE_SEQUENCE_RESPONSE))
+            != null) {
+            return Constants.MessageTypes.CREATE_SEQ_RESPONSE;
+            
+        } else if (body.getFirstChildWithName(
+                    new QName(Constants.WSRM.NS_URI_RM, Constants.WSRM.TERMINATE_SEQUENCE))
+            != null) {
+            return Constants.MessageTypes.TERMINATE_SEQ;
+        
+        } else if (header.getFirstChildWithName(
+                    new QName(Constants.WSRM.NS_URI_RM, Constants.WSRM.ACK_REQUESTED))
+            != null) {
+            //TODO fix this ..            
+            return Constants.MessageTypes.UNKNOWN;
+            
+        } else {
+            return Constants.MessageTypes.UNKNOWN;
+        }
+        
+        
+    }
+      
+}

Added: webservices/sandesha/trunk/src/org/apache/sandesha2/util/MsgInitializer.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/util/MsgInitializer.java?rev=328267&view=auto
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/util/MsgInitializer.java (added)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/util/MsgInitializer.java Mon Oct 24 23:01:50 2005
@@ -0,0 +1,108 @@
+/*
+ * Copyright  1999-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.sandesha2.util;
+
+import javax.xml.stream.XMLOutputFactory;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.axis2.addressing.om.AddressingHeaders;
+import org.apache.axis2.context.MessageContext;
+import org.apache.sandesha2.Constants;
+import org.apache.sandesha2.RMMsgContext;
+import org.apache.sandesha2.SandeshaException;
+import org.apache.sandesha2.Constants.MessageParts;
+import org.apache.sandesha2.Constants.MessageTypes;
+import org.apache.sandesha2.msgreceivers.RMMessageReceiver;
+import org.apache.sandesha2.wsrm.RMElements;
+
+/**
+ * @author Chamikara
+ * @author Sanka
+ * @author Jaliya
+ */
+
+public class MsgInitializer {
+
+	public static RMMsgContext initializeMessage(MessageContext ctx)
+			throws SandeshaException {
+		RMMsgContext rmMsgCtx = new RMMsgContext(ctx);
+		populateRMMsgContext(ctx, rmMsgCtx);
+		validateMessage(rmMsgCtx);
+		return rmMsgCtx;
+	}
+
+	private static void populateRMMsgContext(MessageContext msgCtx,
+			RMMsgContext rmMsgContext) {
+		//TODO set message parts
+
+		RMElements elements = new RMElements();
+		elements.fromSOAPEnvelope(msgCtx.getEnvelope());
+
+		if (elements.getCreateSequence() != null)
+			rmMsgContext.setMessagePart(Constants.MessageParts.CREATE_SEQ,
+					elements.getCreateSequence());
+
+		if (elements.getCreateSequenceResponse() != null)
+			rmMsgContext.setMessagePart(
+					Constants.MessageParts.CREATE_SEQ_RESPONSE, elements
+							.getCreateSequenceResponse());
+
+		if (elements.getSequence() != null)
+			rmMsgContext.setMessagePart(Constants.MessageParts.SEQUENCE,
+					elements.getSequence());
+
+		if (elements.getSequenceAcknowledgement() != null)
+			rmMsgContext.setMessagePart(
+					Constants.MessageParts.SEQ_ACKNOWLEDGEMENT, elements
+							.getSequenceAcknowledgement());
+
+		if (elements.getTerminateSequence() != null)
+			rmMsgContext.setMessagePart(Constants.MessageParts.TERMINATE_SEQ,
+					elements.getTerminateSequence());
+
+		if (elements.getAckRequested() != null)
+			rmMsgContext.setMessagePart(Constants.MessageParts.ACK_REQUEST,
+					elements.getAckRequested());
+	
+	}
+
+	private static boolean validateMessage(RMMsgContext rmMsgCtx)
+			throws SandeshaException {
+
+		//TODO: performa validation
+
+		int a = 1;
+		//Setting message type.
+		if (rmMsgCtx.getMessagePart(Constants.MessageParts.CREATE_SEQ) != null)
+			rmMsgCtx.setMessageType(Constants.MessageTypes.CREATE_SEQ);
+		else if (rmMsgCtx
+				.getMessagePart(Constants.MessageParts.CREATE_SEQ_RESPONSE) != null)
+			rmMsgCtx.setMessageType(Constants.MessageTypes.CREATE_SEQ_RESPONSE);
+		else if (rmMsgCtx.getMessagePart(Constants.MessageParts.TERMINATE_SEQ) != null)
+			rmMsgCtx.setMessageType(Constants.MessageTypes.TERMINATE_SEQ);
+		else if (rmMsgCtx.getMessagePart(Constants.MessageParts.SEQUENCE) != null)
+			rmMsgCtx.setMessageType(Constants.MessageTypes.APPLICATION);
+		else if (rmMsgCtx.getMessagePart(Constants.MessageParts.SEQ_ACKNOWLEDGEMENT)!=null)
+			rmMsgCtx.setMessageType(Constants.MessageTypes.ACK);
+		else
+			rmMsgCtx.setMessageType(Constants.MessageTypes.UNKNOWN);
+
+		return true;
+	}
+
+}
\ No newline at end of file

Added: webservices/sandesha/trunk/src/org/apache/sandesha2/util/MsgValidator.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/util/MsgValidator.java?rev=328267&view=auto
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/util/MsgValidator.java (added)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/util/MsgValidator.java Mon Oct 24 23:01:50 2005
@@ -0,0 +1,39 @@
+/*
+ * Copyright  1999-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.sandesha2.util;
+
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.context.MessageContext;
+import org.apache.sandesha2.RMMsgContext;
+
+/**
+ * @author Chamikara
+ * @author Sanka
+ * @author Jaliya 
+ */
+
+//TODO remove this class.
+public class MsgValidator {
+
+	
+	private static void validateMessage(RMMsgContext rmMsgCtx) throws AxisFault{
+
+			//no need of this method any more.
+			//Validation is done in the message initialized
+    }
+}

Added: webservices/sandesha/trunk/src/org/apache/sandesha2/util/RMMsgCreator.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/util/RMMsgCreator.java?rev=328267&view=auto
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/util/RMMsgCreator.java (added)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/util/RMMsgCreator.java Mon Oct 24 23:01:50 2005
@@ -0,0 +1,402 @@
+/*
+ * Copyright  1999-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.sandesha2.util;
+
+import javax.xml.stream.XMLOutputFactory;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.addressing.EndpointReference;
+import org.apache.axis2.addressing.MessageInformationHeaders;
+import org.apache.axis2.addressing.om.AddressingHeaders;
+import org.apache.axis2.clientapi.Call;
+import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.context.OperationContext;
+import org.apache.axis2.description.OperationDescription;
+import org.apache.axis2.description.OperationDescriptionFactory;
+import org.apache.axis2.om.OMAbstractFactory;
+import org.apache.axis2.om.impl.MIMEOutputUtils;
+import org.apache.axis2.soap.SOAPEnvelope;
+import org.apache.axis2.soap.SOAPFactory;
+import org.apache.axis2.wsdl.builder.wsdl4j.WSDL11MEPFinder;
+import org.apache.log4j.spi.Configurator;
+import org.apache.sandesha2.Constants;
+import org.apache.sandesha2.RMMsgContext;
+import org.apache.sandesha2.SandeshaException;
+import org.apache.sandesha2.Constants.MessageParts;
+import org.apache.sandesha2.Constants.SOAPVersion;
+import org.apache.sandesha2.Constants.SequenceProperties;
+import org.apache.sandesha2.Constants.WSA;
+import org.apache.sandesha2.Constants.WSRM;
+import org.apache.sandesha2.msgreceivers.RMMessageReceiver;
+import org.apache.sandesha2.storage.AbstractBeanMgrFactory;
+import org.apache.sandesha2.storage.beanmanagers.SequencePropertyBeanMgr;
+import org.apache.sandesha2.storage.beans.SequencePropertyBean;
+import org.apache.sandesha2.wsrm.Accept;
+import org.apache.sandesha2.wsrm.AckRequested;
+import org.apache.sandesha2.wsrm.AcknowledgementRange;
+import org.apache.sandesha2.wsrm.AcksTo;
+import org.apache.sandesha2.wsrm.Address;
+import org.apache.sandesha2.wsrm.CreateSequence;
+import org.apache.sandesha2.wsrm.CreateSequenceResponse;
+import org.apache.sandesha2.wsrm.IOMRMElement;
+import org.apache.sandesha2.wsrm.IOMRMPart;
+import org.apache.sandesha2.wsrm.Identifier;
+import org.apache.sandesha2.wsrm.Sequence;
+import org.apache.sandesha2.wsrm.SequenceAcknowledgement;
+import org.apache.sandesha2.wsrm.SequenceOffer;
+import org.apache.sandesha2.wsrm.TerminateSequence;
+import org.apache.wsdl.WSDLConstants;
+
+
+/**
+ * @author Chamikara
+ * @author Sanka
+ * @author Jaliya
+ */
+
+public class RMMsgCreator {
+
+	public static RMMsgContext createCreateSeqMsg(RMMsgContext applicationRMMsg, String tempSequenceId, String acksTo)
+			throws SandeshaException {
+				
+		MessageContext applicationMsgContext = applicationRMMsg
+				.getMessageContext();
+		if (applicationMsgContext == null)
+			throw new SandeshaException("Application message is null");
+		ConfigurationContext context = applicationMsgContext.getSystemContext();
+		if (context == null)
+			throw new SandeshaException("Configuration Context is null");
+
+		SequencePropertyBeanMgr seqPropMgr = AbstractBeanMgrFactory.getInstance(context).getSequencePropretyBeanMgr();
+		MessageContext createSeqmsgContext;
+		try {
+			//creating by copying common contents. (this will not set contexts
+			// except for configCtx).
+			createSeqmsgContext = SandeshaUtil
+					.shallowCopy(applicationMsgContext);
+		} catch (SandeshaException e) {
+			throw new SandeshaException(e.getMessage());
+		}
+
+		//setting contexts
+		createSeqmsgContext.setServiceGroupContext(applicationMsgContext
+				.getServiceGroupContext());
+		createSeqmsgContext.setServiceGroupContextId(applicationMsgContext
+				.getServiceGroupContextId());
+		createSeqmsgContext.setServiceContext(applicationMsgContext
+				.getServiceContext());
+		createSeqmsgContext.setServiceContextID(applicationMsgContext
+				.getServiceContextID());
+
+		String createSeqMsgId = SandeshaUtil.getUUID();
+		try {
+			OperationDescription appMsgOperationDesc = applicationMsgContext.getOperationDescription();
+			OperationDescription createSeqOperationDesc = OperationDescriptionFactory.getOperetionDescription(OperationDescriptionFactory.MEP_CONSTANT_OUT_IN);
+			createSeqOperationDesc.setPhasesOutFlow(appMsgOperationDesc.getPhasesOutFlow());
+			createSeqOperationDesc.setPhasesOutFaultFlow(appMsgOperationDesc.getPhasesOutFaultFlow());
+			createSeqOperationDesc.setPhasesInFaultFlow(appMsgOperationDesc.getPhasesInFaultFlow());
+			createSeqOperationDesc.setRemainingPhasesInFlow(appMsgOperationDesc.getRemainingPhasesInFlow());
+			
+			createSeqmsgContext.setOperationDescription(createSeqOperationDesc);
+			//TODO set a suitable ope. description
+			OperationContext createSeqOpContext = new OperationContext(
+					createSeqmsgContext.getOperationDescription());
+			createSeqmsgContext.setOperationContext(createSeqOpContext);
+			createSeqOpContext.addMessageContext(createSeqmsgContext);
+			//registering opearion context
+			context.registerOperationContext(createSeqMsgId,createSeqOpContext);
+
+			
+			//Setting a new SOAP Envelop.
+			SOAPEnvelope envelope = SOAPAbstractFactory.getSOAPFactory(
+					Constants.SOAPVersion.DEFAULT).getDefaultEnvelope();
+
+			createSeqmsgContext.setEnvelope(envelope);
+//			createSeqOpContext.addMessageContext(createSeqmsgContext);
+//			createSeqmsgContext.setOperationContext(createSeqOpContext);
+		} catch (AxisFault e2) {
+			throw new SandeshaException(e2.getMessage());
+		}
+
+		createSeqmsgContext.setTo(applicationRMMsg.getTo());
+		createSeqmsgContext.setReplyTo(applicationRMMsg.getReplyTo());
+
+		RMMsgContext createSeqRMMsg = new RMMsgContext(createSeqmsgContext);
+
+		CreateSequence createSequencePart = new CreateSequence();
+
+		
+		//Adding sequence offer - if present
+		String offeredSequence = (String) context.getProperty(Constants.OFFERED_SEQUENCE_ID);
+		if (offeredSequence!=null && !"".equals(offeredSequence))
+		{
+			SequenceOffer offerPart = new SequenceOffer ();
+			Identifier identifier = new Identifier ();
+			identifier.setIndentifer(offeredSequence);
+			offerPart.setIdentifier(identifier);
+			createSequencePart.setSequenceOffer(offerPart);
+		}
+			
+		//TODO decide - where to send create seq. Acksto or replyTo
+		SequencePropertyBean replyToBean = seqPropMgr.retrieve(tempSequenceId, Constants.SequenceProperties.REPLY_TO_EPR);
+		SequencePropertyBean toBean = seqPropMgr.retrieve(tempSequenceId,Constants.SequenceProperties.TO_EPR);
+
+		if (toBean==null || toBean.getValue()==null)
+			throw new SandeshaException ("To EPR is not set.");
+		
+		EndpointReference toEPR = (EndpointReference) toBean.getValue();
+		EndpointReference replyToEPR = null;
+		EndpointReference acksToEPR = null;
+		
+		//AcksTo value is replyto value (if set). Otherwise anonymous.
+//		if (replyToBean==null || replyToBean.getValue()==null){
+//			if (acksTo==null)
+//			acksToEPR = new EndpointReference (Constants.WSA.NS_URI_ANONYMOUS);
+//		}else { 
+//			acksToEPR = (EndpointReference) replyToBean.getValue();
+//		}
+		
+		if (acksTo==null || "".equals(acksTo))
+			acksTo = Constants.WSA.NS_URI_ANONYMOUS;
+			
+		acksToEPR = new EndpointReference (acksTo);	
+		
+		if (replyToBean!=null && replyToBean.getValue()!=null)
+			replyToEPR = (EndpointReference) replyToBean.getValue();
+
+		createSeqRMMsg.setTo(toEPR);
+		
+		//ReplyTo will be set only if not null.
+		if(replyToEPR!=null) 
+			createSeqRMMsg.setReplyTo(replyToEPR);
+		
+		
+		//FIXME - Give user a seperate way to set acksTo (client side)
+		createSequencePart.setAcksTo(new AcksTo(new Address(acksToEPR)));
+		
+		createSeqRMMsg.setMessagePart(Constants.MessageParts.CREATE_SEQ,
+				createSequencePart);
+
+		try {
+			createSeqRMMsg.addSOAPEnvelope();
+		} catch (AxisFault e1) {
+			throw new SandeshaException(e1.getMessage());
+		}
+
+		createSeqRMMsg.setAction(Constants.WSRM.ACTION_CREATE_SEQ);
+		
+		createSeqRMMsg.setMessageId(createSeqMsgId);
+
+		MessageContext createSeqMsg = createSeqRMMsg.getMessageContext();
+		MessageContext applicationMsg = applicationRMMsg.getMessageContext();
+		createSeqMsg.setServiceGroupContext(applicationMsg
+				.getServiceGroupContext());
+		createSeqMsg.setServiceGroupContextId(applicationMsg
+				.getServiceGroupContextId());
+		createSeqMsg.setServiceContext(applicationMsg.getServiceContext());
+		createSeqMsg.setServiceContextID(applicationMsg.getServiceContextID());
+
+		return createSeqRMMsg;
+	}
+	
+	public static RMMsgContext createTerminateSequenceMessage (RMMsgContext referenceRMMessage, String sequenceId) throws SandeshaException {
+		MessageContext referenceMessage = referenceRMMessage.getMessageContext();
+		if (referenceMessage==null)
+			throw new SandeshaException ("MessageContext is null");
+		
+		RMMsgContext terminateRMMessage = SandeshaUtil.shallowCopy(referenceRMMessage);
+		MessageContext terminateMessage = terminateRMMessage.getMessageContext();
+		if (terminateMessage==null)
+			throw new SandeshaException ("MessageContext is null");
+			
+		MessageInformationHeaders newMessageInfoHeaders = new MessageInformationHeaders ();
+		terminateMessage.setMessageInformationHeaders(newMessageInfoHeaders);
+		terminateMessage.setMessageID(SandeshaUtil.getUUID());
+		
+		terminateMessage.setServiceGroupContext(referenceMessage
+				.getServiceGroupContext());
+		terminateMessage.setServiceGroupContextId(referenceMessage
+				.getServiceGroupContextId());
+		terminateMessage.setServiceContext(referenceMessage
+				.getServiceContext());
+		terminateMessage.setServiceContextID(referenceMessage
+				.getServiceContextID());
+		
+		terminateMessage.setOperationDescription(referenceMessage.getOperationDescription());
+		OperationContext newOperationCtx = new OperationContext (terminateMessage.getOperationDescription());
+		try {
+			newOperationCtx.addMessageContext(terminateMessage);
+		} catch (AxisFault e) {
+			throw new SandeshaException (e.getMessage());
+		}
+		
+		terminateMessage.setOperationContext(newOperationCtx);
+		
+		ConfigurationContext configCtx = terminateMessage.getSystemContext();
+		if (configCtx==null)
+			throw new SandeshaException ("Configuration Context is null");
+		configCtx.registerOperationContext(terminateMessage.getMessageID(),newOperationCtx);
+
+		SOAPEnvelope envelope = SOAPAbstractFactory.getSOAPFactory(Constants.SOAPVersion.DEFAULT).getDefaultEnvelope();
+		terminateRMMessage.setSOAPEnvelop(envelope);
+		
+		TerminateSequence terminateSequencePart = new TerminateSequence ();
+		Identifier identifier = new Identifier ();
+		identifier.setIndentifer(sequenceId);
+		terminateSequencePart.setIdentifier(identifier);
+		terminateRMMessage.setMessagePart(Constants.MessageParts.TERMINATE_SEQ,terminateSequencePart);
+		
+		return terminateRMMessage;
+	}
+
+	public static RMMsgContext createCreateSeqResponseMsg(
+			RMMsgContext createSeqMessage, MessageContext outMessage, String newSequenceID)
+			throws AxisFault {
+
+		IOMRMElement messagePart = createSeqMessage
+				.getMessagePart(Constants.MessageParts.CREATE_SEQ);
+		CreateSequence cs = (CreateSequence) messagePart;
+
+		CreateSequenceResponse response = new CreateSequenceResponse();
+
+		Identifier identifier = new Identifier();
+		identifier.setIndentifer(newSequenceID);
+
+		response.setIdentifier(identifier);
+
+		SequenceOffer offer = cs.getSequenceOffer();
+		if (offer!=null) {
+			String outSequenceId = offer.getIdentifer().getIdentifier();
+			
+			//TODO do a better validation for the offered out sequence id.
+			if (outSequenceId!=null && !"".equals(outSequenceId)) {
+				
+				Accept accept = new Accept();
+				EndpointReference acksToEPR = createSeqMessage.getTo();
+				AcksTo acksTo = new AcksTo();
+				Address address = new Address();
+				address.setEpr(acksToEPR);
+				acksTo.setAddress(address);
+				accept.setAcksTo(acksTo);
+				response.setAccept(accept);	
+			}
+			
+			
+		}
+
+
+		SOAPEnvelope envelope = SOAPAbstractFactory.getSOAPFactory(
+				Constants.SOAPVersion.DEFAULT).getDefaultEnvelope();
+		response.toOMElement(envelope.getBody());
+		outMessage.setWSAAction(Constants.WSRM.NS_URI_CREATE_SEQ_RESPONSE);
+
+		String newMessageId = SandeshaUtil.getUUID();
+		outMessage.setMessageID(newMessageId);
+
+		outMessage.setEnvelope(envelope);
+
+		RMMsgContext createSeqResponse = null;
+		try {
+			createSeqResponse = MsgInitializer.initializeMessage(outMessage);
+		} catch (SandeshaException ex) {
+			throw new AxisFault("Cant initialize the message");
+		}
+
+		return createSeqResponse;
+	}
+
+	//Adds a ack message to the following message.
+	public static void addAckMessage(RMMsgContext applicationMsg,
+			String sequenceId) throws SandeshaException {
+		SOAPEnvelope envelope = applicationMsg.getSOAPEnvelope();
+		if (envelope == null) {
+			SOAPEnvelope newEnvelope = SOAPAbstractFactory.getSOAPFactory(
+					Constants.SOAPVersion.DEFAULT).getDefaultEnvelope();
+			applicationMsg.setSOAPEnvelop(newEnvelope);
+		}
+		envelope = applicationMsg.getSOAPEnvelope();
+
+		SequenceAcknowledgement sequenceAck = new SequenceAcknowledgement();
+		Identifier id = new Identifier();
+		id.setIndentifer(sequenceId);
+		sequenceAck.setIdentifier(id);
+
+		ConfigurationContext ctx = applicationMsg.getMessageContext()
+				.getSystemContext();
+		SequencePropertyBeanMgr seqPropMgr = AbstractBeanMgrFactory
+				.getInstance(ctx).getSequencePropretyBeanMgr();
+
+		SequencePropertyBean seqBean = seqPropMgr.retrieve(sequenceId,
+				Constants.SequenceProperties.RECEIVED_MESSAGES);
+		String msgNoList = (String) seqBean.getValue();
+		
+		AcknowledgementRange[] ackRangeArr = SandeshaUtil
+				.getAckRangeArray(msgNoList);
+
+		int length = ackRangeArr.length;
+
+		for (int i = 0; i < length; i++)
+			sequenceAck.addAcknowledgementRanges(ackRangeArr[i]);
+
+		sequenceAck.toOMElement(envelope.getHeader());
+		applicationMsg.setAction(Constants.WSRM.ACTION_SEQ_ACK);
+		applicationMsg.setMessageId(SandeshaUtil.getUUID());
+
+	}
+
+	public static RMMsgContext createAckMessage(RMMsgContext applicationRMMsgCtx)
+			throws SandeshaException {
+		try {
+			MessageContext applicationMsgCtx = applicationRMMsgCtx
+					.getMessageContext();
+			MessageContext ackMsgCtx = SandeshaUtil
+					.shallowCopy(applicationMsgCtx);
+			ackMsgCtx.setServiceGroupContext(applicationMsgCtx
+					.getServiceGroupContext());
+			ackMsgCtx.setServiceGroupContextId(applicationMsgCtx
+					.getServiceGroupContextId());
+			ackMsgCtx.setServiceContext(applicationMsgCtx.getServiceContext());
+			ackMsgCtx.setServiceContextID(applicationMsgCtx
+					.getServiceContextID());
+
+			RMMsgContext ackRMMsgCtx = new RMMsgContext(ackMsgCtx);
+
+			//TODO set a suitable description
+			OperationContext ackOpCtx = new OperationContext(applicationMsgCtx
+					.getOperationDescription());
+
+			ackMsgCtx.setOperationContext(ackOpCtx);
+			ackOpCtx.addMessageContext(ackMsgCtx);
+
+			Sequence reqSequence = (Sequence) applicationRMMsgCtx
+					.getMessagePart(Constants.MessageParts.SEQUENCE);
+			if (reqSequence == null)
+				throw new SandeshaException(
+						"Sequence part of application message is null");
+
+			String sequenceId = reqSequence.getIdentifier().getIdentifier();
+
+			addAckMessage(ackRMMsgCtx, sequenceId);
+			return ackRMMsgCtx;
+		} catch (AxisFault e) {
+			throw new SandeshaException(e.getMessage());
+		}
+	}
+}
\ No newline at end of file

Added: webservices/sandesha/trunk/src/org/apache/sandesha2/util/SOAPAbstractFactory.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/util/SOAPAbstractFactory.java?rev=328267&view=auto
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/util/SOAPAbstractFactory.java (added)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/util/SOAPAbstractFactory.java Mon Oct 24 23:01:50 2005
@@ -0,0 +1,42 @@
+/*
+ * Copyright  1999-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.sandesha2.util;
+
+import org.apache.axis2.om.OMAbstractFactory;
+import org.apache.axis2.soap.SOAPFactory;
+import org.apache.sandesha2.Constants;
+import org.apache.sandesha2.Constants.SOAPVersion;
+
+/**
+ * @author Chamikara
+ * @author Sanka
+ * @author Jaliya 
+ */
+
+
+public class SOAPAbstractFactory {
+
+	public static SOAPFactory getSOAPFactory (int SOAPVersion) {
+		if (SOAPVersion==Constants.SOAPVersion.v1_1)
+			return OMAbstractFactory.getSOAP11Factory();
+		else if(SOAPVersion==Constants.SOAPVersion.v1_2)
+			return OMAbstractFactory.getSOAP12Factory();
+		else
+			return null;
+	}
+}

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaUtil.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaUtil.java?rev=328267&r1=328266&r2=328267&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaUtil.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaUtil.java Mon Oct 24 23:01:50 2005
@@ -53,11 +53,11 @@
 import org.apache.axis2.util.UUIDGenerator;
 import org.apache.commons.httpclient.NameValuePair;
 import org.apache.sandesha2.Constants;
-import org.apache.sandesha2.InOrderInvoker;
 import org.apache.sandesha2.RMMsgContext;
 import org.apache.sandesha2.SandeshaException;
-import org.apache.sandesha2.Sender;
 import org.apache.sandesha2.msgreceivers.RMMessageReceiver;
+import org.apache.sandesha2.workers.InOrderInvoker;
+import org.apache.sandesha2.workers.Sender;
 import org.apache.sandesha2.wsrm.AcknowledgementRange;
 
 /**

Added: webservices/sandesha/trunk/src/org/apache/sandesha2/util/SequenceManager.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/util/SequenceManager.java?rev=328267&view=auto
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/util/SequenceManager.java (added)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/util/SequenceManager.java Mon Oct 24 23:01:50 2005
@@ -0,0 +1,136 @@
+/*
+ * Created on Sep 5, 2005
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package org.apache.sandesha2.util;
+
+import java.util.ArrayList;
+
+import javax.naming.Context;
+
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.addressing.EndpointReference;
+import org.apache.axis2.context.AbstractContext;
+import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.context.MessageContext;
+import org.apache.sandesha2.Constants;
+import org.apache.sandesha2.RMMsgContext;
+import org.apache.sandesha2.SandeshaException;
+import org.apache.sandesha2.Constants.ClientProperties;
+import org.apache.sandesha2.Constants.MessageParts;
+import org.apache.sandesha2.Constants.SequenceProperties;
+import org.apache.sandesha2.Constants.WSA;
+import org.apache.sandesha2.handlers.SandeshaInHandler;
+import org.apache.sandesha2.storage.AbstractBeanMgrFactory;
+import org.apache.sandesha2.storage.beanmanagers.NextMsgBeanMgr;
+import org.apache.sandesha2.storage.beanmanagers.SequencePropertyBeanMgr;
+import org.apache.sandesha2.storage.beans.NextMsgBean;
+import org.apache.sandesha2.storage.beans.SequencePropertyBean;
+import org.apache.sandesha2.wsrm.AcksTo;
+import org.apache.sandesha2.wsrm.CreateSequence;
+
+/**
+ * @author Chamikara
+ * @author Sanka
+ * @author Jaliya
+ */
+public class SequenceManager {
+
+	public static String setupNewSequence(RMMsgContext createSequenceMsg) throws AxisFault {
+		//		SequencePropertyBean seqPropBean = new SequencePropertyBean
+		// (sequenceId,Constants.SEQ_PROPERTY_RECEIVED_MESSAGES,"");
+		//		SequencePropertyBeanMgr beanMgr = new SequencePropertyBeanMgr
+		// (Constants.DEFAULT_STORAGE_TYPE);
+		//		beanMgr.create(seqPropBean);
+
+		String sequenceId = SandeshaUtil.getUUID();
+		AbstractContext context = createSequenceMsg.getContext();
+		
+		EndpointReference to = createSequenceMsg.getTo();
+		if (to==null)
+			throw new AxisFault ("To is null");
+		
+		
+		EndpointReference replyTo = createSequenceMsg.getReplyTo();
+		if (replyTo == null)
+			throw new AxisFault("ReplyTo is null");
+
+		CreateSequence createSequence = (CreateSequence) createSequenceMsg
+				.getMessagePart(Constants.MessageParts.CREATE_SEQ);
+		if (createSequence == null)
+			throw new AxisFault("Create Sequence Part is null");
+
+		EndpointReference acksTo = createSequence.getAcksTo().getAddress()
+				.getEpr();
+
+		if (acksTo == null)
+			throw new AxisFault("AcksTo is null");
+
+		SequencePropertyBeanMgr seqPropMgr = AbstractBeanMgrFactory
+				.getInstance(context).getSequencePropretyBeanMgr();
+
+		//TODO - recheck following 
+		//incoming To - reply address of response messages
+		//imcoming replyTo - to address of response messages
+		SequencePropertyBean receivedMsgBean = new SequencePropertyBean(
+				sequenceId, Constants.SequenceProperties.RECEIVED_MESSAGES, "");
+		SequencePropertyBean toBean = new SequencePropertyBean (sequenceId,
+				Constants.SequenceProperties.TO_EPR,replyTo);
+		SequencePropertyBean replyToBean = new SequencePropertyBean(sequenceId,
+				Constants.SequenceProperties.REPLY_TO_EPR, to);
+		SequencePropertyBean acksToBean = new SequencePropertyBean(sequenceId,
+				Constants.SequenceProperties.ACKS_TO_EPR, acksTo);
+
+		seqPropMgr.insert(receivedMsgBean);
+		seqPropMgr.insert(toBean);
+		seqPropMgr.insert(replyToBean);
+		seqPropMgr.insert(acksToBean);
+
+		NextMsgBeanMgr nextMsgMgr = AbstractBeanMgrFactory.getInstance(context)
+				.getNextMsgBeanMgr();
+		nextMsgMgr.insert(new NextMsgBean(sequenceId, 1)); // 1 will be the next
+														   // message to invoke
+		//this will apply for only in-order invocations.
+		
+		return sequenceId;
+	}
+
+	public void removeSequence(String sequence) {
+
+	}
+	
+	public static void setupNewClientSequence (MessageContext firstAplicationMsgCtx, String tempSequenceId) throws SandeshaException {
+		
+		AbstractContext context = firstAplicationMsgCtx.getSystemContext();
+		SequencePropertyBeanMgr seqPropMgr = AbstractBeanMgrFactory.getInstance(context).getSequencePropretyBeanMgr();
+		
+		
+		EndpointReference toEPR = firstAplicationMsgCtx.getTo();
+		EndpointReference replyToEPR = firstAplicationMsgCtx.getReplyTo();
+		String acksTo = (String) firstAplicationMsgCtx.getProperty(Constants.ClientProperties.AcksTo);
+		
+		if (toEPR==null)
+			throw new SandeshaException ("WS-Addressing To is null");
+		
+		SequencePropertyBean toBean = new SequencePropertyBean (tempSequenceId, Constants.SequenceProperties.TO_EPR,toEPR);
+		
+		//Default value for acksTo is anonymous
+		if (acksTo==null)
+			acksTo = Constants.WSA.NS_URI_ANONYMOUS;
+		
+		EndpointReference acksToEPR = new EndpointReference (acksTo);
+		SequencePropertyBean acksToBean = new SequencePropertyBean (tempSequenceId, Constants.SequenceProperties.ACKS_TO_EPR,acksToEPR);
+		
+//		//TODO - make default for replyTo anonymous
+//		if (replyToEPR==null)
+//			replyToEPR = new EndpointReference (Constants.WSA.NS_URI_ANONYMOUS);
+		
+		seqPropMgr.insert(toBean);
+		seqPropMgr.insert(acksToBean);
+		
+		
+		
+	}
+}
\ No newline at end of file

Added: webservices/sandesha/trunk/src/org/apache/sandesha2/workers/InOrderInvoker.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/workers/InOrderInvoker.java?rev=328267&view=auto
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/workers/InOrderInvoker.java (added)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/workers/InOrderInvoker.java Mon Oct 24 23:01:50 2005
@@ -0,0 +1,159 @@
+/*
+ * Copyright  1999-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.sandesha2.workers;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.engine.AxisEngine;
+import org.apache.sandesha2.Constants;
+import org.apache.sandesha2.RMMsgContext;
+import org.apache.sandesha2.SandeshaException;
+import org.apache.sandesha2.Constants.MessageParts;
+import org.apache.sandesha2.Constants.SequenceProperties;
+import org.apache.sandesha2.storage.AbstractBeanMgrFactory;
+import org.apache.sandesha2.storage.beanmanagers.NextMsgBeanMgr;
+import org.apache.sandesha2.storage.beanmanagers.SequencePropertyBeanMgr;
+import org.apache.sandesha2.storage.beanmanagers.StorageMapBeanMgr;
+import org.apache.sandesha2.storage.beans.NextMsgBean;
+import org.apache.sandesha2.storage.beans.SequencePropertyBean;
+import org.apache.sandesha2.storage.beans.StorageMapBean;
+import org.apache.sandesha2.util.MsgInitializer;
+import org.apache.sandesha2.util.SandeshaUtil;
+import org.apache.sandesha2.wsrm.Sequence;
+import org.ietf.jgss.MessageProp;
+
+/**
+ * @author Chamikara
+ * @author Sanka
+ * @author Jaliya
+ */
+
+//TODO rename to Invoker
+public class InOrderInvoker extends Thread {
+	boolean invokerStarted = false;
+
+	ConfigurationContext context = null;
+
+	public synchronized void stopInvoker() {
+		invokerStarted = false;
+	}
+
+	public synchronized boolean isInvokerStarted() {
+		return invokerStarted;
+	}
+
+	public void setConfugurationContext(ConfigurationContext context) {
+		this.context = context;
+	}
+
+	public void start (ConfigurationContext context) {
+		invokerStarted = true;
+		this.context = context;
+		super.start();
+	}
+	
+	public void run() {
+
+		while (isInvokerStarted()) {
+
+			try {
+				Thread.sleep(1000);
+			} catch (InterruptedException ex) {
+				System.out.println("Invoker was Inturrepted....");
+			}
+			
+
+			try {
+				NextMsgBeanMgr nextMsgMgr = AbstractBeanMgrFactory.getInstance(
+						context).getNextMsgBeanMgr();
+
+				StorageMapBeanMgr storageMapMgr = AbstractBeanMgrFactory
+						.getInstance(context).getStorageMapBeanMgr();
+				
+				SequencePropertyBeanMgr sequencePropMgr = AbstractBeanMgrFactory
+						.getInstance(context).getSequencePropretyBeanMgr();
+
+				
+				
+				//Getting the incomingSequenceIdList
+				SequencePropertyBean sequencePropertyBean = (SequencePropertyBean) sequencePropMgr.retrieve(Constants.SequenceProperties.ALL_SEQUENCES,Constants.SequenceProperties.INCOMING_SEQUENCE_LIST);
+				if (sequencePropertyBean==null)
+					continue;
+				
+				
+				ArrayList seqPropList = (ArrayList) sequencePropertyBean.getValue();
+				Iterator seqPropIt = seqPropList.iterator();
+				
+				while (seqPropIt.hasNext()){
+					
+					String sequenceId = (String) seqPropIt.next();
+					
+					NextMsgBean nextMsgBean = nextMsgMgr.retrieve(sequenceId);
+					if (nextMsgBean==null) 
+						throw new SandeshaException ("Next message not set correctly");
+					
+					long nextMsgno = nextMsgBean.getNextMsgNoToProcess();
+					if (nextMsgno<=0)
+						throw new SandeshaException ("Invalid messaage number for the nextMsgNo");
+					
+					Iterator stMapIt = storageMapMgr.find(new StorageMapBean (null,nextMsgno,sequenceId)).iterator();
+					
+					while (stMapIt.hasNext()) {
+						
+						StorageMapBean stMapBean = (StorageMapBean) stMapIt.next();
+						String key = stMapBean.getKey();
+					
+						MessageContext msgToInvoke = SandeshaUtil.getStoredMessageContext(key);
+					
+						//removing the storage map entry.
+						storageMapMgr.delete(key);
+					
+						RMMsgContext rmMsg = MsgInitializer.initializeMessage(msgToInvoke);
+						Sequence seq = (Sequence) rmMsg.getMessagePart(Constants.MessageParts.SEQUENCE);
+						long msgNo = seq.getMessageNumber().getMessageNumber();
+					
+						System.out.println("Invoking message number " + msgNo + " of the sequence " + sequenceId);
+						try {
+							//Invoking the message.
+							new AxisEngine (msgToInvoke.getSystemContext()).receive(msgToInvoke);
+						} catch (AxisFault e) {
+							throw new SandeshaException (e.getMessage());
+						}
+								
+						//undating the next mst to invoke
+						nextMsgno++;
+						stMapIt = storageMapMgr.find(new StorageMapBean (null,nextMsgno,sequenceId)).iterator();
+					}
+				    
+					nextMsgBean.setNextMsgNoToProcess(nextMsgno);
+					nextMsgMgr.update(nextMsgBean);
+				}
+			} catch (SandeshaException e1) {
+				// TODO Auto-generated catch block
+				e1.printStackTrace();
+			}
+		}
+	}
+}
\ No newline at end of file

Added: webservices/sandesha/trunk/src/org/apache/sandesha2/workers/Sender.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/workers/Sender.java?rev=328267&view=auto
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/workers/Sender.java (added)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/workers/Sender.java Mon Oct 24 23:01:50 2005
@@ -0,0 +1,212 @@
+/*
+ * Copyright 1999-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.sandesha2.workers;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.Collection;
+import java.util.Iterator;
+
+import javax.xml.stream.FactoryConfigurationError;
+import javax.xml.stream.XMLOutputFactory;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.clientapi.Call;
+import org.apache.axis2.clientapi.InOutMEPClient;
+import org.apache.axis2.clientapi.MessageSender;
+import org.apache.axis2.clientapi.TwoWayTransportBasedSender;
+import org.apache.axis2.context.AbstractContext;
+import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.context.OperationContext;
+import org.apache.axis2.description.OperationDescription;
+import org.apache.axis2.engine.AxisEngine;
+import org.apache.axis2.i18n.Messages;
+import org.apache.axis2.om.OMException;
+import org.apache.axis2.soap.SOAPEnvelope;
+import org.apache.axis2.transport.TransportUtils;
+import org.apache.axis2.wsdl.WSDLConstants;
+import org.apache.sandesha2.Constants;
+import org.apache.sandesha2.RMMsgContext;
+import org.apache.sandesha2.SandeshaException;
+import org.apache.sandesha2.Constants.MessageTypes;
+import org.apache.sandesha2.client.SandeshaMepClient;
+import org.apache.sandesha2.msgreceivers.RMMessageReceiver;
+import org.apache.sandesha2.storage.AbstractBeanMgrFactory;
+import org.apache.sandesha2.storage.beanmanagers.RetransmitterBeanMgr;
+import org.apache.sandesha2.storage.beans.RetransmitterBean;
+import org.apache.sandesha2.util.MsgInitializer;
+import org.apache.sandesha2.util.SandeshaUtil;
+import org.apache.sandesha2.wsrm.Sequence;
+
+/**
+ * @author Chamikara
+ * @author Sanka
+ */
+
+public class Sender extends Thread {
+
+	private boolean senderStarted = false;
+
+	private ConfigurationContext context = null;
+
+	public synchronized void stopSender() {
+		senderStarted = false;
+	}
+
+	public synchronized boolean isSenderStarted() {
+		return senderStarted;
+	}
+
+	public void run() {
+
+		while (senderStarted) {
+			try {
+				if (context == null)
+					throw new SandeshaException(
+							"Can't continue the Sender. Context is null");
+			} catch (SandeshaException e) {
+				e.printStackTrace();
+				return;
+			}
+
+			RetransmitterBeanMgr mgr = AbstractBeanMgrFactory.getInstance(
+					context).getRetransmitterBeanMgr();
+			Collection coll = mgr.findMsgsToSend();
+			Iterator iter = coll.iterator();
+			while (iter.hasNext()) {
+				RetransmitterBean bean = (RetransmitterBean) iter.next();
+				String key = (String) bean.getKey();
+				MessageContext msgCtx = SandeshaUtil
+						.getStoredMessageContext(key);
+
+				try {
+					RMMsgContext rmMsgCtx = MsgInitializer
+							.initializeMessage(msgCtx);
+					updateMessage(msgCtx);
+
+					new AxisEngine(context).send(msgCtx);
+					//if (!msgCtx.isServerSide())
+						checkForSyncResponses(msgCtx);
+
+				} catch (AxisFault e1) {
+					e1.printStackTrace();
+				} catch (SandeshaException e2) {
+					e2.printStackTrace();
+				}
+
+				//changing the values of the sent bean.
+				bean.setLastSentTime(System.currentTimeMillis());
+				bean.setSentCount(bean.getSentCount() + 1);
+
+				//update if resend=true otherwise delete. (reSend=false means
+				// send only once).
+				if (bean.isReSend())
+					mgr.update(bean);
+				else
+					mgr.delete(bean.getMessageId());
+
+			}
+
+			try {
+				Thread.sleep(2000);
+			} catch (InterruptedException e1) {
+				//e1.printStackTrace();
+				System.out.println("Sender was interupted...");
+			}
+		}
+
+	}
+
+	private boolean isResponseExpected(RMMsgContext rmMsgCtx) {
+		boolean responseExpected = false;
+
+		if (rmMsgCtx.getMessageType() == Constants.MessageTypes.CREATE_SEQ) {
+			responseExpected = true;
+		}
+		if (rmMsgCtx.getMessageType() == Constants.MessageTypes.APPLICATION) {
+			//a ack may arrive. (not a application response)
+			if (rmMsgCtx.getMessageContext().getOperationDescription()
+					.getMessageExchangePattern().equals(
+							org.apache.wsdl.WSDLConstants.MEP_URI_IN_OUT)) {
+				responseExpected = true;
+			}
+		}
+
+		return true;
+	}
+
+	public void start(ConfigurationContext context) {
+		senderStarted = true;
+		this.context = context;
+		super.start();
+	}
+
+	private void updateMessage(MessageContext msgCtx1) throws SandeshaException {
+		try {
+			RMMsgContext rmMsgCtx1 = MsgInitializer.initializeMessage(msgCtx1);
+			rmMsgCtx1.addSOAPEnvelope();
+
+		} catch (AxisFault e) {
+			throw new SandeshaException("Exception in updating contexts");
+		}
+
+	}
+
+	private void checkForSyncResponses(MessageContext msgCtx) throws AxisFault {
+
+		boolean responsePresent = (msgCtx
+				.getProperty(MessageContext.TRANSPORT_IN) != null);
+
+		if (responsePresent) {
+			//create the response
+			MessageContext response = new MessageContext(msgCtx
+					.getSystemContext(), msgCtx.getSessionContext(), msgCtx
+					.getTransportIn(), msgCtx.getTransportOut());
+			response.setProperty(MessageContext.TRANSPORT_IN, msgCtx
+					.getProperty(MessageContext.TRANSPORT_IN));
+
+			response.setServerSide(false);
+
+			//If request is REST we assume the response is REST, so set the
+			// variable
+			response.setDoingREST(msgCtx.isDoingREST());
+			response.setServiceGroupContextId(msgCtx.getServiceGroupContextId());
+			response.setServiceGroupContext(msgCtx.getServiceGroupContext());
+			response.setServiceContext(msgCtx.getServiceContext());
+			response.setServiceDescription(msgCtx.getServiceDescription());
+			response.setServiceGroupDescription(msgCtx.getServiceGroupDescription());
+			
+			//Changed following from TransportUtils to SandeshaUtil since op. context is anavailable.
+			SOAPEnvelope resenvelope = null;
+			try {
+				resenvelope = SandeshaUtil.createSOAPMessage(
+						response, msgCtx.getEnvelope().getNamespace().getName());
+			} catch (AxisFault e) {
+				//TODO: change to log.debug
+			}
+			
+			if (resenvelope != null) {
+				AxisEngine engine = new AxisEngine(msgCtx.getSystemContext());
+				response.setEnvelope(resenvelope);
+				engine.receive(response);
+			} 
+		}
+	}
+
+}
\ No newline at end of file

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/Accept.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/Accept.java?rev=328267&r1=328266&r2=328267&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/Accept.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/Accept.java Mon Oct 24 23:01:50 2005
@@ -27,7 +27,7 @@
 import org.apache.axis2.om.OMNamespace;
 import org.apache.axis2.soap.SOAPEnvelope;
 import org.apache.sandesha2.Constants;
-import org.apache.sandesha2.SOAPAbstractFactory;
+import org.apache.sandesha2.util.SOAPAbstractFactory;
 
 /**
  * @author Saminda

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/AckRequested.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/AckRequested.java?rev=328267&r1=328266&r2=328267&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/AckRequested.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/AckRequested.java Mon Oct 24 23:01:50 2005
@@ -26,7 +26,7 @@
 import org.apache.axis2.soap.SOAPHeader;
 import org.apache.axis2.soap.SOAPHeaderBlock;
 import org.apache.sandesha2.Constants;
-import org.apache.sandesha2.SOAPAbstractFactory;
+import org.apache.sandesha2.util.SOAPAbstractFactory;
 
 /**
  * @author Saminda

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/AcknowledgementRange.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/AcknowledgementRange.java?rev=328267&r1=328266&r2=328267&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/AcknowledgementRange.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/AcknowledgementRange.java Mon Oct 24 23:01:50 2005
@@ -33,7 +33,7 @@
 import org.apache.axis2.om.OMNode;
 import org.apache.axis2.soap.SOAPEnvelope;
 import org.apache.sandesha2.Constants;
-import org.apache.sandesha2.SOAPAbstractFactory;
+import org.apache.sandesha2.util.SOAPAbstractFactory;
 
 /**
  * @author Saminda

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/AcksTo.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/AcksTo.java?rev=328267&r1=328266&r2=328267&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/AcksTo.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/AcksTo.java Mon Oct 24 23:01:50 2005
@@ -31,7 +31,7 @@
 import org.apache.axis2.om.OMNode;
 import org.apache.axis2.soap.SOAPEnvelope;
 import org.apache.sandesha2.Constants;
-import org.apache.sandesha2.SOAPAbstractFactory;
+import org.apache.sandesha2.util.SOAPAbstractFactory;
 
 /**
  * @author Saminda

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/Address.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/Address.java?rev=328267&r1=328266&r2=328267&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/Address.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/Address.java Mon Oct 24 23:01:50 2005
@@ -16,7 +16,7 @@
 import org.apache.axis2.om.OMException;
 import org.apache.axis2.om.OMNamespace;
 import org.apache.sandesha2.Constants;
-import org.apache.sandesha2.SOAPAbstractFactory;
+import org.apache.sandesha2.util.SOAPAbstractFactory;
 
 /**
  * @author Saminda

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/CreateSequence.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/CreateSequence.java?rev=328267&r1=328266&r2=328267&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/CreateSequence.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/CreateSequence.java Mon Oct 24 23:01:50 2005
@@ -28,7 +28,7 @@
 import org.apache.axis2.soap.SOAPBody;
 import org.apache.axis2.soap.SOAPEnvelope;
 import org.apache.sandesha2.Constants;
-import org.apache.sandesha2.SOAPAbstractFactory;
+import org.apache.sandesha2.util.SOAPAbstractFactory;
 
 /**
  * @author Saminda

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/CreateSequenceResponse.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/CreateSequenceResponse.java?rev=328267&r1=328266&r2=328267&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/CreateSequenceResponse.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/CreateSequenceResponse.java Mon Oct 24 23:01:50 2005
@@ -25,7 +25,7 @@
 import org.apache.axis2.soap.SOAPBody;
 import org.apache.axis2.soap.SOAPEnvelope;
 import org.apache.sandesha2.Constants;
-import org.apache.sandesha2.SOAPAbstractFactory;
+import org.apache.sandesha2.util.SOAPAbstractFactory;
 
 /**
  * @author Saminda

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/Expires.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/Expires.java?rev=328267&r1=328266&r2=328267&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/Expires.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/Expires.java Mon Oct 24 23:01:50 2005
@@ -24,7 +24,7 @@
 import org.apache.axis2.om.OMException;
 import org.apache.axis2.om.OMNamespace;
 import org.apache.sandesha2.Constants;
-import org.apache.sandesha2.SOAPAbstractFactory;
+import org.apache.sandesha2.util.SOAPAbstractFactory;
 
 /**
  * @author Saminda

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/FaultCode.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/FaultCode.java?rev=328267&r1=328266&r2=328267&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/FaultCode.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/FaultCode.java Mon Oct 24 23:01:50 2005
@@ -24,7 +24,7 @@
 import org.apache.axis2.om.OMNamespace;
 import org.apache.axis2.soap.SOAPEnvelope;
 import org.apache.sandesha2.Constants;
-import org.apache.sandesha2.SOAPAbstractFactory;
+import org.apache.sandesha2.util.SOAPAbstractFactory;
 
 /**
  * @author Saminda

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/Identifier.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/Identifier.java?rev=328267&r1=328266&r2=328267&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/Identifier.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/Identifier.java Mon Oct 24 23:01:50 2005
@@ -37,7 +37,7 @@
 import org.apache.axis2.om.OMNode;
 import org.apache.axis2.soap.SOAPEnvelope;
 import org.apache.sandesha2.Constants;
-import org.apache.sandesha2.SOAPAbstractFactory;
+import org.apache.sandesha2.util.SOAPAbstractFactory;
 
 public class Identifier implements Constants, IOMRMElement {
 

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/LastMessage.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/LastMessage.java?rev=328267&r1=328266&r2=328267&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/LastMessage.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/LastMessage.java Mon Oct 24 23:01:50 2005
@@ -27,7 +27,7 @@
 import org.apache.axis2.om.OMNode;
 import org.apache.axis2.soap.SOAPEnvelope;
 import org.apache.sandesha2.Constants;
-import org.apache.sandesha2.SOAPAbstractFactory;
+import org.apache.sandesha2.util.SOAPAbstractFactory;
 
 /**
  * @author Saminda



---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org