From d0abd6ebd93de03cc46f790f556494cdb76dba80 Mon Sep 17 00:00:00 2001 From: Steve Hawkins Date: Mon, 17 Oct 2022 09:47:00 -0400 Subject: [PATCH] fix #4471: still need to apply config even with default factory --- .../fabric8/kubernetes/client/KubernetesClientBuilder.java | 3 ++- .../fabric8/kubernetes/client/utils/HttpClientUtils.java | 7 ++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/kubernetes-client-api/src/main/java/io/fabric8/kubernetes/client/KubernetesClientBuilder.java b/kubernetes-client-api/src/main/java/io/fabric8/kubernetes/client/KubernetesClientBuilder.java index 636e410a898..d0c952a9934 100644 --- a/kubernetes-client-api/src/main/java/io/fabric8/kubernetes/client/KubernetesClientBuilder.java +++ b/kubernetes-client-api/src/main/java/io/fabric8/kubernetes/client/KubernetesClientBuilder.java @@ -18,6 +18,7 @@ import io.fabric8.kubernetes.client.http.HttpClient; import io.fabric8.kubernetes.client.informers.ResourceEventHandler; +import io.fabric8.kubernetes.client.utils.HttpClientUtils; import io.fabric8.kubernetes.client.utils.Serialization; import java.io.InputStream; @@ -72,7 +73,7 @@ public KubernetesClient build() { } try { if (factory == null) { - return clazz.getConstructor(Config.class).newInstance(config); + this.factory = HttpClientUtils.getHttpClientFactory(); } HttpClient client = getHttpClient(); return clazz.getConstructor(HttpClient.class, Config.class, ExecutorSupplier.class).newInstance(client, config, diff --git a/kubernetes-client-api/src/main/java/io/fabric8/kubernetes/client/utils/HttpClientUtils.java b/kubernetes-client-api/src/main/java/io/fabric8/kubernetes/client/utils/HttpClientUtils.java index ffc20e5d4ce..23ddc59ada1 100644 --- a/kubernetes-client-api/src/main/java/io/fabric8/kubernetes/client/utils/HttpClientUtils.java +++ b/kubernetes-client-api/src/main/java/io/fabric8/kubernetes/client/utils/HttpClientUtils.java @@ -142,6 +142,11 @@ public static String basicCredentials(String username, String password) { */ @Deprecated public static HttpClient createHttpClient(Config config) { + HttpClient.Factory factory = getHttpClientFactory(); + return factory.newBuilder(config).build(); + } + + public static HttpClient.Factory getHttpClientFactory() { ServiceLoader loader = ServiceLoader.load(HttpClient.Factory.class); HttpClient.Factory factory = null; for (Iterator iter = loader.iterator(); iter.hasNext();) { @@ -159,7 +164,7 @@ public static HttpClient createHttpClient(Config config) { throw new KubernetesClientException( "No httpclient implementations found on the context classloader, please ensure your classpath includes an implementation jar"); } - return factory.newBuilder(config).build(); + return factory; } public static void applyCommonConfiguration(Config config, HttpClient.Builder builder, HttpClient.Factory factory) {