You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by na...@apache.org on 2008/11/04 16:28:03 UTC
svn commit: r711272 -
/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/MessageContext.java
Author: nandana
Date: Tue Nov 4 07:28:03 2008
New Revision: 711272
URL: http://svn.apache.org/viewvc?rev=711272&view=rev
Log:
AXIS2-4114 Applying the patch. Thanks Dobri.
Modified:
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/MessageContext.java
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/MessageContext.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/MessageContext.java?rev=711272&r1=711271&r2=711272&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/MessageContext.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/MessageContext.java Tue Nov 4 07:28:03 2008
@@ -38,7 +38,10 @@
import org.apache.axis2.context.externalize.SafeObjectInputStream;
import org.apache.axis2.context.externalize.SafeObjectOutputStream;
import org.apache.axis2.context.externalize.SafeSerializable;
+import org.apache.axis2.description.AxisBinding;
import org.apache.axis2.description.AxisBindingMessage;
+import org.apache.axis2.description.AxisBindingOperation;
+import org.apache.axis2.description.AxisEndpoint;
import org.apache.axis2.description.AxisMessage;
import org.apache.axis2.description.AxisModule;
import org.apache.axis2.description.AxisOperation;
@@ -57,6 +60,8 @@
import org.apache.axis2.util.LoggingControl;
import org.apache.axis2.util.MetaDataEntry;
import org.apache.axis2.util.SelfManagedDataHolder;
+import org.apache.axis2.wsdl.WSDLConstants;
+import org.apache.axis2.wsdl.WSDLUtil;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.neethi.Policy;
@@ -1571,16 +1576,56 @@
AxisBindingMessage bindingMessage =
(AxisBindingMessage) getProperty(Constants.AXIS_BINDING_MESSAGE);
+ // If AxisBindingMessage is not set, try to find the binding message from the AxisService
+ if (bindingMessage == null) {
+ bindingMessage = findBindingMessage();
+ }
+
if (bindingMessage != null) {
- return bindingMessage.getEffectivePolicy();
- } else {
- if (axisMessage != null) {
+ return bindingMessage.getEffectivePolicy();
+ // If we can't find the AxisBindingMessage, then try the AxisMessage
+ } else if (axisMessage != null) {
return axisMessage.getEffectivePolicy();
- } else {
+ } else {
return null;
- }
}
}
+
+ private AxisBindingMessage findBindingMessage() {
+ if (axisService != null) {
+ if (axisService.getEndpointName() != null) {
+ AxisEndpoint axisEndpoint = axisService
+ .getEndpoint(axisService.getEndpointName());
+ if (axisEndpoint != null) {
+ AxisBinding axisBinding = axisEndpoint.getBinding();
+ AxisBindingOperation axisBindingOperation = (AxisBindingOperation) axisBinding
+ .getChild(axisOperation.getName());
+ String direction = axisMessage.getDirection();
+ AxisBindingMessage axisBindingMessage = null;
+ if (WSDLConstants.WSDL_MESSAGE_DIRECTION_IN
+ .equals(direction)
+ && WSDLUtil
+ .isInputPresentForMEP(axisOperation
+ .getMessageExchangePattern())) {
+ axisBindingMessage = (AxisBindingMessage) axisBindingOperation
+ .getChild(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
+ return axisBindingMessage;
+
+ } else if (WSDLConstants.WSDL_MESSAGE_DIRECTION_OUT
+ .equals(direction)
+ && WSDLUtil
+ .isOutputPresentForMEP(axisOperation
+ .getMessageExchangePattern())) {
+ axisBindingMessage = (AxisBindingMessage) axisBindingOperation
+ .getChild(WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
+ return axisBindingMessage;
+ }
+ }
+
+ }
+ }
+ return null;
+ }
public boolean isEngaged(String moduleName) {