Commit 659b459f authored by Andy Wilkinson's avatar Andy Wilkinson

Make the auto-configured LocaleContextResolver conditional on missing bean

Closes gh-23419
parent 20193715
......@@ -69,6 +69,7 @@ import org.springframework.web.reactive.result.method.annotation.ArgumentResolve
import org.springframework.web.reactive.result.method.annotation.RequestMappingHandlerAdapter;
import org.springframework.web.reactive.result.method.annotation.RequestMappingHandlerMapping;
import org.springframework.web.reactive.result.view.ViewResolver;
import org.springframework.web.server.i18n.LocaleContextResolver;
/**
* {@link EnableAutoConfiguration Auto-configuration} for {@link EnableWebFlux WebFlux}.
......@@ -264,6 +265,13 @@ public class WebFluxAutoConfiguration {
return super.createRequestMappingHandlerMapping();
}
@Bean
@Override
@ConditionalOnMissingBean
public LocaleContextResolver localeContextResolver() {
return super.localeContextResolver();
}
}
@Configuration(proxyBeanMethods = false)
......
......@@ -73,6 +73,8 @@ import org.springframework.web.reactive.result.method.annotation.RequestMappingH
import org.springframework.web.reactive.result.method.annotation.RequestMappingHandlerMapping;
import org.springframework.web.reactive.result.view.ViewResolutionResultHandler;
import org.springframework.web.reactive.result.view.ViewResolver;
import org.springframework.web.server.i18n.AcceptHeaderLocaleContextResolver;
import org.springframework.web.server.i18n.LocaleContextResolver;
import org.springframework.web.util.pattern.PathPattern;
import static org.assertj.core.api.Assertions.assertThat;
......@@ -452,6 +454,13 @@ class WebFluxAutoConfigurationTests {
});
}
@Test
void customLocaleContextResolver() {
this.contextRunner.withUserConfiguration(LocaleContextResolverConfiguration.class)
.run((context) -> assertThat(context).hasSingleBean(LocaleContextResolver.class)
.hasBean("customLocaleContextResolver"));
}
private Map<PathPattern, Object> getHandlerMap(ApplicationContext context) {
HandlerMapping mapping = context.getBean("resourceHandlerMapping", HandlerMapping.class);
if (mapping instanceof SimpleUrlHandlerMapping) {
......@@ -676,4 +685,14 @@ class WebFluxAutoConfigurationTests {
}
@Configuration(proxyBeanMethods = false)
static class LocaleContextResolverConfiguration {
@Bean
LocaleContextResolver customLocaleContextResolver() {
return new AcceptHeaderLocaleContextResolver();
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment