Repository: cxf
Updated Branches:
refs/heads/2.7.x-fixes 4a92b5f2a -> 603c47179
[CXF-5709] WSRM 1.1 TerminateSequence should not overwrite default replyTo to
none
Conflicts:
rt/ws/rm/src/test/java/org/apache/cxf/ws/rm/RMOutInterceptorTest.java
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/603c4717
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/603c4717
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/603c4717
Branch: refs/heads/2.7.x-fixes
Commit: 603c47179df6bfb9bb65ea6473effd7df861104d
Parents: 4a92b5f
Author: Akitoshi Yoshida <[email protected]>
Authored: Wed Apr 23 18:46:52 2014 +0200
Committer: Akitoshi Yoshida <[email protected]>
Committed: Wed Apr 23 19:09:17 2014 +0200
----------------------------------------------------------------------
.../org/apache/cxf/ws/rm/RMOutInterceptor.java | 3 +-
.../apache/cxf/ws/rm/RMOutInterceptorTest.java | 47 ++++++++++++++++++++
2 files changed, 49 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/603c4717/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMOutInterceptor.java
----------------------------------------------------------------------
diff --git a/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMOutInterceptor.java
b/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMOutInterceptor.java
index 766fbb5..f9c855b 100644
--- a/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMOutInterceptor.java
+++ b/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMOutInterceptor.java
@@ -205,7 +205,8 @@ public class RMOutInterceptor extends
AbstractRMInterceptor<Message> {
}
}
if (constants.getSequenceAckAction().equals(action)
- || constants.getTerminateSequenceAction().equals(action)) {
+ || (constants.getTerminateSequenceAction().equals(action)
+ && RM10Constants.NAMESPACE_URI.equals(rmUri))) {
maps.setReplyTo(RMUtils.createNoneReference());
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/603c4717/rt/ws/rm/src/test/java/org/apache/cxf/ws/rm/RMOutInterceptorTest.java
----------------------------------------------------------------------
diff --git
a/rt/ws/rm/src/test/java/org/apache/cxf/ws/rm/RMOutInterceptorTest.java
b/rt/ws/rm/src/test/java/org/apache/cxf/ws/rm/RMOutInterceptorTest.java
index 244e1ad..7316d87 100644
--- a/rt/ws/rm/src/test/java/org/apache/cxf/ws/rm/RMOutInterceptorTest.java
+++ b/rt/ws/rm/src/test/java/org/apache/cxf/ws/rm/RMOutInterceptorTest.java
@@ -35,6 +35,7 @@ import org.apache.cxf.ws.addressing.AttributedURIType;
import org.apache.cxf.ws.addressing.EndpointReferenceType;
import org.apache.cxf.ws.addressing.JAXWSAConstants;
import org.apache.cxf.ws.addressing.MAPAggregator;
+import org.apache.cxf.ws.addressing.Names;
import org.apache.cxf.ws.addressing.VersionTransformer.Names200408;
import org.apache.cxf.ws.addressing.impl.AddressingPropertiesImpl;
import org.apache.cxf.ws.rm.v200702.Identifier;
@@ -192,8 +193,54 @@ public class RMOutInterceptorTest extends Assert {
control.verify();
}
+ @Test
+ public void testRM11TerminateSequence() throws RMException, SequenceFault {
+ testRMTerminateSequence(RM11Constants.NAMESPACE_URI,
Names.WSA_NAMESPACE_NAME,
+ RM11Constants.TERMINATE_SEQUENCE_ACTION,
+
org.apache.cxf.ws.addressing.Names.WSA_ANONYMOUS_ADDRESS,
+
org.apache.cxf.ws.addressing.Names.WSA_ANONYMOUS_ADDRESS);
+ }
+
+ @Test
+ public void testRM10TerminateSequence() throws RMException, SequenceFault {
+ testRMTerminateSequence(RM10Constants.NAMESPACE_URI,
Names.WSA_NAMESPACE_NAME,
+ RM10Constants.TERMINATE_SEQUENCE_ACTION,
+
org.apache.cxf.ws.addressing.Names.WSA_ANONYMOUS_ADDRESS,
+
org.apache.cxf.ws.addressing.Names.WSA_NONE_ADDRESS);
+ }
+
+ private void testRMTerminateSequence(String wsrmnsuri, String wsansuri,
+ String action, String breplyto,
String areplyto)
+ throws RMException, SequenceFault {
+ AddressingPropertiesImpl maps = createMAPs(action,
"localhost:9000/GreeterPort", breplyto);
+
+ Message message = control.createMock(Message.class);
+ Exchange exchange = control.createMock(Exchange.class);
+ EasyMock.expect(message.getExchange()).andReturn(exchange).anyTimes();
+
EasyMock.expect(exchange.getOutMessage()).andReturn(message).anyTimes();
+
EasyMock.expect(message.get(Message.REQUESTOR_ROLE)).andReturn(Boolean.TRUE).anyTimes();
+
EasyMock.expect(message.get(JAXWSAConstants.ADDRESSING_PROPERTIES_OUTBOUND))
+ .andReturn(maps).anyTimes();
+ RMManager manager = control.createMock(RMManager.class);
+ EasyMock.expect(manager.getRMNamespace(EasyMock.same(message)))
+ .andReturn(wsrmnsuri).anyTimes();
+ EasyMock.expect(manager.getAddressingNamespace(EasyMock.same(message)))
+ .andReturn(wsansuri).anyTimes();
+ control.replay();
+ RMOutInterceptor rmi = new RMOutInterceptor();
+ rmi.setManager(manager);
+ rmi.handle(message);
+
+ assertEquals(areplyto,
+ maps.getReplyTo().getAddress().getValue());
+ control.verify();
+ }
+
private AddressingPropertiesImpl createMAPs(String action, String to,
String replyTo) {
AddressingPropertiesImpl maps = new AddressingPropertiesImpl();
+ AttributedURIType actionuri = new AttributedURIType();
+ actionuri.setValue(action);
+ maps.setAction(actionuri);
maps.setTo(RMUtils.createReference(to));
EndpointReferenceType epr = RMUtils.createReference(replyTo);
maps.setReplyTo(epr);