Browse Source

Update WebFlux auto-configuration following recent API changes

pull/8781/merge
Andy Wilkinson 9 years ago
parent
commit
f52b0b975a
  1. 6
      spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/reactive/WebFluxAnnotationAutoConfiguration.java
  2. 16
      spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/reactive/WebFluxAnnotationAutoConfigurationTests.java

6
spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/reactive/WebFluxAnnotationAutoConfiguration.java

@ -62,6 +62,7 @@ import org.springframework.web.reactive.resource.GzipResourceResolver;
import org.springframework.web.reactive.resource.ResourceResolver; import org.springframework.web.reactive.resource.ResourceResolver;
import org.springframework.web.reactive.resource.VersionResourceResolver; import org.springframework.web.reactive.resource.VersionResourceResolver;
import org.springframework.web.reactive.result.method.HandlerMethodArgumentResolver; import org.springframework.web.reactive.result.method.HandlerMethodArgumentResolver;
import org.springframework.web.reactive.result.method.annotation.ArgumentResolverConfigurer;
import org.springframework.web.reactive.result.view.ViewResolver; import org.springframework.web.reactive.result.view.ViewResolver;
/** /**
@ -70,6 +71,7 @@ import org.springframework.web.reactive.result.view.ViewResolver;
* @author Brian Clozel * @author Brian Clozel
* @author Rob Winch * @author Rob Winch
* @author Stephane Nicoll * @author Stephane Nicoll
* @author Andy Wilkinson
* @since 2.0.0 * @since 2.0.0
*/ */
@Configuration @Configuration
@ -114,9 +116,9 @@ public class WebFluxAnnotationAutoConfiguration {
} }
@Override @Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) { public void configureArgumentResolvers(ArgumentResolverConfigurer configurer) {
if (this.argumentResolvers != null) { if (this.argumentResolvers != null) {
resolvers.addAll(this.argumentResolvers); this.argumentResolvers.stream().forEach(configurer::addCustomResolver);
} }
} }

16
spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/reactive/WebFluxAnnotationAutoConfigurationTests.java

@ -16,6 +16,7 @@
package org.springframework.boot.autoconfigure.web.reactive; package org.springframework.boot.autoconfigure.web.reactive;
import java.util.List;
import java.util.Optional; import java.util.Optional;
import javax.validation.ValidatorFactory; import javax.validation.ValidatorFactory;
@ -34,6 +35,7 @@ import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order; import org.springframework.core.annotation.Order;
import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.ClassPathResource;
import org.springframework.http.server.reactive.HttpHandler; import org.springframework.http.server.reactive.HttpHandler;
import org.springframework.test.util.ReflectionTestUtils;
import org.springframework.validation.Validator; import org.springframework.validation.Validator;
import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean; import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean;
import org.springframework.validation.beanvalidation.SpringValidatorAdapter; import org.springframework.validation.beanvalidation.SpringValidatorAdapter;
@ -59,6 +61,7 @@ import static org.mockito.Mockito.mock;
* Tests for {@link WebFluxAnnotationAutoConfiguration}. * Tests for {@link WebFluxAnnotationAutoConfiguration}.
* *
* @author Brian Clozel * @author Brian Clozel
* @author Andy Wilkinson
*/ */
public class WebFluxAnnotationAutoConfigurationTests { public class WebFluxAnnotationAutoConfigurationTests {
@ -86,16 +89,19 @@ public class WebFluxAnnotationAutoConfigurationTests {
.isNotNull(); .isNotNull();
} }
@SuppressWarnings("unchecked")
@Test @Test
public void shouldRegisterCustomHandlerMethodArgumentResolver() throws Exception { public void shouldRegisterCustomHandlerMethodArgumentResolver() throws Exception {
load(CustomArgumentResolvers.class); load(CustomArgumentResolvers.class);
RequestMappingHandlerAdapter adapter = this.context RequestMappingHandlerAdapter adapter = this.context
.getBean(RequestMappingHandlerAdapter.class); .getBean(RequestMappingHandlerAdapter.class);
assertThat(adapter.getCustomArgumentResolvers()).contains( assertThat((List<HandlerMethodArgumentResolver>) ReflectionTestUtils
this.context.getBean("firstResolver", .getField(adapter.getArgumentResolverConfigurer(), "customResolvers"))
HandlerMethodArgumentResolver.class), .contains(
this.context.getBean("secondResolver", this.context.getBean("firstResolver",
HandlerMethodArgumentResolver.class)); HandlerMethodArgumentResolver.class),
this.context.getBean("secondResolver",
HandlerMethodArgumentResolver.class));
} }
@Test @Test

Loading…
Cancel
Save