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/27 07:54:12 UTC

svn commit: r240397 - in /webservices/sandesha/trunk/src/org/apache/sandesha2: Constants.java MsgInitializer.java MsgValidator.java RMMsgContext.java handlers/ServerInHandler.java msgprocessors/MsgProcessorFactory.java

Author: chamikara
Date: Fri Aug 26 22:53:45 2005
New Revision: 240397

URL: http://svn.apache.org/viewcvs?rev=240397&view=rev
Log:
Some changes in the server classes.

Added:
    webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/MsgProcessorFactory.java
Modified:
    webservices/sandesha/trunk/src/org/apache/sandesha2/Constants.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/MsgInitializer.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/MsgValidator.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/RMMsgContext.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/ServerInHandler.java

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/Constants.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/Constants.java?rev=240397&r1=240396&r2=240397&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/Constants.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/Constants.java Fri Aug 26 22:53:45 2005
@@ -66,13 +66,15 @@
       int MESSAGE_TYPE_APPLICATION = 3;
       int MESSAGE_TYPE_ACK = 4;
       int MESSAGE_TYPE_TERMINATE_SEQ = 5;
+      int MAX_MSG_TYPE = 5;
       
       int MESSAGE_PART_UNKNOWN = 0;
-      int MESSAGE_PART_RM_HEADERS = 1;
-      int MESSAGE_PART_ADDR_HEADERS = 2;
-      int MESSAGE_PART_CREATE_SEQ = 3;
-      int MESSAGE_PART_CREATE_SEQ_RESPONSE = 4;
-      int MESSAGE_PART_TERMINATE_SEQ = 5;
-      int MAX_MSG_PART_ID = 5;
+      int MESSAGE_PART_SEQUENCE = 1;
+      int MESSAGE_PART_SEQ_ACKNOWLEDGEMENT = 2;
+      int MESSAGE_PART_ADDR_HEADERS = 3;
+      int MESSAGE_PART_CREATE_SEQ = 4;
+      int MESSAGE_PART_CREATE_SEQ_RESPONSE = 5;
+      int MESSAGE_PART_TERMINATE_SEQ = 6;
+      int MAX_MSG_PART_ID = 6;
 
 }

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=240397&r1=240396&r2=240397&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/MsgInitializer.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/MsgInitializer.java Fri Aug 26 22:53:45 2005
@@ -18,6 +18,7 @@
 package org.apache.sandesha2;
 
 import org.apache.axis2.context.MessageContext;
+import org.apache.sandesha2.wsrm.RMElements;
 
 
 /**
@@ -26,7 +27,7 @@
 
 public class MsgInitializer {
 
-	public RMMsgContext initializeMessage (MessageContext ctx) {
+	public static RMMsgContext initializeMessage (MessageContext ctx) {
 		RMMsgContext rmMsgCtx = new RMMsgContext ();
 		populateRMMsgContext(ctx,rmMsgCtx);
 		return rmMsgCtx;
@@ -34,5 +35,16 @@
 	
 	public static void populateRMMsgContext (MessageContext msgCtx, RMMsgContext rmMsgContext) {
 		//TODO set message parts
+		
+		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());
+		rmMsgContext.setMessagePart(Constants.MESSAGE_PART_SEQ_ACKNOWLEDGEMENT,elements.getSequenceAcknowledgement());
+		rmMsgContext.setMessagePart(Constants.MESSAGE_PART_TERMINATE_SEQ,elements.getTerminateSequence());
+		
+		
+		
 	}
 }

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/MsgValidator.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/MsgValidator.java?rev=240397&r1=240396&r2=240397&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/MsgValidator.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/MsgValidator.java Fri Aug 26 22:53:45 2005
@@ -25,7 +25,16 @@
  */
 public class MsgValidator {
 
-	public static void validateMessage(MessageContext msgCtx) throws AxisFault{
+	public static void validateMessage(RMMsgContext rmMsgCtx) throws AxisFault{
         //TODO: Validate message
+		
+		//Setting message type.
+		if(rmMsgCtx.getMessagePart(Constants.MESSAGE_PART_CREATE_SEQ)!=null)
+			rmMsgCtx.setMessageType(Constants.MESSAGE_TYPE_CREATE_SEQ);
+		else if (rmMsgCtx.getMessagePart(Constants.MESSAGE_PART_CREATE_SEQ_RESPONSE)!=null)
+			rmMsgCtx.setMessageType(Constants.MESSAGE_TYPE_CREATE_SEQ_RESPONSE);
+		else if (rmMsgCtx.getMessagePart(Constants.MESSAGE_PART_TERMINATE_SEQ)!=null)
+			rmMsgCtx.setMessageType(Constants.MESSAGE_TYPE_TERMINATE_SEQ);
+			
     }
 }

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=240397&r1=240396&r2=240397&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/RMMsgContext.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/RMMsgContext.java Fri Aug 26 22:53:45 2005
@@ -44,8 +44,22 @@
 		MsgInitializer.populateRMMsgContext(ctx,this);
 	}
 	
