jaliya      2005/05/05 05:57:01

  Modified:    sandesha/src/org/apache/sandesha Constants.java
                        EnvelopeCreator.java
               sandesha/src/org/apache/sandesha/client RMSender.java
               sandesha/src/org/apache/sandesha/server
                        MessageValidator.java RMInvoker.java
               sandesha/src/org/apache/sandesha/server/msgprocessors
                        CreateSequenceProcessor.java FaultProcessor.java
               sandesha/src/org/apache/sandesha/util RMMessageCreator.java
               sandesha/src/org/apache/sandesha/ws/rm
                        CreateSequenceResponse.java RMHeaders.java
               sandesha/src/org/apache/sandesha/ws/rm/providers
                        RMProvider.java
  Log:
  Added the capability to send <wsrm:Accept> when a sequence is offered
  
  Revision  Changes    Path
  1.43      +4 -0      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.42
  retrieving revision 1.43
  diff -u -r1.42 -r1.43
  --- Constants.java    2 May 2005 04:17:09 -0000       1.42
  +++ Constants.java    5 May 2005 12:57:01 -0000       1.43
  @@ -39,6 +39,7 @@
   
       public static final String URL_RM_SERVICE = "/axis/services/RMService";
       public static final String IGNORE_ACTION = "ignoreAction";
  +    public static final String RESPONSE="Response";
   
       public static final long RETRANSMISSION_INTERVAL = 4000;
       public static final long ACKNOWLEDGEMENT_INTERVAL = 200;
  @@ -94,6 +95,7 @@
           public static final String SEQUENCE_FAULT = "SequenceFault";
           public static final String ACKS_TO = "AcksTo";
           public static final String SEQUENCE_OFFER = "Offer";
  +        public static final String ACCEPT="Accept";
   
   
           public static final double MAX_MSG_NO = 18446744073709551615d;
  @@ -111,6 +113,8 @@
   
           public static final String NO_ADDRESSING_HEADERS = "No Addressing 
Headers Available in this Message";
           public static final String NO_MESSAGE_ID = "MessageID should be 
present in the message";
  +        public static final String NO_TO="Required header <wsa:To> NOT 
found.";
  +        public static final String NO_ACTION="Required header <wsa:Action> 
NOT found.";
   
           public static final String NO_RM_HEADES = "No RM Headers Available 
in this Message";
   
  
  
  
  1.35      +25 -19    
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.34
  retrieving revision 1.35
  diff -u -r1.34 -r1.35
  --- EnvelopeCreator.java      5 May 2005 06:06:29 -0000       1.34
  +++ EnvelopeCreator.java      5 May 2005 12:57:01 -0000       1.35
  @@ -39,25 +39,20 @@
       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) throws Exception {
  +    public static SOAPEnvelope createCreateSequenceResponseEnvelope(String 
uuid, RMMessageContext rmMessageContext,boolean hasOffer, boolean 
offerAccepted) throws Exception {
   
  -        //Set the SOAPEnvelope to the resEnv of the rmMessageContext.
           AddressingHeaders addressingHeaders = 
rmMessageContext.getAddressingHeaders();
           RMHeaders rmHeaders = rmMessageContext.getRMHeaders();
           SOAPEnvelope envelope = createBasicEnvelop();
   
           AddressingHeaders outGoingAddressingHaders = new 
AddressingHeaders(envelope);
           Action action = new Action(new 
URI(Constants.WSRM.ACTION_CREATE_SEQUENCE_RESPONSE));
  -        //TODO actor??
  -        SOAPHeaderElement actionElement = 
action.toSOAPHeaderElement(envelope, null);
  -        //actionElement.setMustUnderstand(true);
  +
           outGoingAddressingHaders.setAction(action);
   
  -        //Set the messageID
           MessageID messageId = new MessageID(new URI(Constants.UUID + 
uuidGen.nextUUID()));
           outGoingAddressingHaders.setMessageID(messageId);
   
  -        //Set the <wsa:From> address from the incoming <wsa:To>
           To incommingTo = addressingHeaders.getTo();
           URI fromAddressURI = new URI(incommingTo.toString());
   
  @@ -93,6 +88,15 @@
           Identifier id = new Identifier();
           id.setIdentifier(Constants.UUID + uuid);
           response.setIdentifier(id);
  +
  +        if(hasOffer&&offerAccepted){
  +            Accept accept= new Accept();
  +            AcksTo acksTo= new AcksTo();
  +            acksTo.setAddress(new 
Address(addressingHeaders.getTo().toString()));
  +            accept.setAcksTo(acksTo);
  +            response.setAccept(accept);
  +        }
  +
           response.toSoapEnvelop(envelope);
           return envelope;
       }
  @@ -103,19 +107,21 @@
           AddressingHeaders addressingHeaders = 
rmMsgCtx.getAddressingHeaders();
           SOAPEnvelope envelope = createBasicEnvelop();
           addressingHeaders.toEnvelope(envelope);
  -        rmMsgCtx.getRMHeaders().getCreateSequence().toSoapEnvelop(envelope);
  +        CreateSequence crSeq= rmMsgCtx.getRMHeaders().getCreateSequence();
   
           //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);
  -//
  -//        offer.setIdentifier(id);
  -//        createSeq.setOffer(offer);
  +       /* 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);*/
           //end offer
  +
  +        crSeq.toSoapEnvelop(envelope);
           return envelope;
       }
   
  @@ -203,7 +209,7 @@
           //outGoingAddressingHaders.setRelatesTo(relatesToList);
           ///RelatesTo relatesTo = new RelatesTo();
           if (rmMessageContext.getOldSequenceID() != null)
  -            
