Author: chamikara
Date: Wed Mar  8 22:28:27 2006
New Revision: 384448

URL: http://svn.apache.org/viewcvs?rev=384448&view=rev
Log:
Correcttions to the RM reporting functionality.
Big fixes

Added:
    webservices/sandesha/trunk/src/org/apache/sandesha2/client/reports/
    
webservices/sandesha/trunk/src/org/apache/sandesha2/client/reports/RMReport.java
    
webservices/sandesha/trunk/src/org/apache/sandesha2/client/reports/SequenceReport.java
Modified:
    
webservices/sandesha/trunk/src/org/apache/sandesha2/AcknowledgementManager.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/Sandesha2Constants.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/TerminateManager.java
    
webservices/sandesha/trunk/src/org/apache/sandesha2/client/Sandesha2ClientAPI.java
    
webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaInHandler.java
    
webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqResponseMsgProcessor.java
    
webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/util/FaultManager.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaUtil.java
    
webservices/sandesha/trunk/src/org/apache/sandesha2/util/SequenceManager.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/workers/Sender.java

Modified: 
webservices/sandesha/trunk/src/org/apache/sandesha2/AcknowledgementManager.java
URL: 
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/AcknowledgementManager.java?rev=384448&r1=384447&r2=384448&view=diff
==============================================================================
--- 
webservices/sandesha/trunk/src/org/apache/sandesha2/AcknowledgementManager.java 
(original)
+++ 
webservices/sandesha/trunk/src/org/apache/sandesha2/AcknowledgementManager.java 
Wed Mar  8 22:28:27 2006
@@ -162,29 +162,43 @@
         * @param outGoingMessage
         * @return
         */
