jaliya      2005/05/07 01:14:44

  Modified:    sandesha/interop/org/apache/sandesha/samples/interop
                        EchoClientAsyncAck.java
               sandesha/src/org/apache/sandesha Constants.java
                        EnvelopeCreator.java IStorageManager.java
                        RMMessageContext.java
               sandesha/src/org/apache/sandesha/client
                        ClientPropertyValidator.java
                        ClientStorageManager.java RMSender.java
               sandesha/src/org/apache/sandesha/server RMInvoker.java
                        Sender.java ServerStorageManager.java
               sandesha/src/org/apache/sandesha/server/msgprocessors
                        AcknowledgementProcessor.java
                        CreateSequenceProcessor.java
                        CreateSequenceResponseProcessor.java
               sandesha/src/org/apache/sandesha/storage/dao
                        ISandeshaDAO.java SandeshaDatabaseDAO.java
                        SandeshaQueueDAO.java
               sandesha/src/org/apache/sandesha/storage/queue
                        IncomingSequence.java OutgoingSequence.java
                        SandeshaQueue.java
               sandesha/src/org/apache/sandesha/util RMMessageCreator.java
               sandesha/src/org/apache/sandesha/ws/rm Accept.java
                        CreateSequenceResponse.java SequenceOffer.java
               sandesha/src/org/apache/sandesha/ws/rm/providers
                        RMProvider.java
  Log:
  Several changes are made to Sequnce Offer handeling by doing interops
  
  Revision  Changes    Path
  1.2       +1 -0      
ws-fx/sandesha/interop/org/apache/sandesha/samples/interop/EchoClientAsyncAck.java
  
  Index: EchoClientAsyncAck.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/interop/org/apache/sandesha/samples/interop/EchoClientAsyncAck.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- EchoClientAsyncAck.java   7 Mar 2005 05:34:34 -0000       1.1
  +++ EchoClientAsyncAck.java   7 May 2005 08:14:44 -0000       1.2
  @@ -58,6 +58,7 @@
               
//call.setProperty("from","http://schemas.xmlsoap.org/ws/2003/03/addressing/role/anonymous";);
               
call.setProperty(Constants.ClientProperties.FROM,"http://127.0.0.1:"+defaultClientPort+"/axis/services/RMService";);
               
call.setProperty(Constants.ClientProperties.REPLY_TO,"http://127.0.0.1:"+defaultClientPort+"/axis/services/RMService";);
  +            call.setProperty(Constants.ClientProperties.SEND_OFFER,new 
Boolean(true));
   
               call.setTargetEndpointAddress(targetURL);
               call.setOperationName(new QName("RMInteropService", 
"echoString"));
  
  
  
  1.44      +2 -1      ws-fx/sandesha/src/org/apache/sandesha/Constants.java
  
  Index: Constants.java
  ===================================================================
  RCS file: /home/cvs/ws-fx/sandesha/src/org/apache/sandesha/Constants.java,v
  retrieving revision 1.43
  retrieving revision 1.44
  diff -u -r1.43 -r1.44
  --- Constants.java    5 May 2005 12:57:01 -0000       1.43
  +++ Constants.java    7 May 2005 08:14:44 -0000       1.44
  @@ -44,7 +44,7 @@
       public static final long RETRANSMISSION_INTERVAL = 4000;
       public static final long ACKNOWLEDGEMENT_INTERVAL = 200;
       public static final long INACTIVITY_TIMEOUT = 600000;
  -    public static final int MAXIMUM_RETRANSMISSION_COUNT = 20;
  +    public static final int MAXIMUM_RETRANSMISSION_COUNT = 4;
       public static final long RMINVOKER_SLEEP_TIME = 2000;
       public static final long SENDER_SLEEP_TIME = 2000;
       public static final int CLIENT_RESPONSE_CHECKING_INTERVAL = 500;
  @@ -196,6 +196,7 @@
           public static final String ACKS_TO="acksTo";
           public static final String TO="To";
           public static final String FAULT_TO="faultTo";
  +        public static final String SEND_OFFER="offer";
   
           public static final String REQUEST_HANDLER = "requestHandler";
           public static final String RESPONSE_HANDLER = "responseHandler";
  
  
  
  1.36      +21 -14    
ws-fx/sandesha/src/org/apache/sandesha/EnvelopeCreator.java
  
  Index: EnvelopeCreator.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/EnvelopeCreator.java,v
  retrieving revision 1.35
  retrieving revision 1.36
  diff -u -r1.35 -r1.36
  --- EnvelopeCreator.java      5 May 2005 12:57:01 -0000       1.35
  +++ EnvelopeCreator.java      7 May 2005 08:14:44 -0000       1.36
  @@ -27,6 +27,7 @@
   import org.apache.commons.logging.Log;
   import org.apache.sandesha.ws.rm.*;
   import org.apache.sandesha.ws.rm.Identifier;
  +import org.apache.sandesha.client.ClientStorageManager;
   
   import javax.xml.namespace.QName;
   import javax.xml.soap.SOAPHeaderElement;
  @@ -39,7 +40,7 @@
       private static final Log log = 
