From e7a767e04288ce6d952f13f43dc687f612bf0357 Mon Sep 17 00:00:00 2001 From: Spencer Gibb Date: Wed, 5 Aug 2015 10:39:08 -0600 Subject: [PATCH] Make RxJavaAutoConfiguration ConditionalOnClass AsyncHandlerMethodReturnValueHandler so non-web apps don't break fixes gh-475 --- .../netflix/rx/RxJavaAutoConfiguration.java | 31 +++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/rx/RxJavaAutoConfiguration.java b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/rx/RxJavaAutoConfiguration.java index 62be1dc5..31079f7c 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/rx/RxJavaAutoConfiguration.java +++ b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/rx/RxJavaAutoConfiguration.java @@ -22,6 +22,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.web.method.support.AsyncHandlerMethodReturnValueHandler; import org.springframework.web.method.support.HandlerMethodReturnValueHandler; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; @@ -31,22 +32,26 @@ import rx.Observable; * @author Spencer Gibb */ @Configuration +@ConditionalOnWebApplication @ConditionalOnClass(Observable.class) public class RxJavaAutoConfiguration { - @Bean - public ObservableReturnValueHandler observableReturnValueHandler() { - return new ObservableReturnValueHandler(); - } + @Configuration + @ConditionalOnClass(AsyncHandlerMethodReturnValueHandler.class) + protected static class ObservableReturnValueHandlerConfig { + @Bean + public ObservableReturnValueHandler observableReturnValueHandler() { + return new ObservableReturnValueHandler(); + } - @Bean - @ConditionalOnWebApplication - public WebMvcConfigurerAdapter observableMVCConfiguration() { - return new WebMvcConfigurerAdapter() { - @Override - public void addReturnValueHandlers(List returnValueHandlers) { - returnValueHandlers.add(observableReturnValueHandler()); - } - }; + @Bean + public WebMvcConfigurerAdapter observableMVCConfiguration() { + return new WebMvcConfigurerAdapter() { + @Override + public void addReturnValueHandlers(List returnValueHandlers) { + returnValueHandlers.add(observableReturnValueHandler()); + } + }; + } } }