-       public static ArrayList getClientCompletedMessagesList (String 
sequenceIdentifier,ConfigurationContext configurationContext) throws 
SandeshaException {
-               StorageManager storageManager = 
SandeshaUtil.getSandeshaStorageManager(configurationContext);
-               
-               SequencePropertyBeanMgr sequencePropertyBeanMgr = 
storageManager.getSequencePropretyBeanMgr();
-               
+       public static ArrayList getClientCompletedMessagesList (String 
sequenceID,SequencePropertyBeanMgr seqPropMgr) throws SandeshaException {
+       
                //first trying to get it from the internal sequence id.
-               SequencePropertyBean internalSequenceBean = 
sequencePropertyBeanMgr.retrieve(sequenceIdentifier,Sandesha2Constants.SequenceProperties.INTERNAL_SEQUENCE_ID);
+               SequencePropertyBean internalSequenceBean = 
seqPropMgr.retrieve(sequenceID,Sandesha2Constants.SequenceProperties.INTERNAL_SEQUENCE_ID);
                String internalSequenceID = null;
                if (internalSequenceBean!=null)
                        internalSequenceID = internalSequenceBean.getValue();
                
                SequencePropertyBean completedMessagesBean = null;
                if (internalSequenceID!=null)
-                       completedMessagesBean = 
sequencePropertyBeanMgr.retrieve(internalSequenceID,Sandesha2Constants.SequenceProperties.CLIENT_COMPLETED_MESSAGES);
+                       completedMessagesBean = 
seqPropMgr.retrieve(internalSequenceID,Sandesha2Constants.SequenceProperties.CLIENT_COMPLETED_MESSAGES);
                
                if (completedMessagesBean==null)
-                       completedMessagesBean = 
sequencePropertyBeanMgr.retrieve(sequenceIdentifier,Sandesha2Constants.SequenceProperties.CLIENT_COMPLETED_MESSAGES);
+                       completedMessagesBean = 
seqPropMgr.retrieve(sequenceID,Sandesha2Constants.SequenceProperties.CLIENT_COMPLETED_MESSAGES);
+               
+               ArrayList completedMsgList = null;
+               if (completedMessagesBean!=null) {
+                       completedMsgList = 
SandeshaUtil.getArrayListFromString(completedMessagesBean.getValue());
+               } else {
+                       String message = "Completed messages bean is null, for 
the sequence " + sequenceID;
+                       throw new SandeshaException (message);
+               }
+               
+               return completedMsgList;
+       }
+       
+       public static ArrayList getServerCompletedMessagesList (String 
sequenceID,SequencePropertyBeanMgr seqPropMgr) throws SandeshaException {
+                               
+               SequencePropertyBean completedMessagesBean = null;
+
+               completedMessagesBean = 
seqPropMgr.retrieve(sequenceID,Sandesha2Constants.SequenceProperties.SERVER_COMPLETED_MESSAGES);
                
                ArrayList completedMsgList = null;
                if (completedMessagesBean!=null) {
                        completedMsgList = 
SandeshaUtil.getArrayListFromString(completedMessagesBean.getValue());
                } else {
-                       String message = "Completed messages bean is null, for 
the sequence " + sequenceIdentifier;
+                       String message = "Completed messages bean is null, for 
the sequence " + sequenceID;
                        throw new SandeshaException (message);
                }
                

Modified: 
webservices/sandesha/trunk/src/org/apache/sandesha2/Sandesha2Constants.java
URL: 
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/Sandesha2Constants.java?rev=384448&r1=384447&r2=384448&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/Sandesha2Constants.java 
(original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/Sandesha2Constants.java 
Wed Mar  8 22:28:27 2006
@@ -272,12 +272,17 @@
                
                String SEQUENCE_CLOSED = "SequenceClosed";
                
-               String LAST_MESSAGE = "LastMessage";
+               String SEQUENCE_TERMINATED = "SequenceTerminated";
+               
+               String SEQUENCE_TIMED_OUT = "SequenceTimedOut";
                
+               String LAST_MESSAGE = "LastMessage";
 
                String REQUEST_SIDE_SEQUENCE_ID = "RequestSideSequenceID";      
        //used only at the server side
                
                String HIGHEST_MSG_NO = "HighestMessageNumber";
+               
+               
        }
 
        public interface SOAPVersion {

Modified: 
webservices/sandesha/trunk/src/org/apache/sandesha2/TerminateManager.java
URL: 
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/TerminateManager.java?rev=384448&r1=384447&r2=384448&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/TerminateManager.java 
(original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/TerminateManager.java 
Wed Mar  8 22:28:27 2006
@@ -33,7 +33,7 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.sandesha2.client.Sandesha2ClientAPI;
-import org.apache.sandesha2.client.SequenceReport;
+import org.apache.sandesha2.client.reports.SequenceReport;
 import org.apache.sandesha2.storage.StorageManager;
 import org.apache.sandesha2.storage.Transaction;
 import org.apache.sandesha2.storage.beanmanagers.CreateSeqBeanMgr;
@@ -191,10 +191,82 @@
                
                StorageManager storageManager = 
SandeshaUtil.getSandeshaStorageManager(configContext);
                
+               SequencePropertyBeanMgr seqPropMgr = 
storageManager.getSequencePropretyBeanMgr();
+               SequencePropertyBean seqTerminatedBean = new 
SequencePropertyBean 
(sequenceID,Sandesha2Constants.SequenceProperties.SEQUENCE_TERMINATED,Sandesha2Constants.VALUE_TRUE);
+               seqPropMgr.insert(seqTerminatedBean);
+               
+               cleanSendingSideData(configContext,sequenceID,serverSide);
+               
+               
+       }
+       
+       
+       
+       private static void doUpdatesIfNeeded (String sequenceID, 
SequencePropertyBean propertyBean, SequencePropertyBeanMgr seqPropMgr) throws 
SandeshaException {
+               if 
(propertyBean.getName().equals(Sandesha2Constants.SequenceProperties.CLIENT_COMPLETED_MESSAGES))
 {
+                       
+                       //this value cannot be completely deleted since this 
data will be needed by SequenceReports
+                       //so saving it with the sequenceID value being the out 
sequenceID.
+                       
+                       SequencePropertyBean newBean = new SequencePropertyBean 
();
+                       newBean.setSequenceID(sequenceID);
+                       newBean.setName(propertyBean.getName());
+                       newBean.setValue(propertyBean.getValue());
+
+                       seqPropMgr.insert(newBean);
+                       //TODO amazingly this property does not seem to get 
deleted without following - in the hibernate impl 
+                       //(even though the lines efter current methodcall do 
this).
+                       seqPropMgr.delete 
(propertyBean.getSequenceID(),propertyBean.getName());                        
+               }
+       }
+       
+       private static boolean isProportyDeletable (String name) {
+               boolean deleatable = true;
+                               
+               if 
(Sandesha2Constants.SequenceProperties.TERMINATE_ADDED.equals(name))
+                       deleatable = false;
+               
+               if 
(Sandesha2Constants.SequenceProperties.NO_OF_OUTGOING_MSGS_ACKED.equals(name))
+                       deleatable = false;
+               
+               if 
(Sandesha2Constants.SequenceProperties.INTERNAL_SEQUENCE_ID.equals(name))
+                       deleatable = false;
+               
+               if 
(Sandesha2Constants.SequenceProperties.RM_SPEC_VERSION.equals(name))
+                       deleatable = false;
+               
+               if 
(Sandesha2Constants.SequenceProperties.SEQUENCE_TERMINATED.equals(name))
+                       deleatable = false;
+               
+               if 
(Sandesha2Constants.SequenceProperties.SEQUENCE_CLOSED.equals(name))
+                       deleatable = false;
+               
+               if 
(Sandesha2Constants.SequenceProperties.SEQUENCE_TIMED_OUT.equals(name))
+                       deleatable = false;
+               
+               return deleatable;
+       }
+       
+       public static void timeOutSendingSideSequence (ConfigurationContext 
context,String sequenceID, boolean serverside) throws SandeshaException {
+               StorageManager storageManager = 
SandeshaUtil.getSandeshaStorageManager(context);
+               
+               SequencePropertyBeanMgr seqPropMgr = 
storageManager.getSequencePropretyBeanMgr();
+               SequencePropertyBean seqTerminatedBean = new 
SequencePropertyBean 
(sequenceID,Sandesha2Constants.SequenceProperties.SEQUENCE_TIMED_OUT,Sandesha2Constants.VALUE_TRUE);
+               seqPropMgr.insert(seqTerminatedBean);
+               
+               
+               cleanSendingSideData(context,sequenceID,serverside);
+       }
+       
+       private static void cleanSendingSideData (ConfigurationContext 
configContext,String sequenceID, boolean serverSide) throws SandeshaException {
+               StorageManager storageManager = 
SandeshaUtil.getSandeshaStorageManager(configContext);
+               
                SequencePropertyBeanMgr sequencePropertyBeanMgr = 
storageManager.getSequencePropretyBeanMgr();
                SenderBeanMgr retransmitterBeanMgr = 
storageManager.getRetransmitterBeanMgr();
                CreateSeqBeanMgr createSeqBeanMgr = 
storageManager.getCreateSeqBeanMgr();
                
+               SequencePropertyBean sequenceTerminatedBean = new 
SequencePropertyBean 
(sequenceID,Sandesha2Constants.SequenceProperties.SEQUENCE_TERMINATED,Sandesha2Constants.VALUE_TRUE);
+               sequencePropertyBeanMgr.insert(sequenceTerminatedBean);
                
                if (!serverSide) {
                        //stpoing the listner for the client side.      
@@ -214,7 +286,6 @@
                                        }
                                }
                        }
-                       
                }
                
                SequencePropertyBean internalSequenceBean = 
sequencePropertyBeanMgr.retrieve(sequenceID,Sandesha2Constants.SequenceProperties.INTERNAL_SEQUENCE_ID);
@@ -258,43 +329,6 @@
                }
                
                SandeshaUtil.stopSenderForTheSequence(internalSequenceId);