+	public int getMessageType (){
+		return messageType;
+	}
+	
+	public void setMessageType (int msgType){
+		if(msgType>=0 && msgType<=Constants.MAX_MSG_TYPE)
+			this.messageType = msgType;
+	}
+	
 	public void setMessagePart (int partId, IOMRMElement part){
 		if (partId>=0 && partId<=Constants.MAX_MSG_PART_ID)
 			rmMessageParts.put(new Integer (partId),part);
 	}
+	
+	public IOMRMElement getMessagePart (int partId) {
+		return (IOMRMElement) rmMessageParts.get(new Integer (partId));
+	}
+	
 }

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=240397&r1=240396&r2=240397&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/ServerInHandler.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/ServerInHandler.java Fri Aug 26 22:53:45 2005
@@ -18,16 +18,33 @@
 package org.apache.sandesha2.handlers;
 
 import org.apache.axis2.AxisFault;
+import org.apache.axis2.addressing.MessageInformationHeaders;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.handlers.AbstractHandler;
+import org.apache.sandesha2.MsgInitializer;
+import org.apache.sandesha2.MsgValidator;
+import org.apache.sandesha2.RMMsgContext;
+import org.apache.sandesha2.msgprocessors.MsgProcessor;
+import org.apache.sandesha2.msgprocessors.MsgProcessorException;
+import org.apache.sandesha2.msgprocessors.MsgProcessorFactory;
 
 /**
  * @author 
  */
 public class ServerInHandler extends AbstractHandler {
 
-	public void invoke(MessageContext arg0) throws AxisFault {
-		// TODO create invoke logic
+	public void invoke(MessageContext msgCtx) throws AxisFault {
+		RMMsgContext rmMsgCtx = MsgInitializer.initializeMessage(msgCtx);
+		MsgValidator.validateMessage(rmMsgCtx);
+		
+		MsgProcessor msgProcessor = MsgProcessorFactory.getMessageProcessor(rmMsgCtx.getMessageType());
+		try {
+			msgProcessor.processMessage(rmMsgCtx);
+		}catch (MsgProcessorException mpe) {
+			mpe.printStackTrace();
+			throw new AxisFault ("Error in processing the message");
+		}
+		
 	}
 	
 }

Added: webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/MsgProcessorFactory.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/MsgProcessorFactory.java?rev=240397&view=auto
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/MsgProcessorFactory.java (added)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/MsgProcessorFactory.java Fri Aug 26 22:53:45 2005
@@ -0,0 +1,37 @@
+/*
+ * Copyright  1999-2004 The Apache Software Foundation.
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package org.apache.sandesha2.msgprocessors;
+
+import org.apache.sandesha2.Constants;
+
+/**
+ * @author 
+ * 
+ */
+public class MsgProcessorFactory {
+
+	public static MsgProcessor getMessageProcessor (int msgType) {
+		switch (msgType)
+		{
+			case (Constants.MESSAGE_TYPE_CREATE_SEQ):
+				return new CreateSeqMsgProcessor ();
+			default:
+				return null;
+		}
+	}
+}



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