Browse Source

Update order of method in WebReactiveConfigurer

pull/1193/merge
Rossen Stoyanchev 9 years ago
parent
commit
44717af0e5
  1. 50
      spring-web-reactive/src/main/java/org/springframework/web/reactive/config/WebReactiveConfigurer.java
  2. 40
      spring-web-reactive/src/main/java/org/springframework/web/reactive/config/WebReactiveConfigurerComposite.java

50
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 @@ -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<RequestMappingHandlerMapping> createRequestMappingHandlerMapping() {
return Optional.empty();
}
/**
* Configure how the requested content type is resolved.
* <p>The given builder will create a composite of multiple
@ -73,15 +64,6 @@ public interface WebReactiveConfigurer { @@ -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<RequestMappingHandlerAdapter> 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 { @@ -93,16 +75,16 @@ public interface WebReactiveConfigurer {
* Configure the message readers to use for decoding controller method arguments.
* <p>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<HttpMessageReader<?>> messageReaders) {
default void configureMessageReaders(List<HttpMessageReader<?>> 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<HttpMessageReader<?>> messageReaders) {
default void extendMessageReaders(List<HttpMessageReader<?>> readers) {
}
/**
@ -134,16 +116,16 @@ public interface WebReactiveConfigurer { @@ -134,16 +116,16 @@ public interface WebReactiveConfigurer {
* Configure the message writers to use for encoding return values.
* <p>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<HttpMessageWriter<?>> messageWriters) {
default void configureMessageWriters(List<HttpMessageWriter<?>> 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<HttpMessageWriter<?>> messageWriters) {
default void extendMessageWriters(List<HttpMessageWriter<?>> writers) {
}
/**
@ -153,4 +135,24 @@ public interface WebReactiveConfigurer { @@ -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<RequestMappingHandlerMapping> 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<RequestMappingHandlerAdapter> createRequestMappingHandlerAdapter() {
return Optional.empty();
}
}

40
spring-web-reactive/src/main/java/org/springframework/web/reactive/config/WebReactiveConfigurerComposite.java

@ -36,12 +36,6 @@ public class WebReactiveConfigurerComposite implements WebReactiveConfigurer { @@ -36,12 +36,6 @@ public class WebReactiveConfigurerComposite implements WebReactiveConfigurer {
}
@Override
public Optional<RequestMappingHandlerMapping> 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 { @@ -62,25 +56,19 @@ public class WebReactiveConfigurerComposite implements WebReactiveConfigurer {
this.delegates.stream().forEach(delegate -> delegate.addResourceHandlers(registry));
}
@Override
public Optional<RequestMappingHandlerAdapter> createRequestMappingHandlerAdapter() {
return createSingleBean(WebReactiveConfigurer::createRequestMappingHandlerAdapter,
RequestMappingHandlerAdapter.class);
}
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) {
this.delegates.stream().forEach(delegate -> delegate.addArgumentResolvers(resolvers));
}
@Override
public void configureMessageReaders(List<HttpMessageReader<?>> messageReaders) {
this.delegates.stream().forEach(delegate -> delegate.configureMessageReaders(messageReaders));
public void configureMessageReaders(List<HttpMessageReader<?>> readers) {
this.delegates.stream().forEach(delegate -> delegate.configureMessageReaders(readers));
}
@Override
public void extendMessageReaders(List<HttpMessageReader<?>> messageReaders) {
this.delegates.stream().forEach(delegate -> delegate.extendMessageReaders(messageReaders));
public void extendMessageReaders(List<HttpMessageReader<?>> readers) {
this.delegates.stream().forEach(delegate -> delegate.extendMessageReaders(readers));
}
@Override
@ -99,13 +87,13 @@ public class WebReactiveConfigurerComposite implements WebReactiveConfigurer { @@ -99,13 +87,13 @@ public class WebReactiveConfigurerComposite implements WebReactiveConfigurer {
}
@Override
public void configureMessageWriters(List<HttpMessageWriter<?>> messageWriters) {
this.delegates.stream().forEach(delegate -> delegate.configureMessageWriters(messageWriters));
public void configureMessageWriters(List<HttpMessageWriter<?>> writers) {
this.delegates.stream().forEach(delegate -> delegate.configureMessageWriters(writers));
}
@Override
public void extendMessageWriters(List<HttpMessageWriter<?>> messageWriters) {
this.delegates.stream().forEach(delegate -> delegate.extendMessageWriters(messageWriters));
public void extendMessageWriters(List<HttpMessageWriter<?>> writers) {
this.delegates.stream().forEach(delegate -> delegate.extendMessageWriters(writers));
}
@Override
@ -113,6 +101,18 @@ public class WebReactiveConfigurerComposite implements WebReactiveConfigurer { @@ -113,6 +101,18 @@ public class WebReactiveConfigurerComposite implements WebReactiveConfigurer {
this.delegates.stream().forEach(delegate -> delegate.configureViewResolvers(registry));
}
@Override
public Optional<RequestMappingHandlerMapping> createRequestMappingHandlerMapping() {
return createSingleBean(WebReactiveConfigurer::createRequestMappingHandlerMapping,
RequestMappingHandlerMapping.class);
}
@Override
public Optional<RequestMappingHandlerAdapter> createRequestMappingHandlerAdapter() {
return createSingleBean(WebReactiveConfigurer::createRequestMappingHandlerAdapter,
RequestMappingHandlerAdapter.class);
}
private <T> Optional<T> createSingleBean(Function<WebReactiveConfigurer, Optional<T>> factory,
Class<T> beanType) {

Loading…
Cancel
Save