This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push: new c62b19b CAMEL-13864: Allow subscriptionName to be set for non-durable shared subscription c62b19b is described below commit c62b19bcda0e51e2817dfd06aa2d6b734d276cde Author: Benjamin Graf <benjamin.g...@gmx.net> AuthorDate: Tue Aug 13 21:23:42 2019 +0200 CAMEL-13864: Allow subscriptionName to be set for non-durable shared subscription --- .../apache/camel/component/jms/JmsEndpoint.java | 6 ++-- .../jms/JmsEndpointConfigurationTest.java | 38 ++++++++++++++++++++++ 2 files changed, 41 insertions(+), 3 deletions(-) diff --git a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java index 4d02c57..e6c6cf7 100644 --- a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java +++ b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java @@ -244,9 +244,9 @@ public class JmsEndpoint extends DefaultEndpoint implements AsyncEndpoint, Heade listenerContainer.setDurableSubscriptionName(configuration.getDurableSubscriptionName()); } else if (configuration.isSubscriptionDurable()) { listenerContainer.setSubscriptionDurable(true); - if (configuration.getSubscriptionName() != null) { - listenerContainer.setSubscriptionName(configuration.getSubscriptionName()); - } + } + if (configuration.getSubscriptionName() != null) { + listenerContainer.setSubscriptionName(configuration.getSubscriptionName()); } listenerContainer.setSubscriptionShared(configuration.isSubscriptionShared()); } diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsEndpointConfigurationTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsEndpointConfigurationTest.java index 695c736..7a49e7f 100644 --- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsEndpointConfigurationTest.java +++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsEndpointConfigurationTest.java @@ -70,6 +70,44 @@ public class JmsEndpointConfigurationTest extends CamelTestSupport { } @Test + public void testDurableSharedSubscriber() throws Exception { + JmsEndpoint endpoint = resolveMandatoryEndpoint("jms:topic:Foo.Bar?subscriptionDurable=true&subscriptionShared=true&subscriptionName=James", JmsEndpoint.class); + JmsConfiguration configuration = endpoint.getConfiguration(); + assertEquals("isSubscriptionDurable()", true, configuration.isSubscriptionDurable()); + assertEquals("isSubscriptionShared()", true, configuration.isSubscriptionShared()); + assertEquals("getSubscriptionName()", "James", configuration.getSubscriptionName()); + + JmsConsumer consumer = endpoint.createConsumer(new Processor() { + public void process(Exchange exchange) throws Exception { + log.info("Received: " + exchange); + } + }); + AbstractMessageListenerContainer listenerContainer = consumer.getListenerContainer(); + assertEquals("isSubscriptionDurable()", true, listenerContainer.isSubscriptionDurable()); + assertEquals("isSubscriptionShared()", true, listenerContainer.isSubscriptionShared()); + assertEquals("getSubscriptionName()", "James", listenerContainer.getSubscriptionName()); + } + + @Test + public void testNonDurableSharedSubscriber() throws Exception { + JmsEndpoint endpoint = resolveMandatoryEndpoint("jms:topic:Foo.Bar?subscriptionShared=true&subscriptionName=James", JmsEndpoint.class); + JmsConfiguration configuration = endpoint.getConfiguration(); + assertEquals("isSubscriptionDurable()", false, configuration.isSubscriptionDurable()); + assertEquals("isSubscriptionShared()", true, configuration.isSubscriptionShared()); + assertEquals("getSubscriptionName()", "James", configuration.getSubscriptionName()); + + JmsConsumer consumer = endpoint.createConsumer(new Processor() { + public void process(Exchange exchange) throws Exception { + log.info("Received: " + exchange); + } + }); + AbstractMessageListenerContainer listenerContainer = consumer.getListenerContainer(); + assertEquals("isSubscriptionDurable()", false, listenerContainer.isSubscriptionDurable()); + assertEquals("isSubscriptionShared()", true, listenerContainer.isSubscriptionShared()); + assertEquals("getSubscriptionName()", "James", listenerContainer.getSubscriptionName()); + } + + @Test public void testSetUsernameAndPassword() throws Exception { JmsEndpoint endpoint = resolveMandatoryEndpoint("jms:topic:Foo.Bar?username=James&password=ABC", JmsEndpoint.class); ConnectionFactory cf = endpoint.getConfiguration().getConnectionFactory();