-               
-       }
-       
-       private static void doUpdatesIfNeeded (String sequenceID, 
SequencePropertyBean propertyBean, SequencePropertyBeanMgr seqPropMgr) throws 
SandeshaException {
-               if 
(propertyBean.getName().equals(Sandesha2Constants.SequenceProperties.CLIENT_COMPLETED_MESSAGES))
 {
-                       
-                       //this value cannot be completely deleted since this 
data will be needed by SequenceReports
-                       //so saving it with the sequenceID value being the out 
sequenceID.
-                       
-                       SequencePropertyBean newBean = new SequencePropertyBean 
();
-                       newBean.setSequenceID(sequenceID);
-                       newBean.setName(propertyBean.getName());
-                       newBean.setValue(propertyBean.getValue());
-
-                       seqPropMgr.insert(newBean);
-                       //TODO amazingly this property does not seem to get 
deleted without following - in the hibernate impl 
-                       //(even though the lines efter current methodcall do 
this).
-                       seqPropMgr.delete 
(propertyBean.getSequenceID(),propertyBean.getName());                        
-               }
-       }
-       
-       private static boolean isProportyDeletable (String name) {
-               boolean deleatable = true;
-                               
-               if 
(Sandesha2Constants.SequenceProperties.TERMINATE_ADDED.equals(name))
-                       deleatable = false;
-               
-               if 
(Sandesha2Constants.SequenceProperties.NO_OF_OUTGOING_MSGS_ACKED.equals(name))
-                       deleatable = false;
-               
-               if 
(Sandesha2Constants.SequenceProperties.INTERNAL_SEQUENCE_ID.equals(name))
-                       deleatable = false;
-               
-               if 
(Sandesha2Constants.SequenceProperties.RM_SPEC_VERSION.equals(name))
-                       deleatable = false;
-               
-               return deleatable;
        }
        
 

Modified: 
webservices/sandesha/trunk/src/org/apache/sandesha2/client/Sandesha2ClientAPI.java
URL: 
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/client/Sandesha2ClientAPI.java?rev=384448&r1=384447&r2=384448&view=diff
==============================================================================
--- 
webservices/sandesha/trunk/src/org/apache/sandesha2/client/Sandesha2ClientAPI.java
 (original)
+++ 
webservices/sandesha/trunk/src/org/apache/sandesha2/client/Sandesha2ClientAPI.java
 Wed Mar  8 22:28:27 2006
@@ -17,38 +17,28 @@
 package org.apache.sandesha2.client;
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Iterator;
 
-import org.apache.axis2.AxisFault;
-import org.apache.axis2.addressing.EndpointReference;
-import org.apache.axis2.client.ServiceClient;
 import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.context.MessageContextConstants;
-import org.apache.axis2.description.TransportOutDescription;
-import org.apache.axis2.engine.AxisEngine;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.sandesha2.AcknowledgementManager;
-import org.apache.sandesha2.RMMsgContext;
 import org.apache.sandesha2.Sandesha2Constants;
 import org.apache.sandesha2.SandeshaException;
-import org.apache.sandesha2.SpecSpecificConstants;
-import org.apache.sandesha2.TerminateManager;
-import org.apache.sandesha2.msgprocessors.AcknowledgementProcessor;
+import org.apache.sandesha2.client.reports.RMReport;
+import org.apache.sandesha2.client.reports.SequenceReport;
 import org.apache.sandesha2.storage.StorageManager;
 import org.apache.sandesha2.storage.Transaction;
-import org.apache.sandesha2.storage.beanmanagers.SenderBeanMgr;
+import org.apache.sandesha2.storage.beanmanagers.CreateSeqBeanMgr;
+import org.apache.sandesha2.storage.beanmanagers.NextMsgBeanMgr;
 import org.apache.sandesha2.storage.beanmanagers.SequencePropertyBeanMgr;
-import org.apache.sandesha2.storage.beans.SenderBean;
+import org.apache.sandesha2.storage.beans.CreateSeqBean;
+import org.apache.sandesha2.storage.beans.NextMsgBean;
 import org.apache.sandesha2.storage.beans.SequencePropertyBean;
-import org.apache.sandesha2.transport.Sandesha2TransportOutDesc;
-import org.apache.sandesha2.util.RMMsgCreator;
 import org.apache.sandesha2.util.SandeshaUtil;
 import org.apache.sandesha2.util.SequenceManager;
 
