You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by mm...@apache.org on 2007/12/21 10:30:23 UTC
svn commit: r606145 - in /incubator/cxf/trunk:
rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/
rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/
systests/src/test/java/org/apache/cxf/systest/ws/addr_fromjava/
Author: mmao
Date: Fri Dec 21 01:30:23 2007
New Revision: 606145
URL: http://svn.apache.org/viewvc?rev=606145&view=rev
Log:
* SOAPAction from the jaxws context should affect the soap:header as well
* Add an empty soap header if the head is empty
* Update the systest
Modified:
incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJInInterceptor.java
incubator/cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/MAPAggregator.java
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/addr_fromjava/WSAFromJavaTest.java
Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJInInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJInInterceptor.java?rev=606145&r1=606144&r2=606145&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJInInterceptor.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJInInterceptor.java Fri Dec 21 01:30:23 2007
@@ -102,6 +102,9 @@
if (message.hasHeaders()) {
replaceHeaders(soapMessage, message);
}
+ if (soapMessage.getSOAPHeader() == null) {
+ soapMessage.getSOAPPart().getEnvelope().addHeader();
+ }
XMLStreamReader xmlReader = message.getContent(XMLStreamReader.class);
StaxUtils.readDocElements(soapMessage.getSOAPBody(), xmlReader, true);
@@ -109,7 +112,7 @@
xmlReader = StaxUtils.createXMLStreamReader(bodySource);
xmlReader.nextTag();
xmlReader.nextTag(); // move past body tag
- message.setContent(XMLStreamReader.class, xmlReader);
+ message.setContent(XMLStreamReader.class, xmlReader);
} catch (SOAPException soape) {
throw new SoapFault(new org.apache.cxf.common.i18n.Message(
"SOAPHANDLERINTERCEPTOR_EXCEPTION", BUNDLE), soape,
Modified: incubator/cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/MAPAggregator.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/MAPAggregator.java?rev=606145&r1=606144&r2=606145&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/MAPAggregator.java (original)
+++ incubator/cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/MAPAggregator.java Fri Dec 21 01:30:23 2007
@@ -32,6 +32,7 @@
import javax.xml.namespace.QName;
import javax.xml.ws.WebFault;
+import org.apache.cxf.binding.soap.SoapBindingConstants;
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.common.util.StringUtils;
import org.apache.cxf.endpoint.Endpoint;
@@ -467,7 +468,10 @@
protected String getActionUri(Message message) {
OperationInfo op = message.getExchange().get(OperationInfo.class);
- String actionUri = null;
+ String actionUri = (String) message.get(SoapBindingConstants.SOAP_ACTION);
+ if (actionUri != null) {
+ return actionUri;
+ }
String opNamespace = getActionBaseUri(op);
if (ContextUtils.isRequestor(message)) {
Modified: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/addr_fromjava/WSAFromJavaTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/addr_fromjava/WSAFromJavaTest.java?rev=606145&r1=606144&r2=606145&view=diff
==============================================================================
--- incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/addr_fromjava/WSAFromJavaTest.java (original)
+++ incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/addr_fromjava/WSAFromJavaTest.java Fri Dec 21 01:30:23 2007
@@ -52,15 +52,10 @@
AddNumberImpl port = getPort();
- BindingProvider bp = (BindingProvider)port;
- java.util.Map<String, Object> requestContext = bp.getRequestContext();
- requestContext.put(BindingProvider.SOAPACTION_URI_PROPERTY, "cxf");
-
assertEquals(3, port.addNumbers(1, 2));
String expectedOut = "http://cxf.apache.org/input";
assertTrue(output.toString().indexOf(expectedOut) != -1);
- assertTrue(output.toString().indexOf("SOAPAction=[\"cxf\"]") != -1);
String expectedIn = "http://cxf.apache.org/output";
assertTrue(input.toString().indexOf(expectedIn) != -1);
@@ -123,6 +118,27 @@
assertTrue(output.toString().indexOf("http://cxf.apache.org/input") != -1);
assertTrue(input.toString().indexOf("http://cxf.apache.org/fault3") != -1);
+ }
+
+ @Test
+ public void testAddNumbersJaxWsContext() throws Exception {
+ ByteArrayOutputStream input = setupInLogging();
+ ByteArrayOutputStream output = setupOutLogging();
+
+ AddNumberImpl port = getPort();
+
+ BindingProvider bp = (BindingProvider)port;
+ java.util.Map<String, Object> requestContext = bp.getRequestContext();
+ requestContext.put(BindingProvider.SOAPACTION_URI_PROPERTY, "cxf");
+
+ assertEquals(3, port.addNumbers(1, 2));
+
+ String expectedOut = "cxf</Action>";
+ assertTrue(output.toString().indexOf(expectedOut) != -1);
+ assertTrue(output.toString().indexOf("SOAPAction=[\"cxf\"]") != -1);
+
+ String expectedIn = "http://cxf.apache.org/output";
+ assertTrue(input.toString().indexOf(expectedIn) != -1);
}
private AddNumberImpl getPort() {