From 7c2ce343b0bcd2fae11bb7ccb4c999dda2e56f75 Mon Sep 17 00:00:00 2001 From: Jack Berg Date: Wed, 26 Feb 2025 14:59:09 -0600 Subject: [PATCH] Extract sender parameters to config carrier class --- .../internal/grpc/GrpcExporterBuilder.java | 23 ++--- .../internal/grpc/GrpcSenderConfig.java | 85 +++++++++++++++++++ .../internal/grpc/GrpcSenderProvider.java | 27 +----- .../internal/http/HttpExporterBuilder.java | 23 ++--- .../internal/http/HttpSenderConfig.java | 81 ++++++++++++++++++ .../internal/http/HttpSenderProvider.java | 26 +----- .../internal/UpstreamGrpcSenderProvider.java | 35 +++----- .../jdk/internal/JdkHttpSenderProvider.java | 43 +++------- .../internal/OkHttpGrpcSenderProvider.java | 42 +++------ .../internal/OkHttpHttpSenderProvider.java | 45 +++------- 10 files changed, 242 insertions(+), 188 deletions(-) create mode 100644 exporters/common/src/main/java/io/opentelemetry/exporter/internal/grpc/GrpcSenderConfig.java create mode 100644 exporters/common/src/main/java/io/opentelemetry/exporter/internal/http/HttpSenderConfig.java diff --git a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/grpc/GrpcExporterBuilder.java b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/grpc/GrpcExporterBuilder.java index 3ddf45c03e4..b33fa279086 100644 --- a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/grpc/GrpcExporterBuilder.java +++ b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/grpc/GrpcExporterBuilder.java @@ -199,17 +199,18 @@ public GrpcExporter build() { GrpcSenderProvider grpcSenderProvider = resolveGrpcSenderProvider(); GrpcSender grpcSender = grpcSenderProvider.createSender( - endpoint, - grpcEndpointPath, - compressor, - timeoutNanos, - connectTimeoutNanos, - headerSupplier, - grpcChannel, - grpcStubFactory, - retryPolicy, - isPlainHttp ? null : tlsConfigHelper.getSslContext(), - isPlainHttp ? null : tlsConfigHelper.getTrustManager()); + GrpcSenderConfig.create( + endpoint, + grpcEndpointPath, + compressor, + timeoutNanos, + connectTimeoutNanos, + headerSupplier, + grpcChannel, + grpcStubFactory, + retryPolicy, + isPlainHttp ? null : tlsConfigHelper.getSslContext(), + isPlainHttp ? null : tlsConfigHelper.getTrustManager())); LOGGER.log(Level.FINE, "Using GrpcSender: " + grpcSender.getClass().getName()); return new GrpcExporter<>(exporterName, type, grpcSender, meterProviderSupplier); diff --git a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/grpc/GrpcSenderConfig.java b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/grpc/GrpcSenderConfig.java new file mode 100644 index 00000000000..1685961f41e --- /dev/null +++ b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/grpc/GrpcSenderConfig.java @@ -0,0 +1,85 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.exporter.internal.grpc; + +import com.google.auto.value.AutoValue; +import io.grpc.Channel; +import io.opentelemetry.exporter.internal.compression.Compressor; +import io.opentelemetry.exporter.internal.marshal.Marshaler; +import io.opentelemetry.sdk.common.export.RetryPolicy; +import java.net.URI; +import java.util.List; +import java.util.Map; +import java.util.function.BiFunction; +import java.util.function.Supplier; +import javax.annotation.Nullable; +import javax.annotation.concurrent.Immutable; +import javax.net.ssl.SSLContext; +import javax.net.ssl.X509TrustManager; + +/** + * This class is internal and is hence not for public use. Its APIs are unstable and can change at + * any time. + */ +@AutoValue +@Immutable +public abstract class GrpcSenderConfig { + + @SuppressWarnings("TooManyParameters") + public static GrpcSenderConfig create( + URI endpoint, + String endpointPath, + @Nullable Compressor compressor, + long timeoutNanos, + long connectTimeoutNanos, + Supplier>> headersSupplier, + @Nullable Object managedChannel, + Supplier>> stubFactory, + @Nullable RetryPolicy retryPolicy, + @Nullable SSLContext sslContext, + @Nullable X509TrustManager trustManager) { + return new AutoValue_GrpcSenderConfig<>( + endpoint, + endpointPath, + compressor, + timeoutNanos, + connectTimeoutNanos, + headersSupplier, + managedChannel, + stubFactory, + retryPolicy, + sslContext, + trustManager); + } + + public abstract URI getEndpoint(); + + public abstract String getEndpointPath(); + + @Nullable + public abstract Compressor getCompressor(); + + public abstract long getTimeoutNanos(); + + public abstract long getConnectTimeoutNanos(); + + public abstract Supplier>> getHeadersSupplier(); + + @Nullable + public abstract Object getManagedChannel(); + + public abstract Supplier>> + getStubFactory(); + + @Nullable + public abstract RetryPolicy getRetryPolicy(); + + @Nullable + public abstract SSLContext getSslContext(); + + @Nullable + public abstract X509TrustManager getTrustManager(); +} diff --git a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/grpc/GrpcSenderProvider.java b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/grpc/GrpcSenderProvider.java index 48f0e927d26..5b2883cf066 100644 --- a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/grpc/GrpcSenderProvider.java +++ b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/grpc/GrpcSenderProvider.java @@ -5,18 +5,7 @@ package io.opentelemetry.exporter.internal.grpc; -import io.grpc.Channel; -import io.opentelemetry.exporter.internal.compression.Compressor; import io.opentelemetry.exporter.internal.marshal.Marshaler; -import io.opentelemetry.sdk.common.export.RetryPolicy; -import java.net.URI; -import java.util.List; -import java.util.Map; -import java.util.function.BiFunction; -import java.util.function.Supplier; -import javax.annotation.Nullable; -import javax.net.ssl.SSLContext; -import javax.net.ssl.X509TrustManager; /** * A service provider interface (SPI) for providing {@link GrpcSender}s backed by different client @@ -27,18 +16,6 @@ */ public interface GrpcSenderProvider { - /** Returns a {@link GrpcSender} configured with the provided parameters. */ - @SuppressWarnings("TooManyParameters") - GrpcSender createSender( - URI endpoint, - String endpointPath, - @Nullable Compressor compressor, - long timeoutNanos, - long connectTimeoutNanos, - Supplier>> headersSupplier, - @Nullable Object managedChannel, - Supplier>> stubFactory, - @Nullable RetryPolicy retryPolicy, - @Nullable SSLContext sslContext, - @Nullable X509TrustManager trustManager); + /** Returns a {@link GrpcSender} configured with the provided config. */ + GrpcSender createSender(GrpcSenderConfig grpcSenderConfig); } diff --git a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/http/HttpExporterBuilder.java b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/http/HttpExporterBuilder.java index a82da5afc9a..599712db712 100644 --- a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/http/HttpExporterBuilder.java +++ b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/http/HttpExporterBuilder.java @@ -181,17 +181,18 @@ public HttpExporter build() { HttpSenderProvider httpSenderProvider = resolveHttpSenderProvider(); HttpSender httpSender = httpSenderProvider.createSender( - endpoint, - compressor, - exportAsJson, - exportAsJson ? "application/json" : "application/x-protobuf", - timeoutNanos, - connectTimeoutNanos, - headerSupplier, - proxyOptions, - retryPolicy, - isPlainHttp ? null : tlsConfigHelper.getSslContext(), - isPlainHttp ? null : tlsConfigHelper.getTrustManager()); + HttpSenderConfig.create( + endpoint, + compressor, + exportAsJson, + exportAsJson ? "application/json" : "application/x-protobuf", + timeoutNanos, + connectTimeoutNanos, + headerSupplier, + proxyOptions, + retryPolicy, + isPlainHttp ? null : tlsConfigHelper.getSslContext(), + isPlainHttp ? null : tlsConfigHelper.getTrustManager())); LOGGER.log(Level.FINE, "Using HttpSender: " + httpSender.getClass().getName()); return new HttpExporter<>(exporterName, type, httpSender, meterProviderSupplier, exportAsJson); diff --git a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/http/HttpSenderConfig.java b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/http/HttpSenderConfig.java new file mode 100644 index 00000000000..03b50a44848 --- /dev/null +++ b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/http/HttpSenderConfig.java @@ -0,0 +1,81 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.exporter.internal.http; + +import com.google.auto.value.AutoValue; +import io.opentelemetry.exporter.internal.compression.Compressor; +import io.opentelemetry.sdk.common.export.ProxyOptions; +import io.opentelemetry.sdk.common.export.RetryPolicy; +import java.util.List; +import java.util.Map; +import java.util.function.Supplier; +import javax.annotation.Nullable; +import javax.annotation.concurrent.Immutable; +import javax.net.ssl.SSLContext; +import javax.net.ssl.X509TrustManager; + +/** + * This class is internal and is hence not for public use. Its APIs are unstable and can change at + * any time. + */ +@AutoValue +@Immutable +public abstract class HttpSenderConfig { + + @SuppressWarnings("TooManyParameters") + public static HttpSenderConfig create( + String endpoint, + @Nullable Compressor compressor, + boolean exportAsJson, + String contentType, + long timeoutNanos, + long connectTimeoutNanos, + Supplier>> headerSupplier, + @Nullable ProxyOptions proxyOptions, + @Nullable RetryPolicy retryPolicy, + @Nullable SSLContext sslContext, + @Nullable X509TrustManager trustManager) { + return new AutoValue_HttpSenderConfig( + endpoint, + compressor, + exportAsJson, + contentType, + timeoutNanos, + connectTimeoutNanos, + headerSupplier, + proxyOptions, + retryPolicy, + sslContext, + trustManager); + } + + public abstract String getEndpoint(); + + @Nullable + public abstract Compressor getCompressor(); + + public abstract boolean getExportAsJson(); + + public abstract String getContentType(); + + public abstract long getTimeoutNanos(); + + public abstract long getConnectTimeoutNanos(); + + public abstract Supplier>> getHeadersSupplier(); + + @Nullable + public abstract ProxyOptions getProxyOptions(); + + @Nullable + public abstract RetryPolicy getRetryPolicy(); + + @Nullable + public abstract SSLContext getSslContext(); + + @Nullable + public abstract X509TrustManager getTrustManager(); +} diff --git a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/http/HttpSenderProvider.java b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/http/HttpSenderProvider.java index 651343beaed..10563f5a00d 100644 --- a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/http/HttpSenderProvider.java +++ b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/http/HttpSenderProvider.java @@ -5,16 +5,6 @@ package io.opentelemetry.exporter.internal.http; -import io.opentelemetry.exporter.internal.compression.Compressor; -import io.opentelemetry.sdk.common.export.ProxyOptions; -import io.opentelemetry.sdk.common.export.RetryPolicy; -import java.util.List; -import java.util.Map; -import java.util.function.Supplier; -import javax.annotation.Nullable; -import javax.net.ssl.SSLContext; -import javax.net.ssl.X509TrustManager; - /** * A service provider interface (SPI) for providing {@link HttpSender}s backed by different HTTP * client libraries. @@ -24,18 +14,6 @@ */ public interface HttpSenderProvider { - /** Returns a {@link HttpSender} configured with the provided parameters. */ - @SuppressWarnings("TooManyParameters") - HttpSender createSender( - String endpoint, - @Nullable Compressor compressor, - boolean exportAsJson, - String contentType, - long timeoutNanos, - long connectTimeout, - Supplier>> headerSupplier, - @Nullable ProxyOptions proxyOptions, - @Nullable RetryPolicy retryPolicy, - @Nullable SSLContext sslContext, - @Nullable X509TrustManager trustManager); + /** Returns a {@link HttpSender} configured with the provided config. */ + HttpSender createSender(HttpSenderConfig httpSenderConfig); } diff --git a/exporters/sender/grpc-managed-channel/src/main/java/io/opentelemetry/exporter/sender/grpc/managedchannel/internal/UpstreamGrpcSenderProvider.java b/exporters/sender/grpc-managed-channel/src/main/java/io/opentelemetry/exporter/sender/grpc/managedchannel/internal/UpstreamGrpcSenderProvider.java index d07bc4ed614..c2c7cb3d85c 100644 --- a/exporters/sender/grpc-managed-channel/src/main/java/io/opentelemetry/exporter/sender/grpc/managedchannel/internal/UpstreamGrpcSenderProvider.java +++ b/exporters/sender/grpc-managed-channel/src/main/java/io/opentelemetry/exporter/sender/grpc/managedchannel/internal/UpstreamGrpcSenderProvider.java @@ -12,20 +12,15 @@ import io.grpc.ManagedChannelBuilder; import io.opentelemetry.exporter.internal.compression.Compressor; import io.opentelemetry.exporter.internal.grpc.GrpcSender; +import io.opentelemetry.exporter.internal.grpc.GrpcSenderConfig; import io.opentelemetry.exporter.internal.grpc.GrpcSenderProvider; import io.opentelemetry.exporter.internal.grpc.MarshalerServiceStub; import io.opentelemetry.exporter.internal.marshal.Marshaler; -import io.opentelemetry.sdk.common.export.RetryPolicy; import java.io.IOException; import java.io.OutputStream; import java.net.URI; import java.util.List; import java.util.Map; -import java.util.function.BiFunction; -import java.util.function.Supplier; -import javax.annotation.Nullable; -import javax.net.ssl.SSLContext; -import javax.net.ssl.X509TrustManager; /** * {@link GrpcSender} SPI implementation for {@link UpstreamGrpcSender}. @@ -36,27 +31,17 @@ public class UpstreamGrpcSenderProvider implements GrpcSenderProvider { @Override - public GrpcSender createSender( - URI endpoint, - String endpointPath, - @Nullable Compressor compressor, - long timeoutNanos, - long connectTimeoutNanos, - Supplier>> headersSupplier, - @Nullable Object managedChannel, - Supplier>> stubFactory, - @Nullable RetryPolicy retryPolicy, - @Nullable SSLContext sslContext, - @Nullable X509TrustManager trustManager) { + public GrpcSender createSender(GrpcSenderConfig grpcSenderConfig) { boolean shutdownChannel = false; + Object managedChannel = grpcSenderConfig.getManagedChannel(); if (managedChannel == null) { // Shutdown the channel as part of the exporter shutdown sequence if shutdownChannel = true; - managedChannel = minimalFallbackManagedChannel(endpoint); + managedChannel = minimalFallbackManagedChannel(grpcSenderConfig.getEndpoint()); } String authorityOverride = null; - Map> headers = headersSupplier.get(); + Map> headers = grpcSenderConfig.getHeadersSupplier().get(); if (headers != null) { for (Map.Entry> entry : headers.entrySet()) { if (entry.getKey().equals("host") && !entry.getValue().isEmpty()) { @@ -66,6 +51,7 @@ public GrpcSender createSender( } String compression = Codec.Identity.NONE.getMessageEncoding(); + Compressor compressor = grpcSenderConfig.getCompressor(); if (compressor != null) { CompressorRegistry.getDefaultInstance() .register( @@ -84,12 +70,17 @@ public OutputStream compress(OutputStream os) throws IOException { } MarshalerServiceStub stub = - stubFactory + grpcSenderConfig + .getStubFactory() .get() .apply((Channel) managedChannel, authorityOverride) .withCompression(compression); - return new UpstreamGrpcSender<>(stub, shutdownChannel, timeoutNanos, headersSupplier); + return new UpstreamGrpcSender<>( + stub, + shutdownChannel, + grpcSenderConfig.getTimeoutNanos(), + grpcSenderConfig.getHeadersSupplier()); } /** diff --git a/exporters/sender/jdk/src/main/java/io/opentelemetry/exporter/sender/jdk/internal/JdkHttpSenderProvider.java b/exporters/sender/jdk/src/main/java/io/opentelemetry/exporter/sender/jdk/internal/JdkHttpSenderProvider.java index f5905599183..4cf4f26a2a1 100644 --- a/exporters/sender/jdk/src/main/java/io/opentelemetry/exporter/sender/jdk/internal/JdkHttpSenderProvider.java +++ b/exporters/sender/jdk/src/main/java/io/opentelemetry/exporter/sender/jdk/internal/JdkHttpSenderProvider.java @@ -5,17 +5,9 @@ package io.opentelemetry.exporter.sender.jdk.internal; -import io.opentelemetry.exporter.internal.compression.Compressor; import io.opentelemetry.exporter.internal.http.HttpSender; +import io.opentelemetry.exporter.internal.http.HttpSenderConfig; import io.opentelemetry.exporter.internal.http.HttpSenderProvider; -import io.opentelemetry.sdk.common.export.ProxyOptions; -import io.opentelemetry.sdk.common.export.RetryPolicy; -import java.util.List; -import java.util.Map; -import java.util.function.Supplier; -import javax.annotation.Nullable; -import javax.net.ssl.SSLContext; -import javax.net.ssl.X509TrustManager; /** * {@link HttpSender} SPI implementation for {@link JdkHttpSender}. @@ -26,28 +18,17 @@ public final class JdkHttpSenderProvider implements HttpSenderProvider { @Override - public HttpSender createSender( - String endpoint, - @Nullable Compressor compressor, - boolean exportAsJson, - String contentType, - long timeoutNanos, - long connectTimeout, - Supplier>> headerSupplier, - @Nullable ProxyOptions proxyOptions, - @Nullable RetryPolicy retryPolicy, - @Nullable SSLContext sslContext, - @Nullable X509TrustManager trustManager) { + public HttpSender createSender(HttpSenderConfig httpSenderConfig) { return new JdkHttpSender( - endpoint, - compressor, - exportAsJson, - contentType, - timeoutNanos, - connectTimeout, - headerSupplier, - retryPolicy, - proxyOptions, - sslContext); + httpSenderConfig.getEndpoint(), + httpSenderConfig.getCompressor(), + httpSenderConfig.getExportAsJson(), + httpSenderConfig.getContentType(), + httpSenderConfig.getTimeoutNanos(), + httpSenderConfig.getConnectTimeoutNanos(), + httpSenderConfig.getHeadersSupplier(), + httpSenderConfig.getRetryPolicy(), + httpSenderConfig.getProxyOptions(), + httpSenderConfig.getSslContext()); } } diff --git a/exporters/sender/okhttp/src/main/java/io/opentelemetry/exporter/sender/okhttp/internal/OkHttpGrpcSenderProvider.java b/exporters/sender/okhttp/src/main/java/io/opentelemetry/exporter/sender/okhttp/internal/OkHttpGrpcSenderProvider.java index b6595ee2866..c87f2739b4c 100644 --- a/exporters/sender/okhttp/src/main/java/io/opentelemetry/exporter/sender/okhttp/internal/OkHttpGrpcSenderProvider.java +++ b/exporters/sender/okhttp/src/main/java/io/opentelemetry/exporter/sender/okhttp/internal/OkHttpGrpcSenderProvider.java @@ -5,21 +5,10 @@ package io.opentelemetry.exporter.sender.okhttp.internal; -import io.grpc.Channel; -import io.opentelemetry.exporter.internal.compression.Compressor; import io.opentelemetry.exporter.internal.grpc.GrpcSender; +import io.opentelemetry.exporter.internal.grpc.GrpcSenderConfig; import io.opentelemetry.exporter.internal.grpc.GrpcSenderProvider; -import io.opentelemetry.exporter.internal.grpc.MarshalerServiceStub; import io.opentelemetry.exporter.internal.marshal.Marshaler; -import io.opentelemetry.sdk.common.export.RetryPolicy; -import java.net.URI; -import java.util.List; -import java.util.Map; -import java.util.function.BiFunction; -import java.util.function.Supplier; -import javax.net.ssl.SSLContext; -import javax.net.ssl.X509TrustManager; -import org.jetbrains.annotations.Nullable; /** * {@link GrpcSender} SPI implementation for {@link OkHttpGrpcSender}. @@ -30,26 +19,15 @@ public class OkHttpGrpcSenderProvider implements GrpcSenderProvider { @Override - public GrpcSender createSender( - URI endpoint, - String endpointPath, - @Nullable Compressor compressor, - long timeoutNanos, - long connectTimeoutNanos, - Supplier>> headersSupplier, - @Nullable Object managedChannel, - Supplier>> stubFactory, - @Nullable RetryPolicy retryPolicy, - @Nullable SSLContext sslContext, - @Nullable X509TrustManager trustManager) { + public GrpcSender createSender(GrpcSenderConfig grpcSenderConfig) { return new OkHttpGrpcSender<>( - endpoint.resolve(endpointPath).toString(), - compressor, - timeoutNanos, - connectTimeoutNanos, - headersSupplier, - retryPolicy, - sslContext, - trustManager); + grpcSenderConfig.getEndpoint().resolve(grpcSenderConfig.getEndpointPath()).toString(), + grpcSenderConfig.getCompressor(), + grpcSenderConfig.getTimeoutNanos(), + grpcSenderConfig.getConnectTimeoutNanos(), + grpcSenderConfig.getHeadersSupplier(), + grpcSenderConfig.getRetryPolicy(), + grpcSenderConfig.getSslContext(), + grpcSenderConfig.getTrustManager()); } } diff --git a/exporters/sender/okhttp/src/main/java/io/opentelemetry/exporter/sender/okhttp/internal/OkHttpHttpSenderProvider.java b/exporters/sender/okhttp/src/main/java/io/opentelemetry/exporter/sender/okhttp/internal/OkHttpHttpSenderProvider.java index f5036a21271..989f3644506 100644 --- a/exporters/sender/okhttp/src/main/java/io/opentelemetry/exporter/sender/okhttp/internal/OkHttpHttpSenderProvider.java +++ b/exporters/sender/okhttp/src/main/java/io/opentelemetry/exporter/sender/okhttp/internal/OkHttpHttpSenderProvider.java @@ -5,17 +5,9 @@ package io.opentelemetry.exporter.sender.okhttp.internal; -import io.opentelemetry.exporter.internal.compression.Compressor; import io.opentelemetry.exporter.internal.http.HttpSender; +import io.opentelemetry.exporter.internal.http.HttpSenderConfig; import io.opentelemetry.exporter.internal.http.HttpSenderProvider; -import io.opentelemetry.sdk.common.export.ProxyOptions; -import io.opentelemetry.sdk.common.export.RetryPolicy; -import java.util.List; -import java.util.Map; -import java.util.function.Supplier; -import javax.net.ssl.SSLContext; -import javax.net.ssl.X509TrustManager; -import org.jetbrains.annotations.Nullable; /** * {@link HttpSender} SPI implementation for {@link OkHttpHttpSender}. @@ -26,29 +18,18 @@ public final class OkHttpHttpSenderProvider implements HttpSenderProvider { @Override - public HttpSender createSender( - String endpoint, - @Nullable Compressor compressor, - boolean exportAsJson, - String contentType, - long timeoutNanos, - long connectTimeout, - Supplier>> headerSupplier, - @Nullable ProxyOptions proxyOptions, - @Nullable RetryPolicy retryPolicy, - @Nullable SSLContext sslContext, - @Nullable X509TrustManager trustManager) { + public HttpSender createSender(HttpSenderConfig httpSenderConfig) { return new OkHttpHttpSender( - endpoint, - compressor, - exportAsJson, - contentType, - timeoutNanos, - connectTimeout, - headerSupplier, - proxyOptions, - retryPolicy, - sslContext, - trustManager); + httpSenderConfig.getEndpoint(), + httpSenderConfig.getCompressor(), + httpSenderConfig.getExportAsJson(), + httpSenderConfig.getContentType(), + httpSenderConfig.getTimeoutNanos(), + httpSenderConfig.getConnectTimeoutNanos(), + httpSenderConfig.getHeadersSupplier(), + httpSenderConfig.getProxyOptions(), + httpSenderConfig.getRetryPolicy(), + httpSenderConfig.getSslContext(), + httpSenderConfig.getTrustManager()); } }