outGoingAddressingHaders.addRelatesTo(rmMessageContext.getMessageID(), new 
QName("aa", "bb"));
  +            
outGoingAddressingHaders.addRelatesTo(rmMessageContext.getMessageID(), null);
   
           //Set the messageID
           MessageID messageId = new MessageID(new URI(Constants.UUID + 
uuidGen.nextUUID()));
  @@ -233,8 +239,8 @@
           //Set the action
           //TODO
           //Action shuld also be taken from the server-config.wsdd
  -        if (rmMessageContext.getAction() != null) {
  -            Action action = new Action(new 
URI(rmMessageContext.getAction()));
  +        if (addressingHeaders.getAction() != null) {
  +            Action action = new Action(new 
URI(addressingHeaders.getAction().toString()));
               outGoingAddressingHaders.setAction(action);
           }
   
  
  
  
  1.38      +2 -15     
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.37
  retrieving revision 1.38
  diff -u -r1.37 -r1.38
  --- RMSender.java     5 May 2005 06:06:30 -0000       1.37
  +++ RMSender.java     5 May 2005 12:57:01 -0000       1.38
  @@ -56,7 +56,6 @@
                   
storageManager.insertTerminateSeqMessage(RMMessageCreator.createTerminateSeqMsg(reqMsgCtx,
 Constants.CLIENT));
               }
   
  -
               if (reqMsgCtx.isHasResponse()) {
                   RMMessageContext responseMessageContext = null;
                   while (responseMessageContext == null) {
  @@ -84,13 +83,9 @@
           storageManager.addOutgoingSequence(reqRMMsgContext.getSequenceID());
           
storageManager.setTemporaryOutSequence(reqRMMsgContext.getSequenceID(), 
createSeqRMMsgContext.getMessageID());
   
  -        //Set the processing state to the RMMessageContext
           createSeqRMMsgContext.setSync(sync);
  -
           storageManager.addCreateSequenceRequest(createSeqRMMsgContext);
  -
           RMMessageContext serviceRequestMsg = 
RMMessageCreator.createServiceRequestMessage(reqRMMsgContext);
  -
           processRequestMessage(serviceRequestMsg);
           return reqRMMsgContext;
       }
  @@ -111,22 +106,14 @@
       }
   
       private RMMessageContext getRMMessageContext(MessageContext msgCtx) 
throws Exception {
  -        //Get a copy of the MessageContext. This is required when sending 
multiple messages from
  -        //one call object
  +        //Get a copy of the MessageContext. This is required when sending 
multiple messages from one call object
           MessageContext newMsgContext = 
RMMessageCreator.cloneMsgContext(msgCtx);
           RMMessageContext requestMesssageContext = new RMMessageContext();
  -        //Get the message information from the client.
           Call call = (Call) newMsgContext.getProperty(MessageContext.CALL);
  -        //If the property specified by the client is not valid an AxisFault 
will be sent at this point.
  +
           requestMesssageContext = ClientPropertyValidator.validate(call);
           requestMesssageContext.setOutGoingAddress((String) 
msgCtx.getProperty(MessageContext.TRANS_URL));
           requestMesssageContext.setMsgContext(newMsgContext);
  -        /*     AddressingHeaders addrHeaders = 
RMMessageCreator.getAddressingHeaders(requestMesssageContext);
  -            if (requestMesssageContext.getAction() != null)
  -                 addrHeaders.setAction(new Action(new 
URI(requestMesssageContext.getAction())));
  -             requestMesssageContext.setAddressingHeaders(addrHeaders);
  -             
requestMesssageContext.setMessageType(Constants.MSG_TYPE_SERVICE_REQUEST);
  -             requestMesssageContext.setMessageID(Constants.UUID + 
uuidGen.nextUUID());*/
           return requestMesssageContext;
       }
   
  
  
  
  1.17      +7 -4      
ws-fx/sandesha/src/org/apache/sandesha/server/MessageValidator.java
  
  Index: MessageValidator.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/server/MessageValidator.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- MessageValidator.java     5 May 2005 06:06:30 -0000       1.16
  +++ MessageValidator.java     5 May 2005 12:57:01 -0000       1.17
  @@ -46,7 +46,6 @@
           MessageContext msgContext = rmMsgContext.getMsgContext();
           try {
               AddressingHeaders addrHeaders=new 
AddressingHeaders(msgContext.getRequestMessage().getSOAPEnvelope());
  -            //ddressingHeaders addrHeaders = (AddressingHeaders) 
msgContext.getProperty(org.apache.axis.message.addressing.Constants.ENV_ADDRESSING_REQUEST_HEADERS);
               validateAddrHeaders(addrHeaders);
               rmMsgContext.setAddressingHeaders(addrHeaders);
   
  @@ -58,9 +57,11 @@
               validateForFaults(rmMsgContext);
           } catch (SOAPException e) {
               log.error(e);
  -            //TODO Do we need to throw a Sequence Fault at this level.
  +            throw new AxisFault(new 
QName(Constants.FaultCodes.IN_CORRECT_MESSAGE), e.getMessage(), null, null);
           } catch (Exception e) {
               log.error(e);
  +             throw new AxisFault(new 
QName(Constants.FaultCodes.IN_CORRECT_MESSAGE), e.getMessage(), null, null);
  +
           }
       }
   
  @@ -107,7 +108,9 @@
           if (addrHeaders == null) {
               throw new AxisFault(new 
QName(Constants.FaultCodes.IN_CORRECT_MESSAGE), 
Constants.FaultMessages.NO_ADDRESSING_HEADERS, null, null);
           }
  -        //if (addrHeaders.getMessageID() == null)
  -        //    throw new AxisFault(new 
