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

cvs commit: ws-fx/sandesha/src/org/apache/sandesha/ws/rm CreateSequence.java

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