You are viewing a plain text version of this content. The canonical link for it is here.
Posted to sandesha-dev@ws.apache.org by ch...@apache.org on 2005/08/28 14:58:31 UTC

svn commit: r263873 - in /webservices/sandesha/trunk: samples/interop/ samples/interop/src/org/apache/sandesha2/samples/ src/org/apache/sandesha2/ src/org/apache/sandesha2/handlers/ src/org/apache/sandesha2/msgprocessors/ src/org/apache/sandesha2/msgre...

Author: chamikara
Date: Sun Aug 28 05:56:25 2005
New Revision: 263873

URL: http://svn.apache.org/viewcvs?rev=263873&view=rev
Log:
CreateSequenceResponse is working now. (but need some corrections)

Added:
    webservices/sandesha/trunk/test/org/
    webservices/sandesha/trunk/test/org/apache/
    webservices/sandesha/trunk/test/org/apache/sandesha2/
    webservices/sandesha/trunk/test/org/apache/sandesha2/SimpleServerImpl.java
Modified:
    webservices/sandesha/trunk/samples/interop/service.xml
    webservices/sandesha/trunk/samples/interop/src/org/apache/sandesha2/samples/RMInteropService.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/MsgInitializer.java
    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/ServerInHandler.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/msgreceivers/RMMessageReceiver.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/RMElements.java

Modified: webservices/sandesha/trunk/samples/interop/service.xml
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/samples/interop/service.xml?rev=263873&r1=263872&r2=263873&view=diff
==============================================================================
--- webservices/sandesha/trunk/samples/interop/service.xml (original)
+++ webservices/sandesha/trunk/samples/interop/service.xml Sun Aug 28 05:56:25 2005
@@ -6,7 +6,12 @@
     </description>
 
     <module ref="sandesha" />
-    <operation name="ping" />
-    <operation name="echoString" />
+<!--
+    <operation name="ping" />  
+    <operation name="echoString" /> -->
+
+    	<operation name="ping">
+		<messageReceiver class="org.apache.sandesha2.msgreceivers.RMMessageReceiver" />
+	</operation> 
     
 </service>