QName(Constants.FaultCodes.IN_CORRECT_MESSAGE), 
Constants.FaultMessages.NO_MESSAGE_ID, null, null);
  +        if (addrHeaders.getTo() == null)
  +            throw new AxisFault(new 
QName(Constants.FaultCodes.IN_CORRECT_MESSAGE), Constants.FaultMessages.NO_TO, 
null, null);
  +         if (addrHeaders.getAction() == null)
  +            throw new AxisFault(new 
QName(Constants.FaultCodes.IN_CORRECT_MESSAGE), Constants.FaultMessages.NO_TO, 
null, null);
       }
   }
  
  
  
  1.25      +3 -1      
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.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- RMInvoker.java    5 May 2005 06:06:30 -0000       1.24
  +++ RMInvoker.java    5 May 2005 12:57:01 -0000       1.25
  @@ -59,12 +59,14 @@
                       provider.invoke(rmMessageContext.getMsgContext());
   
                       if 
(rmMessageContext.getMsgContext().getOperation().getMethod().getReturnType() != 
Void.TYPE) {
  +                      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);
  +                                RMMessageContext terminateMsg = 
RMMessageCreator.createTerminateSeqMsg(rmMessageContext, Constants.SERVER);
                                   terminateMsg.setOutGoingAddress(replyTo);
                                   
