Author: mmusaji
Date: 2012-12-07 10:24:08 -0500 (Fri, 07 Dec 2012)
New Revision: 17058
Modified:
thirdparty/cxf/branches/cxf-2.2.12/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/soap/MAPCodec.java
thirdparty/cxf/branches/cxf-2.2.12/rt/ws/addr/src/test/java/org/apache/cxf/ws/addressing/soap/MAPCodecTest.java
Log:
[JBPAPP-10448] - Responder supports the inbound soap message with wsa MessageID and
RelatesTo headers
Modified:
thirdparty/cxf/branches/cxf-2.2.12/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/soap/MAPCodec.java
===================================================================
---
thirdparty/cxf/branches/cxf-2.2.12/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/soap/MAPCodec.java 2012-12-06
17:48:23 UTC (rev 17057)
+++
thirdparty/cxf/branches/cxf-2.2.12/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/soap/MAPCodec.java 2012-12-07
15:24:08 UTC (rev 17058)
@@ -802,7 +802,7 @@
synchronized (correlatedExchange) {
message.setExchange(correlatedExchange);
}
- } else {
+ } else if (ContextUtils.isRequestor(message) &&
!message.getExchange().isOneWay()) {
if (ContextUtils.retrieveDeferUncorrelatedMessageAbort(message)) {
LOG.fine("deferring uncorrelated message abort");
ContextUtils.storeDeferredUncorrelatedMessageAbort(message);
Modified:
thirdparty/cxf/branches/cxf-2.2.12/rt/ws/addr/src/test/java/org/apache/cxf/ws/addressing/soap/MAPCodecTest.java
===================================================================
---
thirdparty/cxf/branches/cxf-2.2.12/rt/ws/addr/src/test/java/org/apache/cxf/ws/addressing/soap/MAPCodecTest.java 2012-12-06
17:48:23 UTC (rev 17057)
+++
thirdparty/cxf/branches/cxf-2.2.12/rt/ws/addr/src/test/java/org/apache/cxf/ws/addressing/soap/MAPCodecTest.java 2012-12-07
15:24:08 UTC (rev 17058)
@@ -190,6 +190,19 @@
}
@Test
+ public void testResponderInboundWithRelatesTo() throws Exception {
+ SoapMessage message = setUpMessage(false, false, false, false, Boolean.TRUE,
+ Names.WSA_NAMESPACE_NAME);
+ //empty the uncorrelatedExchanges in responder
+ for (String key : codec.uncorrelatedExchanges.keySet()) {
+ codec.uncorrelatedExchanges.remove(key);
+ }
+ codec.handleMessage(message);
+ control.verify();
+ verifyMessage(message, false, false, false);
+ }
+
+ @Test
public void testResponderInboundNonNative() throws Exception {
String uri = VersionTransformer.Names200408.WSA_NAMESPACE_NAME;
SoapMessage message = setUpMessage(false, false, false, false, uri);
@@ -281,9 +294,16 @@
private SoapMessage setUpMessage(boolean requestor, boolean outbound, boolean
invalidMAP,
boolean preExistingSOAPAction, String exposeAs)
throws Exception {
+ return setUpMessage(requestor, outbound, invalidMAP, preExistingSOAPAction, null,
exposeAs);
+ }
+
+ private SoapMessage setUpMessage(boolean requestor, boolean outbound, boolean
invalidMAP,
+ boolean preExistingSOAPAction, Boolean
generateRelatesTo,
+ String exposeAs) throws Exception {
SoapMessage message = new SoapMessage(new MessageImpl());
setUpOutbound(message, outbound);
- expectRelatesTo = (requestor && !outbound) || (!requestor &&
outbound);
+ expectRelatesTo = generateRelatesTo != null ? generateRelatesTo
+ : (requestor && !outbound) || (!requestor && outbound);
message.put(REQUESTOR_ROLE, Boolean.valueOf(requestor));
String mapProperty = getMAPProperty(requestor, outbound);
AddressingPropertiesImpl maps = getMAPs(requestor, outbound, exposeAs);
Show replies by date