[CXF-7235] Support messageSelector This closes #231
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/4c769260 Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/4c769260 Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/4c769260 Branch: refs/heads/3.1.x-fixes Commit: 4c769260474cb714becb851abe91c2ea4504efb9 Parents: 1e2b5fe Author: Christian Schneider <[email protected]> Authored: Thu Feb 2 17:55:44 2017 +0100 Committer: Daniel Kulp <[email protected]> Committed: Tue Feb 14 09:51:43 2017 -0500 ---------------------------------------------------------------------- .../org/apache/cxf/transport/jms/JMSConfigFactory.java | 1 + .../org/apache/cxf/transport/jms/uri/JMSEndpoint.java | 11 +++++++++++ .../apache/cxf/transport/jms/JMSConfigFactoryTest.java | 7 +++++++ rt/transports/jms/src/test/resources/jms_test.wsdl | 5 +++++ 4 files changed, 24 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/4c769260/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConfigFactory.java ---------------------------------------------------------------------- diff --git a/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConfigFactory.java b/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConfigFactory.java index 464fc7a..5c4c15b 100644 --- a/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConfigFactory.java +++ b/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConfigFactory.java @@ -129,6 +129,7 @@ public final class JMSConfigFactory { String targetService = endpoint.getTargetService(); jmsConfig.setTargetService(targetService); + jmsConfig.setMessageSelector(endpoint.getMessageSelector()); return jmsConfig; } http://git-wip-us.apache.org/repos/asf/cxf/blob/4c769260/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/uri/JMSEndpoint.java ---------------------------------------------------------------------- diff --git a/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/uri/JMSEndpoint.java b/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/uri/JMSEndpoint.java index 64a77dd..5887fd9 100644 --- a/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/uri/JMSEndpoint.java +++ b/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/uri/JMSEndpoint.java @@ -86,6 +86,7 @@ public class JMSEndpoint { private boolean useConduitIdSelector = true; private String username; private int concurrentConsumers = 1; + private String messageSelector; /** * @param uri @@ -476,5 +477,15 @@ public class JMSEndpoint { throw new IllegalArgumentException(v); } } + + public String getMessageSelector() { + return messageSelector; + } + + public void setMessageSelector(String messageSelector) { + this.messageSelector = messageSelector; + } + + } http://git-wip-us.apache.org/repos/asf/cxf/blob/4c769260/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSConfigFactoryTest.java ---------------------------------------------------------------------- diff --git a/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSConfigFactoryTest.java b/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSConfigFactoryTest.java index 9008732..dee65ef 100644 --- a/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSConfigFactoryTest.java +++ b/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSConfigFactoryTest.java @@ -87,4 +87,11 @@ public class JMSConfigFactoryTest extends AbstractJMSTester { Assert.assertEquals(4, jmsConfig.getConcurrentConsumers()); } + + @Test + public void testMessageSelectorIsSet() { + EndpointInfo ei = setupServiceInfo("HelloWorldSelectorService", "HelloWorldPort"); + JMSConfiguration config = JMSConfigFactory.createFromEndpointInfo(bus, ei, target); + Assert.assertEquals("customJMSAttribute=helloWorld", config.getMessageSelector()); + } } http://git-wip-us.apache.org/repos/asf/cxf/blob/4c769260/rt/transports/jms/src/test/resources/jms_test.wsdl ---------------------------------------------------------------------- diff --git a/rt/transports/jms/src/test/resources/jms_test.wsdl b/rt/transports/jms/src/test/resources/jms_test.wsdl index 5c4d26f..2c05636 100644 --- a/rt/transports/jms/src/test/resources/jms_test.wsdl +++ b/rt/transports/jms/src/test/resources/jms_test.wsdl @@ -249,4 +249,9 @@ <soap:address location="jms:topic:test.jmstransport.oneway.topic" /> </port> </service> + <service name="HelloWorldSelectorService"> + <port binding="tns:HelloWorldPortBinding" name="HelloWorldPort"> + <soap:address location="jms:queue:test.jmstransport.text?username=testUser&password=testPassword&messageSelector=customJMSAttribute=helloWorld" /> + </port> + </service> </definitions>