storageManager.insertTerminateSeqMessage(terminateMsg);
                               } else {
  
  
  
  1.16      +56 -67    
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.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- CreateSequenceProcessor.java      2 May 2005 04:40:49 -0000       1.15
  +++ CreateSequenceProcessor.java      5 May 2005 12:57:01 -0000       1.16
  @@ -28,9 +28,9 @@
   import org.apache.sandesha.IStorageManager;
   import org.apache.sandesha.RMMessageContext;
   import org.apache.sandesha.ws.rm.CreateSequence;
  +import org.apache.sandesha.ws.rm.Identifier;
   import org.apache.sandesha.ws.rm.RMHeaders;
   import org.apache.sandesha.ws.rm.SequenceOffer;
  -import org.apache.sandesha.ws.rm.Identifier;
   
   /**
    * @author
  @@ -49,9 +49,8 @@
           AddressingHeaders addrHeaders = 
rmMessageContext.getAddressingHeaders();
           RMHeaders rmHeaders = rmMessageContext.getRMHeaders();
   
  -        AcknowledgementProcessor ackProcessor = new 
AcknowledgementProcessor(this.storageManager);
           if (rmHeaders.getSequenceAcknowledgement() != null) {
  -            ackProcessor.processMessage(rmMessageContext);
  +            processForAckIfAny(rmMessageContext);
           }
   
           //wsrm:CreateSequenceRefused
  @@ -59,48 +58,39 @@
               throw new AxisFault();
   
           String uuid = uuidGen.nextUUID();
  -
           
storageManager.addRequestedSequence(org.apache.sandesha.Constants.UUID + uuid);
   
           //To support offer
           CreateSequence createSeq = 
rmMessageContext.getRMHeaders().getCreateSequence();
           SequenceOffer offer = createSeq.getOffer();
  -
  -        String responseSeqId = null;
  -
  +        boolean offerAccepted = false;
  +        boolean hasOffer=false;
           if (offer != null) {
  -            Identifier id = offer.getIdentifier();
  -            if (id != null)
  -                responseSeqId = id.getIdentifier();
  +            hasOffer=true;
  +            offerAccepted = acceptOrRejectOffer(offer);
  +            if (offerAccepted) {
  +                String responseSeqId = null;
  +                if (offer != null) {
  +                    Identifier id = offer.getIdentifier();
  +                    if (id != null)
  +                        responseSeqId = id.getIdentifier();
  +                }
  +                String incomingSeqId = Constants.UUID + uuid;
  +                if (responseSeqId != null) {
  +                    storageManager.addOutgoingSequence(incomingSeqId);
  +                    storageManager.setTemporaryOutSequence(incomingSeqId, 
responseSeqId);
  +                    storageManager.setApprovedOutSequence(responseSeqId, 
responseSeqId);
  +                    //Now it has a approved out sequence of responseSeqId
  +                }
  +            }
           }
   
  -        String incomingSeqId = org.apache.sandesha.Constants.UUID + uuid;
  -        if (responseSeqId != null) {
  -            storageManager.addOutgoingSequence(incomingSeqId);
  -            storageManager.setTemporaryOutSequence(incomingSeqId, 
responseSeqId);
  -            storageManager.setApprovedOutSequence(responseSeqId, 
responseSeqId);
  -            //Now it has a approved out sequence of responseSeqId   
  -        }
  -        
           //END OFFER PROCESSING
  -
  -        if ((createSeq.getAcksTo() != null)) {
  -            if 
((createSeq.getAcksTo().getAddress().toString().equals(Constants.WSA.NS_ADDRESSING_ANONYMOUS)))
 {
  -                rmMessageContext.setSync(true);
  -            } else {
  -                rmMessageContext.setSync(false);
  -                
rmMessageContext.setOutGoingAddress(createSeq.getAcksTo().getAddress().toString());
  -            }
  -        } else if (addrHeaders.getReplyTo() == null || 
addrHeaders.getReplyTo().getAddress().toString().equals(Constants.WSA.NS_ADDRESSING_ANONYMOUS))
 {
  -            rmMessageContext.setSync(true);
  -        } else {
  -            rmMessageContext.setSync(false);
  -             
rmMessageContext.setOutGoingAddress(addrHeaders.getReplyTo().getAddress().toString());
  -        }
  +        setOutGoingAddress(rmMessageContext, addrHeaders);
   
           SOAPEnvelope resEnvelope = null;
           try {
  -            resEnvelope = 
EnvelopeCreator.createCreateSequenceResponseEnvelope(uuid, rmMessageContext);
  +            resEnvelope = 
EnvelopeCreator.createCreateSequenceResponseEnvelope(uuid, 
rmMessageContext,hasOffer,offerAccepted);
           } catch (Exception e) {
               throw new 
AxisFault(org.apache.sandesha.Constants.FaultCodes.WSRM_SERVER_INTERNAL_ERROR);
           }
  @@ -111,47 +101,46 @@
               return true;
   
           } else {
  -               MessageContext msgContext = new 
MessageContext(rmMessageContext.getMsgContext().getAxisEngine());
  -                msgContext.setResponseMessage(new Message(resEnvelope));
  -                rmMessageContext.setMsgContext(msgContext);
  -
  -                rmMessageContext.setSync(false);
  -                storageManager.addCreateSequenceResponse(rmMessageContext);
  -                return false;
  -        }
  -
  -
  -      /*  if ((createSeq.getAcksTo() != null)) {
  -            if 
((createSeq.getAcksTo().getAddress().toString().equals(Constants.WSA.NS_ADDRESSING_ANONYMOUS)))
 {
  -                rmMessageContext.getMsgContext().setResponseMessage(new 
Message(resEnvelope));
  -                rmMessageContext.setSync(true);
  -                return true;
  -            } else {
  -                MessageContext msgContext = new 
MessageContext(rmMessageContext.getMsgContext().getAxisEngine());
  -                msgContext.setResponseMessage(new Message(resEnvelope));
  -                rmMessageContext.setMsgContext(msgContext);
  -
  -                
rmMessageContext.setOutGoingAddress(addrHeaders.getReplyTo().getAddress().toString());
  -                rmMessageContext.setSync(false);
  -                storageManager.addCreateSequenceResponse(rmMessageContext);
  -                return false;
  -            }
  -        } else if (addrHeaders.getReplyTo() == null || 
addrHeaders.getReplyTo().getAddress().toString()
  -                .equals(Constants.WSA.NS_ADDRESSING_ANONYMOUS)) {
  -            //Inform that we have a synchronous response.
  -            rmMessageContext.getMsgContext().setResponseMessage(new 
Message(resEnvelope));
  -            rmMessageContext.setSync(true);
  -            return true;
  -        } else {
               MessageContext msgContext = new 
MessageContext(rmMessageContext.getMsgContext().getAxisEngine());
               msgContext.setResponseMessage(new Message(resEnvelope));
               rmMessageContext.setMsgContext(msgContext);
   
  -            
rmMessageContext.setOutGoingAddress(addrHeaders.getReplyTo().getAddress().toString());
               rmMessageContext.setSync(false);
               storageManager.addCreateSequenceResponse(rmMessageContext);
               return false;
           }
  -        */
  +
  +    }
  +
  +    private void handleOffer(){
  +
  +    }
  +
  +    //TODO  Implent the strategy for accepting the offer or rejecting it.
  +    private boolean acceptOrRejectOffer(SequenceOffer offer) {
  +        return true;
  +    }
  +
  +    private void processForAckIfAny(RMMessageContext rmMsgCtx) throws 
AxisFault {
  +        AcknowledgementProcessor ackProcessor = new 
AcknowledgementProcessor(this.storageManager);
  +        ackProcessor.processMessage(rmMsgCtx);
  +    }
  +
  +    private void setOutGoingAddress(RMMessageContext rmMsgCtx, 
AddressingHeaders addrHeaders) {
  +        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))
 {
  +            rmMsgCtx.setSync(true);
  +        } else {
  +            rmMsgCtx.setSync(false);
  +            
rmMsgCtx.setOutGoingAddress(addrHeaders.getReplyTo().getAddress().toString());
  +        }
  +
       }
   }
  \ No newline at end of file
  
  
  
  1.10      +0 -14     
