From 9b24d23df8f5539e5af91fd282bd7cfe329bbc06 Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Mon, 13 Mar 2017 13:43:26 +0000 Subject: [PATCH] Add configurable base path for web resources --- .../cloud/function/web/FunctionController.java | 2 ++ .../cloud/function/web/flux/FluxResponseBodyEmitter.java | 2 +- .../additional-spring-configuration-metadata.json | 9 +++++++++ 3 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 spring-cloud-function-web/src/main/resources/META-INF/additional-spring-configuration-metadata.json diff --git a/spring-cloud-function-web/src/main/java/org/springframework/cloud/function/web/FunctionController.java b/spring-cloud-function-web/src/main/java/org/springframework/cloud/function/web/FunctionController.java index 2a18c2d0d..c702bbe81 100644 --- a/spring-cloud-function-web/src/main/java/org/springframework/cloud/function/web/FunctionController.java +++ b/spring-cloud-function-web/src/main/java/org/springframework/cloud/function/web/FunctionController.java @@ -30,6 +30,7 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import reactor.core.publisher.Flux; @@ -40,6 +41,7 @@ import reactor.core.publisher.Flux; */ @RestController @ConditionalOnClass(RestController.class) +@RequestMapping("${spring.cloud.function.web.path:}") public class FunctionController { @Value("${debug:${DEBUG:false}}") diff --git a/spring-cloud-function-web/src/main/java/org/springframework/cloud/function/web/flux/FluxResponseBodyEmitter.java b/spring-cloud-function-web/src/main/java/org/springframework/cloud/function/web/flux/FluxResponseBodyEmitter.java index febe56dcd..edca9879b 100644 --- a/spring-cloud-function-web/src/main/java/org/springframework/cloud/function/web/flux/FluxResponseBodyEmitter.java +++ b/spring-cloud-function-web/src/main/java/org/springframework/cloud/function/web/flux/FluxResponseBodyEmitter.java @@ -35,7 +35,7 @@ class FluxResponseBodyEmitter extends ResponseBodyEmitter { private final MediaType mediaType; public FluxResponseBodyEmitter(Flux observable) { - this(null, null, observable); + this(1000L, null, observable); } public FluxResponseBodyEmitter(Long timeout, MediaType mediaType, diff --git a/spring-cloud-function-web/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/spring-cloud-function-web/src/main/resources/META-INF/additional-spring-configuration-metadata.json new file mode 100644 index 000000000..5c6dc17e8 --- /dev/null +++ b/spring-cloud-function-web/src/main/resources/META-INF/additional-spring-configuration-metadata.json @@ -0,0 +1,9 @@ +{"properties": [ + { + "name": "spring.cloud.function.web.path", + "type": "java.lang.String", + "description": "Path to web resources for functions (should start with / if not empty).", + "defaultValue": "" + }] +} +