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