diff --git a/spring-integration-jms/src/main/java/org/springframework/integration/jms/config/JmsChannelFactoryBean.java b/spring-integration-jms/src/main/java/org/springframework/integration/jms/config/JmsChannelFactoryBean.java index 6754af7e4e..ddf9642473 100644 --- a/spring-integration-jms/src/main/java/org/springframework/integration/jms/config/JmsChannelFactoryBean.java +++ b/spring-integration-jms/src/main/java/org/springframework/integration/jms/config/JmsChannelFactoryBean.java @@ -125,6 +125,10 @@ public class JmsChannelFactoryBean extends AbstractFactoryBean + + + + Specifies whether this channel should be Message-Driven. The value is "true" by default. + Set to "false" if this channel should be pollable. + + + @@ -125,14 +133,6 @@ ID for this channel. Required. - - - - - Specifies whether this channel should be Message-Driven. The value is "true" by default. - Set to "false" if this channel should be pollable. - - diff --git a/spring-integration-jms/src/test/java/org/springframework/integration/jms/config/JmsChannelParserTests-context.xml b/spring-integration-jms/src/test/java/org/springframework/integration/jms/config/JmsChannelParserTests-context.xml index d6671ef9c5..d69b1047dd 100644 --- a/spring-integration-jms/src/test/java/org/springframework/integration/jms/config/JmsChannelParserTests-context.xml +++ b/spring-integration-jms/src/test/java/org/springframework/integration/jms/config/JmsChannelParserTests-context.xml @@ -36,6 +36,10 @@ + + + + diff --git a/spring-integration-jms/src/test/java/org/springframework/integration/jms/config/JmsChannelParserTests.java b/spring-integration-jms/src/test/java/org/springframework/integration/jms/config/JmsChannelParserTests.java index 936c0a8fab..f18f4645c1 100644 --- a/spring-integration-jms/src/test/java/org/springframework/integration/jms/config/JmsChannelParserTests.java +++ b/spring-integration-jms/src/test/java/org/springframework/integration/jms/config/JmsChannelParserTests.java @@ -36,6 +36,7 @@ import org.springframework.context.support.AbstractApplicationContext; import org.springframework.integration.MessageChannel; import org.springframework.integration.channel.ChannelInterceptor; import org.springframework.integration.channel.interceptor.ChannelInterceptorAdapter; +import org.springframework.integration.jms.PollableJmsChannel; import org.springframework.integration.jms.SubscribableJmsChannel; import org.springframework.jms.core.JmsTemplate; import org.springframework.jms.listener.AbstractMessageListenerContainer; @@ -81,6 +82,12 @@ public class JmsChannelParserTests { @Autowired private MessageChannel topicChannelWithInterceptors; + @Autowired + private MessageChannel pollableQueueReferenceChannel; + + @Autowired + private MessageChannel pollableQueueNameChannel; + @Autowired private Topic topic; @@ -194,6 +201,24 @@ public class JmsChannelParserTests { assertEquals(TestInterceptor.class, interceptors.get(1).getClass()); } + @Test + public void queueReferencePollableChannel() { + assertEquals(PollableJmsChannel.class, pollableQueueReferenceChannel.getClass()); + PollableJmsChannel channel = (PollableJmsChannel) pollableQueueReferenceChannel; + DirectFieldAccessor accessor = new DirectFieldAccessor(channel); + JmsTemplate jmsTemplate = (JmsTemplate) accessor.getPropertyValue("jmsTemplate"); + assertEquals(queue, jmsTemplate.getDefaultDestination()); + } + + @Test + public void queueNamePollableChannel() { + assertEquals(PollableJmsChannel.class, pollableQueueNameChannel.getClass()); + PollableJmsChannel channel = (PollableJmsChannel) pollableQueueNameChannel; + DirectFieldAccessor accessor = new DirectFieldAccessor(channel); + JmsTemplate jmsTemplate = (JmsTemplate) accessor.getPropertyValue("jmsTemplate"); + assertEquals("foo", jmsTemplate.getDefaultDestinationName()); + } + static class TestDestinationResolver implements DestinationResolver {