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.
This commit is contained in:
Artem Bilan
2019-04-16 10:51:30 -04:00
parent f1537ed280
commit fad097210b

View File

@@ -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<MessageChannel> channelResolver) {
@Autowired(required = false) @Qualifier("binderAwareChannelResolver")
DestinationResolver<MessageChannel> channelResolver) {
return new org.springframework.cloud.stream.binding.BinderAwareRouterBeanPostProcessor(
routers, channelResolver);