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 ga...@apache.org on 2007/06/11 11:40:25 UTC

svn commit: r546061 - in /webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/handlers: SandeshaGlobalInHandler.java SequenceIDDispatcher.java

Author: gatfora
Date: Mon Jun 11 02:40:24 2007
New Revision: 546061

URL: http://svn.apache.org/viewvc?view=rev&rev=546061
Log:
Skip Sandesha processingfor services which have unreliable message set, or if a sequence property bean can't be found

Modified:
    webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java
    webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/handlers/SequenceIDDispatcher.java

Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java?view=diff&rev=546061&r1=546060&r2=546061
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java Mon Jun 11 02:40:24 2007
@@ -72,9 +72,15 @@
 		if (msgContext.getAxisService() != null) {
 			Parameter unreliableParam = msgContext.getAxisService().getParameter(SandeshaClientConstants.UNRELIABLE_MESSAGE);
 			if (null != unreliableParam && "true".equals(unreliableParam.getValue())) {
-				log.debug("Exit: SandeshaGlobalInHandler::invoke, Service has disabled RM " + InvocationResponse.CONTINUE);
+				if (log.isDebugEnabled())
+					log.debug("Exit: SandeshaGlobalInHandler::invoke, Service has disabled RM " + InvocationResponse.CONTINUE);
 				return InvocationResponse.CONTINUE;
 			}
+		} else if (msgContext.getConfigurationContext().getAxisConfiguration().getParameter(Sandesha2Constants.SANDESHA_PROPERTY_BEAN) == null) {
+			if (log.isDebugEnabled())
+				log.debug("Exit: SandeshaGlobalInHandler::invoke, No Property Bean found " + InvocationResponse.CONTINUE);
+			
+			return InvocationResponse.CONTINUE;						
 		}
 
 		// The only work that this handler needs to do is identify messages which

Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/handlers/SequenceIDDispatcher.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/handlers/SequenceIDDispatcher.java?view=diff&rev=546061&r1=546060&r2=546061
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/handlers/SequenceIDDispatcher.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/handlers/SequenceIDDispatcher.java Mon Jun 11 02:40:24 2007
@@ -25,13 +25,13 @@
 import org.apache.axis2.description.HandlerDescription;
 import org.apache.axis2.description.Parameter;
 import org.apache.axis2.engine.AbstractDispatcher;
-import org.apache.axis2.engine.Handler;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.sandesha2.RMMsgContext;
 import org.apache.sandesha2.Sandesha2Constants;
+import org.apache.sandesha2.client.SandeshaClientConstants;
 import org.apache.sandesha2.storage.StorageManager;
 import org.apache.sandesha2.storage.Transaction;
-import org.apache.sandesha2.storage.beanmanagers.RMDBeanMgr;
-import org.apache.sandesha2.storage.beanmanagers.RMSBeanMgr;
 import org.apache.sandesha2.storage.beans.RMDBean;
 import org.apache.sandesha2.storage.beans.RMSBean;
 import org.apache.sandesha2.util.MsgInitializer;
@@ -40,9 +40,9 @@
 public class SequenceIDDispatcher extends AbstractDispatcher {
 
 	private final String NAME = "SequenceIDDIspatcher";
+	private static final Log log = LogFactory.getLog(SequenceIDDispatcher.class);
 	
-	public AxisOperation findOperation(AxisService service, MessageContext messageContext) throws AxisFault {
-		// TODO Auto-generated method stub
+	public AxisOperation findOperation(AxisService service, MessageContext messageContext) {
 		return null;
 	}
 
@@ -51,8 +51,18 @@
 	}
 
 	public AxisService findService(MessageContext msgContext) throws AxisFault {
-		// TODO Auto-generated method stub
-		
+		if (log.isDebugEnabled())
+			log.debug("Enter: SequenceIDDispatcher::findService, " + msgContext.getEnvelope().getHeader());
+		// look at the service to see if RM is totally disabled. This allows the user to disable RM using
+		// a property on the service, even when Sandesha is engaged.
+		if (msgContext.getAxisService() != null) {
+			Parameter unreliableParam = msgContext.getAxisService().getParameter(SandeshaClientConstants.UNRELIABLE_MESSAGE);
+			if (null != unreliableParam && "true".equals(unreliableParam.getValue())) {
+				if (log.isDebugEnabled())
+					log.debug("Exit: SequenceIDDispatcher::findService, Service has disabled RM ");
+				return null;
+			}
+		} 
 		
 		ConfigurationContext configurationContext = msgContext.getConfigurationContext();
 		RMMsgContext rmmsgContext = MsgInitializer.initializeMessage(msgContext);
@@ -60,19 +70,15 @@
 		
 		Transaction transaction = storageManager.getTransaction();
 		
-		AxisService service;
+		AxisService service = null;
 		try {
 			String sequenceID = (String) rmmsgContext
 					.getProperty(Sandesha2Constants.MessageContextProperties.SEQUENCE_ID);
 			service = null;
 			if (sequenceID != null) {
 
-				//If this is the RMD of the sequence 
-				RMDBeanMgr rmdBeanMgr = storageManager.getRMDBeanMgr();
-				RMDBean rmdFindBean = new RMDBean();
-				rmdFindBean.setSequenceID(sequenceID);
-
-				RMDBean rmdBean = rmdBeanMgr.findUnique(rmdFindBean);
+				//If this is the RMD of the sequence 				
+				RMDBean rmdBean = SandeshaUtil.getRMDBeanFromSequenceId(storageManager, sequenceID);
 				String serviceName = rmdBean.getServiceName();
 				if (serviceName != null) {
 					service = configurationContext.getAxisConfiguration()
@@ -80,12 +86,8 @@
 				}
 
 				if (service == null && rmdBean == null) {
-					//If this is the RMD of the sequence 
-					RMSBeanMgr rmsBeanMgr = storageManager.getRMSBeanMgr();
-					RMSBean rmsfindBean = new RMSBean();
-					rmsfindBean.setSequenceID(sequenceID);
-
-					RMSBean rmsBean = rmsBeanMgr.findUnique(rmsfindBean);
+					//If this is the RMS of the sequence 
+					RMSBean rmsBean = SandeshaUtil.getRMSBeanFromSequenceId(storageManager, sequenceID);
 
 					serviceName = rmsBean.getServiceName();
 					if (serviceName != null) {
@@ -96,9 +98,12 @@
 
 			}
 		} finally  {
-			transaction.commit();
+			if (transaction != null && transaction.isActive())
+				transaction.commit();
 		}		
 		
+		if (log.isDebugEnabled())
+			log.debug("Exit: SequenceIDDispatcher::findService, " + service);
 		return service;
 	}
 



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