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/10/31 10:10:11 UTC

svn commit: r329777 - in /webservices/sandesha/trunk: samples/conf/interop/services.xml src/org/apache/sandesha2/Constants.java src/org/apache/sandesha2/handlers/SandeshaInHandler.java src/org/apache/sandesha2/handlers/SandeshaOutHandler.java

Author: chamikara
Date: Mon Oct 31 01:09:25 2005
New Revision: 329777

URL: http://svn.apache.org/viewcvs?rev=329777&view=rev
Log:
Added logic to check a parameter in the services.xml to detect RMEnabled services. To anable RM for a service engage sandesha module globally (within axis2.xml) and add following parameter to ur services xml.

<parameter name="RMEnabled">true</parameter>

Modified:
    webservices/sandesha/trunk/samples/conf/interop/services.xml
    webservices/sandesha/trunk/src/org/apache/sandesha2/Constants.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaInHandler.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaOutHandler.java

Modified: webservices/sandesha/trunk/samples/conf/interop/services.xml
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/samples/conf/interop/services.xml?rev=329777&r1=329776&r2=329777&view=diff
==============================================================================
--- webservices/sandesha/trunk/samples/conf/interop/services.xml (original)
+++ webservices/sandesha/trunk/samples/conf/interop/services.xml Mon Oct 31 01:09:25 2005
@@ -1,11 +1,11 @@
 <service name="InteropService">
     <parameter name="ServiceClass" locked="xsd:false">org.apache.sandesha2.samples.interop.service.RMInteropService</parameter>
 
+   <parameter name="RMEnabled" >true</parameter>
+
    <description>
         This is a testing service , to test the system is working or not
     </description>
-
-  <!-- <module ref="sandesha" /> -->
 
     <operation name="ping">  
         <messageReceiver class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver" />

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=329777&r1=329776&r2=329777&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/Constants.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/Constants.java Mon Oct 31 01:09:25 2005
@@ -257,4 +257,6 @@
 	
 	String ACK_PROCSSED = "AckProcessed";
 	
+	String RM_ENABLE_KEY = "RMEnabled";
+	
 }

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaInHandler.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaInHandler.java?rev=329777&r1=329776&r2=329777&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaInHandler.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaInHandler.java Mon Oct 31 01:09:25 2005
@@ -27,7 +27,11 @@
 
 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.context.ServiceContext;
+import org.apache.axis2.description.AxisService;
+import org.apache.axis2.description.Parameter;
 import org.apache.axis2.handlers.AbstractHandler;
 import org.apache.axis2.soap.SOAPEnvelope;
 import org.apache.sandesha2.Constants;
@@ -53,6 +57,24 @@
 
 	public void invoke(MessageContext msgCtx) throws AxisFault {
 
+		ConfigurationContext context = msgCtx.getSystemContext();
+		if (context==null)
+			throw new AxisFault ("ConfigurationContext is null");
+		
+		AxisService axisService = msgCtx.getAxisService();
+		if (axisService==null)
+			throw new AxisFault ("AxisService is null");
+		
+		Parameter keyParam = axisService.getParameter (Constants.RM_ENABLE_KEY);
+		Object keyValue = null;
+		if (keyParam!=null)
+			keyValue = keyParam.getValue();
+		
+		if (keyValue==null || !keyValue.equals("true")) {
+			//RM is not enabled for the service. Quiting SandeshaInHandler
+			return;
+		}
+		
 		RMMsgContext rmMsgCtx = null;
 		try {
 			rmMsgCtx = MsgInitializer.initializeMessage(msgCtx);

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaOutHandler.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaOutHandler.java?rev=329777&r1=329776&r2=329777&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaOutHandler.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaOutHandler.java Mon Oct 31 01:09:25 2005
@@ -25,6 +25,10 @@
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.context.OperationContext;
+import org.apache.axis2.context.ServiceContext;
+import org.apache.axis2.description.AxisService;
+import org.apache.axis2.description.Parameter;
+import org.apache.axis2.description.ParameterImpl;
 import org.apache.axis2.handlers.AbstractHandler;
 import org.apache.axis2.soap.SOAPBody;
 import org.apache.axis2.soap.SOAPEnvelope;
@@ -61,13 +65,32 @@
 
 	public void invoke(MessageContext msgCtx) throws AxisFault {
 
-		String DONE = (String) msgCtx
-				.getProperty(Constants.APPLICATION_PROCESSING_DONE);
-		if (null != DONE && "true".equals(DONE))
-			return;
-
-		msgCtx.setProperty(Constants.APPLICATION_PROCESSING_DONE, "true");
+	
 
+		
+		ConfigurationContext context = msgCtx.getSystemContext();
+		if (context==null)
+			throw new AxisFault ("ConfigurationContext is null");
+		
+		AxisService axisService = msgCtx.getAxisService();
+		if (axisService==null)
+			throw new AxisFault ("AxisService is null");
+		
+		if (!msgCtx.isServerSide()) {
+			//getting rm message
+			RMMsgContext rmMsgCtx = null;
+			try {
+				rmMsgCtx = MsgInitializer.initializeMessage(msgCtx);
+			} catch (SandeshaException ex) {
+				throw new AxisFault("Cant initialize the message");
+			}
+			
+			if ( rmMsgCtx.getMessageType()==Constants.MessageTypes.UNKNOWN) {
+				Parameter param = new ParameterImpl(Constants.RM_ENABLE_KEY,"true");
+				axisService.addParameter(param);
+			}
+		}
+		
 		//getting rm message
 		RMMsgContext rmMsgCtx = null;
 		try {
@@ -76,6 +99,25 @@
 			throw new AxisFault("Cant initialize the message");
 		}
 		
+		Parameter keyParam = axisService.getParameter (Constants.RM_ENABLE_KEY);
+		Object keyValue = null;
+		if (keyParam!=null)
+			keyValue = keyParam.getValue();
+		
+		if (keyValue==null || !keyValue.equals("true")) {
+			//RM is not enabled for the service. Quiting SandeshaOutHandler
+			return;
+		}
+		
+		String DONE = (String) msgCtx
+				.getProperty(Constants.APPLICATION_PROCESSING_DONE);
+		if (null != DONE && "true".equals(DONE))
+			return;
+
+		msgCtx.setProperty(Constants.APPLICATION_PROCESSING_DONE, "true");
+
+		
+		
 		//TODO recheck
 		//continue only if an possible application message
 		if (!(rmMsgCtx.getMessageType() == Constants.MessageTypes.UNKNOWN)) {
@@ -83,7 +125,6 @@
 		}
 
 		//Strating the sender.
-		ConfigurationContext context = msgCtx.getSystemContext();
 		SandeshaUtil.startSenderIfStopped(context);
 
 		CreateSeqBeanMgr createSeqMgr = AbstractBeanMgrFactory.getInstance(



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