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/09/26 08:45:36 UTC
svn commit: r291572 - in /webservices/sandesha/trunk: samples/interop/
src/org/apache/sandesha2/ src/org/apache/sandesha2/handlers/
src/org/apache/sandesha2/util/
Author: chamikara
Date: Sun Sep 25 23:45:05 2005
New Revision: 291572
URL: http://svn.apache.org/viewcvs?rev=291572&view=rev
Log:
CreateSeq + CreateSeq + Request + Ack, msg sequence is working for the echo case.
Modified:
webservices/sandesha/trunk/samples/interop/services.xml
webservices/sandesha/trunk/src/org/apache/sandesha2/RMMsgContext.java
webservices/sandesha/trunk/src/org/apache/sandesha2/RMMsgCreator.java
webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/ServerOutHandler.java
webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaUtil.java
Modified: webservices/sandesha/trunk/samples/interop/services.xml
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/samples/interop/services.xml?rev=291572&r1=291571&r2=291572&view=diff
==============================================================================
--- webservices/sandesha/trunk/samples/interop/services.xml (original)
+++ webservices/sandesha/trunk/samples/interop/services.xml Sun Sep 25 23:45:05 2005
@@ -11,7 +11,9 @@
<messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver" />
</operation>
- <operation name="echoString" />
+ <operation name="echoString">
+ <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver" />
+ </operation>
<!--
<operation name="ping">
Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/RMMsgContext.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/RMMsgContext.java?rev=291572&r1=291571&r2=291572&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/RMMsgContext.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/RMMsgContext.java Sun Sep 25 23:45:05 2005
@@ -56,6 +56,10 @@
rmMessageParts = new HashMap();
messageType = Constants.MESSAGE_TYPE_UNKNOWN;
}
+
+ public void setMessageContext (MessageContext msgCtx) {
+ this.msgContext = msgCtx;
+ }
public RMMsgContext(MessageContext ctx) {
this();
Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/RMMsgCreator.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/RMMsgCreator.java?rev=291572&r1=291571&r2=291572&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/RMMsgCreator.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/RMMsgCreator.java Sun Sep 25 23:45:05 2005
@@ -111,6 +111,8 @@
createSeqMsg.setTo(replyTo);
createSeqMsg.setReplyTo(replyTo);
+ createSeqMsg.setMessageId(SandeshaUtil.getUUID());
+
return createSeqMsg;
}
@@ -239,6 +241,7 @@
MessageContext ackMsgCtx = new MessageContext (applicationMsgCtx.getSystemContext(),
applicationMsgCtx.getTransportIn(),applicationMsgCtx.getTransportOut());
RMMsgContext ackRMMsgCtx = new RMMsgContext (ackMsgCtx);
+ ackRMMsgCtx.getMessageContext().setOperationContext(applicationMsgCtx.getOperationContext());
addAckMessage(ackRMMsgCtx);
return ackRMMsgCtx;
} catch (AxisFault e) {
Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/ServerOutHandler.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/ServerOutHandler.java?rev=291572&r1=291571&r2=291572&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/ServerOutHandler.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/ServerOutHandler.java Sun Sep 25 23:45:05 2005
@@ -122,11 +122,13 @@
throw new SandeshaException("AcksTo not set correctly");
SOAPEnvelope env = rmMsgCtx.getSOAPEnvelope();
- if (env == null){
- SOAPEnvelope envelope = SOAPAbstractFactory.getSOAPFactory(Constants.DEFAULT_SOAP_VERSION).getDefaultEnvelope();
+ if (env == null) {
+ SOAPEnvelope envelope = SOAPAbstractFactory.getSOAPFactory(
+ Constants.DEFAULT_SOAP_VERSION)
+ .getDefaultEnvelope();
rmMsgCtx.setSOAPEnvelop(envelope);
}
-
+
SOAPBody soapBody = rmMsgCtx.getSOAPEnvelope().getBody();
if (soapBody == null)
throw new SandeshaException(
@@ -136,24 +138,49 @@
if (soapBody.getChildElements().hasNext())
validResponse = true;
- if (!validResponse){
- if (Constants.WSA.NS_URI_ANONYMOUS.equals(acksToEPR.getAddress())){
+ if (!validResponse) { //TODO either change MsgReceiver or move
+ // if code to in handler.
+ if (Constants.WSA.NS_URI_ANONYMOUS.equals(acksToEPR
+ .getAddress())) {
RMMsgCreator.addAckMessage(rmMsgCtx);
}
+ } else {
+ //valid response
+
+ RMMsgContext ackRMMsgContext = RMMsgCreator
+ .createAckMessage(rmMsgCtx);
+ //SOAPEnvelope env = rmMsgCtx.getSOAPEnvelope();
+ ackRMMsgContext.getSOAPEnvelope();
+
+ RMMsgContext newRMMsgCtx = SandeshaUtil
+ .copyRMMessageContext(rmMsgCtx);
+ rmMsgCtx.setSOAPEnvelop(ackRMMsgContext.getSOAPEnvelope());
+
+ processResponseMessage(newRMMsgCtx, requestRMMsgCtx);
+
+ SOAPEnvelope env1 = msgCtx.getEnvelope();
+
+ try {
+ XMLStreamWriter writer = XMLOutputFactory.newInstance()
+ .createXMLStreamWriter(System.out);
+ System.out.println ("Writing envelop");
+ env1.serialize(writer);
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+
}
-
-// if (acksToEPR.getAddress().equals(
-// Constants.WSA.NS_URI_ANONYMOUS)) {
-// RMMsgCreator.addAckMessage(rmMsgCtx);
-// } else {
-// RMMsgContext ackRMMessage = RMMsgCreator
-// .createAckMessage(rmMsgCtx);
-// //TODO add async ack to the retransmitter.
-// }
-// //processResponseMessage(rmMsgCtx, requestRMMsgCtx);
-
-
-
+
+ // if (acksToEPR.getAddress().equals(
+ // Constants.WSA.NS_URI_ANONYMOUS)) {
+ // RMMsgCreator.addAckMessage(rmMsgCtx);
+ // } else {
+ // RMMsgContext ackRMMessage = RMMsgCreator
+ // .createAckMessage(rmMsgCtx);
+ // //TODO add async ack to the retransmitter.
+ // }
+ // //processResponseMessage(rmMsgCtx, requestRMMsgCtx);
+
}
} catch (SandeshaException e) {
throw new AxisFault(e.getMessage());
Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaUtil.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaUtil.java?rev=291572&r1=291571&r2=291572&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaUtil.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaUtil.java Sun Sep 25 23:45:05 2005
@@ -22,10 +22,17 @@
import java.util.StringTokenizer;
import org.apache.axis2.AxisFault;
+import org.apache.axis2.addressing.MessageInformationHeaders;
+import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.context.MessageContext;
+
+import org.apache.axis2.description.TransportInDescription;
+import org.apache.axis2.description.TransportOutDescription;
import org.apache.axis2.om.impl.MIMEOutputUtils;
import org.apache.axis2.util.UUIDGenerator;
+import org.apache.sandesha2.RMMsgContext;
import org.apache.sandesha2.SandeshaException;
+import org.apache.sandesha2.msgreceivers.RMMessageReceiver;
import org.apache.sandesha2.wsrm.AcknowledgementRange;
/**
@@ -142,4 +149,66 @@
// getAckRangeArray( msgList);
//
// }
+
+ public static MessageContext copyMessageContext (MessageContext msgCtx) throws SandeshaException {
+ ConfigurationContext configCtx = msgCtx.getSystemContext();
+ TransportInDescription transportIn = msgCtx.getTransportIn();
+ TransportOutDescription transportOut = msgCtx.getTransportOut();
+ MessageInformationHeaders msgInfoHeaders = msgCtx.getMessageInformationHeaders();
+
+ try {
+ MessageContext newMessageContext = new MessageContext (configCtx,transportIn,transportOut);
+ newMessageContext.setDoingMTOM(msgCtx.isDoingMTOM());
+ newMessageContext.setDoingREST(msgCtx.isDoingREST());
+ newMessageContext.setEnvelope(msgCtx.getEnvelope());
+ newMessageContext.setFaultTo(msgCtx.getFaultTo());
+ newMessageContext.setFrom(msgCtx.getFrom());
+ //newMessageContext.setInFaultFlow(msgCtx.geti);
+ newMessageContext.setMessageID(getUUID());
+ newMessageContext.setMessageInformationHeaders(msgCtx.getMessageInformationHeaders());
+ newMessageContext.setOperationContext(msgCtx.getOperationContext());
+ newMessageContext.setOperationDescription(msgCtx.getOperationDescription());
+ newMessageContext.setOutPutWritten(msgCtx.isOutPutWritten());
+ newMessageContext.setParent(msgCtx.getParent());
+ newMessageContext.setPausedPhaseName(msgCtx.getPausedPhaseName());
+ newMessageContext.setProcessingFault(msgCtx.isProcessingFault() );
+ newMessageContext.setRelatesTo(msgCtx.getRelatesTo());
+ newMessageContext.setResponseWritten(msgCtx.isResponseWritten());
+ newMessageContext.setRestThroughPOST(msgCtx.isRestThroughPOST());
+ newMessageContext.setServerSide(msgCtx.isServerSide());
+ newMessageContext.setServiceContext(msgCtx.getServiceContext());
+ newMessageContext.setServiceContextID(msgCtx.getServiceContextID());
+ newMessageContext.setServiceDescription(msgCtx.getServiceDescription());
+ newMessageContext.setServiceGroupContext(msgCtx.getServiceGroupContext());
+ newMessageContext.setServiceGroupContextId(msgCtx.getServiceGroupContextId());
+ if (msgCtx.getServiceGroupDescription()!=null)
+ newMessageContext.setServiceGroupDescription(msgCtx.getServiceGroupDescription());
+ newMessageContext.setSoapAction(msgCtx.getSoapAction());
+ newMessageContext.setTo(msgCtx.getTo());
+ newMessageContext.setWSAAction(msgCtx.getWSAAction());
+
+ if (msgCtx.getEnvelope()!=null)
+ newMessageContext.setEnvelope(msgCtx.getEnvelope());
+
+ //newMessageContext.setServiceContext(msgCtx.getServiceContext());
+ //newMessageContext.setse
+
+ return newMessageContext;
+
+ } catch (AxisFault e) {
+ throw new SandeshaException ("Cannot copy message");
+ }
+ }
+
+ public static RMMsgContext copyRMMessageContext (RMMsgContext rmMsgContext) throws SandeshaException{
+ MessageContext msgCtx = null;
+ if (rmMsgContext.getMessageContext()!=null)
+ msgCtx = copyMessageContext(rmMsgContext.getMessageContext());
+
+ RMMsgContext newRMMsgCtx = new RMMsgContext ();
+ if (msgCtx!=null)
+ newRMMsgCtx.setMessageContext(msgCtx);
+
+ return newRMMsgCtx;
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org