-import com.sun.corba.se.internal.core.ServiceContext;
-
 /**
  * Contains all the Sandesha2Constants of Sandesha2.
  * Please see sub-interfaces to see grouped data.
@@ -72,46 +62,153 @@
        public static String VALUE_FALSE = "false";
        
        public static SequenceReport getOutgoingSequenceReport (String 
internalSequenceID,ConfigurationContext configurationContext) throws 
SandeshaException {
-       SequenceReport sequenceReport = new SequenceReport ();
+               
+               SequenceReport sequenceReport = new SequenceReport ();
+               
sequenceReport.setSequenceDirection(SequenceReport.SEQUENCE_DIRECTION_OUT);
                
                StorageManager storageManager = 
SandeshaUtil.getSandeshaStorageManager(configurationContext);
-               SequencePropertyBeanMgr seqpPropMgr = 
storageManager.getSequencePropretyBeanMgr();
+               SequencePropertyBeanMgr seqPropMgr = 
storageManager.getSequencePropretyBeanMgr();
+               CreateSeqBeanMgr createSeqMgr = 
storageManager.getCreateSeqBeanMgr();
                
                Transaction reportTransaction = storageManager.getTransaction();
-               SequencePropertyBean findBean =  new SequencePropertyBean ();
-               
findBean.setName(Sandesha2Constants.SequenceProperties.INTERNAL_SEQUENCE_ID);
-               findBean.setValue(internalSequenceID);
-               SequencePropertyBean internalSequenceBean = 
seqpPropMgr.findUnique(findBean);
                
+               CreateSeqBean createSeqFindBean = new CreateSeqBean ();
+               createSeqFindBean.setInternalSequenceID(internalSequenceID);
+               
+               CreateSeqBean createSeqBean = 
createSeqMgr.findUnique(createSeqFindBean);
+               
+               if (createSeqBean==null) {
+                       //check weather this is an terminated sequence.
+                       if 
(isTerminatedSequence(internalSequenceID,seqPropMgr)) {
+                               fillTerminatedOutgoingSequenceInfo 
(sequenceReport,internalSequenceID,seqPropMgr);
+                               
+                               return sequenceReport;
+                       }
+                       
+                       if (isTimedOutSequence(internalSequenceID,seqPropMgr)) {
+                               fillTimedoutOutgoingSequenceInfo 
(sequenceReport,internalSequenceID,seqPropMgr);
+                               
+                               return sequenceReport;
+                       }
+                       
+                       String message = "Unrecorder internalSequenceID";
+                       log.debug(message);
+                       return null;
+               }
+               
+               String outSequenceID = createSeqBean.getSequenceID();
+               if (outSequenceID==null) {
+                        
sequenceReport.setInternalSequenceID(internalSequenceID);
+                        
sequenceReport.setSequenceStatus(SequenceReport.SEQUENCE_STATUS_INITIAL);
+                        
sequenceReport.setSequenceDirection(SequenceReport.SEQUENCE_DIRECTION_OUT);
+                        
+                        return sequenceReport;
+               }
+               
+               
sequenceReport.setSequenceStatus(SequenceReport.SEQUENCE_STATUS_ESTABLISHED);
+               
+               
fillOutgoingSequenceInfo(sequenceReport,outSequenceID,seqPropMgr);
+               
+               reportTransaction.commit();
+               
+               return sequenceReport;  
+       }
+       
+       private static boolean isTerminatedSequence (String internalSequenceID, 
SequencePropertyBeanMgr seqPropMgr) throws SandeshaException { 
+               SequencePropertyBean internalSequenceFindBean = new 
SequencePropertyBean ();
+               internalSequenceFindBean.setValue(internalSequenceID);
+               
internalSequenceFindBean.setName(Sandesha2Constants.SequenceProperties.INTERNAL_SEQUENCE_ID);
+               
+               SequencePropertyBean internalSequenceBean = 
seqPropMgr.findUnique(internalSequenceFindBean);
                if (internalSequenceBean==null) {
-                       log.debug("internal sequence bean is null.");
-                       throw new SandeshaException ("Data not available to 
give the sequence report");
+                       String message = "Internal sequence Bean is not 
available for the given sequence";
+                       log.debug (message);
+                       
+                       return false;
+               }
+               
+               String outSequenceID = internalSequenceBean.getSequenceID();
+       
+               SequencePropertyBean sequenceTerminatedBean = 
seqPropMgr.retrieve(outSequenceID,Sandesha2Constants.SequenceProperties.SEQUENCE_TERMINATED);
+               if (sequenceTerminatedBean!=null && 
Sandesha2Constants.VALUE_TRUE.equals(sequenceTerminatedBean.getValue())) {
+                       return true;
                }
                
-               String sequenceID = internalSequenceBean.getSequenceID();
+               return false;
                
-               //finding the actual seq
-               ArrayList completedMessageList =  
AcknowledgementManager.getClientCompletedMessagesList 
(sequenceID,configurationContext);
+       }
+       
+       private static boolean isTimedOutSequence (String internalSequenceID, 
SequencePropertyBeanMgr seqPropMgr) throws SandeshaException { 
+               SequencePropertyBean internalSequenceFindBean = new 
SequencePropertyBean ();
+               internalSequenceFindBean.setValue(internalSequenceID);
+               
internalSequenceFindBean.setName(Sandesha2Constants.SequenceProperties.INTERNAL_SEQUENCE_ID);
                
-               Iterator iter = completedMessageList.iterator();
-               while (iter.hasNext()) {
-                       Long lng = new Long (Long.parseLong((String) 
iter.next()));
-                       sequenceReport.addCompletedMessage(lng);
+               SequencePropertyBean internalSequenceBean = 
seqPropMgr.findUnique(internalSequenceFindBean);
+               if (internalSequenceBean==null) {
+                       String message = "Internal sequence Bean is not 
available for the given sequence";
+                       log.debug (message);
+                       
+                       return false;
                }
                
-               
sequenceReport.setSequenceDirection(SequenceReport.SEQUENCE_DIRECTION_OUT);
-               boolean completed  = 
SequenceManager.isOutGoingSequenceCompleted(internalSequenceID,configurationContext);
-               if (completed)
-                       
sequenceReport.setSequenceStatus(SequenceReport.SEQUENCE_STATUS_COMPLETED);
+               String outSequenceID = internalSequenceBean.getSequenceID();
+       
+               SequencePropertyBean sequenceTerminatedBean = 
seqPropMgr.retrieve(outSequenceID,Sandesha2Constants.SequenceProperties.SEQUENCE_TIMED_OUT);
+               if (sequenceTerminatedBean!=null && 
Sandesha2Constants.VALUE_TRUE.equals(sequenceTerminatedBean.getValue())) {
+                       return true;
+               }
                
-               //TODO complete
+               return false;
+       }
+       
+       private static void fillTerminatedOutgoingSequenceInfo (SequenceReport 
report,String internalSequenceID,SequencePropertyBeanMgr seqPropMgr) throws 
SandeshaException  { 
+               SequencePropertyBean internalSequenceFindBean = new 
SequencePropertyBean ();
+               internalSequenceFindBean.setValue(internalSequenceID);
+               
internalSequenceFindBean.setName(Sandesha2Constants.SequenceProperties.INTERNAL_SEQUENCE_ID);
                
+               SequencePropertyBean internalSequenceBean = 
seqPropMgr.findUnique(internalSequenceFindBean);
+               if (internalSequenceBean==null) {
+                       String message = "Not a valid terminated sequence. 
Internal sequence Bean is not available for the given sequence";
+                       log.debug (message);
+                       
+                       throw new SandeshaException (message);
+               }
                
-               reportTransaction.commit();
+               
report.setSequenceStatus(SequenceReport.SEQUENCE_STATUS_TERMINATED);
                
-               return sequenceReport;  
+               String outSequenceID = internalSequenceBean.getSequenceID();
+               fillOutgoingSequenceInfo(report,outSequenceID,seqPropMgr);
        }
        
+       private static void fillTimedoutOutgoingSequenceInfo (SequenceReport 
report,String internalSequenceID, SequencePropertyBeanMgr seqPropMgr) throws 
SandeshaException  { 
+               SequencePropertyBean internalSequenceFindBean = new 
SequencePropertyBean ();
+               internalSequenceFindBean.setValue(internalSequenceID);
+               
internalSequenceFindBean.setName(Sandesha2Constants.SequenceProperties.INTERNAL_SEQUENCE_ID);
+               
+               SequencePropertyBean internalSequenceBean = 
seqPropMgr.findUnique(internalSequenceFindBean);
+               if (internalSequenceBean==null) {
+                       String message = "Not a valid timedOut sequence. 
Internal sequence Bean is not available for the given sequence";
+                       log.debug (message);
+                       
+                       throw new SandeshaException (message);
+               }
+               
+               
report.setSequenceStatus(SequenceReport.SEQUENCE_STATUS_TIMED_OUT);
+               String outSequenceID = internalSequenceBean.getSequenceID();
+               fillOutgoingSequenceInfo(report,outSequenceID,seqPropMgr);
+       }
+       
+       private static void fillOutgoingSequenceInfo (SequenceReport 
report,String outSequenceID, SequencePropertyBeanMgr seqPropMgr) throws 
SandeshaException  { 
+               ArrayList completedMessageList =  
AcknowledgementManager.getClientCompletedMessagesList 
(outSequenceID,seqPropMgr);
+               
+               Iterator iter = completedMessageList.iterator();
+               while (iter.hasNext()) {
+                       Long lng = new Long (Long.parseLong((String) 
iter.next()));
+                       report.addCompletedMessage(lng);
+               }
+       }
+       
+       
        public static SequenceReport getOutgoingSequenceReport (String to, 
String sequenceKey,ConfigurationContext configurationContext) throws 
SandeshaException {
                
                String internalSequenceID = SandeshaUtil.getInternalSequenceID 
(to,sequenceKey);
@@ -119,11 +216,14 @@
        
        }
        
-       public static SequenceReport getIncomingSequenceReport (String 
sequenceID,ConfigurationContext configurationContext) throws SandeshaException {
+       public static SequenceReport getIncomingSequenceReport (String 
sequenceID,ConfigurationContext configCtx) throws SandeshaException {
+               
+               StorageManager storageManager = 
SandeshaUtil.getSandeshaStorageManager(configCtx);
+               SequencePropertyBeanMgr seqPropMgr = 
storageManager.getSequencePropretyBeanMgr();
                
                SequenceReport sequenceReport = new SequenceReport ();
 
-               ArrayList completedMessageList =  
AcknowledgementManager.getClientCompletedMessagesList 
(sequenceID,configurationContext);
+               ArrayList completedMessageList =  
AcknowledgementManager.getServerCompletedMessagesList (sequenceID,seqPropMgr);
 
                Iterator iter = completedMessageList.iterator();
                while (iter.hasNext()) {
@@ -132,18 +232,91 @@
                }
                
                
sequenceReport.setSequenceDirection(SequenceReport.SEQUENCE_DIRECTION_IN);
-               boolean completed  = 
SequenceManager.isIncomingSequenceCompleted(sequenceID,configurationContext);
-               if (completed)
-                       
sequenceReport.setSequenceStatus(SequenceReport.SEQUENCE_STATUS_COMPLETED);
+
+               sequenceReport.setSequenceStatus(getServerSequenceStatus 
(sequenceID,storageManager));
+       
+               return sequenceReport;
+       }
+       
+       private static byte getServerSequenceStatus (String 
sequenceID,StorageManager storageManager) throws SandeshaException {
                
-               //TODO complete
+               SequencePropertyBeanMgr seqPropMgr = 
storageManager.getSequencePropretyBeanMgr();
                
-               return sequenceReport;
+               SequencePropertyBean terminatedBean = 
seqPropMgr.retrieve(sequenceID,Sandesha2Constants.SequenceProperties.SEQUENCE_TERMINATED);
+               if (terminatedBean!=null) {
+                       return SequenceReport.SEQUENCE_STATUS_TERMINATED;
+               }
+               
+               SequencePropertyBean timedOutBean = 
seqPropMgr.retrieve(sequenceID,Sandesha2Constants.SequenceProperties.SEQUENCE_TIMED_OUT);
+               if (timedOutBean!=null) {
+                       return SequenceReport.SEQUENCE_STATUS_TIMED_OUT;
+               }
+               
+               NextMsgBeanMgr nextMsgMgr = storageManager.getNextMsgBeanMgr();
+               NextMsgBean nextMsgBean = nextMsgMgr.retrieve(sequenceID);
+               
+               if (nextMsgBean!=null) {
+                       return SequenceReport.SEQUENCE_STATUS_ESTABLISHED;
+               }
+               
+               throw new SandeshaException ("Unrecorded sequenceID");
        }
        
-       public static RMReport getRMReport1 () {
+       /**
+        * RM Report gives the details of incoming and outgoing sequences.
+        * The outgoing sequence have to pass the initial state (CS/CSR 
exchange) to be included in a RMReport
+        * 
+        * @param configurationContext
+        * @return
+        * @throws SandeshaException
+        */
+       public static RMReport getRMReport (ConfigurationContext 
configurationContext) throws SandeshaException {
+               
+               StorageManager storageManager = 
SandeshaUtil.getSandeshaStorageManager(configurationContext);
+               SequencePropertyBeanMgr seqPropMgr = 
storageManager.getSequencePropretyBeanMgr();
+               
                RMReport rmReport = new RMReport ();
+
+               SequencePropertyBean internalSequenceFindBean = new 
SequencePropertyBean ();
+               
internalSequenceFindBean.setName(Sandesha2Constants.SequenceProperties.INTERNAL_SEQUENCE_ID);
+               
+               Collection collection = 
seqPropMgr.find(internalSequenceFindBean);
+               Iterator iterator = collection.iterator();
+               while (iterator.hasNext()) {
+                       SequencePropertyBean bean = (SequencePropertyBean) 
iterator.next();
+                       String sequenceID = bean.getSequenceID();
+                       rmReport.addToOutgoingSequenceList (sequenceID);
+                       
rmReport.addToOutgoingInternalSequenceMap(sequenceID,bean.getValue());
+                       
+                       SequenceReport report = 
getOutgoingSequenceReport(bean.getValue(),configurationContext);
+                       
+                       rmReport.addToNoOfCompletedMessagesMap(sequenceID 
,report.getCompletedMessages().size());
+                       rmReport.addToSequenceStatusMap(sequenceID 
,report.getSequenceStatus());
+               }
+               
+               
+               //incoming sequences
+               SequencePropertyBean serverCompletedMsgsFindBean = new 
SequencePropertyBean ();
+               
serverCompletedMsgsFindBean.setName(Sandesha2Constants.SequenceProperties.SERVER_COMPLETED_MESSAGES);
+               
+               Collection serverCompletedMsgsBeans = 
seqPropMgr.find(serverCompletedMsgsFindBean);
+               Iterator iter = serverCompletedMsgsBeans.iterator();
+               while (iter.hasNext()) {
+                       SequencePropertyBean serverCompletedMsgsBean = 
(SequencePropertyBean) iter.next();
+                       String sequenceID = 
serverCompletedMsgsBean.getSequenceID();
+                       rmReport.addToIncomingSequenceList(sequenceID);
+                       
+                       SequenceReport sequenceReport = 
getIncomingSequenceReport(sequenceID,configurationContext);
+                       
+                       
rmReport.addToNoOfCompletedMessagesMap(sequenceID,sequenceReport.getCompletedMessages().size());
+                       
rmReport.addToSequenceStatusMap(sequenceID,sequenceReport.getSequenceStatus());
+               }
+               
                return rmReport;
+       }
+       
+       public String InternalSequenceID (String to, String sequenceKey) {
+               return SandeshaUtil.getInternalSequenceID(to,sequenceKey);
        }
        
 

