diff --git a/spring-integration-amqp/src/main/java/org/springframework/integration/amqp/outbound/AmqpOutboundEndpoint.java b/spring-integration-amqp/src/main/java/org/springframework/integration/amqp/outbound/AmqpOutboundEndpoint.java index fdd36b0f25..94e9f69264 100644 --- a/spring-integration-amqp/src/main/java/org/springframework/integration/amqp/outbound/AmqpOutboundEndpoint.java +++ b/spring-integration-amqp/src/main/java/org/springframework/integration/amqp/outbound/AmqpOutboundEndpoint.java @@ -30,6 +30,7 @@ import org.springframework.amqp.support.AmqpHeaders; import org.springframework.amqp.support.converter.MessageConverter; import org.springframework.beans.factory.BeanFactory; import org.springframework.context.ApplicationListener; +import org.springframework.context.Lifecycle; import org.springframework.context.event.ContextRefreshedEvent; import org.springframework.expression.Expression; import org.springframework.expression.ExpressionParser; @@ -56,7 +57,8 @@ import org.springframework.util.StringUtils; * @since 2.1 */ public class AmqpOutboundEndpoint extends AbstractReplyProducingMessageHandler - implements RabbitTemplate.ConfirmCallback, ReturnCallback, ApplicationListener { + implements RabbitTemplate.ConfirmCallback, ReturnCallback, + ApplicationListener, Lifecycle { private static final ExpressionParser expressionParser = new SpelExpressionParser(new SpelParserConfiguration(true, true)); @@ -274,6 +276,22 @@ public class AmqpOutboundEndpoint extends AbstractReplyProducingMessageHandler } } + @Override + public void start() { + } + + @Override + public void stop() { + if (this.amqpTemplate instanceof Lifecycle) { + ((Lifecycle) this.amqpTemplate).stop(); + } + } + + @Override + public boolean isRunning() { + return !(this.amqpTemplate instanceof Lifecycle) || ((Lifecycle) this.amqpTemplate).isRunning(); + } + @Override protected Object handleRequestMessage(Message requestMessage) { String exchangeName = this.exchangeName;