From fad097210ba472f14a1d5d734dd94dad5e2c796b Mon Sep 17 00:00:00 2001 From: Artem Bilan Date: Tue, 16 Apr 2019 10:51:30 -0400 Subject: [PATCH] Fix BindingServiceConfiguration for SI-5.2 Starting with version 5.2 Spring Integration provides a global `DestinationResolver` bean for some runtime optimization using a single object. With that the `binderAwareRouterBeanPostProcessor` bean can't resolve a single `DestinationResolver` bean any more since there is now two instances of that. * Fix `BindingServiceConfiguration.binderAwareRouterBeanPostProcessor()` to use `@Qualifier("binderAwareChannelResolver")` for an explicit bean resolution for injection. --- .../cloud/stream/config/BindingServiceConfiguration.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/config/BindingServiceConfiguration.java b/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/config/BindingServiceConfiguration.java index 3f8398a49..b7796ac16 100644 --- a/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/config/BindingServiceConfiguration.java +++ b/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/config/BindingServiceConfiguration.java @@ -24,6 +24,7 @@ import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; @@ -246,7 +247,8 @@ public class BindingServiceConfiguration { @ConditionalOnMissingBean public org.springframework.cloud.stream.binding.BinderAwareRouterBeanPostProcessor binderAwareRouterBeanPostProcessor( @Autowired(required = false) AbstractMappingMessageRouter[] routers, - @Autowired(required = false) DestinationResolver channelResolver) { + @Autowired(required = false) @Qualifier("binderAwareChannelResolver") + DestinationResolver channelResolver) { return new org.springframework.cloud.stream.binding.BinderAwareRouterBeanPostProcessor( routers, channelResolver);