From 44717af0e593dac03a6bbdaa8d904935560ce85d Mon Sep 17 00:00:00 2001 From: Rossen Stoyanchev Date: Fri, 14 Oct 2016 18:02:00 -0400 Subject: [PATCH] Update order of method in WebReactiveConfigurer --- .../config/WebReactiveConfigurer.java | 50 ++++++++++--------- .../WebReactiveConfigurerComposite.java | 40 +++++++-------- 2 files changed, 46 insertions(+), 44 deletions(-) diff --git a/spring-web-reactive/src/main/java/org/springframework/web/reactive/config/WebReactiveConfigurer.java b/spring-web-reactive/src/main/java/org/springframework/web/reactive/config/WebReactiveConfigurer.java index 645e6d0bb30..fd203c04fc5 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/reactive/config/WebReactiveConfigurer.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/reactive/config/WebReactiveConfigurer.java @@ -31,15 +31,6 @@ import org.springframework.web.reactive.result.method.annotation.RequestMappingH */ public interface WebReactiveConfigurer { - /** - * Provide a custom sub-class of {@link RequestMappingHandlerMapping} - * instead of the one created by default. - * The default implementation returns {@code Optional.empty()}. - */ - default Optional createRequestMappingHandlerMapping() { - return Optional.empty(); - } - /** * Configure how the requested content type is resolved. *

The given builder will create a composite of multiple @@ -73,15 +64,6 @@ public interface WebReactiveConfigurer { default void addResourceHandlers(ResourceHandlerRegistry registry) { } - /** - * Provide a custom sub-class of {@link RequestMappingHandlerAdapter} - * instead of the one created by default. - * The default implementation returns {@code Optional.empty()}. - */ - default Optional createRequestMappingHandlerAdapter() { - return Optional.empty(); - } - /** * Provide custom argument resolvers without overriding the built-in ones. * @param resolvers a list of resolvers to add to the built-in ones @@ -93,16 +75,16 @@ public interface WebReactiveConfigurer { * Configure the message readers to use for decoding controller method arguments. *

If no message readers are specified, default readers will be added via * {@link WebReactiveConfigurationSupport#addDefaultHttpMessageReaders}. - * @param messageReaders a list to add message readers to, initially an empty list + * @param readers a list to add message readers to, initially an empty list */ - default void configureMessageReaders(List> messageReaders) { + default void configureMessageReaders(List> readers) { } /** * Modify the list of message readers to use for decoding controller method arguments, * for example to add some in addition to the ones already configured. */ - default void extendMessageReaders(List> messageReaders) { + default void extendMessageReaders(List> readers) { } /** @@ -134,16 +116,16 @@ public interface WebReactiveConfigurer { * Configure the message writers to use for encoding return values. *

If no message writers are specified, default writers will be added via * {@link WebReactiveConfigurationSupport#addDefaultHttpMessageWriters(List)}. - * @param messageWriters a list to add message writers to, initially an empty list + * @param writers a list to add message writers to, initially an empty list */ - default void configureMessageWriters(List> messageWriters) { + default void configureMessageWriters(List> writers) { } /** * Modify the list of message writers to use for encoding return values, * for example to add some in addition to the ones already configured. */ - default void extendMessageWriters(List> messageWriters) { + default void extendMessageWriters(List> writers) { } /** @@ -153,4 +135,24 @@ public interface WebReactiveConfigurer { default void configureViewResolvers(ViewResolverRegistry registry) { } + /** + * Factory method for the {@link RequestMappingHandlerMapping} bean creating + * an instance or a custom extension of it. Note that only one configurer + * is allowed to implement this method. + * The default implementation returns {@code Optional.empty()}. + */ + default Optional createRequestMappingHandlerMapping() { + return Optional.empty(); + } + + /** + * Factory method for the {@link RequestMappingHandlerAdapter} bean creating + * an instance or a custom extension of it. Note that only one configurer + * is allowed to implement this method. + * The default implementation returns {@code Optional.empty()}. + */ + default Optional createRequestMappingHandlerAdapter() { + return Optional.empty(); + } + } diff --git a/spring-web-reactive/src/main/java/org/springframework/web/reactive/config/WebReactiveConfigurerComposite.java b/spring-web-reactive/src/main/java/org/springframework/web/reactive/config/WebReactiveConfigurerComposite.java index ec83ac67781..00fce5558d8 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/reactive/config/WebReactiveConfigurerComposite.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/reactive/config/WebReactiveConfigurerComposite.java @@ -36,12 +36,6 @@ public class WebReactiveConfigurerComposite implements WebReactiveConfigurer { } - @Override - public Optional createRequestMappingHandlerMapping() { - return createSingleBean(WebReactiveConfigurer::createRequestMappingHandlerMapping, - RequestMappingHandlerMapping.class); - } - @Override public void configureRequestedContentTypeResolver(RequestedContentTypeResolverBuilder builder) { this.delegates.stream().forEach(delegate -> delegate.configureRequestedContentTypeResolver(builder)); @@ -62,25 +56,19 @@ public class WebReactiveConfigurerComposite implements WebReactiveConfigurer { this.delegates.stream().forEach(delegate -> delegate.addResourceHandlers(registry)); } - @Override - public Optional createRequestMappingHandlerAdapter() { - return createSingleBean(WebReactiveConfigurer::createRequestMappingHandlerAdapter, - RequestMappingHandlerAdapter.class); - } - @Override public void addArgumentResolvers(List resolvers) { this.delegates.stream().forEach(delegate -> delegate.addArgumentResolvers(resolvers)); } @Override - public void configureMessageReaders(List> messageReaders) { - this.delegates.stream().forEach(delegate -> delegate.configureMessageReaders(messageReaders)); + public void configureMessageReaders(List> readers) { + this.delegates.stream().forEach(delegate -> delegate.configureMessageReaders(readers)); } @Override - public void extendMessageReaders(List> messageReaders) { - this.delegates.stream().forEach(delegate -> delegate.extendMessageReaders(messageReaders)); + public void extendMessageReaders(List> readers) { + this.delegates.stream().forEach(delegate -> delegate.extendMessageReaders(readers)); } @Override @@ -99,13 +87,13 @@ public class WebReactiveConfigurerComposite implements WebReactiveConfigurer { } @Override - public void configureMessageWriters(List> messageWriters) { - this.delegates.stream().forEach(delegate -> delegate.configureMessageWriters(messageWriters)); + public void configureMessageWriters(List> writers) { + this.delegates.stream().forEach(delegate -> delegate.configureMessageWriters(writers)); } @Override - public void extendMessageWriters(List> messageWriters) { - this.delegates.stream().forEach(delegate -> delegate.extendMessageWriters(messageWriters)); + public void extendMessageWriters(List> writers) { + this.delegates.stream().forEach(delegate -> delegate.extendMessageWriters(writers)); } @Override @@ -113,6 +101,18 @@ public class WebReactiveConfigurerComposite implements WebReactiveConfigurer { this.delegates.stream().forEach(delegate -> delegate.configureViewResolvers(registry)); } + @Override + public Optional createRequestMappingHandlerMapping() { + return createSingleBean(WebReactiveConfigurer::createRequestMappingHandlerMapping, + RequestMappingHandlerMapping.class); + } + + @Override + public Optional createRequestMappingHandlerAdapter() { + return createSingleBean(WebReactiveConfigurer::createRequestMappingHandlerAdapter, + RequestMappingHandlerAdapter.class); + } + private Optional createSingleBean(Function> factory, Class beanType) {