LogFactory.getLog(EnvelopeCreator.class.getName());
       private static final UUIDGen uuidGen = UUIDGenFactory.getUUIDGen();
   
  -    public static SOAPEnvelope createCreateSequenceResponseEnvelope(String 
uuid, RMMessageContext rmMessageContext,boolean hasOffer, boolean 
offerAccepted) throws Exception {
  +    public static SOAPEnvelope createCreateSequenceResponseEnvelope(String 
seqId, RMMessageContext rmMessageContext,boolean hasOffer, boolean 
offerAccepted) throws Exception {
   
           AddressingHeaders addressingHeaders = 
rmMessageContext.getAddressingHeaders();
           RMHeaders rmHeaders = rmMessageContext.getRMHeaders();
  @@ -86,7 +87,7 @@
           //now set the body elements
           CreateSequenceResponse response = new CreateSequenceResponse();
           Identifier id = new Identifier();
  -        id.setIdentifier(Constants.UUID + uuid);
  +        id.setIdentifier(seqId);
           response.setIdentifier(id);
   
           if(hasOffer&&offerAccepted){
  @@ -111,14 +112,18 @@
   
           //uncommenting following will send the sequence with a offer (for 
response seq) to the create seq msg.
           //offer
  -       /* SequenceOffer offer = new SequenceOffer ();
  -        Identifier id = new Identifier ();
  -        UUIDGen uuidGen = UUIDGenFactory.getUUIDGen();
  -        String offerUuid = Constants.UUID + uuidGen.nextUUID();
  -        id.setIdentifier(offerUuid);
  +//        SequenceOffer offer = new SequenceOffer ();
  +//        Identifier id = new Identifier ();
  +//        UUIDGen uuidGen = UUIDGenFactory.getUUIDGen();
  +//        String offerUuid = Constants.UUID + uuidGen.nextUUID();
  +//        id.setIdentifier(offerUuid);
  +//
  +//        offer.setIdentifier(id);
  +//        crSeq.setOffer(offer);
  +
  +        //offered sequence will be considered as a requested one and will be 
added. So that the validation wont fail in response
  +        //path
   
  -        offer.setIdentifier(id);
  -        crSeq.setOffer(offer);*/
           //end offer
   
           crSeq.toSoapEnvelop(envelope);
  @@ -141,7 +146,7 @@
   
       }
   
  -    public static SOAPEnvelope 
createAcknowledgementEnvelope(RMMessageContext rmMessageContext, Vector 
ackRangeVector) throws Exception {
  +    public static SOAPEnvelope 
createAcknowledgementEnvelope(RMMessageContext rmMessageContext, String 
toAddress,Vector ackRangeVector) throws Exception {
   
           AddressingHeaders addressingHeaders = 
rmMessageContext.getAddressingHeaders();
           SOAPEnvelope envelope = createBasicEnvelop();
  @@ -167,8 +172,8 @@
           outGoingAddressingHaders.setFrom(from);
   
           //Add to <To>
  -        AttributedURI inFrom = addressingHeaders.getFrom().getAddress();
  -        To to = new To(new URI(inFrom.toString()));
  +
  +        To to = new To(new URI(toAddress));
           outGoingAddressingHaders.setTo(to);
   
           //Set the addressing headers to the SOAPEnvelope.
  @@ -232,8 +237,10 @@
           //outGoingAddressingHaders.setReplyTo(from);
   
           //Add to <To>
  -        AttributedURI inFrom = addressingHeaders.getFrom().getAddress();
  -        To to = new To(new URI(inFrom.toString()));
  +        if(addressingHeaders.getReplyTo()==null)
  +        throw new Exception("ReplyTo is required to send Responses");
  +        AttributedURI inReplyTo = 
addressingHeaders.getReplyTo().getAddress();
  +        To to = new To(new URI(inReplyTo.toString()));
           outGoingAddressingHaders.setTo(to);
   
           //Set the action
  
  
  
  1.20      +3 -0      
ws-fx/sandesha/src/org/apache/sandesha/IStorageManager.java
  
  Index: IStorageManager.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/IStorageManager.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- IStorageManager.java      5 May 2005 07:35:16 -0000       1.19
  +++ IStorageManager.java      7 May 2005 08:14:44 -0000       1.20
  @@ -162,4 +162,7 @@
       
       public String getAcksTo(String seqId);
   
  +    void addOffer(String msgID, String offerID);
  +
  +    String getOffer(String msgID);
   }
  \ No newline at end of file
  
  
  
  1.29      +21 -0     
ws-fx/sandesha/src/org/apache/sandesha/RMMessageContext.java
  
  Index: RMMessageContext.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/RMMessageContext.java,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- RMMessageContext.java     2 May 2005 04:17:09 -0000       1.28
  +++ RMMessageContext.java     7 May 2005 08:14:44 -0000       1.29
  @@ -49,11 +49,32 @@
       private String action = null;
       private String from = null;
       private String replyTo = null;
  +
  +    public String getOffer() {
  +        return offer;
  +    }
  +
  +    public void setOffer(String offer) {
  +        this.offer = offer;
  +    }
  +
       private boolean responseReceived = false;
       private boolean ackReceived = false;
       private String faultTo=null;
       private String acksTo = null;
       private String to = null;
  +    private String offer=null;
  +
  +
  +    public boolean isSendOffer() {
  +        return sendOffer;
  +    }
  +
  +    public void setSendOffer(boolean sendOffer) {
  +        this.sendOffer = sendOffer;
  +    }
  +
  +    private boolean sendOffer;
   
       private static final Log log = 
LogFactory.getLog(RMMessageContext.class.getName());
       private ArrayList msgIdList = new ArrayList ();
  
  
  
  1.19      +15 -5     
ws-fx/sandesha/src/org/apache/sandesha/client/ClientPropertyValidator.java
  
  Index: ClientPropertyValidator.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/client/ClientPropertyValidator.java,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- ClientPropertyValidator.java      5 May 2005 06:06:30 -0000       1.18
  +++ ClientPropertyValidator.java      7 May 2005 08:14:44 -0000       1.19
  @@ -45,7 +45,8 @@
           String replyTo = getReplyTo(call);
           String acksTo = getAcksTo(call);
           String to = getTo(call);
  -        String faultTo=getFaultTo(call);
  +        String faultTo = getFaultTo(call);
  +        boolean sendOffer = getOffer(call);
   
           try {
               if (from == null)
  @@ -53,7 +54,7 @@
               else
                   sourceURL = from;
           } catch (UnknownHostException e) {
  -              throw new AxisFault(e.getMessage());
  +            throw new AxisFault(e.getMessage());
           }
   
           String errorMsg = getValidated(msgNumber, action, replyTo, sync, 
inOut);
  @@ -72,6 +73,7 @@
               rmMessageContext.setAcksTo(acksTo);
               rmMessageContext.setTo(to);
               rmMessageContext.setFaultTo(faultTo);
  +            rmMessageContext.setSendOffer(sendOffer);
               return rmMessageContext;
   
           } else
  @@ -79,8 +81,16 @@
   
       }
   
  +    private static boolean getOffer(Call call) {
  +        Boolean sendOffer = (Boolean) 
call.getProperty(Constants.ClientProperties.SEND_OFFER);
  +        if (sendOffer != null) {
  +            return sendOffer.booleanValue();
  +        } else
  +            return false;
  +    }
  +
       private static String getFaultTo(Call call) {
  -          String faultTo = (String) 
call.getProperty(Constants.ClientProperties.FAULT_TO);
  +        String faultTo = (String) 
call.getProperty(Constants.ClientProperties.FAULT_TO);
           if (faultTo != null)
               return faultTo;
           else
  @@ -186,9 +196,9 @@
           return errorMsg;
       }
   
  -     private static String getFrom(Call call) {
  +    private static String getFrom(Call call) {
           return (String) call.getProperty(Constants.ClientProperties.FROM);
  -      }
  +    }
   
       private static String getReplyTo(Call call) {
           return (String) 
call.getProperty(Constants.ClientProperties.REPLY_TO);
  
  
  
  1.29      +10 -2     
ws-fx/sandesha/src/org/apache/sandesha/client/ClientStorageManager.java
  
  Index: ClientStorageManager.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/client/ClientStorageManager.java,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- ClientStorageManager.java 5 May 2005 07:35:16 -0000       1.28
  +++ ClientStorageManager.java 7 May 2005 08:14:44 -0000       1.29
  @@ -167,8 +167,8 @@
       public boolean setApprovedOutSequence(String createSeqId, String 
newOutSequenceId) {
   
           boolean done = false;
  -        String oldOutsequenceId = 
accessor.getFirstCreateSequenceMsgId(createSeqId);
  -
  +       // String oldOutsequenceId = 
accessor.getFirstCreateSequenceMsgId(createSeqId);
  +        String oldOutsequenceId = createSeqId;
           if(oldOutsequenceId==null){
               return false;
           }
  @@ -401,4 +401,12 @@
           return accessor.getAcksTo(seqId);
       }
   
  +    public void addOffer(String msgID, String offerID) {
  +        accessor.addOffer(msgID,offerID);
  +    }
  +
  +    public String getOffer(String msgID) {
  +       return accessor.getOffer(msgID);
  +    }
  +
   }
  \ No newline at end of file
  
  
  
  1.39      +15 -1     
