Commit 571c50e4 authored by Phillip Webb's avatar Phillip Webb

Switch to functional web code to use static imports

Update the samples and tests to use the more idiomatic static import
style.
parent 8eba3750
...@@ -45,9 +45,7 @@ import org.springframework.test.context.junit4.SpringRunner; ...@@ -45,9 +45,7 @@ import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.test.web.reactive.server.WebTestClient;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.reactive.function.server.RequestPredicates;
import org.springframework.web.reactive.function.server.RouterFunction; import org.springframework.web.reactive.function.server.RouterFunction;
import org.springframework.web.reactive.function.server.RouterFunctions;
import org.springframework.web.reactive.function.server.ServerResponse; import org.springframework.web.reactive.function.server.ServerResponse;
import static org.springframework.restdocs.payload.PayloadDocumentation.beneathPath; import static org.springframework.restdocs.payload.PayloadDocumentation.beneathPath;
...@@ -55,6 +53,8 @@ import static org.springframework.restdocs.payload.PayloadDocumentation.fieldWit ...@@ -55,6 +53,8 @@ import static org.springframework.restdocs.payload.PayloadDocumentation.fieldWit
import static org.springframework.restdocs.payload.PayloadDocumentation.responseFields; import static org.springframework.restdocs.payload.PayloadDocumentation.responseFields;
import static org.springframework.restdocs.webtestclient.WebTestClientRestDocumentation.document; import static org.springframework.restdocs.webtestclient.WebTestClientRestDocumentation.document;
import static org.springframework.restdocs.webtestclient.WebTestClientRestDocumentation.documentationConfiguration; import static org.springframework.restdocs.webtestclient.WebTestClientRestDocumentation.documentationConfiguration;
import static org.springframework.web.reactive.function.server.RequestPredicates.GET;
import static org.springframework.web.reactive.function.server.RouterFunctions.route;
/** /**
* Tests for generating documentation describing {@link MappingsEndpoint}. * Tests for generating documentation describing {@link MappingsEndpoint}.
...@@ -191,8 +191,7 @@ public class MappingsEndpointReactiveDocumentationTests ...@@ -191,8 +191,7 @@ public class MappingsEndpointReactiveDocumentationTests
@Bean @Bean
public RouterFunction<ServerResponse> exampleRouter() { public RouterFunction<ServerResponse> exampleRouter() {
return RouterFunctions.route(RequestPredicates.GET("/foo"), return route(GET("/foo"), (request) -> ServerResponse.ok().build());
(request) -> ServerResponse.ok().build());
} }
@Bean @Bean
......
...@@ -36,13 +36,13 @@ import org.springframework.http.server.reactive.HttpHandler; ...@@ -36,13 +36,13 @@ import org.springframework.http.server.reactive.HttpHandler;
import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.test.web.reactive.server.WebTestClient;
import org.springframework.web.reactive.config.EnableWebFlux; import org.springframework.web.reactive.config.EnableWebFlux;
import org.springframework.web.reactive.function.server.HandlerFunction; import org.springframework.web.reactive.function.server.HandlerFunction;
import org.springframework.web.reactive.function.server.RequestPredicates;
import org.springframework.web.reactive.function.server.RouterFunction; import org.springframework.web.reactive.function.server.RouterFunction;
import org.springframework.web.reactive.function.server.RouterFunctions;
import org.springframework.web.reactive.function.server.ServerResponse; import org.springframework.web.reactive.function.server.ServerResponse;
import org.springframework.web.server.adapter.WebHttpHandlerBuilder; import org.springframework.web.server.adapter.WebHttpHandlerBuilder;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import static org.springframework.web.reactive.function.server.RequestPredicates.GET;
import static org.springframework.web.reactive.function.server.RouterFunctions.route;
/** /**
* Integration tests for {@link HttpTraceWebFilter}. * Integration tests for {@link HttpTraceWebFilter}.
...@@ -115,10 +115,9 @@ public class HttpTraceWebFilterIntegrationTests { ...@@ -115,10 +115,9 @@ public class HttpTraceWebFilterIntegrationTests {
@Bean @Bean
public RouterFunction<ServerResponse> router() { public RouterFunction<ServerResponse> router() {
return RouterFunctions return route(GET("/mono-error"),
.route(RequestPredicates.GET("/mono-error"), (request) -> Mono.error(new RuntimeException())).andRoute(
(request) -> Mono.error(new RuntimeException())) GET("/thrown"),
.andRoute(RequestPredicates.GET("/thrown"),
(HandlerFunction<ServerResponse>) (request) -> { (HandlerFunction<ServerResponse>) (request) -> {
throw new RuntimeException(); throw new RuntimeException();
}); });
......
...@@ -51,9 +51,7 @@ import org.springframework.web.context.ConfigurableWebApplicationContext; ...@@ -51,9 +51,7 @@ import org.springframework.web.context.ConfigurableWebApplicationContext;
import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.reactive.config.EnableWebFlux; import org.springframework.web.reactive.config.EnableWebFlux;
import org.springframework.web.reactive.function.server.RequestPredicates;
import org.springframework.web.reactive.function.server.RouterFunction; import org.springframework.web.reactive.function.server.RouterFunction;
import org.springframework.web.reactive.function.server.RouterFunctions;
import org.springframework.web.reactive.function.server.ServerResponse; import org.springframework.web.reactive.function.server.ServerResponse;
import org.springframework.web.servlet.DispatcherServlet; import org.springframework.web.servlet.DispatcherServlet;
import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.EnableWebMvc;
...@@ -61,6 +59,9 @@ import org.springframework.web.servlet.config.annotation.EnableWebMvc; ...@@ -61,6 +59,9 @@ import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.BDDMockito.given; import static org.mockito.BDDMockito.given;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.springframework.web.reactive.function.server.RequestPredicates.GET;
import static org.springframework.web.reactive.function.server.RequestPredicates.POST;
import static org.springframework.web.reactive.function.server.RouterFunctions.route;
/** /**
* Tests for {@link MappingsEndpoint}. * Tests for {@link MappingsEndpoint}.
...@@ -166,11 +167,8 @@ public class MappingsEndpointTests { ...@@ -166,11 +167,8 @@ public class MappingsEndpointTests {
@Bean @Bean
public RouterFunction<ServerResponse> routerFunction() { public RouterFunction<ServerResponse> routerFunction() {
return RouterFunctions return route(GET("/one"), (request) -> ServerResponse.ok().build())
.route(RequestPredicates.GET("/one"), .andRoute(POST("/two"), (request) -> ServerResponse.ok().build());
(request) -> ServerResponse.ok().build())
.andRoute(RequestPredicates.POST("/two"),
(request) -> ServerResponse.ok().build());
} }
@RequestMapping("/three") @RequestMapping("/three")
......
...@@ -35,13 +35,14 @@ import org.springframework.http.HttpStatus; ...@@ -35,13 +35,14 @@ import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.web.reactive.function.BodyInserters; import org.springframework.web.reactive.function.BodyInserters;
import org.springframework.web.reactive.function.server.RequestPredicate; import org.springframework.web.reactive.function.server.RequestPredicate;
import org.springframework.web.reactive.function.server.RequestPredicates;
import org.springframework.web.reactive.function.server.RouterFunction; import org.springframework.web.reactive.function.server.RouterFunction;
import org.springframework.web.reactive.function.server.RouterFunctions;
import org.springframework.web.reactive.function.server.ServerRequest; import org.springframework.web.reactive.function.server.ServerRequest;
import org.springframework.web.reactive.function.server.ServerResponse; import org.springframework.web.reactive.function.server.ServerResponse;
import org.springframework.web.server.ResponseStatusException; import org.springframework.web.server.ResponseStatusException;
import static org.springframework.web.reactive.function.server.RequestPredicates.all;
import static org.springframework.web.reactive.function.server.RouterFunctions.route;
/** /**
* Basic global {@link org.springframework.web.server.WebExceptionHandler}, rendering * Basic global {@link org.springframework.web.server.WebExceptionHandler}, rendering
* {@link ErrorAttributes}. * {@link ErrorAttributes}.
...@@ -106,8 +107,8 @@ public class DefaultErrorWebExceptionHandler extends AbstractErrorWebExceptionHa ...@@ -106,8 +107,8 @@ public class DefaultErrorWebExceptionHandler extends AbstractErrorWebExceptionHa
@Override @Override
protected RouterFunction<ServerResponse> getRoutingFunction( protected RouterFunction<ServerResponse> getRoutingFunction(
ErrorAttributes errorAttributes) { ErrorAttributes errorAttributes) {
return RouterFunctions.route(acceptsTextHtml(), this::renderErrorView) return route(acceptsTextHtml(), this::renderErrorView).andRoute(all(),
.andRoute(RequestPredicates.all(), this::renderErrorResponse); this::renderErrorResponse);
} }
/** /**
......
...@@ -23,12 +23,12 @@ import org.springframework.boot.test.context.runner.ReactiveWebApplicationContex ...@@ -23,12 +23,12 @@ import org.springframework.boot.test.context.runner.ReactiveWebApplicationContex
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.http.server.reactive.HttpHandler; import org.springframework.http.server.reactive.HttpHandler;
import org.springframework.web.reactive.function.server.RequestPredicates;
import org.springframework.web.reactive.function.server.RouterFunction; import org.springframework.web.reactive.function.server.RouterFunction;
import org.springframework.web.reactive.function.server.RouterFunctions;
import org.springframework.web.reactive.function.server.ServerResponse; import org.springframework.web.reactive.function.server.ServerResponse;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import static org.springframework.web.reactive.function.server.RequestPredicates.GET;
import static org.springframework.web.reactive.function.server.RouterFunctions.route;
/** /**
* Tests for {@link HttpHandlerAutoConfiguration}. * Tests for {@link HttpHandlerAutoConfiguration}.
...@@ -69,8 +69,7 @@ public class HttpHandlerAutoConfigurationTests { ...@@ -69,8 +69,7 @@ public class HttpHandlerAutoConfigurationTests {
@Bean @Bean
public RouterFunction<ServerResponse> routerFunction() { public RouterFunction<ServerResponse> routerFunction() {
return RouterFunctions.route(RequestPredicates.GET("/test"), return route(GET("/test"), (serverRequest) -> null);
(serverRequest) -> null);
} }
} }
......
...@@ -19,11 +19,12 @@ package sample.secure.webflux; ...@@ -19,11 +19,12 @@ package sample.secure.webflux;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.web.reactive.function.server.RequestPredicates;
import org.springframework.web.reactive.function.server.RouterFunction; import org.springframework.web.reactive.function.server.RouterFunction;
import org.springframework.web.reactive.function.server.RouterFunctions;
import org.springframework.web.reactive.function.server.ServerResponse; import org.springframework.web.reactive.function.server.ServerResponse;
import static org.springframework.web.reactive.function.server.RequestPredicates.POST;
import static org.springframework.web.reactive.function.server.RouterFunctions.route;
@SpringBootApplication @SpringBootApplication
public class SampleSecureWebFluxApplication { public class SampleSecureWebFluxApplication {
...@@ -33,7 +34,7 @@ public class SampleSecureWebFluxApplication { ...@@ -33,7 +34,7 @@ public class SampleSecureWebFluxApplication {
@Bean @Bean
public RouterFunction<ServerResponse> monoRouterFunction(EchoHandler echoHandler) { public RouterFunction<ServerResponse> monoRouterFunction(EchoHandler echoHandler) {
return RouterFunctions.route(RequestPredicates.POST("/echo"), echoHandler::echo); return route(POST("/echo"), echoHandler::echo);
} }
} }
...@@ -19,11 +19,12 @@ package sample.webflux; ...@@ -19,11 +19,12 @@ package sample.webflux;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.web.reactive.function.server.RequestPredicates;
import org.springframework.web.reactive.function.server.RouterFunction; import org.springframework.web.reactive.function.server.RouterFunction;
import org.springframework.web.reactive.function.server.RouterFunctions;
import org.springframework.web.reactive.function.server.ServerResponse; import org.springframework.web.reactive.function.server.ServerResponse;
import static org.springframework.web.reactive.function.server.RequestPredicates.POST;
import static org.springframework.web.reactive.function.server.RouterFunctions.route;
@SpringBootApplication @SpringBootApplication
public class SampleWebFluxApplication { public class SampleWebFluxApplication {
...@@ -33,7 +34,7 @@ public class SampleWebFluxApplication { ...@@ -33,7 +34,7 @@ public class SampleWebFluxApplication {
@Bean @Bean
public RouterFunction<ServerResponse> monoRouterFunction(EchoHandler echoHandler) { public RouterFunction<ServerResponse> monoRouterFunction(EchoHandler echoHandler) {
return RouterFunctions.route(RequestPredicates.POST("/echo"), echoHandler::echo); return route(POST("/echo"), echoHandler::echo);
} }
} }
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