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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]