ws-fx/sandesha/src/org/apache/sandesha/client/RMSender.java
  
  Index: RMSender.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/client/RMSender.java,v
  retrieving revision 1.38
  retrieving revision 1.39
  diff -u -r1.38 -r1.39
  --- RMSender.java     5 May 2005 12:57:01 -0000       1.38
  +++ RMSender.java     7 May 2005 08:14:44 -0000       1.39
  @@ -21,6 +21,8 @@
   import org.apache.axis.MessageContext;
   import org.apache.axis.client.Call;
   import org.apache.axis.components.logger.LogFactory;
  +import org.apache.axis.components.uuid.UUIDGen;
  +import org.apache.axis.components.uuid.UUIDGenFactory;
   import org.apache.axis.handlers.BasicHandler;
   import org.apache.axis.message.addressing.AddressingHeaders;
   import org.apache.commons.logging.Log;
  @@ -34,6 +36,7 @@
   
       private IStorageManager storageManager;
       private static final Log log = 
LogFactory.getLog(RMSender.class.getName());
  +    private static final UUIDGen uuidGen = UUIDGenFactory.getUUIDGen();
   
       public void invoke(MessageContext msgContext) throws AxisFault {
   
  @@ -79,7 +82,18 @@
   
   
       private RMMessageContext processFirstRequestMessage(RMMessageContext 
reqRMMsgContext, boolean sync) throws Exception {
  -        RMMessageContext createSeqRMMsgContext = 
RMMessageCreator.createCreateSeqMsg(reqRMMsgContext, Constants.CLIENT);
  +
  +        String msgID = Constants.UUID + uuidGen.nextUUID();
  +        String offerID = null;
  +        if (reqRMMsgContext.isHasResponse()) {
  +            offerID = Constants.UUID + uuidGen.nextUUID();
  +            storageManager.addRequestedSequence(offerID);
  +            storageManager.addOffer(msgID,offerID);
  +
  +        }
  +
  +
  +        RMMessageContext createSeqRMMsgContext = 
RMMessageCreator.createCreateSeqMsg(reqRMMsgContext, Constants.CLIENT, msgID, 
offerID);
           storageManager.addOutgoingSequence(reqRMMsgContext.getSequenceID());
           
storageManager.setTemporaryOutSequence(reqRMMsgContext.getSequenceID(), 
createSeqRMMsgContext.getMessageID());
   
  
  
  
  1.26      +19 -10    
ws-fx/sandesha/src/org/apache/sandesha/server/RMInvoker.java
  
  Index: RMInvoker.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/server/RMInvoker.java,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- RMInvoker.java    5 May 2005 12:57:01 -0000       1.25
  +++ RMInvoker.java    7 May 2005 08:14:44 -0000       1.26
  @@ -53,17 +53,17 @@
               try {
                   Thread.sleep(Constants.RMINVOKER_SLEEP_TIME);
                   RMMessageContext rmMessageContext = 
storageManager.getNextMessageToProcess();
  +                AddressingHeaders addrHeaders = 
rmMessageContext.getAddressingHeaders();
                   if (rmMessageContext != null) {
                       Class c = Class.forName(PropertyLoader.getProvider());
                       JavaProvider provider = (JavaProvider) c.newInstance();
                       provider.invoke(rmMessageContext.getMsgContext());
   
                       if 
(rmMessageContext.getMsgContext().getOperation().getMethod().getReturnType() != 
Void.TYPE) {
  -                      String 
oldAction=rmMessageContext.getAddressingHeaders().getAction().toString();
  -                      
rmMessageContext.getAddressingHeaders().setAction(oldAction+Constants.RESPONSE);
  
  +                        String oldAction = 
rmMessageContext.getAddressingHeaders().getAction().toString();
  +                        
rmMessageContext.getAddressingHeaders().setAction(oldAction + 
Constants.RESPONSE);
                           if (rmMessageContext.isLastMessage()) {
                               //Insert Terminate Sequnce.
  -                            AddressingHeaders addrHeaders = 
rmMessageContext.getAddressingHeaders();
                               if (addrHeaders.getReplyTo() != null) {
                                   String replyTo = 
addrHeaders.getReplyTo().getAddress().toString();
                                   RMMessageContext terminateMsg = 
RMMessageCreator.createTerminateSeqMsg(rmMessageContext, Constants.SERVER);
  @@ -78,21 +78,30 @@
                           // used in this case. This is done by the RMSender.
                           
rmMessageContext.setMessageType(Constants.MSG_TYPE_SERVICE_RESPONSE);
   
  -                        boolean firstMsgOfResponseSeq = 
!storageManager.isResponseSequenceExist(rmMessageContext.getSequenceID());
  -                        
rmMessageContext.setMsgNumber(storageManager.getNextMessageNumber(rmMessageContext
  -                                .getSequenceID()));
  +                        boolean hasResponseSeq = 
storageManager.isResponseSequenceExist(rmMessageContext.getSequenceID());
  +                        boolean firstMsgOfResponseSeq = false;
  +                        if (hasResponseSeq == true && 
rmMessageContext.getRMHeaders().getSequence().getMessageNumber().getMessageNumber()
 == 1){
  +
  +                        }
  +                        else
  +                            firstMsgOfResponseSeq = !hasResponseSeq;
  +
  +
  +                        
rmMessageContext.setMsgNumber(storageManager.getNextMessageNumber(rmMessageContext.getSequenceID()));
                           
storageManager.insertOutgoingMessage(rmMessageContext);
  +
  +
                           if (firstMsgOfResponseSeq) {
   
  -                            RMMessageContext csRMMsgCtx = 
RMMessageCreator.createCreateSeqMsg(rmMessageContext, Constants.SERVER);
  +
  +                            String msgIdStr = Constants.UUID 
+uuidGen.nextUUID();
  +
  +                            RMMessageContext csRMMsgCtx = 
RMMessageCreator.createCreateSeqMsg(rmMessageContext, 
Constants.SERVER,msgIdStr,null);
                               
csRMMsgCtx.setOutGoingAddress(rmMessageContext.getAddressingHeaders().getReplyTo().getAddress().toString());
   
  -                            String id = uuidGen.nextUUID();
  -                            String msgIdStr = Constants.UUID + id;
                               csRMMsgCtx.addToMsgIdList(msgIdStr);
                               csRMMsgCtx.setMessageID(msgIdStr);
   
  -                            
csRMMsgCtx.getAddressingHeaders().setMessageID(new MessageID(new 
URI(msgIdStr)));
                               
storageManager.setTemporaryOutSequence(csRMMsgCtx.getSequenceID(), msgIdStr);
                               
storageManager.addCreateSequenceRequest(csRMMsgCtx);
                           }
  
  
  
  1.37      +29 -25    ws-fx/sandesha/src/org/apache/sandesha/server/Sender.java
  
  Index: Sender.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/server/Sender.java,v
  retrieving revision 1.36
  retrieving revision 1.37
  diff -u -r1.36 -r1.37
  --- Sender.java       2 May 2005 08:38:09 -0000       1.36
  +++ Sender.java       7 May 2005 08:14:44 -0000       1.37
  @@ -155,6 +155,10 @@
           Service service = new Service();
           Call call = (Call) service.createCall();
   
  +        if (rmMessageContext.getAddressingHeaders().getAction() != null) {
  +            
call.setSOAPActionURI(rmMessageContext.getAddressingHeaders().getAction().toString());
  +        }
  +
           
call.setTargetEndpointAddress(rmMessageContext.getAddressingHeaders().getReplyTo().getAddress().toString());
           //NOTE: WE USE THE REQUEST MESSAGE TO SEND THE RESPONSE.
           String soapMsg = 
rmMessageContext.getMsgContext().getRequestMessage().getSOAPPartAsString();
  @@ -173,43 +177,43 @@
   //            //The code should not come to this point.
   //            System.err.println(Constants.ErrorMessages.NULL_REQUEST_MSG);
   //        } else {
  -            Call call;
  +        Call call;
   
  -            //EDITED FOR MSG NO REPITITION
  -            String oldOutSeqId, newOutSeqId;
  +        //EDITED FOR MSG NO REPITITION
  +        //String oldOutSeqId, newOutSeqId;
   
  -            String oldCreateSeqId = rmMsgCtx.getMessageID().toString();
  -            String uuid = uuidGen.nextUUID();
  +       // String oldCreateSeqId = rmMsgCtx.getMessageID().toString();
  +       // String uuid = uuidGen.nextUUID();
   
   
  -            String newCreateSeqId = Constants.UUID + uuid;
  -            rmMsgCtx.setMessageID(newCreateSeqId);
  +       // String newCreateSeqId = Constants.UUID + uuid;
  +      //  rmMsgCtx.setMessageID(newCreateSeqId);
   
  -            oldOutSeqId = oldCreateSeqId;
  -            newOutSeqId = newCreateSeqId;
  +      //  oldOutSeqId = oldCreateSeqId;
  +      //  newOutSeqId = newCreateSeqId;
   
   
  -            //MessageContext msgContext = tempMsg.getMsgContext();
  -            //String toAddress = tempMsg.getOutGoingAddress();
  +        //MessageContext msgContext = tempMsg.getMsgContext();
  +        //String toAddress = tempMsg.getOutGoingAddress();
   
   
  -            //AddressingHeaders addrHeaders = new 
AddressingHeaders(rmMessageContext.getMsgContext().getRequestMessage().getSOAPEnvelope());
  -            rmMsgCtx.getAddressingHeaders().setMessageID(new MessageID(new 
URI(newCreateSeqId)));
  -            
//addrHeaders.toEnvelope(rmMessageContext.getMsgContext().getRequestMessage().getSOAPEnvelope());
  +        //AddressingHeaders addrHeaders = new 
AddressingHeaders(rmMessageContext.getMsgContext().getRequestMessage().getSOAPEnvelope());
  +       // rmMsgCtx.getAddressingHeaders().setMessageID(new MessageID(new 
URI(newCreateSeqId)));
  +        
//addrHeaders.toEnvelope(rmMessageContext.getMsgContext().getRequestMessage().getSOAPEnvelope());
   
  -            SOAPEnvelope reqEnvelope = 
EnvelopeCreator.createCreateSequenceEnvelope( rmMsgCtx);
  -            rmMsgCtx.getMsgContext().setRequestMessage(new 
Message(reqEnvelope));
  +        SOAPEnvelope reqEnvelope = 
EnvelopeCreator.createCreateSequenceEnvelope(rmMsgCtx);
  +        rmMsgCtx.getMsgContext().setRequestMessage(new Message(reqEnvelope));
   
  -            rmMsgCtx.addToMsgIdList(rmMsgCtx.getMessageID().toString());
  -            List msgIdList = rmMsgCtx.getMessageIdList();
  -            //Iterator it = msgIdList.iterator();
  -            rmMsgCtx.setLastPrecessedTime(System.currentTimeMillis());
  -            
rmMsgCtx.setReTransmissionCount(rmMsgCtx.getReTransmissionCount() + 1);
  -            call = prepareCall(rmMsgCtx);
  -            call.invoke();
  +     //   rmMsgCtx.addToMsgIdList(rmMsgCtx.getMessageID().toString());
  +      //  List msgIdList = rmMsgCtx.getMessageIdList();
  +        //Iterator it = msgIdList.iterator();
  +        rmMsgCtx.setLastPrecessedTime(System.currentTimeMillis());
  +        rmMsgCtx.setReTransmissionCount(rmMsgCtx.getReTransmissionCount() + 
1);
  +        call = prepareCall(rmMsgCtx);
  +        call.invoke();
   
  -            processResponseMessage(call, rmMsgCtx);
  -     //   }
  +        processResponseMessage(call, rmMsgCtx);
  +        //   }
       }
   
       private void sendCreateSequenceResponse(RMMessageContext 
rmMessageContext) throws Exception {
  
  
  
  1.26      +27 -11    
ws-fx/sandesha/src/org/apache/sandesha/server/ServerStorageManager.java
  
  Index: ServerStorageManager.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/server/ServerStorageManager.java,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- ServerStorageManager.java 5 May 2005 07:35:16 -0000       1.25
  +++ ServerStorageManager.java 7 May 2005 08:14:44 -0000       1.26
  @@ -21,9 +21,9 @@
   import org.apache.sandesha.Constants;
   import org.apache.sandesha.IStorageManager;
   import org.apache.sandesha.RMMessageContext;
  -import org.apache.sandesha.client.ClientStorageManager;
   import org.apache.sandesha.storage.dao.ISandeshaDAO;
   import org.apache.sandesha.storage.dao.SandeshaDAOFactory;
  +import org.apache.sandesha.storage.queue.SandeshaQueue;
   import org.apache.sandesha.ws.rm.RMHeaders;
   
   import java.util.HashMap;
  @@ -205,8 +205,16 @@
   
       public boolean setApprovedOutSequence(String createSeqId, String 
newOutSequenceId) {
   
  -        String oldOutsequenceId = 
accessor.getFirstCreateSequenceMsgId(createSeqId);
  -                         String sequenceID = 
accessor.getSequenceOfOutSequence(oldOutsequenceId);
  +        // String oldOutsequenceId = 
accessor.getFirstCreateSequenceMsgId(createSeqId);
  +        String oldOutsequenceId1 = createSeqId;
  +
  +        String tempOutSeq = oldOutsequenceId1;
  +        if (tempOutSeq == null)
  +            tempOutSeq = createSeqId;
  +
  +
  +        SandeshaQueue.getInstance().displayOutgoingMap();
  +        String sequenceID = accessor.getSequenceOfOutSequence(tempOutSeq);
   
           if (sequenceID == null) {
               log.error(Constants.ErrorMessages.SET_APPROVED_OUT_SEQ);
  @@ -214,7 +222,7 @@
           }
           accessor.setOutSequence(sequenceID, newOutSequenceId);
           accessor.setOutSequenceApproved(sequenceID, true);
  -        accessor.removeCreateSequenceMsg(oldOutsequenceId);
  +        accessor.removeCreateSequenceMsg(tempOutSeq);
           return true;
       }
   
  @@ -396,14 +404,22 @@
       public String getKeyFromOutgoingSeqId(String seqId) {
           return null;  //To change body of implemented methods use File | 
Settings | File Templates.
       }
  -    
  -    public void setAcksTo(String seqId,String acksTo){      
  -        accessor.setAcksTo(seqId,acksTo);
  +
  +    public void setAcksTo(String seqId, String acksTo) {
  +        accessor.setAcksTo(seqId, acksTo);
       }
  -    
  -    public String getAcksTo(String seqId){
  +
  +    public String getAcksTo(String seqId) {
           return accessor.getAcksTo(seqId);
       }
  -    
  -   
  +
  +    public void addOffer(String msgID, String offerID) {
  +        //To change body of implemented methods use File | Settings | File 
Templates.
  +    }
  +
  +    public String getOffer(String msgID) {
  +        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
  +    }
  +
  +
   }
  \ No newline at end of file
  
  
  
  1.10      +7 -5      
ws-fx/sandesha/src/org/apache/sandesha/server/msgprocessors/AcknowledgementProcessor.java
  
  Index: AcknowledgementProcessor.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/server/msgprocessors/AcknowledgementProcessor.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- AcknowledgementProcessor.java     2 May 2005 04:17:09 -0000       1.9
  +++ AcknowledgementProcessor.java     7 May 2005 08:14:44 -0000       1.10
  @@ -90,8 +90,7 @@
           }
           RMMessageContext rmMsgContext = getAckRMMsgCtx(rmMessageContext, 
ackRangeVector);
   
  -        if (true == 
(rmMessageContext.getAddressingHeaders().getFrom().getAddress().toString()
  -                .equals(Constants.WSA.NS_ADDRESSING_ANONYMOUS))) {
  +        if (true == 
(storageManager.getAcksTo(seqID).equals(Constants.WSA.NS_ADDRESSING_ANONYMOUS)))
 {
               try {
                   String soapMsg = 
rmMsgContext.getMsgContext().getResponseMessage().getSOAPPartAsString();
                   rmMessageContext.getMsgContext().setResponseMessage(new 
Message(soapMsg));
  @@ -107,10 +106,13 @@
           }
       }
   
  -    private static RMMessageContext getAckRMMsgCtx(RMMessageContext 
rmMessageContext, Vector ackRangeVector) {
  +    private  RMMessageContext getAckRMMsgCtx(RMMessageContext 
rmMessageContext, Vector ackRangeVector) {
           RMMessageContext rmMsgContext = new RMMessageContext();
           try {
  -            SOAPEnvelope ackEnvelope = 
EnvelopeCreator.createAcknowledgementEnvelope(rmMessageContext, ackRangeVector);
  +
  +            String 
to=storageManager.getAcksTo(rmMessageContext.getRMHeaders().getSequence().getIdentifier().getIdentifier());
  +
  +            SOAPEnvelope ackEnvelope = 
EnvelopeCreator.createAcknowledgementEnvelope(rmMessageContext,to,ackRangeVector);
               //Create a new message using the ackEnvelope
               Message resMsg = new Message(ackEnvelope);
               //Create a new message context to store the ack message.
  @@ -124,7 +126,7 @@
   
               //Get the from address to send the Ack. Doesn't matter whether 
we have Sync or ASync messages.
               //If we have Sync them this property is not used.
  -            
rmMsgContext.setOutGoingAddress(rmMessageContext.getAddressingHeaders().getFrom().getAddress().toString());
  +            rmMsgContext.setOutGoingAddress(to);
               //Set the messsage type
               rmMsgContext.setMessageType(Constants.MSG_TYPE_ACKNOWLEDGEMENT);
           } catch (Exception e) {
  
  
  
  1.17      +21 -14    
ws-fx/sandesha/src/org/apache/sandesha/server/msgprocessors/CreateSequenceProcessor.java
  
  Index: CreateSequenceProcessor.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/server/msgprocessors/CreateSequenceProcessor.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- CreateSequenceProcessor.java      5 May 2005 12:57:01 -0000       1.16
  +++ CreateSequenceProcessor.java      7 May 2005 08:14:44 -0000       1.17
  @@ -57,11 +57,17 @@
           if (rmHeaders.getCreateSequence() == null)
               throw new AxisFault();
   
  -        String uuid = uuidGen.nextUUID();
  -        
storageManager.addRequestedSequence(org.apache.sandesha.Constants.UUID + uuid);
  +        String seqId =Constants.UUID+ uuidGen.nextUUID();
  +        storageManager.addRequestedSequence(seqId);
  +
   
  -        //To support offer
           CreateSequence createSeq = 
rmMessageContext.getRMHeaders().getCreateSequence();
  +        //Support AcksTo
  +        if(createSeq.getAcksTo()!=null){
  +            
storageManager.setAcksTo(seqId,createSeq.getAcksTo().getAddress().toString());
  +        }
  +
  +         //Support offer
           SequenceOffer offer = createSeq.getOffer();
           boolean offerAccepted = false;
           boolean hasOffer=false;
  @@ -75,7 +81,7 @@
                       if (id != null)
                           responseSeqId = id.getIdentifier();
                   }
  -                String incomingSeqId = Constants.UUID + uuid;
  +                String incomingSeqId = seqId;
                   if (responseSeqId != null) {
                       storageManager.addOutgoingSequence(incomingSeqId);
                       storageManager.setTemporaryOutSequence(incomingSeqId, 
responseSeqId);
  @@ -90,7 +96,7 @@
   
           SOAPEnvelope resEnvelope = null;
           try {
  -            resEnvelope = 
EnvelopeCreator.createCreateSequenceResponseEnvelope(uuid, 
rmMessageContext,hasOffer,offerAccepted);
  +            resEnvelope = 
EnvelopeCreator.createCreateSequenceResponseEnvelope(seqId, 
rmMessageContext,hasOffer,offerAccepted);
           } catch (Exception e) {
               throw new 
AxisFault(org.apache.sandesha.Constants.FaultCodes.WSRM_SERVER_INTERNAL_ERROR);
           }
  @@ -126,16 +132,17 @@
           ackProcessor.processMessage(rmMsgCtx);
       }
   
  -    private void setOutGoingAddress(RMMessageContext rmMsgCtx, 
AddressingHeaders addrHeaders) {
  +    private void setOutGoingAddress(RMMessageContext rmMsgCtx, 
AddressingHeaders addrHeaders) throws AxisFault{
           CreateSequence createSeq = 
rmMsgCtx.getRMHeaders().getCreateSequence();
  -        if ((createSeq.getAcksTo() != null)) {
  -            if 
((createSeq.getAcksTo().getAddress().toString().equals(Constants.WSA.NS_ADDRESSING_ANONYMOUS)))
 {
  -                rmMsgCtx.setSync(true);
  -            } else {
  -                rmMsgCtx.setSync(false);
  -                
rmMsgCtx.setOutGoingAddress(createSeq.getAcksTo().getAddress().toString());
  -            }
  -        } else if (addrHeaders.getReplyTo() == null || 
addrHeaders.getReplyTo().getAddress().toString().equals(Constants.WSA.NS_ADDRESSING_ANONYMOUS))
 {
  +//        if ((createSeq.getAcksTo() != null)) {
  +//            if 
((createSeq.getAcksTo().getAddress().toString().equals(Constants.WSA.NS_ADDRESSING_ANONYMOUS)))
 {
  +//                rmMsgCtx.setSync(true);
  +//            } else {
  +//                rmMsgCtx.setSync(false);
  +//                
rmMsgCtx.setOutGoingAddress(createSeq.getAcksTo().getAddress().toString());
  +//            }
  +//        } else
  +         if (addrHeaders.getReplyTo() == null || 
addrHeaders.getReplyTo().getAddress().toString().equals(Constants.WSA.NS_ADDRESSING_ANONYMOUS))
 {
               rmMsgCtx.setSync(true);
           } else {
               rmMsgCtx.setSync(false);
  
  
  
  1.5       +8 -0      
ws-fx/sandesha/src/org/apache/sandesha/server/msgprocessors/CreateSequenceResponseProcessor.java
  
  Index: CreateSequenceResponseProcessor.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/server/msgprocessors/CreateSequenceResponseProcessor.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- CreateSequenceResponseProcessor.java      27 Feb 2005 18:17:20 -0000      
1.4
  +++ CreateSequenceResponseProcessor.java      7 May 2005 08:14:44 -0000       
1.5
  @@ -40,7 +40,15 @@
           String sequenceID = createSeqRes.getIdentifier().toString();
           //Approve the sequences. Now we can start sending the messages using
           // that sequence.
  +
           storageManager.setApprovedOutSequence(relatesTo.getURI().toString(), 
sequenceID);
  +        String offerID = 
storageManager.getOffer(relatesTo.getURI().toString());
  +
  +
  +        if (createSeqRes.getAccept() != null) {
  +            storageManager.setAcksTo(sequenceID, 
createSeqRes.getAccept().getAcksTo().getAddress().toString());
  +            storageManager.setAcksTo(offerID, 
createSeqRes.getAccept().getAcksTo().getAddress().toString());
  +        }
           //No response to this message.
           return false;
       }
  
  
  
  1.10      +4 -0      
ws-fx/sandesha/src/org/apache/sandesha/storage/dao/ISandeshaDAO.java
  
  Index: ISandeshaDAO.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/storage/dao/ISandeshaDAO.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- ISandeshaDAO.java 5 May 2005 07:35:17 -0000       1.9
  +++ ISandeshaDAO.java 7 May 2005 08:14:44 -0000       1.10
  @@ -126,4 +126,8 @@
       public void setAcksTo(String seqId,String acksTo);
       
       public String getAcksTo(String seqId);
  +
  +    void addOffer(String msgID, String offerID);
  +
  +    public String getOffer(String msgID);
   }
  \ No newline at end of file
  
  
  
  1.10      +13 -0     
ws-fx/sandesha/src/org/apache/sandesha/storage/dao/SandeshaDatabaseDAO.java
  
  Index: SandeshaDatabaseDAO.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/storage/dao/SandeshaDatabaseDAO.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- SandeshaDatabaseDAO.java  5 May 2005 07:35:17 -0000       1.9
  +++ SandeshaDatabaseDAO.java  7 May 2005 08:14:44 -0000       1.10
  @@ -37,6 +37,19 @@
           // TODO Auto-generated method stub
           return null;
       }
  +
  +    public void addOffer(String msgID, String offerID) {
  +        //To change body of implemented methods use File | Settings | File 
Templates.
  +    }
  +
  +    public void setOffer(String seqID, String Offer) {
  +        //To change body of implemented methods use File | Settings | File 
Templates.
  +    }
  +
  +    public String getOffer(String seqID) {
  +        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
  +    }
  +
       /* (non-Javadoc)
        * @see 
org.apache.sandesha.storage.dao.ISandeshaDAO#setAcksTo(java.lang.String, 
java.lang.String)
        */
  
  
  
  1.11      +12 -0     
ws-fx/sandesha/src/org/apache/sandesha/storage/dao/SandeshaQueueDAO.java
  
  Index: SandeshaQueueDAO.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/storage/dao/SandeshaQueueDAO.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- SandeshaQueueDAO.java     5 May 2005 07:35:17 -0000       1.10
  +++ SandeshaQueueDAO.java     7 May 2005 08:14:44 -0000       1.11
  @@ -488,4 +488,16 @@
           return  sq.getAcksTo(seqId);
           
       }
  +
  +    public void addOffer(String msgID, String offerID) {
  +        SandeshaQueue sq = SandeshaQueue.getInstance();
  +        sq.addOffer(msgID,offerID);
  +    }
  +
  +    public String getOffer(String msgID) {
  +         SandeshaQueue sq = SandeshaQueue.getInstance();
  +        return sq.getOffer(msgID);
  +    }
  +
  +
   }
  
  
  
  1.7       +9 -0      
ws-fx/sandesha/src/org/apache/sandesha/storage/queue/IncomingSequence.java
  
  Index: IncomingSequence.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/storage/queue/IncomingSequence.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- IncomingSequence.java     5 May 2005 07:35:17 -0000       1.6
  +++ IncomingSequence.java     7 May 2005 08:14:44 -0000       1.7
  @@ -46,6 +46,15 @@
       private boolean beingProcessedLock = false; //When true messages are
       private long lastMsgNo = -1;
       private String acksTo = null;
  +    private String offer;
  +
  +    public String getOffer() {
  +        return offer;
  +    }
  +
  +    public void setOffer(String offer) {
  +        this.offer = offer;
  +    }
   
       public void setAcksTo(String ack){
           acksTo = ack;
  
  
  
  1.7       +9 -0      
ws-fx/sandesha/src/org/apache/sandesha/storage/queue/OutgoingSequence.java
  
  Index: OutgoingSequence.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/storage/queue/OutgoingSequence.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- OutgoingSequence.java     12 Apr 2005 02:15:33 -0000      1.6
  +++ OutgoingSequence.java     7 May 2005 08:14:44 -0000       1.7
  @@ -54,6 +54,15 @@
       private static final Log log = 
LogFactory.getLog(OutgoingSequence.class.getName());
       public boolean terminateSent = false;
       private boolean hasResponse = false;
  +    private String offer;
  +
  +    public String getOffer() {
  +        return offer;
  +    }
  +
  +    public void setOffer(String offer) {
  +        this.offer = offer;
  +    }
   
       public boolean hasResponse() {
           return hasResponse;
  
  
  
  1.15      +52 -25    
ws-fx/sandesha/src/org/apache/sandesha/storage/queue/SandeshaQueue.java
  
  Index: SandeshaQueue.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/storage/queue/SandeshaQueue.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- SandeshaQueue.java        5 May 2005 07:35:17 -0000       1.14
  +++ SandeshaQueue.java        7 May 2005 08:14:44 -0000       1.15
  @@ -47,6 +47,8 @@
       HashMap queueBin; // Messaged processed from out queue will be moved
       ArrayList lowPriorityQueue;
       private List requestedSequences;
  +    HashMap acksToMap;
  +    HashMap offerMap;
       private static final Log log = 
LogFactory.getLog(SandeshaQueue.class.getName());
   
       public static final UUIDGen uuidGen = UUIDGenFactory.getUUIDGen();
  @@ -58,6 +60,8 @@
           queueBin = new HashMap();
           lowPriorityQueue = new ArrayList();
           requestedSequences = new ArrayList();
  +        acksToMap = new HashMap();
  +        offerMap = new HashMap();
       }
   
       public static SandeshaQueue getInstance() {
  @@ -472,6 +476,7 @@
               System.out.println("\n Sequence id - " + s);
               OutgoingSequence rsh = (OutgoingSequence) outgoingMap.get(s);
   
  +            System.out.println("out seq id:" + rsh.getOutSequenceId());
               Iterator it1 = rsh.getAllKeys().iterator();
               while (it1.hasNext()) {
                   Long l = (Long) it1.next();
  @@ -490,9 +495,9 @@
           while (it.hasNext()) {
               String s = (String) it.next();
               System.out.println("\n Sequence id - " + s);
  -            
  +
               IncomingSequence sh = (IncomingSequence) incomingMap.get(s);
  -            
  +
               Iterator it1 = sh.getAllKeys().iterator();
               while (it1.hasNext()) {
                   Long l = (Long) it1.next();
  @@ -924,46 +929,68 @@
           return null;
   
       }
  -    
  -    public void setAcksTo(String seqId,String acksTo){
  -        
  -        if(seqId==null){
  +
  +    public void setAcksTo(String seqId, String acksTo) {
  +
  +        if (seqId == null) {
               System.out.println("ERROR: seq is null");
               return;
           }
  -        
  -        Iterator it = incomingMap.keySet().iterator();
  -        
  -        while(it.hasNext()){
  -            String key = (String) it.next();
  -            if(key.equals(seqId)){
  -                IncomingSequence ics = (IncomingSequence) 
incomingMap.get(key);
  -                if(ics!=null){
  -                    ics.setAcksTo(acksTo);
  -                    break;
  -                }
  -            }
  -        }
  +
  +        /* Iterator it = incomingMap.keySet().iterator();
  +
  +         while(it.hasNext()){
  +             String key = (String) it.next();
  +             if(key.equals(seqId)){
  +                 IncomingSequence ics = (IncomingSequence) 
incomingMap.get(key);
  +                 if(ics!=null){
  +                     ics.setAcksTo(acksTo);
  +                     break;
  +                 }
  +             }
  +         }   */
  +
  +        acksToMap.put(seqId, acksTo);
       }
  -    
  -    public String getAcksTo(String seqId){
  -        
  -        displayIncomingMap();
  -        if(seqId==null){
  +
  +    public String getAcksTo(String seqId) {
  +
  +        if (seqId == null) {
               System.out.println("ERROR: seq is null");
               return null;
           }
           
  -        IncomingSequence ics = (IncomingSequence) incomingMap.get(seqId);
  +        /*IncomingSequence ics = (IncomingSequence) incomingMap.get(seqId);
           
           if(ics!=null){
               return ics.getAcksTo();
           }else {
               System.out.println("ERROR: ics null");
               return null;
  +        } */
  +
  +        String str = (String) acksToMap.get(seqId);
  +        String strTemp = str.toString();
  +        // return (String) acksToMap.get(seqId);
  +        return strTemp;
  +    }
  +
  +
  +    public void addOffer(String msgID, String offerID) {
  +
  +        if (msgID == null) {
  +            System.out.println("ERROR: seq is null");
           }
  +        offerMap.put(msgID, offerID);
       }
   
  +    public String getOffer(String msgID) {
  +        if (msgID == null) {
  +            System.out.println("ERROR: seq is null");
  +            return null;
  +        }
  +        return (String) offerMap.get(msgID);
  +    }
   
   }
   
  
  
  
  1.16      +17 -9     
ws-fx/sandesha/src/org/apache/sandesha/util/RMMessageCreator.java
  
  Index: RMMessageCreator.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/util/RMMessageCreator.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- RMMessageCreator.java     5 May 2005 12:57:01 -0000       1.15
  +++ RMMessageCreator.java     7 May 2005 08:14:44 -0000       1.16
  @@ -27,14 +27,12 @@
   import org.apache.axis.types.URI;
   import org.apache.sandesha.Constants;
   import org.apache.sandesha.RMMessageContext;
  -import org.apache.sandesha.ws.rm.AcksTo;
  -import org.apache.sandesha.ws.rm.CreateSequence;
  -import org.apache.sandesha.ws.rm.RMHeaders;
  +import org.apache.sandesha.ws.rm.*;
   
   public class RMMessageCreator {
       private static final UUIDGen uuidGen = UUIDGenFactory.getUUIDGen();
   
  -    public static RMMessageContext createCreateSeqMsg(RMMessageContext 
rmMsgCtx, byte endPoint) throws Exception {
  +    public static RMMessageContext createCreateSeqMsg(RMMessageContext 
rmMsgCtx, byte endPoint, String msgID, String offer) throws Exception {
           RMMessageContext createSeqRMMsgContext = new RMMessageContext();
           rmMsgCtx.copyContents(createSeqRMMsgContext);
   
  @@ -43,17 +41,26 @@
           CreateSequence createSeq = new CreateSequence();
           AcksTo acksTo = getAcksTo(rmMsgCtx, endPoint);
           createSeq.setAcksTo(acksTo);
  +
  +        if (offer != null) {
  +             SequenceOffer seqOffer = new SequenceOffer();
  +            Identifier id = new Identifier();
  +            id.setIdentifier(offer);
  +
  +            seqOffer.setIdentifier(id);
  +            createSeq.setOffer(seqOffer);
  +        }
  +
           rmHeaders.setCreateSequence(createSeq);
           createSeqRMMsgContext.setRMHeaders(rmHeaders);
   
  -        AddressingHeaders csAddrHeaders = 
getAddressingHeaedersForCreateSequenceRequest(rmMsgCtx, endPoint);
  +        AddressingHeaders csAddrHeaders = 
getAddressingHeaedersForCreateSequenceRequest(rmMsgCtx, endPoint, msgID);
   
           csAddrHeaders.setAction(new Action(new 
URI(Constants.WSRM.ACTION_CREATE_SEQUENCE)));
           createSeqRMMsgContext.setAddressingHeaders(csAddrHeaders);
   
  -        String msgId = Constants.UUID + uuidGen.nextUUID();
  -        createSeqRMMsgContext.setMessageID(msgId);
  -        createSeqRMMsgContext.addToMsgIdList(msgId);
  +        createSeqRMMsgContext.setMessageID(msgID);
  +        createSeqRMMsgContext.addToMsgIdList(msgID);
           createSeqRMMsgContext.setSync(rmMsgCtx.getSync());
           
createSeqRMMsgContext.setMessageType(Constants.MSG_TYPE_CREATE_SEQUENCE_REQUEST);
   
  @@ -68,8 +75,9 @@
           return createSeqRMMsgContext;
       }
   
  -    private static AddressingHeaders 
getAddressingHeaedersForCreateSequenceRequest(RMMessageContext rmMsgCtx, byte 
endPoint) throws Exception {
  +    private static AddressingHeaders 
getAddressingHeaedersForCreateSequenceRequest(RMMessageContext rmMsgCtx, byte 
endPoint, String msgID) throws Exception {
           AddressingHeaders csAddrHeaders = new AddressingHeaders();
  +        csAddrHeaders.setMessageID(new MessageID(new URI(msgID)));
           if (endPoint == Constants.SERVER) {
               AddressingHeaders ah = rmMsgCtx.getAddressingHeaders();
               csAddrHeaders.setFrom(new 
EndpointReference(ah.getTo().toString()));
  
  
  
  1.2       +7 -0      ws-fx/sandesha/src/org/apache/sandesha/ws/rm/Accept.java
  
  Index: Accept.java
  ===================================================================
  RCS file: /home/cvs/ws-fx/sandesha/src/org/apache/sandesha/ws/rm/Accept.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Accept.java       5 May 2005 13:06:02 -0000       1.1
  +++ Accept.java       7 May 2005 08:14:44 -0000       1.2
  @@ -77,6 +77,9 @@
                   acksTo.fromSOAPEnvelope(childElement);
               }
   
  +               if (childElement.getName().equals(Constants.WSRM.ACKS_TO)) {
  +                acksTo = new AcksTo();
  +                acksTo.fromSOAPEnvelope(childElement);}
   
           }
   
  @@ -136,5 +139,9 @@
           this.acksTo=acksTo;
       }
   
  +    public AcksTo getAcksTo(){
  +        return this.acksTo;
  +    }
  +
   
   }
  \ No newline at end of file
  
  
  
  1.16      +1 -1      
ws-fx/sandesha/src/org/apache/sandesha/ws/rm/CreateSequenceResponse.java
  
  Index: CreateSequenceResponse.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/ws/rm/CreateSequenceResponse.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- CreateSequenceResponse.java       5 May 2005 12:57:01 -0000       1.15
  +++ CreateSequenceResponse.java       7 May 2005 08:14:44 -0000       1.16
  @@ -120,7 +120,7 @@
                   identifier.fromSOAPEnvelope(childElement);
               }
   
  -            if (childElement.getName().equals(Constants.WSU.WSU_PREFIX + 
Constants.COLON + Constants.WSRM.ACCEPT)) {
  +            if (childElement.getName().equals(Constants.WSRM.NS_PREFIX_RM + 
Constants.COLON + Constants.WSRM.ACCEPT)) {
                   accept = new Accept();
                   accept.fromSOAPEnvelope(childElement);
               }
  
  
  
  1.4       +2 -2      
ws-fx/sandesha/src/org/apache/sandesha/ws/rm/SequenceOffer.java
  
  Index: SequenceOffer.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/ws/rm/SequenceOffer.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- SequenceOffer.java        2 May 2005 04:34:04 -0000       1.3
  +++ SequenceOffer.java        7 May 2005 08:14:44 -0000       1.4
  @@ -36,8 +36,8 @@
       private Identifier identifier;
       
       public SequenceOffer (){
  -        offerElement = new MessageElement();
  -        
offerElement.setName(Constants.WSRM.NS_PREFIX_RM+Constants.COLON+Constants.WSRM.SEQUENCE_OFFER);
  +        offerElement = new 
MessageElement(Constants.WSRM.SEQUENCE_OFFER,Constants.WSRM.NS_PREFIX_RM,Constants.WSRM.NS_URI_RM);
  +        
//offerElement.setName(Constants.WSRM.NS_PREFIX_RM+Constants.COLON+Constants.WSRM.SEQUENCE_OFFER);
       }
       
       public void addChildElement(MessageElement element) throws SOAPException 
{
  
  
  
  1.45      +3 -1      
ws-fx/sandesha/src/org/apache/sandesha/ws/rm/providers/RMProvider.java
  
  Index: RMProvider.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/ws/rm/providers/RMProvider.java,v
  retrieving revision 1.44
  retrieving revision 1.45
  diff -u -r1.44 -r1.45
  --- RMProvider.java   5 May 2005 12:57:01 -0000       1.44
  +++ RMProvider.java   7 May 2005 08:14:44 -0000       1.45
  @@ -61,6 +61,7 @@
           //user can specify them in the server-config.wsdd as parameters to 
the service
           //parameter names should be in  ignoreAction1, ignoreAction2 format.
   
  +
           if (isIgnorableMessage(msgContext)) {
               RPCProvider rpcProvider = new RPCProvider();
               rpcProvider.invoke(msgContext);
  @@ -73,6 +74,7 @@
               try {
                   MessageValidator.validate(rmMessageContext, client);
               } catch (AxisFault af) {
  +                af.printStackTrace();
                   FaultProcessor faultProcessor = new 
FaultProcessor(storageManager, af);
                   if (!faultProcessor.processMessage(rmMessageContext)) {
                       msgContext.setPastPivot(true);
  @@ -81,7 +83,6 @@
                   }
                   return;
               }
  -
               RMHeaders rmHeaders = rmMessageContext.getRMHeaders();
               AddressingHeaders addrHeaders = 
rmMessageContext.getAddressingHeaders();
   
  @@ -97,6 +98,7 @@
               } else {
                   
rmMessageContext.setMessageID(addrHeaders.getMessageID().toString());
               }
  +
               IRMMessageProcessor rmMessageProcessor = 
RMMessageProcessorIdentifier.getMessageProcessor(rmMessageContext, 
storageManager);
   
               try {
  
  
  

Reply via email to