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 ja...@apache.org on 2005/04/11 04:58:55 UTC
cvs commit: ws-fx/sandesha/test/org/apache/sandesha SimpleServerImpl.java
jaliya 2005/04/10 19:58:55
Modified: sandesha/interop/org/apache/sandesha/samples/interop
AsyncPingClient.java
sandesha/interop server-config.wsdd
sandesha/src/org/apache/sandesha Constants.java
EnvelopeCreator.java RMMessageContext.java
sandesha/src/org/apache/sandesha/client
ClientPropertyValidator.java
sandesha/src/org/apache/sandesha/server/msgprocessors
CreateSequenceProcessor.java
sandesha/src/org/apache/sandesha/util RMMessageCreator.java
sandesha/src/org/apache/sandesha/ws/rm CreateSequence.java
Nack.java RMHeaders.java
sandesha/test/org/apache/sandesha SimpleServerImpl.java
Log:
Added the <wsrm:AcksTo> capability.
Revision Changes Path
1.5 +6 -1 ws-fx/sandesha/interop/org/apache/sandesha/samples/interop/AsyncPingClient.java
Index: AsyncPingClient.java
===================================================================
RCS file: /home/cvs/ws-fx/sandesha/interop/org/apache/sandesha/samples/interop/AsyncPingClient.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- AsyncPingClient.java 7 Mar 2005 05:34:34 -0000 1.4
+++ AsyncPingClient.java 11 Apr 2005 02:58:54 -0000 1.5
@@ -44,9 +44,14 @@
call.setProperty(Constants.ClientProperties.SYNC, new Boolean(false));
call.setProperty(Constants.ClientProperties.ACTION, "sandesha:ping");
- //These two are additional
+ //These Three are additional
call.setProperty("from","http://127.0.0.1:"+defaultClientPort+"/axis/services/RMService");
+ //<was:ReplyTo> needs to be set by the client, only if the response to a particular
+ //invocation needs to be sent to a some other endpoint other than client endpoint.
//call.setProperty("replyTo","http://127.0.0.1:"+defaultClientPort+"/axis/services/RMService");
+ //<wsrm:AcksTo> is used, if the user needs the CreateSequence response or the faults related to
+ //that to be sent to a specific endpoint.
+ //call.setProperty("acksTo","http://127.0.0.1:"+defaultClientPort+"/axis/services/RMService");
//http://schemas.xmlsoap.org/ws/2003/03/addressing/role/anonymous
call.setTargetEndpointAddress(targetURL);
1.8 +2 -2 ws-fx/sandesha/interop/server-config.wsdd
Index: server-config.wsdd
===================================================================
RCS file: /home/cvs/ws-fx/sandesha/interop/server-config.wsdd,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- server-config.wsdd 16 Mar 2005 04:22:45 -0000 1.7
+++ server-config.wsdd 11 Apr 2005 02:58:55 -0000 1.8
@@ -3,9 +3,9 @@
<globalConfiguration>
<parameter name="adminPassword" value="admin"/>
<parameter name="disablePrettyXML" value="true"/>
- <parameter name="sendMultiRefs" value="true"/>
- <parameter name="sendXsiTypes" value="true"/>
<parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>
+ <parameter name="sendXsiTypes" value="true"/>
+ <parameter name="sendMultiRefs" value="true"/>
<parameter name="sendXMLDeclaration" value="true"/>
<requestFlow>
<handler type="java:org.apache.axis.handlers.JWSHandler">
1.38 +7 -5 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.37
retrieving revision 1.38
diff -u -r1.37 -r1.38
--- Constants.java 16 Mar 2005 04:22:45 -0000 1.37
+++ Constants.java 11 Apr 2005 02:58:55 -0000 1.38
@@ -66,11 +66,11 @@
public interface WSRM {
public static final String NS_PREFIX_RM = "wsrm";
- public static final String NS_URI_RM = "http://schemas.xmlsoap.org/ws/2004/03/rm";
- public static final String ACTION_CREATE_SEQUENCE = "http://schemas.xmlsoap.org/ws/2004/03/rm/CreateSequence";
- public static final String ACTION_CREATE_SEQUENCE_RESPONSE = "http://schemas.xmlsoap.org/ws/2004/03/rm/CreateSequenceResponse";
- public static final String ACTION_TERMINATE_SEQUENCE = "http://schemas.xmlsoap.org/ws/2004/03/rm/TerminateSequence";
- public static final String SEQUENCE_ACKNOWLEDGEMENT_ACTION = "http://schemas.xmlsoap.org/ws/2004/03/rm/SequenceAcknowledgement";
+ public static final String NS_URI_RM = "http://schemas.xmlsoap.org/ws/2005/02/rm";
+ public static final String ACTION_CREATE_SEQUENCE = NS_URI_RM+"/CreateSequence";
+ public static final String ACTION_CREATE_SEQUENCE_RESPONSE = NS_URI_RM+"/CreateSequenceResponse";
+ public static final String ACTION_TERMINATE_SEQUENCE = NS_URI_RM+"/TerminateSequence";
+ public static final String SEQUENCE_ACKNOWLEDGEMENT_ACTION = NS_URI_RM+"/SequenceAcknowledgement";
public static final String ACK_RANGE = "AcknowledgementRange";
@@ -90,6 +90,7 @@
public static final String ACKS_TO = "AcksTo";
public static final String SEQUENCE_OFFER = "Offer";
+
public static final double MAX_MSG_NO = 18446744073709551615d;
}
@@ -181,6 +182,7 @@
public static final String LAST_MESSAGE = "lastMessage";
public static final String SYNC = "sync";
public static final String ACTION = "action";
+ public static final String ACKS_TO="acksTo";
public static final String REQUEST_HANDLER = "requestHandler";
1.27 +9 -1 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.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- EnvelopeCreator.java 17 Mar 2005 05:28:05 -0000 1.26
+++ EnvelopeCreator.java 11 Apr 2005 02:58:55 -0000 1.27
@@ -157,7 +157,15 @@
// offer.setIdentifier(id);
// createSeq.setOffer(offer);
//end offer
-
+
+ //AcksTo
+ if(message.getAcksTo()!=null) {
+ Address address= new Address(message.getAcksTo());
+ AcksTo acksTo= new AcksTo(address);
+ createSeq.setAcksTo(acksTo);
+ }
+ //End AcksTo
+
createSeq.toSoapEnvelop(envelope);
return envelope;
1.24 +13 -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.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- RMMessageContext.java 17 Mar 2005 05:28:05 -0000 1.23
+++ RMMessageContext.java 11 Apr 2005 02:58:55 -0000 1.24
@@ -63,6 +63,14 @@
private String action = null;
+ public String getAcksTo() {
+ return acksTo;
+ }
+
+ public void setAcksTo(String acksTo) {
+ this.acksTo = acksTo;
+ }
+
private String from = null;
private String replyTo = null;
@@ -71,6 +79,8 @@
private boolean ackReceived = false;
+ private String acksTo=null;
+
private static final Log log = LogFactory.getLog(RMMessageContext.class.getName());
/**
@@ -336,6 +346,9 @@
rmMsgContext.setOutGoingAddress(this.outGoingAddress);
if (msgContext != null)
rmMsgContext.setMsgContext(this.msgContext);
+ if(acksTo!=null){
+ rmMsgContext.setAcksTo(this.acksTo);
+ }
rmMsgContext.setReTransmissionCount(this.reTransmissionCount);
rmMsgContext.setLastPrecessedTime(this.lastPrecessedTime);
rmMsgContext.setLastMessage(this.isLastMessage());
1.15 +11 -1 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.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- ClientPropertyValidator.java 7 Mar 2005 05:34:34 -0000 1.14
+++ ClientPropertyValidator.java 11 Apr 2005 02:58:55 -0000 1.15
@@ -43,6 +43,7 @@
String sourceURL = null;
String from = getFrom(call);
String replyTo = getReplyTo(call);
+ String acksTo=getAcksTo(call);
try {
if (from == null)
@@ -67,7 +68,9 @@
rmMessageContext.setReplyTo(replyTo);
rmMessageContext.setFrom(from);
rmMessageContext.setAction(action);
+ rmMessageContext.setAcksTo(acksTo);
return rmMessageContext;
+
} else
throw new AxisFault(errorMsg);
@@ -97,8 +100,15 @@
return action;
else
return null;
+ }
- }
+ private static String getAcksTo(Call call) {
+ String acksTo = (String) call.getProperty(Constants.ClientProperties.ACKS_TO);
+ if (acksTo != null)
+ return acksTo;
+ else
+ return null;
+ }
private static boolean getSync(Call call) {
Boolean synchronous = (Boolean) call.getProperty(Constants.ClientProperties.SYNC);
1.10 +29 -24 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.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- CreateSequenceProcessor.java 12 Mar 2005 19:14:57 -0000 1.9
+++ CreateSequenceProcessor.java 11 Apr 2005 02:58:55 -0000 1.10
@@ -43,7 +43,7 @@
}
public boolean processMessage(RMMessageContext rmMessageContext) throws AxisFault {
-
+
AddressingHeaders addrHeaders = rmMessageContext.getAddressingHeaders();
RMHeaders rmHeaders = rmMessageContext.getRMHeaders();
@@ -68,26 +68,25 @@
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){
+
+ String responseSeqId = null;
+
+ if (offer != null) {
Identifier id = offer.getIdentifier();
- if(id!=null)
- responseSeqId = id.getIdentifier();
+ if (id != null)
+ responseSeqId = id.getIdentifier();
}
-
+
String incomingSeqId = org.apache.sandesha.Constants.UUID + uuid;
- if(responseSeqId!=null){
+ if (responseSeqId != null) {
storageManager.addOutgoingSequence(incomingSeqId);
- storageManager.setTemporaryOutSequence(incomingSeqId,responseSeqId);
- storageManager.setApprovedOutSequence(responseSeqId,responseSeqId);
+ storageManager.setTemporaryOutSequence(incomingSeqId, responseSeqId);
+ storageManager.setApprovedOutSequence(responseSeqId, responseSeqId);
//Now it has a approved out sequence of responseSeqId
}
@@ -101,20 +100,28 @@
}
rmMessageContext.setMessageType(org.apache.sandesha.Constants.MSG_TYPE_CREATE_SEQUENCE_RESPONSE);
- //FIX THIS FIX THIS
- //Need to change the ANONYMOUS URI to the new one after completion.
- //We have some synchronous stuff here
- //TODO Do we need to support the null replyZo case?
- //If the from is also missing, and the reply to is alos null then we will assume it is
- //synchornous.
- if (addrHeaders.getReplyTo() == null || addrHeaders.getReplyTo().getAddress().toString()
+ if ((createSeq.getAcksTo() != null)) {
+ if ((createSeq.getAcksTo().getAddress().toString().equals(Constants.NS_URI_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.NS_URI_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);
@@ -124,7 +131,5 @@
storageManager.addCreateSequenceResponse(rmMessageContext);
return false;
}
-
- }
-
-}
\ No newline at end of file
+ }
+ }
\ No newline at end of file
1.7 +2 -0 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.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- RMMessageCreator.java 7 Mar 2005 05:34:35 -0000 1.6
+++ RMMessageCreator.java 11 Apr 2005 02:58:55 -0000 1.7
@@ -55,6 +55,8 @@
createSeqRMMsgContext.setAddressingHeaders(addrHeaders);
createSeqRMMsgContext.setSync(rmMsgCtx.getSync());
+ createSeqRMMsgContext.setAcksTo(rmMsgCtx.getAcksTo());
+
//Set the outgoing address these need to be corrected.
createSeqRMMsgContext.setOutGoingAddress(toAddress);
SOAPEnvelope resEnvelope = EnvelopeCreator.createCreateSequenceEnvelope(uuid, createSeqRMMsgContext, Constants.CLIENT);
1.17 +33 -21 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.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- CreateSequence.java 13 Mar 2005 21:58:39 -0000 1.16
+++ CreateSequence.java 11 Apr 2005 02:58:55 -0000 1.17
@@ -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.utility.Identifier;
import javax.xml.soap.Name;
import javax.xml.soap.SOAPException;
@@ -40,16 +39,18 @@
* Field createSequence
*/
private MessageElement createSequence;
-
+
private SequenceOffer offer;
+ private AcksTo acksTo;
+
/**
* Constructor CreateSequence
*/
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
@@ -69,6 +70,7 @@
*/
public MessageElement getSoapElement() throws SOAPException {
createSequence.addChildElement(offer.getSoapElement());
+ createSequence.addChildElement(acksTo.getSoapElement());
return createSequence;
}
@@ -79,12 +81,9 @@
* @return SOAPEnvelope
* @throws SOAPException
*/
- public SOAPEnvelope toSoapEnvelop(SOAPEnvelope envelope)
- throws SOAPException {
+ public SOAPEnvelope toSoapEnvelop(SOAPEnvelope envelope) throws SOAPException {
SOAPEnvelope env = envelope;
-
- // env.addHeader((SOAPHeaderElement)createSequence);
if (env.getBody() == null) {
env.addBody();
}
@@ -94,9 +93,11 @@
bodyElement.setName(Constants.WSRM.CREATE_SEQUENCE);
- if(offer!=null)
+ if (offer != null)
offer.toSOAPEnvelope(bodyElement);
-
+ if (acksTo != null)
+ acksTo.toSOAPEnvelope(bodyElement);
+
return env;
}
@@ -106,28 +107,31 @@
* @param bodyElement
* @return CreateSequence
*/
- public CreateSequence fromSOAPEnveploe(SOAPBodyElement bodyElement) {
+ public CreateSequence fromSOAPEnveploe(SOAPBodyElement bodyElement) throws Exception {
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 = new SequenceOffer ();
+ offer = new SequenceOffer();
offer.fromSOAPEnvelope(childElement);
- }else if (childElement.getName().equals(Constants.WSRM.SEQUENCE_OFFER)) {
- offer = new SequenceOffer ();
+ } else if (childElement.getName().equals(Constants.WSRM.SEQUENCE_OFFER)) {
+ offer = new SequenceOffer();
offer.fromSOAPEnvelope(childElement);
- }
-
- //END TEST
-
- }
+ } else if (childElement.getName().equals(Constants.WSU.WSU_PREFIX + Constants.COLON + Constants.WSRM.ACKS_TO)) {
+ acksTo = new AcksTo();
+ acksTo.fromSOAPEnvelope(childElement);
+ } else if (childElement.getName().equals(Constants.WSRM.ACKS_TO)) {
+ acksTo = new AcksTo();
+ acksTo.fromSOAPEnvelope(childElement);
+ }
- return this;
+ }
+ return this;
}
/*
@@ -144,7 +148,7 @@
public void addChildElement(MessageElement element) {
}
-
+
public SequenceOffer getOffer() {
return offer;
}
@@ -153,4 +157,12 @@
public void setOffer(SequenceOffer offer) {
this.offer = offer;
}
+
+ public AcksTo getAcksTo() {
+ return acksTo;
+ }
+
+ public void setAcksTo(AcksTo acksTo) {
+ this.acksTo = acksTo;
+ }
}
\ No newline at end of file
1.11 +0 -1 ws-fx/sandesha/src/org/apache/sandesha/ws/rm/Nack.java
Index: Nack.java
===================================================================
RCS file: /home/cvs/ws-fx/sandesha/src/org/apache/sandesha/ws/rm/Nack.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- Nack.java 7 Mar 2005 05:34:35 -0000 1.10
+++ Nack.java 11 Apr 2005 02:58:55 -0000 1.11
@@ -47,7 +47,6 @@
public Nack() {
nackElement = new MessageElement();
-
nackElement.setName(Constants.WSRM.NS_PREFIX_RM+Constants.COLON+Constants.WSRM.NACK);
}
1.15 +1 -0 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.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- RMHeaders.java 7 Mar 2005 05:34:35 -0000 1.14
+++ RMHeaders.java 11 Apr 2005 02:58:55 -0000 1.15
@@ -64,6 +64,7 @@
*/
private TerminateSequence terminateSequence = null;
+
/**
* Method toSoapEnvelop
*
1.4 +9 -9 ws-fx/sandesha/test/org/apache/sandesha/SimpleServerImpl.java
Index: SimpleServerImpl.java
===================================================================
RCS file: /home/cvs/ws-fx/sandesha/test/org/apache/sandesha/SimpleServerImpl.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- SimpleServerImpl.java 10 Mar 2005 05:46:40 -0000 1.3
+++ SimpleServerImpl.java 11 Apr 2005 02:58:55 -0000 1.4
@@ -26,15 +26,15 @@
try {
SimpleAxisServer sas = new SimpleAxisServer();
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setNamespaceAware(true);
- DocumentBuilder db = dbf.newDocumentBuilder();
-
- Document doc = db.parse(new File("config/server-config.wsdd"));
- WSDDDocument wsdddoc = new WSDDDocument(doc);
- WSDDDeployment wsdddep = wsdddoc.getDeployment();
- sas.setMyConfig(wsdddep);
- sas.getMyConfig().configureEngine(new AxisServer());
+// DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+// dbf.setNamespaceAware(true);
+// DocumentBuilder db = dbf.newDocumentBuilder();
+//
+// Document doc = db.parse(new File("config/server-config.wsdd"));
+// WSDDDocument wsdddoc = new WSDDDocument(doc);
+// WSDDDeployment wsdddep = wsdddoc.getDeployment();
+// sas.setMyConfig(wsdddep);
+// sas.getMyConfig().configureEngine(new AxisServer());
sas.setServerSocket(new ServerSocket(PropertyLoader.getSimpleAxisServerPort()));
Thread serverThread = new Thread(sas);