Modified: webservices/sandesha/trunk/samples/interop/src/org/apache/sandesha2/samples/RMInteropService.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/samples/interop/src/org/apache/sandesha2/samples/RMInteropService.java?rev=263873&r1=263872&r2=263873&view=diff
==============================================================================
--- webservices/sandesha/trunk/samples/interop/src/org/apache/sandesha2/samples/RMInteropService.java (original)
+++ webservices/sandesha/trunk/samples/interop/src/org/apache/sandesha2/samples/RMInteropService.java Sun Aug 28 05:56:25 2005
@@ -20,6 +20,11 @@
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.axis2.om.OMAbstractFactory;
+import org.apache.axis2.om.OMElement;
+import org.apache.axis2.om.OMFactory;
+import org.apache.axis2.om.OMNamespace;
+
 /**
  * @author 
  * 
@@ -28,19 +33,25 @@
 
     private static Map sequences = new HashMap();
 
-    public String echoString(String text, String sequence) {
+    public OMElement echoString(OMElement in) {
+        System.out.println("EchoString was called");
+        in.getFirstChild().detach();
+
+        OMFactory fac = OMAbstractFactory.getOMFactory();
+        OMNamespace omNs = fac.createOMNamespace("http://tempuri.org/", "echoString");
+        OMElement method = fac.createOMElement("echoStringResponse", omNs);
 
-        if (sequences.get(sequence) != null) {
-            text = (String) sequences.get(sequence) + text;
-            sequences.put(sequence, new String(text));
-        } else {
-            sequences.put(sequence, (new String(text)));
+        OMElement value = fac.createOMElement("Text", omNs);
+        //TODO umcomment
+        //value.addChild(fac.createText(value, "Echo Text"));
+        method.addChild(value);
 
-        }
-        return text;
+        return method;
     }
 
-    public void ping(String text) {
+
+    public void ping(OMElement in) {
         //Just accept the message and do some processing
+    	System.out.println("Ping was called");
     }
 }

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/MsgInitializer.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/MsgInitializer.java?rev=263873&r1=263872&r2=263873&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/MsgInitializer.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/MsgInitializer.java Sun Aug 28 05:56:25 2005
@@ -17,6 +17,7 @@
 
 package org.apache.sandesha2;
 
+import org.apache.axis2.addressing.om.AddressingHeaders;
 import org.apache.axis2.context.MessageContext;
 import org.apache.sandesha2.wsrm.RMElements;
 
@@ -28,7 +29,7 @@
 public class MsgInitializer {
 
 	public static RMMsgContext initializeMessage (MessageContext ctx) {
-		RMMsgContext rmMsgCtx = new RMMsgContext ();
+		RMMsgContext rmMsgCtx = new RMMsgContext (ctx);
 		populateRMMsgContext(ctx,rmMsgCtx);
 		return rmMsgCtx;
 	}
@@ -38,6 +39,7 @@
 		
 		RMElements elements = new RMElements ();
 		elements.fromSOAPEnvelope(msgCtx.getEnvelope());
+		
 		rmMsgContext.setMessagePart(Constants.MESSAGE_PART_CREATE_SEQ,elements.getCreateSequence());
 		rmMsgContext.setMessagePart(Constants.MESSAGE_PART_CREATE_SEQ_RESPONSE,elements.getCreateSequenceResponse());
 		rmMsgContext.setMessagePart(Constants.MESSAGE_PART_SEQUENCE ,elements.getSequence());

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=263873&r1=263872&r2=263873&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/RMMsgContext.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/RMMsgContext.java Sun Aug 28 05:56:25 2005
@@ -18,8 +18,15 @@
 package org.apache.sandesha2;
 
 import java.util.HashMap;
+
+import javax.xml.stream.XMLOutputFactory;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.axis2.addressing.EndpointReference;
+import org.apache.axis2.addressing.miheaders.RelatesTo;
 import org.apache.axis2.addressing.om.AddressingHeaders;
 import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.soap.SOAPEnvelope;
 import org.apache.sandesha2.wsrm.CreateSequence;
 import org.apache.sandesha2.wsrm.IOMRMElement;
 import org.apache.sandesha2.wsrm.TerminateSequence;
@@ -41,7 +48,7 @@
 	public RMMsgContext (MessageContext ctx){
 		this ();
 		this.msgContext = ctx;
-		MsgInitializer.populateRMMsgContext(ctx,this);
+		//MsgInitializer.populateRMMsgContext(ctx,this);
 	}
 	
 	public int getMessageType (){
@@ -61,5 +68,45 @@
 	public IOMRMElement getMessagePart (int partId) {
 		return (IOMRMElement) rmMessageParts.get(new Integer (partId));
 	}
+	
+	public EndpointReference getFrom () {
+		return msgContext.getFrom();
+	}
+	
+	public EndpointReference getTo (){
+		return msgContext.getTo();
+	}
+	
+	public EndpointReference getReplyTo (){
+		return msgContext.getReplyTo();
+	}
+	
+	public RelatesTo getRelatesTo () {
+		return msgContext.getRelatesTo();
+	}
+	
+	public String getMessageId (){
+		return msgContext.getMessageID();
+	}
+	
+	public SOAPEnvelope getSOAPEnvelope () {
+		return msgContext.getEnvelope();
+	}
+	public void test (){
+		String opearaitonName = msgContext.getOperationContext().getAxisOperation().getName().getLocalPart();
+		System.out.println ("Operation is:" + opearaitonName);
+	}
+	
+	public void serializeSOAPEnvelop () {
+		try {
+			SOAPEnvelope envelop = msgContext.getEnvelope();
+			XMLStreamWriter writer = XMLOutputFactory.newInstance().createXMLStreamWriter(System.out);
+			envelop.serialize(writer);
+		}catch (Exception ex){
+			ex.printStackTrace();
+		}
+	}
+	
+	
 	
 }

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=263873&r1=263872&r2=263873&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/RMMsgCreator.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/RMMsgCreator.java Sun Aug 28 05:56:25 2005
@@ -17,9 +17,63 @@
 
 package org.apache.sandesha2;
 
+import javax.xml.stream.XMLOutputFactory;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.addressing.EndpointReference;
+import org.apache.axis2.addressing.om.AddressingHeaders;
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.om.OMAbstractFactory;
+import org.apache.axis2.soap.SOAPEnvelope;
+import org.apache.sandesha2.wsrm.Accept;
+import org.apache.sandesha2.wsrm.AcksTo;
+import org.apache.sandesha2.wsrm.CreateSequence;
+import org.apache.sandesha2.wsrm.CreateSequenceResponse;
+import org.apache.sandesha2.wsrm.IOMRMElement;
+import org.apache.sandesha2.wsrm.Identifier;
+
 /**
  * @author
  */
 public class RMMsgCreator {
 
+	public static RMMsgContext createCreateSeqResponseMsg (RMMsgContext createSeqMessage, MessageContext outMessage) throws AxisFault {
+		
+		IOMRMElement messagePart = 
+			createSeqMessage.getMessagePart(Constants.MESSAGE_PART_CREATE_SEQ);
+		CreateSequence cs = (CreateSequence) messagePart;
+		
+		CreateSequenceResponse response = new CreateSequenceResponse();
+		
+		Identifier identifier = new Identifier();
+		// TODO : set the an appropriate id 
+		identifier.setIndentifer("temp-id-of-sandesha");
+		response.setIdentifier(identifier);
+		Accept accept = new Accept();
+		EndpointReference acksToEPR = createSeqMessage.getTo();  
+		AcksTo acksTo = new AcksTo(acksToEPR);
+		accept.setAcksTo(acksTo);
+		response.setAccept(accept);
+		
+		SOAPEnvelope envelope = createSeqMessage.getSOAPEnvelope();
+		envelope.getBody().getFirstChild().detach();
+		
+		response.toSOAPEnvelope(envelope);
+        EndpointReference fromEPR= new EndpointReference("http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous");
+
+        outMessage.setFrom(fromEPR);
+        outMessage.setWSAAction("http://schemas.xmlsoap.org/ws/2005/02/rm/CreateSequenceResponse");
+        
+        /*try {
+			XMLStreamWriter writer = XMLOutputFactory.newInstance().createXMLStreamWriter(System.out);
+			envelope.serialize(writer);
+		}catch (Exception ex){
+			ex.printStackTrace();
+		}*/
+		
+        outMessage.setEnvelope(envelope);
+        RMMsgContext createSeqResponse = new RMMsgContext(outMessage);
+		return createSeqResponse;
+	}
 }

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/ServerInHandler.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/ServerInHandler.java?rev=263873&r1=263872&r2=263873&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/ServerInHandler.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/ServerInHandler.java Sun Aug 28 05:56:25 2005
@@ -34,10 +34,16 @@
 public class ServerInHandler extends AbstractHandler {
 
 	public void invoke(MessageContext msgCtx) throws AxisFault {
+		System.out.println  ("In server Handler 1");
+		
+		String opearaitonName = msgCtx.getOperationContext().getAxisOperation().getName().getLocalPart();
+		System.out.println ("Operation is:" + opearaitonName);
+		
 		RMMsgContext rmMsgCtx = MsgInitializer.initializeMessage(msgCtx);
 		MsgValidator.validateMessage(rmMsgCtx);
 		
 		MsgProcessor msgProcessor = MsgProcessorFactory.getMessageProcessor(rmMsgCtx.getMessageType());
+		
 		try {
 			msgProcessor.processMessage(rmMsgCtx);
 		}catch (MsgProcessorException mpe) {

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java?rev=263873&r1=263872&r2=263873&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java Sun Aug 28 05:56:25 2005
@@ -17,7 +17,9 @@
 
 package org.apache.sandesha2.msgprocessors;
 
+import org.apache.sandesha2.Constants;
 import org.apache.sandesha2.RMMsgContext;
+import org.apache.sandesha2.wsrm.CreateSequence;
 
 /**
  * @author 
@@ -27,5 +29,12 @@
 
 	public void processMessage(RMMsgContext rmMsgCtx) throws MsgProcessorException {
 		//TODO: Add create sequence message processing logic
+		CreateSequence createSeq = (CreateSequence) rmMsgCtx.getMessagePart(Constants.MESSAGE_PART_CREATE_SEQ);
+
+		//rmMsgCtx.test();
+		//Store AcksTo Value
+		
+		//Change the Operation (to go throught CreateSequence)
+		
 	}
 }

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/msgreceivers/RMMessageReceiver.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/msgreceivers/RMMessageReceiver.java?rev=263873&r1=263872&r2=263873&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/msgreceivers/RMMessageReceiver.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/msgreceivers/RMMessageReceiver.java Sun Aug 28 05:56:25 2005
@@ -18,17 +18,59 @@
 package org.apache.sandesha2.msgreceivers;
 
 import org.apache.axis2.AxisFault;
+import org.apache.axis2.addressing.EndpointReference;
 import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.om.OMAbstractFactory;
+import org.apache.axis2.om.OMElement;
+import org.apache.axis2.om.OMFactory;
+import org.apache.axis2.om.OMNamespace;
+import org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver;
 import org.apache.axis2.receivers.AbstractMessageReceiver;
+import org.apache.axis2.soap.SOAP11Constants;
+import org.apache.axis2.soap.SOAP12Constants;
+import org.apache.axis2.soap.SOAPEnvelope;
+import org.apache.axis2.soap.SOAPFactory;
+import org.apache.sandesha2.Constants;
+import org.apache.sandesha2.MsgInitializer;
+import org.apache.sandesha2.MsgValidator;
+import org.apache.sandesha2.RMMsgContext;
+import org.apache.sandesha2.RMMsgCreator;
 
 /**
- * @author 
- * 
+ * @author  
  */
 
-public class RMMessageReceiver extends AbstractMessageReceiver {
+public class RMMessageReceiver extends AbstractInOutSyncMessageReceiver {
+
+	public void invokeBusinessLogic(MessageContext inMessage, MessageContext outMessage) throws AxisFault {
+
+		System.out.println("RM Msg Receiver was called");
+		RMMsgContext rmMsgCtx = MsgInitializer.initializeMessage(inMessage);
+		MsgValidator.validateMessage(rmMsgCtx);
+
+		if (rmMsgCtx.getMessageType() == Constants.MESSAGE_TYPE_CREATE_SEQ) {
+			
+			RMMsgContext createSeqResponse = RMMsgCreator
+					.createCreateSeqResponseMsg(rmMsgCtx,outMessage);
+
+			//createSeqResponse.serializeSOAPEnvelop();
+			outMessage.setResponseWritten(true);
+		}
 
-	public void receive(MessageContext arg0) throws AxisFault {
-		// TODO Message receiver logic.
 	}
-}
+
+	private SOAPFactory getSOAPFactory(MessageContext inMessage)
+			throws AxisFault {
+		String nsURI = inMessage.getEnvelope().getNamespace().getName();
+		if (SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(nsURI)) {
+			fac = OMAbstractFactory.getSOAP12Factory();
+		} else if (SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(nsURI)) {
+			fac = OMAbstractFactory.getSOAP11Factory();
+		} else {
+			throw new AxisFault(
+					"Unknown SOAP Version. Current Axis handles only SOAP 1.1 and SOAP 1.2 messages");
+		}
+		return fac;
+	}
+
+}
\ No newline at end of file

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/RMElements.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/RMElements.java?rev=263873&r1=263872&r2=263873&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/RMElements.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/RMElements.java Sun Aug 28 05:56:25 2005
@@ -18,6 +18,9 @@
 
 import java.util.Iterator;
 
+import javax.xml.stream.XMLOutputFactory;
+import javax.xml.stream.XMLStreamWriter;
+
 import org.apache.axis2.om.OMElement;
 import org.apache.axis2.om.OMException;
 import org.apache.axis2.soap.SOAPEnvelope;
@@ -68,6 +71,7 @@
 		createSequenceElement.fromSOAPEnvelope(envelope);
 		createSequenceResponseElement.fromSOAPEnvelope(envelope);
 		terminateSequenceElement.fromSOAPEnvelope(envelope);
+
 		return this;
 	}
 

Added: webservices/sandesha/trunk/test/org/apache/sandesha2/SimpleServerImpl.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/test/org/apache/sandesha2/SimpleServerImpl.java?rev=263873&view=auto
==============================================================================
--- webservices/sandesha/trunk/test/org/apache/sandesha2/SimpleServerImpl.java (added)
+++ webservices/sandesha/trunk/test/org/apache/sandesha2/SimpleServerImpl.java Sun Aug 28 05:56:25 2005
@@ -0,0 +1,23 @@
+/*
+ * Created on Aug 26, 2005
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package org.apache.sandesha2;
+
+import java.io.IOException;
+
+import org.apache.axis2.transport.http.SimpleHTTPServer;
+
+/**
+ * @author 
+ * 
+ */
+public class SimpleServerImpl {
+
+    public static void main(String[] args) throws IOException {
+        SimpleHTTPServer sas= new SimpleHTTPServer("E:\\Program Files\\Apache Software Foundation\\Tomcat 5.0\\webapps\\axis2\\WEB-INF",8080);
+        sas.start();
+      }
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org