chamikara    2005/03/12 11:14:57

  Modified:    sandesha/src/org/apache/sandesha Constants.java
               sandesha/src/org/apache/sandesha/server RMInvoker.java
               sandesha/src/org/apache/sandesha/server/msgprocessors
                        CreateSequenceProcessor.java
               sandesha/src/org/apache/sandesha/ws/rm CreateSequence.java
  Log:
  Changes were done to support create sequence offer. Here the client can send 
a sequence id along with its create sequence request. The server has to use 
this as the sequence id for response messages.
  
  Revision  Changes    Path
  1.36      +1 -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.35
  retrieving revision 1.36
  diff -u -r1.35 -r1.36
  --- Constants.java    7 Mar 2005 12:46:12 -0000       1.35
  +++ Constants.java    12 Mar 2005 19:14:57 -0000      1.36
  @@ -87,6 +87,7 @@
           public static final String TERMINATE_DEQUENCE = "TerminateSequence";
           public static final String SEQUENCE_FAULT = "SequenceFault";
           public static final String ACKS_TO="AcksTo";
  +        public static final String SEQUENCE_OFFER = "Offer";
   
           public static final double MAX_MSG_NO = 18446744073709551615d;
   
  
  
  
  1.18      +0 -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.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- RMInvoker.java    7 Mar 2005 12:46:12 -0000       1.17
  +++ RMInvoker.java    12 Mar 2005 19:14:57 -0000      1.18
  @@ -91,7 +91,6 @@
                           
rmMessageContext.setMsgNumber(storageManager.getNextMessageNumber(rmMessageContext
                                   .getSequenceID()));
                           
storageManager.insertOutgoingMessage(rmMessageContext);
  -
                           if (firstMsgOfResponseSeq) {
                               RMMessageContext rmMsgContext = new 
RMMessageContext();
                               rmMessageContext.copyContents(rmMsgContext);
  
  
  
  1.9       +29 -0     
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.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- CreateSequenceProcessor.java      28 Feb 2005 13:26:05 -0000      1.8
  +++ CreateSequenceProcessor.java      12 Mar 2005 19:14:57 -0000      1.9
  @@ -27,7 +27,10 @@
   import org.apache.sandesha.EnvelopeCreator;
   import org.apache.sandesha.IStorageManager;
   import org.apache.sandesha.RMMessageContext;
  +import org.apache.sandesha.ws.rm.CreateSequence;
   import org.apache.sandesha.ws.rm.RMHeaders;
  +import org.apache.sandesha.ws.rm.SequenceOffer;
  +import org.apache.sandesha.ws.utility.Identifier;
   
   /**
    * @author
  @@ -40,6 +43,7 @@
       }
   
       public boolean processMessage(RMMessageContext rmMessageContext) throws 
AxisFault {
  +        
           AddressingHeaders addrHeaders = 
rmMessageContext.getAddressingHeaders();
           RMHeaders rmHeaders = rmMessageContext.getRMHeaders();
   
  @@ -55,6 +59,8 @@
               rmMessageContext.setSync(false);
   
           //TODO This should be sent by looking at the offer and the rest
  +        
  +   
           //wsrm:CreateSequenceRefused
           if (rmHeaders.getCreateSequence() == null)
               throw new AxisFault();
  @@ -62,8 +68,31 @@
           UUIDGen uuidGen = UUIDGenFactory.getUUIDGen();
           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;
  +        
  +        if(offer!=null){    
  +            Identifier id = offer.getIdentifier();
  +            if(id!=null)
  +               responseSeqId = id.getIdentifier();
  +        }
  +        
  +        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
  +        
           SOAPEnvelope resEnvelope = null;
           try {
               resEnvelope = 
EnvelopeCreator.createCreateSequenceResponseEnvelope(uuid, rmMessageContext);
  
  
  
  1.15      +34 -3     
ws-fx/sandesha/src/org/apache/sandesha/ws/rm/CreateSequence.java
  
  Index: CreateSequence.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/ws/rm/CreateSequence.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- CreateSequence.java       7 Mar 2005 05:34:35 -0000       1.14
  +++ CreateSequence.java       12 Mar 2005 19:14:57 -0000      1.15
  @@ -21,6 +21,7 @@
   import org.apache.axis.message.SOAPBodyElement;
   import org.apache.axis.message.SOAPEnvelope;
   import org.apache.sandesha.Constants;
  +import org.apache.sandesha.ws.utility.Identifier;
   
   import javax.xml.soap.Name;
   import javax.xml.soap.SOAPException;
  @@ -39,6 +40,8 @@
        * Field createSequence
        */
       private MessageElement createSequence;
  +    
  +    private SequenceOffer offer;
   
       /**
        * Constructor CreateSequence
  @@ -46,6 +49,10 @@
       public CreateSequence() {
           createSequence = new MessageElement();
           createSequence.setName(Constants.WSRM.NS_PREFIX_RM + Constants.COLON 
+ Constants.WSRM.CREATE_SEQUENCE);
  +   
  +        //TEST - added for offer
  +        offer = new SequenceOffer ();
  +        //END TEST
       }
   
       /*
  @@ -54,12 +61,14 @@
        * @see org.apache.sandesha.ws.rm.IRmElement#getSoapElement()
        */
   
  +    
       /**
        * Method getSoapElement
        *
        * @return MessageElement
        */
  -    public MessageElement getSoapElement() {
  +    public MessageElement getSoapElement() throws SOAPException {
  +        createSequence.addChildElement(offer.getSoapElement());
           return createSequence;
       }
   
  @@ -85,6 +94,7 @@
   
           bodyElement.setName(Constants.WSRM.CREATE_SEQUENCE);
   
  +        offer.toSOAPEnvelope(bodyElement);
           return env;
       }
   
  @@ -97,9 +107,20 @@
       public CreateSequence fromSOAPEnveploe(SOAPBodyElement bodyElement) {
   
           Iterator iterator = bodyElement.getChildElements();
  -
  +        MessageElement childElement;
           while (iterator.hasNext()) {
  -
  +            
  +            //TODO  add offer processing code here
  +            //TEST OFFER
  +            childElement = (MessageElement) iterator.next();
  +            if (childElement.getName().equals(Constants.WSU.WSU_PREFIX + 
Constants.COLON + Constants.WSRM.SEQUENCE_OFFER)) {
  +                offer.fromSOAPEnvelope(childElement);
  +            }else if 
(childElement.getName().equals(Constants.WSRM.SEQUENCE_OFFER)) {
  +                offer.fromSOAPEnvelope(childElement);
  +            }
  +            
  +            //END TEST
  +            
           }
   
           return this;
  @@ -118,4 +139,14 @@
        */
       public void addChildElement(MessageElement element) {
       }
  +
  +  
  +    public SequenceOffer getOffer() {
  +        return offer;
  +    }
  +
  +
  +    public void setOffer(SequenceOffer offer) {
  +        this.offer = offer;
  +    }
   }
  \ No newline at end of file
  
  
  

Reply via email to