ws-fx/sandesha/src/org/apache/sandesha/server/msgprocessors/FaultProcessor.java
  
  Index: FaultProcessor.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/server/msgprocessors/FaultProcessor.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- FaultProcessor.java       2 May 2005 04:17:09 -0000       1.9
  +++ FaultProcessor.java       5 May 2005 12:57:01 -0000       1.10
  @@ -63,20 +63,6 @@
           //return false
           SOAPFault soapFault = null;
   
  -        /*
  -        if 
(Constants.FaultCodes.IN_CORRECT_MESSAGE.equalsIgnoreCase(axisFault.getFaultCode().getLocalPart())){
  -            soapFault = new SOAPFault(this.axisFault);
  -        }
  -
  -         if 
(Constants.FaultCodes.WSRM_FAULT_UNKNOWN_SEQUENCE.equalsIgnoreCase(axisFault.getFaultCode().getLocalPart())){
  -            soapFault = new SOAPFault(this.axisFault);
  -        }
  -
  -          if 
(Constants.FaultCodes.WSRM_FAULR_LAST_MSG_NO_EXCEEDED.equalsIgnoreCase(axisFault.getFaultCode().getLocalPart())){
  -            soapFault = new SOAPFault(this.axisFault);
  -        }
  -            */
  -
           soapFault = new SOAPFault(this.axisFault);
           return sendFault(rmMessageContext, soapFault);
   
  
  
  
  1.15      +2 -162    
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.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- RMMessageCreator.java     5 May 2005 06:06:30 -0000       1.14
  +++ RMMessageCreator.java     5 May 2005 12:57:01 -0000       1.15
  @@ -34,43 +34,9 @@
   public class RMMessageCreator {
       private static final UUIDGen uuidGen = UUIDGenFactory.getUUIDGen();
   
  -    /*public static RMMessageContext createCreateSeqMsg(RMMessageContext 
rmMsgCtx) throws Exception {
  -        AddressingHeaders addrHeaders = getAddressingHeaders(rmMsgCtx);
  -        String uuid = uuidGen.nextUUID(); String uuid = uuidGen.nextUUID();
  -
  -        //Create the RMMessageContext to hold the create Sequence Request.
  -        RMMessageContext createSeqRMMsgContext = new RMMessageContext();
  -
  -        String msgId = Constants.UUID + uuid;
  -        createSeqRMMsgContext.setMessageID(msgId);
  -        createSeqRMMsgContext.addToMsgIdList(msgId);
  -        MessageContext msgContext = rmMsgCtx.getMsgContext();
  -
  -        String toAddress = rmMsgCtx.getOutGoingAddress();
  -        //Set the action
  -        Action action = new Action(new 
URI(Constants.WSRM.ACTION_CREATE_SEQUENCE));
  -        addrHeaders.setAction(action);
  -        createSeqRMMsgContext.setAddressingHeaders(addrHeaders);
  -        createSeqRMMsgContext.setSync(rmMsgCtx.getSync());
  -        createSeqRMMsgContext.setAcksTo(rmMsgCtx.getAcksTo());
  -
  -        createSeqRMMsgContext.setOutGoingAddress(toAddress);
  -        SOAPEnvelope resEnvelope = 
EnvelopeCreator.createCreateSequenceEnvelope(uuid, createSeqRMMsgContext, 
Constants.CLIENT);
  -        MessageContext createSeqMsgContext = new 
MessageContext(msgContext.getAxisEngine());
  -        //This should be a clone operation.
  -        RMMessageContext.copyMessageContext(msgContext, createSeqMsgContext);
  -        createSeqMsgContext.setRequestMessage(new Message(resEnvelope));
  -        createSeqRMMsgContext.setMsgContext(createSeqMsgContext);
  -        //Set the message type
  -        
createSeqRMMsgContext.setMessageType(Constants.MSG_TYPE_CREATE_SEQUENCE_REQUEST);
  -        return createSeqRMMsgContext;
  -    }*/
  -
  -
       public static RMMessageContext createCreateSeqMsg(RMMessageContext 
rmMsgCtx, byte endPoint) throws Exception {
           RMMessageContext createSeqRMMsgContext = new RMMessageContext();
           rmMsgCtx.copyContents(createSeqRMMsgContext);
  -        //AddressingHeaders addrHeaders = getAddressingHeaders(rmMsgCtx);
   
           RMHeaders rmHeaders = new RMHeaders();
   
  @@ -80,25 +46,12 @@
           rmHeaders.setCreateSequence(createSeq);
           createSeqRMMsgContext.setRMHeaders(rmHeaders);
   
  -        //AddressingHeaders csAddrHeaders = new AddressingHeaders();
  -
           AddressingHeaders csAddrHeaders = 
getAddressingHeaedersForCreateSequenceRequest(rmMsgCtx, endPoint);
  -        /*  if (endPoint == Constants.CLIENT) {
  -              csAddrHeaders.setTo(addrHeaders.getTo());
  -              csAddrHeaders.setFaultTo(addrHeaders.getFaultTo());
  -              csAddrHeaders.setReplyTo(addrHeaders.getReplyTo());
  -              csAddrHeaders.setFrom(addrHeaders.getFrom());
  -          } else {
  -              csAddrHeaders.setTo(new 
To(addrHeaders.getReplyTo().getAddress().toString()));
  -              csAddrHeaders.setFaultTo(new FaultTo(new 
Address(rmMsgCtx.getAddressingHeaders().getTo().toString())));
  -              csAddrHeaders.setFrom(new From(new 
Address(rmMsgCtx.getAddressingHeaders().getTo().toString())));
  -          }*/
  -        csAddrHeaders.setAction(new Action(new 
URI(Constants.WSRM.ACTION_CREATE_SEQUENCE)));
   
  +        csAddrHeaders.setAction(new Action(new 
URI(Constants.WSRM.ACTION_CREATE_SEQUENCE)));
           createSeqRMMsgContext.setAddressingHeaders(csAddrHeaders);
   
  -        String uuid = uuidGen.nextUUID();
  -        String msgId = Constants.UUID + uuid;
  +        String msgId = Constants.UUID + uuidGen.nextUUID();
           createSeqRMMsgContext.setMessageID(msgId);
           createSeqRMMsgContext.addToMsgIdList(msgId);
           createSeqRMMsgContext.setSync(rmMsgCtx.getSync());
  @@ -116,7 +69,6 @@
       }
   
       private static AddressingHeaders 
getAddressingHeaedersForCreateSequenceRequest(RMMessageContext rmMsgCtx, byte 
endPoint) throws Exception {
  -        //AddressingHeaders addrHeaders = rmMsgCtx.getAddressingHeaders();
           AddressingHeaders csAddrHeaders = new AddressingHeaders();
           if (endPoint == Constants.SERVER) {
               AddressingHeaders ah = rmMsgCtx.getAddressingHeaders();
  @@ -132,7 +84,6 @@
                   csAddrHeaders.setReplyTo(new 
EndpointReference(Constants.WSA.NS_ADDRESSING_ANONYMOUS));
               } else {
                   String sourceURL = rmMsgCtx.getSourceURL();
  -
                   if (rmMsgCtx.getFrom() != null)
                       csAddrHeaders.setFrom(new 
EndpointReference(rmMsgCtx.getFrom()));
                   else
  @@ -145,16 +96,13 @@
                       csAddrHeaders.setFaultTo(new 
EndpointReference(rmMsgCtx.getFaultTo()));
                   else
                       csAddrHeaders.setFaultTo(new 
EndpointReference(sourceURL));
  -
               }
           }
           return csAddrHeaders;
       }
   
  -
       private static AcksTo getAcksTo(RMMessageContext rmMsgCtx, byte 
endPoint) throws Exception {
           AcksTo acksTo = null;
  -
           if (endPoint == Constants.CLIENT) {
               if (rmMsgCtx.getSync()) {
                   acksTo = new AcksTo(new Address(new 
URI(Constants.WSA.NS_ADDRESSING_ANONYMOUS)));
  @@ -180,12 +128,10 @@
       }
   
       public static RMMessageContext createTerminateSeqMsg(RMMessageContext 
rmMsgCtx, byte endPoint) throws Exception {
  -
           RMMessageContext terSeqRMMsgContext = new RMMessageContext();
           MessageContext terSeqMsgContext = new 
MessageContext(rmMsgCtx.getMsgContext().getAxisEngine());
           terSeqRMMsgContext.setSequenceID(rmMsgCtx.getSequenceID());
   
  -        //Fix me, Need to clone the addressing headers.
           AddressingHeaders addHeaders = 
getAddressingHeadersForTerminateSequence(rmMsgCtx, endPoint);
           SOAPEnvelope soe = new SOAPEnvelope();
           addHeaders.toEnvelope(soe);
  @@ -201,7 +147,6 @@
   
       private static AddressingHeaders 
getAddressingHeadersForTerminateSequence(RMMessageContext rmMsgCtx, byte 
endPoint) throws Exception {
           AddressingHeaders csAddrHeaders = new AddressingHeaders();
  -
           if (endPoint == Constants.SERVER) {
               AddressingHeaders ah = rmMsgCtx.getAddressingHeaders();
               csAddrHeaders.setTo(ah.getReplyTo().getAddress());
  @@ -230,18 +175,6 @@
       }
   
       public static RMMessageContext 
createServiceRequestMessage(RMMessageContext rmMsgCtx) throws Exception {
  -        /* //Get a copy of the MessageContext. This is required when sending 
multiple messages from
  -         //one call object
  -         MessageContext newMsgContext = cloneMsgContext(msgCtx);
  -         RMMessageContext requestMesssageContext = new RMMessageContext();
  -         //Get the message information from the client.
  -         Call call = (Call) newMsgContext.getProperty(MessageContext.CALL);
  -         //If the property specified by the client is not valid an AxisFault 
will be sent at this point.
  -         requestMesssageContext = ClientPropertyValidator.validate(call);
  -         requestMesssageContext.setOutGoingAddress((String) 
msgCtx.getProperty(MessageContext.TRANS_URL));
  -         requestMesssageContext.setMsgContext(newMsgContext);
  -         AddressingHeaders addrHeaders = 
getAddressingHeaders(requestMesssageContext);*/
  -
           AddressingHeaders addrHeaders = 
getAddressingHeaedersForServiceRequest(rmMsgCtx);
           if (rmMsgCtx.getAction() != null)
               addrHeaders.setAction(new Action(new URI(rmMsgCtx.getAction())));
  @@ -253,8 +186,6 @@
       }
   
       private static AddressingHeaders 
getAddressingHeaedersForServiceRequest(RMMessageContext rmMsgCtx) throws 
Exception {
  -
  -
           AddressingHeaders csAddrHeaders = new AddressingHeaders();
           csAddrHeaders.setTo(new To(rmMsgCtx.getTo()));
           if (rmMsgCtx.getSync()) {
  @@ -264,15 +195,12 @@
                   csAddrHeaders.setReplyTo(new 
EndpointReference(Constants.WSA.NS_ADDRESSING_ANONYMOUS));
           } else {
               String sourceURL = rmMsgCtx.getSourceURL();
  -
               if (rmMsgCtx.getFrom() != null)
                   csAddrHeaders.setFrom(new 
EndpointReference(rmMsgCtx.getFrom()));
               else
                   csAddrHeaders.setFrom(new EndpointReference(sourceURL));
  -
               if (rmMsgCtx.isHasResponse()) {
                   if (rmMsgCtx.getReplyTo() != null)
  -
                       csAddrHeaders.setReplyTo(new 
EndpointReference(rmMsgCtx.getReplyTo()));
                   else
                       csAddrHeaders.setReplyTo(new 
EndpointReference(sourceURL));
  @@ -281,11 +209,8 @@
                   csAddrHeaders.setFaultTo(new 
EndpointReference(rmMsgCtx.getFaultTo()));
               else
                   csAddrHeaders.setFaultTo(new EndpointReference(sourceURL));
  -
           }
           return csAddrHeaders;
  -
  -
       }
   
       public static MessageContext cloneMsgContext(MessageContext msgContext) 
throws AxisFault {
  @@ -297,89 +222,4 @@
           return clone;
       }
   
  -    private static AddressingHeaders getAddressingHeaders(RMMessageContext 
rmMsgContext)
  -            throws URI.MalformedURIException {
  -
  -        if (rmMsgContext.getAddressingHeaders() != null) {
  -            return rmMsgContext.getAddressingHeaders();
  -        } else {
  -
  -            // MessageContext msgContext= rmMsgContext.getMsgContext();
  -            //Variable to hold the status of the asynchronous or synchronous 
state.
  -            boolean sync = rmMsgContext.getSync();
  -            AddressingHeaders addrHeaders = new AddressingHeaders();
  -            From from = null;
  -            ReplyTo replyTo = null;
  -            FaultTo faultTo = null;
  -            String replyToURL = rmMsgContext.getReplyTo();
  -            String fromURL = rmMsgContext.getFrom();
  -            String faultToURL = rmMsgContext.getFaultTo();
  -
  -            if (replyToURL != null)
  -                addrHeaders.setReplyTo(new ReplyTo(new 
EndpointReference(replyToURL)));
  -            if (fromURL != null)
  -                addrHeaders.setFrom(new From(new 
EndpointReference(fromURL)));
  -            if (faultToURL != null)
  -                addrHeaders.setFaultTo(new FaultTo(new 
EndpointReference(faultToURL)));
  -            if (rmMsgContext.getTo() != null) {
  -                To to = new To(new Address(rmMsgContext.getTo()));
  -                addrHeaders.setTo(to);
  -            } else {
  -                To to = new To(new 
Address(rmMsgContext.getOutGoingAddress()));
  -                addrHeaders.setTo(to);
  -            }
  -
  -
  -/*
  -            //Need to use the anonymous_URI if the client is synchronous.
  -            if (!sync) {
  -                if (fromURL != null) {
  -                  from = new From(new Address(fromURL));
  -                } else {
  -                    from = new From(new 
Address(rmMsgContext.getSourceURL()));
  -                }
  -                addrHeaders.setFrom(from);
  -               // if (rmMsgContext.isHasResponse()) {
  -                    if (replyToURL != null) {
  -                        replyTo = new ReplyTo(new Address(replyToURL));
  -                        addrHeaders.setReplyTo(replyTo);
  -                    } else {
  -                        replyTo = new ReplyTo(new 
Address(rmMsgContext.getSourceURL()));
  -                        addrHeaders.setReplyTo(replyTo);
  -                    }
  -               // }
  -
  -            } else {
  -                if (fromURL != null) {
  -                    from = new From(new Address(fromURL));
  -                } else {
  -                    from = new From(new 
Address(Constants.WSA.NS_ADDRESSING_ANONYMOUS));
  -                }
  -                addrHeaders.setFrom(from);
  -                if (rmMsgContext.isHasResponse()) {
  -                    replyTo = new ReplyTo(new Address(replyToURL));
  -                    addrHeaders.setReplyTo(replyTo);
  -                }
  -            }
  -
  -            if (faultToURL != null) {
  -                faultTo = new FaultTo(new Address(faultToURL));
  -                addrHeaders.setFaultTo(faultTo);
  -            } else {
  -                faultTo = new FaultTo(new 
Address(Constants.WSA.NS_ADDRESSING_ANONYMOUS));
  -                addrHeaders.setFaultTo(faultTo);
  -            }
  -            //Set the target endpoint URL
  -            if (rmMsgContext.getTo() != null) {
  -                To to = new To(new Address(rmMsgContext.getTo()));
  -                addrHeaders.setTo(to);
  -            } else {
  -                To to = new To(new 
Address(rmMsgContext.getOutGoingAddress()));
  -                addrHeaders.setTo(to);
  -            }*/
  -
  -
  -            return addrHeaders;
  -        }
  -    }
   }
  \ No newline at end of file
  
  
  
  1.15      +25 -6     
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.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- CreateSequenceResponse.java       2 May 2005 04:34:04 -0000       1.14
  +++ CreateSequenceResponse.java       5 May 2005 12:57:01 -0000       1.15
  @@ -21,7 +21,6 @@
   import org.apache.axis.message.SOAPBodyElement;
   import org.apache.axis.message.SOAPEnvelope;
   import org.apache.sandesha.Constants;
  -import org.apache.sandesha.ws.rm.Identifier;
   
   import javax.xml.soap.Name;
   import javax.xml.soap.SOAPException;
  @@ -46,6 +45,8 @@
        */
       private Identifier identifier;
   
  +    private Accept accept;
  +
       /**
        * Constructor CreateSequenceResponse
        */
  @@ -84,14 +85,14 @@
           if (env.getBody() == null) {
               env.addBody();
           }
  -        Name name = env.createName("", Constants.WSRM.NS_PREFIX_RM,
  -                Constants.WSRM.NS_URI_RM);
  -        SOAPBodyElement bodyElement = (SOAPBodyElement) env.getBody()
  -                .addBodyElement(name);
  +        Name name = env.createName("", Constants.WSRM.NS_PREFIX_RM, 
Constants.WSRM.NS_URI_RM);
  +        SOAPBodyElement bodyElement = (SOAPBodyElement) 
env.getBody().addBodyElement(name);
           bodyElement.setName(Constants.WSRM.CREATE_SEQUENCE_RESPONSE);
           if (identifier != null) {
               identifier.toSOAPEnvelope(bodyElement);
           }
  +        if (accept != null)
  +            accept.toSOAPEnvelope(bodyElement);
           return env;
       }
   
  @@ -101,7 +102,7 @@
        * @param bodyElement
        * @return CreateSequenceResponse
        */
  -    public CreateSequenceResponse fromSOAPEnveploe(SOAPBodyElement 
bodyElement) {
  +    public CreateSequenceResponse fromSOAPEnveploe(SOAPBodyElement 
bodyElement) throws Exception {
   
           Iterator iterator = bodyElement.getChildElements();
           MessageElement childElement;
  @@ -118,6 +119,16 @@
                   identifier = new Identifier();
                   identifier.fromSOAPEnvelope(childElement);
               }
  +
  +            if (childElement.getName().equals(Constants.WSU.WSU_PREFIX + 
Constants.COLON + Constants.WSRM.ACCEPT)) {
  +                accept = new Accept();
  +                accept.fromSOAPEnvelope(childElement);
  +            }
  +
  +            if (childElement.getName().equals(Constants.WSRM.ACCEPT)) {
  +                accept = new Accept();
  +                accept.fromSOAPEnvelope(childElement);
  +            }
           }
   
           return this;
  @@ -146,6 +157,14 @@
           return identifier;
       }
   
  +    public Accept getAccept() {
  +        return accept;
  +    }
  +
  +    public void setAccept(Accept accept) {
  +        this.accept = accept;
  +    }
  +
       /**
        * Method setIdentifier
        *
  
  
  
  1.17      +0 -2      
ws-fx/sandesha/src/org/apache/sandesha/ws/rm/RMHeaders.java
  
  Index: RMHeaders.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/ws/rm/RMHeaders.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- RMHeaders.java    2 May 2005 08:38:09 -0000       1.16
  +++ RMHeaders.java    5 May 2005 12:57:01 -0000       1.17
  @@ -285,11 +285,9 @@
                   if (headerElement.getName().equals(Constants.WSRM.SEQUENCE)) 
{
                       headerElement.detachNode();
                   }
  -
                   if 
(headerElement.getName().equals(Constants.WSRM.SEQUENCE_ACK)) {
                       headerElement.detachNode();
                   }
  -
                   if 
(headerElement.getName().equals(Constants.WSRM.ACK_REQUESTED)) {
                       headerElement.detachNode();
                   }
  
  
  
  1.44      +0 -5      
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.43
  retrieving revision 1.44
  diff -u -r1.43 -r1.44
  --- RMProvider.java   2 May 2005 04:17:09 -0000       1.43
  +++ RMProvider.java   5 May 2005 12:57:01 -0000       1.44
  @@ -74,7 +74,6 @@
                   MessageValidator.validate(rmMessageContext, client);
               } catch (AxisFault af) {
                   FaultProcessor faultProcessor = new 
FaultProcessor(storageManager, af);
  -
                   if (!faultProcessor.processMessage(rmMessageContext)) {
                       msgContext.setPastPivot(true);
                       msgContext.setResponseMessage(null);
  @@ -106,14 +105,10 @@
                       msgContext.setResponseMessage(null);
                   } else {
                       msgContext.setPastPivot(true);
  -                    // TODO Get the from envCreator
  -                    // SOAPEnvelope 
resEn=EnvelopeCreator.createAcknowledgementEnvelope()
                   }
               } catch (AxisFault af) {
                   RMProvider.log.error(af);
  -
                   FaultProcessor faultProcessor = new 
FaultProcessor(storageManager, af);
  -
                   if (!faultProcessor.processMessage(rmMessageContext)) {
                       msgContext.setPastPivot(true);
                       msgContext.setResponseMessage(null);
  
  
  

Reply via email to