diff --git a/spring-integration-jms/src/main/java/org/springframework/integration/jms/ChannelPublishingJmsMessageListener.java b/spring-integration-jms/src/main/java/org/springframework/integration/jms/ChannelPublishingJmsMessageListener.java
index 14da39e4eb..a4ab50a0cc 100644
--- a/spring-integration-jms/src/main/java/org/springframework/integration/jms/ChannelPublishingJmsMessageListener.java
+++ b/spring-integration-jms/src/main/java/org/springframework/integration/jms/ChannelPublishingJmsMessageListener.java
@@ -310,6 +310,14 @@ public class ChannelPublishingJmsMessageListener
this.gatewayDelegate.afterPropertiesSet();
}
+ protected void start(){
+ this.gatewayDelegate.start();
+ }
+
+ protected void stop(){
+ this.gatewayDelegate.stop();
+ }
+
private void copyCorrelationIdFromRequestToReply(javax.jms.Message requestMessage, javax.jms.Message replyMessage) throws JMSException {
if (this.correlationKey != null) {
if (this.correlationKey.equals("JMSCorrelationID")) {
diff --git a/spring-integration-jms/src/main/java/org/springframework/integration/jms/JmsMessageDrivenEndpoint.java b/spring-integration-jms/src/main/java/org/springframework/integration/jms/JmsMessageDrivenEndpoint.java
index 32e25e16d5..e8916d5eb7 100644
--- a/spring-integration-jms/src/main/java/org/springframework/integration/jms/JmsMessageDrivenEndpoint.java
+++ b/spring-integration-jms/src/main/java/org/springframework/integration/jms/JmsMessageDrivenEndpoint.java
@@ -63,13 +63,15 @@ public class JmsMessageDrivenEndpoint extends AbstractEndpoint implements Dispos
}
protected void doStart() {
+ this.listener.start();
if (!this.listenerContainer.isRunning()) {
- this.listenerContainer.start();
+ this.listenerContainer.start();
}
}
protected void doStop() {
this.listenerContainer.stop();
+ this.listener.stop();
}
public void destroy() throws Exception {
diff --git a/spring-integration-jms/src/test/java/org/springframework/integration/jms/config/JmsInboundGatewayParserTests.java b/spring-integration-jms/src/test/java/org/springframework/integration/jms/config/JmsInboundGatewayParserTests.java
index 46c31e4771..3957b7d7f7 100644
--- a/spring-integration-jms/src/test/java/org/springframework/integration/jms/config/JmsInboundGatewayParserTests.java
+++ b/spring-integration-jms/src/test/java/org/springframework/integration/jms/config/JmsInboundGatewayParserTests.java
@@ -23,6 +23,7 @@ import static org.junit.Assert.assertTrue;
import java.util.Properties;
+import javax.jms.ConnectionFactory;
import javax.jms.DeliveryMode;
import org.junit.Test;
@@ -35,6 +36,7 @@ import org.springframework.integration.history.MessageHistory;
import org.springframework.integration.jms.JmsMessageDrivenEndpoint;
import org.springframework.integration.test.util.TestUtils;
import org.springframework.jms.connection.JmsTransactionManager;
+import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.listener.AbstractMessageListenerContainer;
import org.springframework.jms.support.destination.JmsDestinationAccessor;
@@ -343,11 +345,15 @@ public class JmsInboundGatewayParserTests {
@Test
public void gatewayWithReplyChannel() {
+ ActiveMqTestUtils.prepare();
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
"jmsGatewayWithReplyChannel.xml", this.getClass());
JmsMessageDrivenEndpoint gateway = (JmsMessageDrivenEndpoint) context.getBean("gateway");
Object replyChannel = TestUtils.getPropertyValue(gateway, "listener.gatewayDelegate.replyChannel");
assertEquals(context.getBean("replies"), replyChannel);
+ JmsTemplate template = new JmsTemplate(context.getBean(ConnectionFactory.class));
+ template.convertAndSend("testDestination", "Hello");
+ assertNotNull(template.receive("testReplyDestination"));
}
}
diff --git a/spring-integration-jms/src/test/java/org/springframework/integration/jms/config/jmsGatewayWithReplyChannel.xml b/spring-integration-jms/src/test/java/org/springframework/integration/jms/config/jmsGatewayWithReplyChannel.xml
index 4b3a6a96a6..6c3883d220 100644
--- a/spring-integration-jms/src/test/java/org/springframework/integration/jms/config/jmsGatewayWithReplyChannel.xml
+++ b/spring-integration-jms/src/test/java/org/springframework/integration/jms/config/jmsGatewayWithReplyChannel.xml
@@ -10,25 +10,31 @@
http://www.springframework.org/schema/integration/jms
http://www.springframework.org/schema/integration/jms/spring-integration-jms.xsd">
-
-
-
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
+