From 9dd2d45c7c466f89f59fcba02c488b98529c60b9 Mon Sep 17 00:00:00 2001 From: markfisher Date: Thu, 15 Dec 2016 15:21:31 -0500 Subject: [PATCH] StreamListener adapters should be inheritable --- .../StreamListenerAnnotationBeanPostProcessor.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/binding/StreamListenerAnnotationBeanPostProcessor.java b/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/binding/StreamListenerAnnotationBeanPostProcessor.java index c405b5c49..a25b57499 100644 --- a/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/binding/StreamListenerAnnotationBeanPostProcessor.java +++ b/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/binding/StreamListenerAnnotationBeanPostProcessor.java @@ -25,6 +25,7 @@ import java.util.Map; import org.springframework.aop.framework.Advised; import org.springframework.aop.support.AopUtils; import org.springframework.beans.BeansException; +import org.springframework.beans.factory.BeanFactoryUtils; import org.springframework.beans.factory.BeanInitializationException; import org.springframework.beans.factory.SmartInitializingSingleton; import org.springframework.beans.factory.config.BeanPostProcessor; @@ -82,13 +83,13 @@ public class StreamListenerAnnotationBeanPostProcessor @SuppressWarnings({ "rawtypes", "unchecked" }) public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this.applicationContext = (ConfigurableApplicationContext) applicationContext; - Map parameterAdapterMap = this.applicationContext - .getBeansOfType(StreamListenerParameterAdapter.class); + Map parameterAdapterMap = + BeanFactoryUtils.beansOfTypeIncludingAncestors(this.applicationContext, StreamListenerParameterAdapter.class); for (StreamListenerParameterAdapter parameterAdapter : parameterAdapterMap.values()) { this.streamListenerParameterAdapters.add(parameterAdapter); } - Map resultAdapterMap = this.applicationContext - .getBeansOfType(StreamListenerResultAdapter.class); + Map resultAdapterMap = + BeanFactoryUtils.beansOfTypeIncludingAncestors(this.applicationContext, StreamListenerResultAdapter.class); this.streamListenerResultAdapters.add(new MessageChannelStreamListenerResultAdapter()); for (StreamListenerResultAdapter resultAdapter : resultAdapterMap.values()) { this.streamListenerResultAdapters.add(resultAdapter);