Author: barrettj
Date: Fri Feb 11 01:46:35 2011
New Revision: 1069659
URL: http://svn.apache.org/viewvc?rev=1069659&view=rev
Log:
AXIS2-4938
Patch submitted by Katherine Sanders. BindingProvider.getEndpointReference
should put reference parameters from WSDL in returned EPR.
Modified:
axis/axis2/java/core/trunk/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/BindingProvider.java
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/spi/ServiceDelegate.java
Modified:
axis/axis2/java/core/trunk/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java?rev=1069659&r1=1069658&r2=1069659&view=diff
==
---
axis/axis2/java/core/trunk/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java
(original)
+++
axis/axis2/java/core/trunk/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java
Fri Feb 11 01:46:35 2011
@@ -526,18 +526,30 @@ public class AddressingOutHandler extend
Iterator iterator =
referenceparameters.iterator();
while (iterator.hasNext()) {
OMElement omElement =
(OMElement)iterator.next();
-SOAPHeaderBlock newElement =
ElementHelper.toSOAPHeaderBlock(omElement, factory);
- if (isFinalAddressingNamespace) {
-
newElement.addAttribute(Final.WSA_IS_REFERENCE_PARAMETER_ATTRIBUTE,
-
Final.WSA_TYPE_ATTRIBUTE_VALUE,
-
addressingNamespaceObject);
- }
- addRoleToHeader(newElement);
- header.addChild(newElement);
+// Only add the reference parameter from the WSDL
if it does not already exist.
+// This allows clients to override the values
before invoking the service.
+if (referenceInformation == null ||
!referenceInformation.containsKey(omElement.getQName())) {
+SOAPHeaderBlock newElement =
ElementHelper.toSOAPHeaderBlock(omElement, factory);
+if (isFinalAddressingNamespace) {
+
newElement.addAttribute(Final.WSA_IS_REFERENCE_PARAMETER_ATTRIBUTE,
+
Final.WSA_TYPE_ATTRIBUTE_VALUE,
+
addressingNamespaceObject);
+}
+addRoleToHeader(newElement);
+header.addChild(newElement);
+} else {
+if (LoggingControl.debugLoggingAllowed &&
log.isTraceEnabled()) {
+
log.trace("processToEPRReferenceInformation: Reference parameter already exists
so ignoring value from WSDL: " + omElement);
+}
+}
}
}
}
}
+
+if (log.isTraceEnabled()) {
+log.trace("processToEPRReferenceInformation: Header after
adding reference parameters: "+header);
+}
}
/**
Modified:
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/BindingProvider.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/BindingProvider.java?rev=1069659&r1=1069658&r2=1069659&view=diff
==
---
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/BindingProvider.java
(original)
+++
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/BindingProvider.java
Fri Feb 11 01:46:35 2011
@@ -19,8 +19,11 @@
package org.apache.axis2.jaxws;
+import org.apache.axiom.om.OMElement;
import org.apache.axis2.addressing.AddressingConstants;
import org.apache.axis2.addressing.AddressingHelper;
+import org.apache.axis2.description.AxisEndpoint;
+import org.apache.axis2.description.AxisService;
import org.apache.axis2.jaxws.addressing.util.EndpointReferenceUtils;
import org.apache.axis2.jaxws.binding.BindingUtils;
import org.apache.axis2.jaxws.binding.SOAPBinding;
@@ -34,6 +37,7 @@ import org.apache.axis2.jaxws.handler