diff --git a/applications/processor/http-request-processor/pom.xml b/applications/processor/http-request-processor/pom.xml index 21293938..fcd612ff 100644 --- a/applications/processor/http-request-processor/pom.xml +++ b/applications/processor/http-request-processor/pom.xml @@ -69,7 +69,6 @@ org.springframework.cloud.fn http-request-function - ${project.version} diff --git a/functions/function/http-request-function/src/main/java/org/springframework/cloud/fn/http/request/HttpRequestFunctionConfiguration.java b/functions/function/http-request-function/src/main/java/org/springframework/cloud/fn/http/request/HttpRequestFunctionConfiguration.java index 61f50a3d..a68a459b 100644 --- a/functions/function/http-request-function/src/main/java/org/springframework/cloud/fn/http/request/HttpRequestFunctionConfiguration.java +++ b/functions/function/http-request-function/src/main/java/org/springframework/cloud/fn/http/request/HttpRequestFunctionConfiguration.java @@ -47,8 +47,10 @@ public class HttpRequestFunctionConfiguration { @Bean @ConditionalOnMissingBean(WebClient.class) - public WebClient webClient() { + public WebClient webClient(HttpRequestFunctionProperties properties) { return WebClient.builder() + .codecs(clientCodecConfigurer -> + clientCodecConfigurer.defaultCodecs().maxInMemorySize(properties.getMaximumBufferSize())) .build(); } diff --git a/functions/function/http-request-function/src/main/java/org/springframework/cloud/fn/http/request/HttpRequestFunctionProperties.java b/functions/function/http-request-function/src/main/java/org/springframework/cloud/fn/http/request/HttpRequestFunctionProperties.java index f180279f..12dce44c 100644 --- a/functions/function/http-request-function/src/main/java/org/springframework/cloud/fn/http/request/HttpRequestFunctionProperties.java +++ b/functions/function/http-request-function/src/main/java/org/springframework/cloud/fn/http/request/HttpRequestFunctionProperties.java @@ -17,6 +17,7 @@ package org.springframework.cloud.fn.http.request; import javax.validation.constraints.NotNull; +import javax.validation.constraints.Positive; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.expression.Expression; @@ -51,6 +52,13 @@ public class HttpRequestFunctionProperties { */ private long timeout = 30_000; + /** + * Maximum buffer size in bytes allocated for input stream buffers. Defaults to 256k. + * Increase, as necessary, for posting or getting large binary content. + */ + + private int maximumBufferSize = 256 * 1024; + /** * A SpEL expression against incoming message to determine the URL to use. */ @@ -111,6 +119,15 @@ public class HttpRequestFunctionProperties { this.timeout = timeout; } + @Positive + public int getMaximumBufferSize() { + return maximumBufferSize; + } + + public void setMaximumBufferSize(int maximumBufferSize) { + this.maximumBufferSize = maximumBufferSize; + } + public Expression getBodyExpression() { return bodyExpression; }