Added: 
webservices/sandesha/trunk/src/org/apache/sandesha2/client/reports/RMReport.java
URL: 
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/client/reports/RMReport.java?rev=384448&view=auto
==============================================================================
--- 
webservices/sandesha/trunk/src/org/apache/sandesha2/client/reports/RMReport.java
 (added)
+++ 
webservices/sandesha/trunk/src/org/apache/sandesha2/client/reports/RMReport.java
 Wed Mar  8 22:28:27 2006
@@ -0,0 +1,90 @@
+/*
+ * 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.
+ */
+
+package org.apache.sandesha2.client.reports;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+
+/**
+ * @author Chamikara Jayalath <[EMAIL PROTECTED]>
+ */
+public class RMReport {
+       
+       private ArrayList incomingSequenceList = null;
+       private ArrayList outgoingSequenceList = null;
+       private HashMap sequenceStatusMap = null;
+       private HashMap noOfCompletedMessagesMap = null;
+       private HashMap outgoingInternalSequenceIDMap = null;
+       
+       public RMReport () {
+               incomingSequenceList = new ArrayList ();
+               outgoingSequenceList = new ArrayList ();
+               sequenceStatusMap = new HashMap ();
+               noOfCompletedMessagesMap = new HashMap ();
+               outgoingInternalSequenceIDMap = new HashMap ();
+       }
+
+       public long getCompletedMessagesCount(String sequenceID) {
+               Long lng = (Long) noOfCompletedMessagesMap.get(sequenceID);
+               if (lng==null)
+                       return -1;
+               
+               return lng.longValue();
+       }
+
+       public ArrayList getIncomingSequenceList() {
+               return incomingSequenceList;
+       }
+
+       public ArrayList getOutgoingSequenceList() {
+               return outgoingSequenceList;
+       }
+
+       public byte getSequenceStatusMap(String sequenceID) {
+               Byte status = (Byte) sequenceStatusMap.get(sequenceID);
+               if (status==null)
+                       return SequenceReport.SEQUENCE_STATUS_UNKNOWN;
+               
+               return status.byteValue();
+       }
+
+       public void addToIncomingSequenceList (String incomingSequenceID) {
+               incomingSequenceList.add(incomingSequenceID);
+       }
+       
+       public void addToOutgoingSequenceList (String outSequenceID) {
+               outgoingSequenceList.add(outSequenceID);
+       }
+       
+       public void addToNoOfCompletedMessagesMap (String id, long noOfMsgs) {
+               noOfCompletedMessagesMap.put(id, new Long (noOfMsgs));
+       }
+       
+       public void addToSequenceStatusMap (String id, byte status) {
+               sequenceStatusMap.put(id, new Byte (status));
+       }
+       
+       public String getInternalSequenceIdOfOutSequence (String outSequenceID) 
{
+               return (String) 
outgoingInternalSequenceIDMap.get(outSequenceID);
+       }
+       
+       public void addToOutgoingInternalSequenceMap (String outSequenceID, 
String internalSequenceID) {
+               outgoingInternalSequenceIDMap.put(outSequenceID,outSequenceID);
+       }
+       
+}

