From de5cfce3d0b7594eaeba8e9e80a8ffb6fc3a1633 Mon Sep 17 00:00:00 2001 From: Georgios Andrianakis Date: Fri, 19 Feb 2021 13:59:21 +0200 Subject: [PATCH] Add the ability to configure vertx http client options in RESTEasy Reactive client --- .../resteasy/reactive/client/impl/ClientBuilderImpl.java | 9 ++++++++- .../jboss/resteasy/reactive/client/impl/ClientImpl.java | 4 ++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/independent-projects/resteasy-reactive/client/runtime/src/main/java/org/jboss/resteasy/reactive/client/impl/ClientBuilderImpl.java b/independent-projects/resteasy-reactive/client/runtime/src/main/java/org/jboss/resteasy/reactive/client/impl/ClientBuilderImpl.java index 6a5f9c347480c..fc03258db3373 100644 --- a/independent-projects/resteasy-reactive/client/runtime/src/main/java/org/jboss/resteasy/reactive/client/impl/ClientBuilderImpl.java +++ b/independent-projects/resteasy-reactive/client/runtime/src/main/java/org/jboss/resteasy/reactive/client/impl/ClientBuilderImpl.java @@ -1,5 +1,6 @@ package org.jboss.resteasy.reactive.client.impl; +import io.vertx.core.http.HttpClientOptions; import java.security.KeyStore; import java.util.Map; import java.util.concurrent.ExecutorService; @@ -22,6 +23,7 @@ public class ClientBuilderImpl extends ClientBuilder { private KeyStore keyStore; private char[] keystorePassword; private HostnameVerifier hostnameVerifier; + private HttpClientOptions httpClientOptions = new HttpClientOptions(); private static final ClientContextResolver CLIENT_CONTEXT_RESOLVER = ClientContextResolver.getInstance(); @Override @@ -74,9 +76,14 @@ public ClientBuilder readTimeout(long timeout, TimeUnit unit) { return this; } + public ClientBuilder httpClientOptions(HttpClientOptions httpClientOptions) { + this.httpClientOptions = httpClientOptions; + return this; + } + @Override public Client build() { - return new ClientImpl(configuration, + return new ClientImpl(httpClientOptions, configuration, CLIENT_CONTEXT_RESOLVER.resolve(Thread.currentThread().getContextClassLoader()), hostnameVerifier, sslContext); diff --git a/independent-projects/resteasy-reactive/client/runtime/src/main/java/org/jboss/resteasy/reactive/client/impl/ClientImpl.java b/independent-projects/resteasy-reactive/client/runtime/src/main/java/org/jboss/resteasy/reactive/client/impl/ClientImpl.java index 81bd5ca4d60da..1bb860c0bc9e8 100644 --- a/independent-projects/resteasy-reactive/client/runtime/src/main/java/org/jboss/resteasy/reactive/client/impl/ClientImpl.java +++ b/independent-projects/resteasy-reactive/client/runtime/src/main/java/org/jboss/resteasy/reactive/client/impl/ClientImpl.java @@ -76,7 +76,7 @@ public class ClientImpl implements Client { final ClientRestHandler[] abortHandlerChain; final Vertx vertx; - public ClientImpl(ConfigurationImpl configuration, ClientContext clientContext, + public ClientImpl(HttpClientOptions httpClientOptions, ConfigurationImpl configuration, ClientContext clientContext, HostnameVerifier hostnameVerifier, SSLContext sslContext) { this.configuration = configuration != null ? configuration : new ConfigurationImpl(RuntimeType.CLIENT); @@ -96,7 +96,7 @@ public Vertx get() { }); closeVertx = true; } - this.httpClient = this.vertx.createHttpClient(); + this.httpClient = this.vertx.createHttpClient(httpClientOptions); abortHandlerChain = new ClientRestHandler[] { new ClientErrorHandler() }; handlerChain = new ClientRestHandler[] { new ClientRequestFiltersRestHandler(), new ClientSendRequestHandler(), new ClientResponseRestHandler() };