From c36e4a913c6d9099bf640598991eb12ec2437260 Mon Sep 17 00:00:00 2001 From: Alexander Tsvetkov Date: Fri, 6 Dec 2019 15:38:31 +0200 Subject: [PATCH] Better customization options for the underlying HTTP client --- .../reactor/_DefaultConnectionContext.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/cloudfoundry-client-reactor/src/main/java/org/cloudfoundry/reactor/_DefaultConnectionContext.java b/cloudfoundry-client-reactor/src/main/java/org/cloudfoundry/reactor/_DefaultConnectionContext.java index 08ddee0561b..5f6e14fe4b0 100644 --- a/cloudfoundry-client-reactor/src/main/java/org/cloudfoundry/reactor/_DefaultConnectionContext.java +++ b/cloudfoundry-client-reactor/src/main/java/org/cloudfoundry/reactor/_DefaultConnectionContext.java @@ -49,6 +49,7 @@ import java.time.Duration; import java.util.List; import java.util.Optional; +import java.util.function.UnaryOperator; import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL; import static io.netty.channel.ChannelOption.CONNECT_TIMEOUT_MILLIS; @@ -102,9 +103,11 @@ public Integer getConnectionPoolSize() { @Override @Value.Default public HttpClient getHttpClient() { - return createHttpClient().compress(true) + HttpClient client = createHttpClient().compress(true) .tcpConfiguration(this::configureTcpClient) .secure(this::configureSsl); + return getAdditionalHttpClientConfiguration().map(configuration -> configuration.apply(client)) + .orElse(client); } @Override @@ -225,6 +228,11 @@ Optional getSslCertificateTruster() { * The timeout for the SSL handshake negotiation */ abstract Optional getSslHandshakeTimeout(); + + /** + * Additional configuration to the underlying HttpClient + */ + abstract Optional> getAdditionalHttpClientConfiguration(); @Value.Derived LoopResources getThreadPool() {