Author: chamikara
Date: Fri Apr 20 11:53:10 2007
New Revision: 530884
URL: http://svn.apache.org/viewvc?view=rev&rev=530884
Log:
Improved the target resolver to set "USE_ASYNC" to false when Sandesha2 is not
engaged.
Modified:
webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/SandeshaModule.java
Modified:
webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
URL:
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java?view=diff&rev=530884&r1=530883&r2=530884
==============================================================================
---
webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
(original)
+++
webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
Fri Apr 20 11:53:10 2007
@@ -471,6 +471,8 @@
}
+ static final String MODULE_NAME = "sandesha2";
+
static final String IN_HANDLER_NAME = "SandeshaInHandler";
static final String OUT_HANDLER_NAME = "SandeshaOutHandler";
Modified:
webservices/sandesha/trunk/java/src/org/apache/sandesha2/SandeshaModule.java
URL:
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/SandeshaModule.java?view=diff&rev=530884&r1=530883&r2=530884
==============================================================================
---
webservices/sandesha/trunk/java/src/org/apache/sandesha2/SandeshaModule.java
(original)
+++
webservices/sandesha/trunk/java/src/org/apache/sandesha2/SandeshaModule.java
Fri Apr 20 11:53:10 2007
@@ -17,6 +17,7 @@
package org.apache.sandesha2;
+import java.util.Collection;
import java.util.Iterator;
import javax.xml.namespace.QName;
@@ -133,6 +134,56 @@
configContext.getAxisConfiguration().addTargetResolver(
new TargetResolver() {
public void
resolveTarget(MessageContext messageContext) {
+
+ //if Sandesha2 is not engaged
we can set the property straight away
+
+ boolean engaged = false;
+
+ //checking weather the module
is engaged at the System level
+ AxisConfiguration
axisConfiguration =
messageContext.getConfigurationContext().getAxisConfiguration();
+ if (axisConfiguration!=null) {
+ Collection modules =
axisConfiguration.getEngagedModules();
+ for (Iterator iter =
modules.iterator();iter.hasNext();) {
+ String
moduleName = (String) iter.next();
+ if
(moduleName!=null && moduleName.startsWith (Sandesha2Constants.MODULE_NAME)) {
+ engaged
= true;
+ }
+ }
+ }
+
+ //checking weather the module
is engaged at the Service level
+ AxisService service =
messageContext.getAxisService();
+ if (service!=null) {
+ Collection modules =
service.getEngagedModules();
+ for (Iterator iter =
modules.iterator();iter.hasNext();) {
+ AxisModule
module = (AxisModule) iter.next();
+ String name =
module.getName();
+ if (name!=null
&& name.startsWith (Sandesha2Constants.MODULE_NAME)) {
+ engaged
= true;
+ }
+ }
+ }
+
+ //checking weather the module
is engaged at the Operation level
+ AxisOperation operation =
messageContext.getAxisOperation();
+ if (operation!=null) {
+ Collection modules =
operation.getEngagedModules();
+ for (Iterator iter =
modules.iterator();iter.hasNext();) {
+ AxisModule
module = (AxisModule) iter.next();
+ String name =
module.getName();
+ if (name!=null
&& name.startsWith (Sandesha2Constants.MODULE_NAME)) {
+ engaged
= true;
+ }
+ }
+ }
+
+ //if the module is not engaed
we mark the message as unreliable.
+ if (!engaged) {
+
if(log.isDebugEnabled()) log.debug("Unsetting USE_ASYNC_OPERATIONS for
unreliable message");
+
messageContext.setProperty(Constants.Configuration.USE_ASYNC_OPERATIONS,
Boolean.FALSE);
+ }
+
+ //Even when Sandesha2 is
engaged this may be marked as unreliable.
if(log.isDebugEnabled())
log.debug("Entry: SandeshaModule::resolveTarget");
if(SandeshaUtil.isMessageUnreliable(messageContext)) {
if(log.isDebugEnabled()) log.debug("Unsetting USE_ASYNC_OPERATIONS for
unreliable message");
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]