Added: 
webservices/sandesha/trunk/src/org/apache/sandesha2/client/reports/SequenceReport.java
URL: 
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/client/reports/SequenceReport.java?rev=384448&view=auto
==============================================================================
--- 
webservices/sandesha/trunk/src/org/apache/sandesha2/client/reports/SequenceReport.java
 (added)
+++ 
webservices/sandesha/trunk/src/org/apache/sandesha2/client/reports/SequenceReport.java
 Wed Mar  8 22:28:27 2006
@@ -0,0 +1,98 @@
+/*
+ * 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.
+ */
+
+package org.apache.sandesha2.client.reports;
+
+import java.util.ArrayList;
+
+/**
+ * @author Chamikara Jayalath <[EMAIL PROTECTED]>
+ */
+
+public class SequenceReport {
+
+       public static final byte SEQUENCE_STATUS_UNKNOWN = 0;
+       public static final byte SEQUENCE_STATUS_INITIAL = 1;
+       public static final byte SEQUENCE_STATUS_ESTABLISHED = 2;
+       public static final byte SEQUENCE_STATUS_TERMINATED = 3;
+       public static final byte SEQUENCE_STATUS_TIMED_OUT = 4;
+       private static final byte MAX_SEQUENCE_STATUS = 4;
+       
+       public static final byte SEQUENCE_DIRECTION_UNKNOWN=0;
+       public static final byte SEQUENCE_DIRECTION_IN=1;
+       public static final byte SEQUENCE_DIRECTION_OUT=2;
+       private static final byte MAX_SEQUENCE_DIRECTION = 2;
+       
+       private byte sequenceStatus = SEQUENCE_STATUS_UNKNOWN;
+       private byte sequenceDirection = SEQUENCE_DIRECTION_UNKNOWN;
+       private String sequenceID = null;
+       private String internalSequenceID = null;   //only for outgoing 
sequences
+       private ArrayList completedMessages = null; //no of messages acked 
(both for incoming and outgoing)
+       
+       public SequenceReport () {
+               completedMessages = new ArrayList ();
+       }
+       
+       public void setSequenceStatus (byte sequenceStatus) {
+               if (sequenceStatus>=SEQUENCE_STATUS_UNKNOWN && 
sequenceStatus<=MAX_SEQUENCE_STATUS) {
+                       this.sequenceStatus = sequenceStatus;
+               }
+       }
+       
+       public void setSequenceDirection (byte sequenceDirection) {
+               if (sequenceDirection>=SEQUENCE_DIRECTION_UNKNOWN && 
sequenceDirection<=MAX_SEQUENCE_DIRECTION) {
+                       this.sequenceDirection = sequenceDirection;
+               }
+       }
+       
+       public byte getSequenceStatus () {
+               return sequenceStatus;
+       }
+       
+       public byte getSequenceDirection () {
+               return sequenceDirection;
+       }
+
+       public String getSequenceID() {
+               return sequenceID;
+       }
+
+       public void setSequenceID(String sequenceID) {
+               this.sequenceID = sequenceID;
+       }
+       
+       public ArrayList getCompletedMessages () {
+               return completedMessages;
+       }
+
+       public void addCompletedMessage (Long messageNo) {
+               completedMessages.add(messageNo);
+       }
+       
+       public void setCompletedMessages (ArrayList completedMessages) {
+               this.completedMessages = completedMessages;
+       }
+
+       public String getInternalSequenceID() {
+               return internalSequenceID;
+       }
+
+       public void setInternalSequenceID(String internalSequenceID) {
+               this.internalSequenceID = internalSequenceID;
+       }
+       
+       
+}

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=384448&r1=384447&r2=384448&view=diff
==============================================================================
--- 
webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaInHandler.java
 (original)
