From 80294c4acc3d48c2c890cd3a048b422c44901f8d Mon Sep 17 00:00:00 2001 From: Marius Bogoevici Date: Thu, 20 Apr 2017 14:07:38 -0400 Subject: [PATCH] Do not create create a new `ConnectionFactory` if one already exists in parent Fix #63 Make sure that the creation of a new `ConnectionFactory` when cloud connectors are used is done only when the binder context is not a child of the main context, otherwise inherit the connection factory as in normal case. This ensures that its lifecycle is in sync with the parent. --- .../binder/rabbit/config/RabbitServiceAutoConfiguration.java | 1 + 1 file changed, 1 insertion(+) diff --git a/spring-cloud-stream-binder-rabbit/src/main/java/org/springframework/cloud/stream/binder/rabbit/config/RabbitServiceAutoConfiguration.java b/spring-cloud-stream-binder-rabbit/src/main/java/org/springframework/cloud/stream/binder/rabbit/config/RabbitServiceAutoConfiguration.java index 603db7608..16e67cf8e 100644 --- a/spring-cloud-stream-binder-rabbit/src/main/java/org/springframework/cloud/stream/binder/rabbit/config/RabbitServiceAutoConfiguration.java +++ b/spring-cloud-stream-binder-rabbit/src/main/java/org/springframework/cloud/stream/binder/rabbit/config/RabbitServiceAutoConfiguration.java @@ -91,6 +91,7 @@ public class RabbitServiceAutoConfiguration { * @return the {@link ConnectionFactory} used by the binder. */ @Bean + @ConditionalOnMissingBean(ConnectionFactory.class) ConnectionFactory rabbitConnectionFactory(Cloud cloud) { return cloud.getSingletonServiceConnector(ConnectionFactory.class, null); }