diff options
Diffstat (limited to 'vespa-http-client/src/main/java/com/yahoo/vespa/http/client/core/communication/VespaTlsAwareClientBuilder.java')
-rw-r--r-- | vespa-http-client/src/main/java/com/yahoo/vespa/http/client/core/communication/VespaTlsAwareClientBuilder.java | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/vespa-http-client/src/main/java/com/yahoo/vespa/http/client/core/communication/VespaTlsAwareClientBuilder.java b/vespa-http-client/src/main/java/com/yahoo/vespa/http/client/core/communication/VespaTlsAwareClientBuilder.java new file mode 100644 index 00000000000..be67e11963e --- /dev/null +++ b/vespa-http-client/src/main/java/com/yahoo/vespa/http/client/core/communication/VespaTlsAwareClientBuilder.java @@ -0,0 +1,26 @@ +// Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.http.client.core.communication; + +import org.apache.http.impl.client.HttpClientBuilder; + +/** + * A static factory for VespaHttpClientBuilder. + * The main purpose of this class is to avoid references to classes not compiled with JDK8. + * + * @author bjorncs + */ +// TODO Remove use of reflection once vespa-http-client only targets JDK11 +// The VespaTlsAwareClientBuilder class refers to classes in security-utils / http-utils that targets JDK11+. +class VespaTlsAwareClientBuilder { + + private VespaTlsAwareClientBuilder() {} + + static HttpClientBuilder createHttpClientBuilder() { + try { + Class<?> builderClass = Class.forName("ai.vespa.util.http.VespaHttpClientBuilder"); + return (HttpClientBuilder) builderClass.getMethod("create").invoke(null); + } catch (ReflectiveOperationException e) { + throw new RuntimeException(e); + } + } +} |