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