+++ 
webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaInHandler.java
 Wed Mar  8 22:28:27 2006
@@ -80,7 +80,7 @@
                        log.debug(message);
                        throw new AxisFault(message);
                }
-
+               
                MsgProcessor msgProcessor = MsgProcessorFactory
                                .getMessageProcessor(rmMsgCtx.getMessageType());
 

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=384448&r1=384447&r2=384448&view=diff
==============================================================================
--- 
webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqResponseMsgProcessor.java
 (original)
+++ 
webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqResponseMsgProcessor.java
 Wed Mar  8 22:28:27 2006
@@ -133,6 +133,9 @@
                        log.debug(message);
                        throw new SandeshaException(message);
                }
+               
+               createSeqBean.setSequenceID(newOutSequenceId);
+               createSeqMgr.update(createSeqBean);
 
                //deleting the create sequence entry.
                retransmitterMgr.delete(createSeqMsgId);

Modified: 
webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java
URL: 
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java?rev=384448&r1=384447&r2=384448&view=diff
==============================================================================
--- 
webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java
 (original)
+++ 
webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java
 Wed Mar  8 22:28:27 2006
@@ -116,6 +116,13 @@
                
                Transaction terminateTransaction = 
storageManager.getTransaction();
                
TerminateManager.cleanReceivingSideOnTerminateMessage(context,sequenceId);
+               
+               
+               SequencePropertyBean terminatedBean = new SequencePropertyBean (
+                                    
sequenceId,Sandesha2Constants.SequenceProperties.SEQUENCE_TERMINATED,Sandesha2Constants.VALUE_TRUE);
+               
+               sequencePropertyBeanMgr.insert(terminatedBean);
+               
                terminateTransaction.commit(); 
                
                SandeshaUtil.stopSenderForTheSequence(sequenceId);
@@ -125,7 +132,12 @@
        
                Transaction lastUpdatedTransaction = 
storageManager.getTransaction();
                SequenceManager.updateLastActivatedTime(sequenceId,context);
+               
+               
+               
                lastUpdatedTransaction.commit();
+               
+               
                
                terminateSeqRMMsg.pause();
        }

Modified: 
webservices/sandesha/trunk/src/org/apache/sandesha2/util/FaultManager.java
URL: 
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/util/FaultManager.java?rev=384448&r1=384447&r2=384448&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/util/FaultManager.java 
(original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/util/FaultManager.java 
Wed Mar  8 22:28:27 2006
@@ -218,7 +218,7 @@
                CreateSeqBeanMgr createSeqMgr = 
storageManager.getCreateSeqBeanMgr();
                int type = rmMessageContext.getMessageType();
                
-               boolean validSequence = false;
+               boolean validSequence = true;
                String reason = null;
                
                if (type==Sandesha2Constants.MessageTypes.ACK || 
@@ -231,7 +231,7 @@
                        
                        Collection coll = createSeqMgr.find(createSeqFindBean);
                        if (coll.size()==0) {
-                               validSequence = true;
+                               validSequence = false;
                        }
                        
                } else {
@@ -241,14 +241,18 @@
                        Collection coll = mgr.retrieveAll();
                        Iterator it = coll.iterator();
 
+                       boolean contains = false;
                        while (it.hasNext()) {
                                NextMsgBean nextMsgBean = (NextMsgBean) 
it.next();
                                String tempId = nextMsgBean.getSequenceID();
                                if (tempId.equals(sequenceID)) {
-                                       validSequence = true;
+                                       contains = true;
                                        break;
                                }
                        }
+                       
+                       if (contains)
+                               validSequence = true;
                }
                
                String rmNamespaceValue = 
rmMessageContext.getRMNamespaceValue();

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=384448&r1=384447&r2=384448&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaUtil.java 
(original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaUtil.java 
Wed Mar  8 22:28:27 2006
@@ -806,5 +806,25 @@
        
                        return specVersionBean.getValue();
        }
-
+       
+       
+//     public static boolean inNumberPresentInList (String list, long no) 
throws SandeshaException {
+//             
+//     }
+//
+//     public static String putNumberToList (String list, long no) throws 
SandeshaException {
+//             StringTokenizer tokenizer = new StringTokenizer 
(list,Sandesha2Constants.LIST_SEPERATOR);
+//             
+//             while (tokenizer.hasMoreElements()){
+//                     String element = tokenizer.nextToken();
+//                     String[] items = 
element.split(Sandesha2Constants.LIST_ITEM_SEPERATOR);
+//                     if (items.length!=1 && items.length!=2)
+//                             throw new SandeshaException ("Invalid string 
array");
+//                     
+//                     
+//             }
+//             
+//     }
+       
+       
 }

Modified: 
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=384448&r1=384447&r2=384448&view=diff
==============================================================================
--- 
webservices/sandesha/trunk/src/org/apache/sandesha2/util/SequenceManager.java 
(original)
+++ 
webservices/sandesha/trunk/src/org/apache/sandesha2/util/SequenceManager.java 
Wed Mar  8 22:28:27 2006
@@ -8,6 +8,8 @@
 
 import java.util.Collection;
 
+import javax.xml.namespace.QName;
+
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.addressing.EndpointReference;
 import org.apache.axis2.context.ConfigurationContext;
@@ -17,6 +19,8 @@
 import org.apache.axis2.context.OperationContextFactory;
 import org.apache.axis2.description.AxisOperation;
 import org.apache.axis2.description.Parameter;
+import org.apache.axis2.description.TransportInDescription;
+import org.apache.axis2.engine.ListenerManager;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.sandesha2.RMMsgContext;
@@ -212,13 +216,35 @@
                        }
                }
                //Default value for acksTo is anonymous  (this happens only for 
the client side)
-               if (acksToBean==null) {
+               if (acksTo==null) {
                        acksTo = Sandesha2Constants.WSA.NS_URI_ANONYMOUS;
-
-                       EndpointReference acksToEPR = new 
EndpointReference(acksTo);
-                   acksToBean = new SequencePropertyBean(
+               }
+               
+           acksToBean = new SequencePropertyBean(
                                internalSequenceId, 
Sandesha2Constants.SequenceProperties.ACKS_TO_EPR,
-                               acksToEPR.getAddress());
+                               acksTo);
+           
+               //start the in listner for the client side, if acksTo is not 
anonymous.
+               if (!firstAplicationMsgCtx.isServerSide()  && 
!Sandesha2Constants.WSA.NS_URI_ANONYMOUS.equals(acksTo)) {
+                   
+                       String transportInProtocol = 
firstAplicationMsgCtx.getOptions().getTransportInProtocol();
+                   if (transportInProtocol==null) {
+                       throw new SandeshaException ("You must mention the 
transport in protocol for getting async acknowledgement messages");
+                   }
+                  
+            try {
+                               ListenerManager listenerManager =
+                                   
firstAplicationMsgCtx.getConfigurationContext().getListenerManager();
+                               TransportInDescription transportIn = 
firstAplicationMsgCtx.getConfigurationContext().getAxisConfiguration().getTransportIn(new
 QName(transportInProtocol));
+                               //if acksTo is not anonymous start the 
in-transport
+                               if 
(!listenerManager.isListenerRunning(transportIn.getName().getLocalPart())) {
+                                       
listenerManager.addListener(transportIn, false);
+                               }
+                       } catch (AxisFault e) {
+                               throw new SandeshaException ("Could not stast 
the transport listner",e);
+                       }
+                       
+                       
                }
                
                SequencePropertyBean msgsBean = new SequencePropertyBean();

Modified: 
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=384448&r1=384447&r2=384448&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/workers/Sender.java 
(original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/workers/Sender.java Wed 
Mar  8 22:28:27 2006
@@ -174,7 +174,7 @@
                                                        // do time out 
processing.
 
                                                        // TODO uncomment below 
line
-                                                       
TerminateManager.terminateSendingSide(context,sequenceID, 
msgCtx.isServerSide());
+                                                       
TerminateManager.timeOutSendingSideSequence(context,sequenceID, 
msgCtx.isServerSide());
 
                                                        String message = 
"Sequence timed out";
                                                        log.debug(message);



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to