Deprecate ConfigBuilder. (#2442)

This commit is contained in:
Anuraag Agrawal 2021-01-08 01:52:39 +09:00 committed by GitHub
parent bf0db4d06b
commit bdbab03332
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 64 additions and 42 deletions

View File

@ -117,6 +117,10 @@ subprojects {
it.options.errorprone.disable("AutoValueImmutableFields")
// "-Xep:AutoValueImmutableFields:OFF"
// Fully qualified names may be necessary when deprecating a class to avoid
// deprecation warning.
it.options.errorprone.disable("UnnecessarilyFullyQualified")
it.options.encoding = "UTF-8"
// Ignore warnings for protobuf and jmh generated files.

View File

@ -7,12 +7,12 @@ package io.opentelemetry.exporter.jaeger.thrift;
import io.jaegertracing.thrift.internal.senders.HttpSender;
import io.jaegertracing.thrift.internal.senders.ThriftSender;
import io.opentelemetry.sdk.common.export.ConfigBuilder;
import java.util.Map;
/** Builder utility for this exporter. */
@SuppressWarnings("deprecation") // Remove after ConfigBuilder is deleted
public final class JaegerThriftSpanExporterBuilder
extends ConfigBuilder<JaegerThriftSpanExporterBuilder> {
extends io.opentelemetry.sdk.common.export.ConfigBuilder<JaegerThriftSpanExporterBuilder> {
private static final String KEY_SERVICE_NAME = "otel.exporter.jaeger.service.name";
private static final String KEY_ENDPOINT = "otel.exporter.jaeger.endpoint";

View File

@ -7,12 +7,12 @@ package io.opentelemetry.exporter.jaeger;
import io.grpc.ManagedChannel;
import io.grpc.ManagedChannelBuilder;
import io.opentelemetry.sdk.common.export.ConfigBuilder;
import java.util.Map;
/** Builder utility for this exporter. */
@SuppressWarnings("deprecation") // Remove after ConfigBuilder is deleted
public final class JaegerGrpcSpanExporterBuilder
extends ConfigBuilder<JaegerGrpcSpanExporterBuilder> {
extends io.opentelemetry.sdk.common.export.ConfigBuilder<JaegerGrpcSpanExporterBuilder> {
private static final String KEY_SERVICE_NAME = "otel.exporter.jaeger.service.name";
private static final String KEY_ENDPOINT = "otel.exporter.jaeger.endpoint";

View File

@ -12,15 +12,15 @@ import io.grpc.ManagedChannel;
import io.grpc.ManagedChannelBuilder;
import io.grpc.Metadata;
import io.grpc.stub.MetadataUtils;
import io.opentelemetry.sdk.common.export.ConfigBuilder;
import io.opentelemetry.sdk.extension.otproto.CommonProperties;
import java.util.List;
import java.util.Map;
import javax.annotation.Nullable;
/** Builder utility for this exporter. */
@SuppressWarnings("deprecation") // Remove after ConfigBuilder is deleted
public final class OtlpGrpcMetricExporterBuilder
extends ConfigBuilder<OtlpGrpcMetricExporterBuilder> {
extends io.opentelemetry.sdk.common.export.ConfigBuilder<OtlpGrpcMetricExporterBuilder> {
private static final String KEY_TIMEOUT = "otel.exporter.otlp.metric.timeout";
private static final String KEY_ENDPOINT = "otel.exporter.otlp.metric.endpoint";
private static final String KEY_INSECURE = "otel.exporter.otlp.metric.insecure";

View File

@ -14,7 +14,6 @@ import io.grpc.Metadata;
import io.grpc.netty.GrpcSslContexts;
import io.grpc.netty.NettyChannelBuilder;
import io.grpc.stub.MetadataUtils;
import io.opentelemetry.sdk.common.export.ConfigBuilder;
import io.opentelemetry.sdk.extension.otproto.CommonProperties;
import java.io.ByteArrayInputStream;
import java.util.List;
@ -23,7 +22,9 @@ import javax.annotation.Nullable;
import javax.net.ssl.SSLException;
/** Builder utility for this exporter. */
public final class OtlpGrpcSpanExporterBuilder extends ConfigBuilder<OtlpGrpcSpanExporterBuilder> {
@SuppressWarnings("deprecation") // Remove after ConfigBuilder is deleted
public final class OtlpGrpcSpanExporterBuilder
extends io.opentelemetry.sdk.common.export.ConfigBuilder<OtlpGrpcSpanExporterBuilder> {
private static final String KEY_TIMEOUT = "otel.exporter.otlp.span.timeout";
private static final String KEY_ENDPOINT = "otel.exporter.otlp.span.endpoint";

View File

@ -5,7 +5,6 @@
package io.opentelemetry.exporter.zipkin;
import io.opentelemetry.sdk.common.export.ConfigBuilder;
import java.util.Map;
import zipkin2.Span;
import zipkin2.codec.BytesEncoder;
@ -14,7 +13,9 @@ import zipkin2.reporter.Sender;
import zipkin2.reporter.okhttp3.OkHttpSender;
/** Builder class for {@link ZipkinSpanExporter}. */
public final class ZipkinSpanExporterBuilder extends ConfigBuilder<ZipkinSpanExporterBuilder> {
@SuppressWarnings("deprecation") // Remove after ConfigBuilder is deleted
public final class ZipkinSpanExporterBuilder
extends io.opentelemetry.sdk.common.export.ConfigBuilder<ZipkinSpanExporterBuilder> {
private static final String KEY_SERVICE_NAME = "otel.exporter.zipkin.service.name";
private static final String KEY_ENDPOINT = "otel.exporter.zipkin.endpoint";
private BytesEncoder<Span> encoder = SpanBytesEncoder.JSON_V2;

View File

@ -9,7 +9,6 @@ import com.lmax.disruptor.SleepingWaitStrategy;
import com.lmax.disruptor.WaitStrategy;
import io.opentelemetry.context.Context;
import io.opentelemetry.sdk.common.CompletableResultCode;
import io.opentelemetry.sdk.common.export.ConfigBuilder;
import io.opentelemetry.sdk.trace.ReadWriteSpan;
import io.opentelemetry.sdk.trace.ReadableSpan;
import io.opentelemetry.sdk.trace.SpanProcessor;
@ -103,7 +102,9 @@ public final class DisruptorAsyncSpanProcessor implements SpanProcessor {
}
/** Builder class for {@link DisruptorAsyncSpanProcessor}. */
public static final class Builder extends ConfigBuilder<Builder> {
@SuppressWarnings("deprecation") // Remove after ConfigBuilder is deleted
public static final class Builder
extends io.opentelemetry.sdk.common.export.ConfigBuilder<Builder> {
private static final String KEY_DISRUPTOR_BUFFER_SIZE = "otel.disruptor.buffer.size";
private static final String KEY_BLOCKING = "otel.disruptor.blocking";

View File

@ -12,7 +12,6 @@ import io.opentelemetry.api.metrics.LongCounter;
import io.opentelemetry.api.metrics.LongCounter.BoundLongCounter;
import io.opentelemetry.api.metrics.Meter;
import io.opentelemetry.sdk.common.CompletableResultCode;
import io.opentelemetry.sdk.common.export.ConfigBuilder;
import io.opentelemetry.sdk.internal.DaemonThreadFactory;
import io.opentelemetry.sdk.logging.LogProcessor;
import io.opentelemetry.sdk.logging.data.LogRecord;
@ -219,7 +218,8 @@ public final class BatchLogProcessor implements LogProcessor {
}
}
public static class Builder extends ConfigBuilder<Builder> {
@SuppressWarnings("deprecation") // Remove after ConfigBuilder is deleted
public static class Builder extends io.opentelemetry.sdk.common.export.ConfigBuilder<Builder> {
private static final long DEFAULT_SCHEDULE_DELAY_MILLIS = 200;
private static final int DEFAULT_MAX_QUEUE_SIZE = 2048;
private static final int DEFAULT_MAX_EXPORT_BATCH_SIZE = 512;

View File

@ -7,7 +7,6 @@ package io.opentelemetry.sdk.extension.zpages;
import io.opentelemetry.context.Context;
import io.opentelemetry.sdk.common.CompletableResultCode;
import io.opentelemetry.sdk.common.export.ConfigBuilder;
import io.opentelemetry.sdk.trace.ReadWriteSpan;
import io.opentelemetry.sdk.trace.ReadableSpan;
import io.opentelemetry.sdk.trace.SpanProcessor;
@ -131,7 +130,9 @@ final class TracezSpanProcessor implements SpanProcessor {
}
/** Builder class for {@link TracezSpanProcessor}. */
public static final class Builder extends ConfigBuilder<Builder> {
@SuppressWarnings("deprecation") // Remove after ConfigBuilder is deleted
public static final class Builder
extends io.opentelemetry.sdk.common.export.ConfigBuilder<Builder> {
private static final String KEY_SAMPLED = "otel.zpages.export.sampled";
private static final boolean DEFAULT_EXPORT_ONLY_SAMPLED = true;

View File

@ -21,7 +21,10 @@ import javax.annotation.Nullable;
* <p>{@code Foo.Builder extends ConfigBuilder<Foo.Builder>}
*
* @param <T> the type of the implementation.
* @deprecated Define an implementation of {@code SdkTracerProviderConfigurer} from the
* opentelemetry-sdk-extension-autoconfigure module to allow autoconfiguration of your type.
*/
@Deprecated
public abstract class ConfigBuilder<T> {
// Visible for testing

View File

@ -7,7 +7,6 @@ package io.opentelemetry.sdk.resources;
import io.opentelemetry.api.common.Attributes;
import io.opentelemetry.api.common.AttributesBuilder;
import io.opentelemetry.sdk.common.export.ConfigBuilder;
import java.util.Map;
import javax.annotation.Nullable;
import javax.annotation.concurrent.ThreadSafe;
@ -51,7 +50,8 @@ final class EnvAutodetectResource {
}
/** Builder utility for this EnvAutodetectResource. */
protected static class Builder extends ConfigBuilder<Builder> {
@SuppressWarnings("deprecation") // Remove after ConfigBuilder is deleted
protected static class Builder extends io.opentelemetry.sdk.common.export.ConfigBuilder<Builder> {
private static final String OTEL_RESOURCE_ATTRIBUTES_KEY = "otel.resource.attributes";
private String envAttributes;

View File

@ -8,7 +8,6 @@ package io.opentelemetry.sdk.resources;
import static java.util.Objects.requireNonNull;
import com.google.auto.value.AutoValue;
import io.opentelemetry.sdk.common.export.ConfigBuilder;
import java.util.Arrays;
import java.util.Collections;
import java.util.Map;
@ -78,7 +77,8 @@ public abstract class ResourcesConfig {
/** Builder for {@link ResourcesConfig}. */
@AutoValue.Builder
abstract static class Builder extends ConfigBuilder<Builder> {
@SuppressWarnings("deprecation") // Remove after ConfigBuilder is deleted
abstract static class Builder extends io.opentelemetry.sdk.common.export.ConfigBuilder<Builder> {
private static final String OTEL_JAVA_DISABLED_RESOURCES_PROVIDERS =
"otel.java.disabled.resource_providers";

View File

@ -8,7 +8,6 @@ package io.opentelemetry.sdk.common.export;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.entry;
import io.opentelemetry.sdk.common.export.ConfigBuilder.NamingConvention;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@ -18,16 +17,19 @@ import org.junitpioneer.jupiter.SetEnvironmentVariable;
import org.junitpioneer.jupiter.SetSystemProperty;
/** Tests for {@link io.opentelemetry.sdk.common.export.ConfigBuilder}. */
@SuppressWarnings("deprecation") // Remove after ConfigBuilder is deleted
public class ConfigBuilderTest {
@Test
void normalize() {
Map<String, String> dotValues =
NamingConvention.DOT.normalize(Collections.singletonMap("Test.Config.Key", "value"));
ConfigBuilder.NamingConvention.DOT.normalize(
Collections.singletonMap("Test.Config.Key", "value"));
assertThat(dotValues).containsEntry("test.config.key", "value");
Map<String, String> envValue =
NamingConvention.ENV_VAR.normalize(Collections.singletonMap("TEST_CONFIG_KEY", "value"));
ConfigBuilder.NamingConvention.ENV_VAR.normalize(
Collections.singletonMap("TEST_CONFIG_KEY", "value"));
assertThat(envValue).containsEntry("test.config.key", "value");
}
@ -113,18 +115,22 @@ public class ConfigBuilderTest {
@Test
void testNormalize_dot() {
assertThat(NamingConvention.DOT.normalize("lower.case")).isEqualTo("lower.case");
assertThat(NamingConvention.DOT.normalize("lower_case")).isEqualTo("lower_case");
assertThat(NamingConvention.DOT.normalize("loWer.cAsE")).isEqualTo("lower.case");
assertThat(NamingConvention.DOT.normalize("loWer_cAsE")).isEqualTo("lower_case");
assertThat(ConfigBuilder.NamingConvention.DOT.normalize("lower.case")).isEqualTo("lower.case");
assertThat(ConfigBuilder.NamingConvention.DOT.normalize("lower_case")).isEqualTo("lower_case");
assertThat(ConfigBuilder.NamingConvention.DOT.normalize("loWer.cAsE")).isEqualTo("lower.case");
assertThat(ConfigBuilder.NamingConvention.DOT.normalize("loWer_cAsE")).isEqualTo("lower_case");
}
@Test
void testNormalize_env() {
assertThat(NamingConvention.ENV_VAR.normalize("lower.case")).isEqualTo("lower.case");
assertThat(NamingConvention.ENV_VAR.normalize("lower_case")).isEqualTo("lower.case");
assertThat(NamingConvention.ENV_VAR.normalize("loWer.cAsE")).isEqualTo("lower.case");
assertThat(NamingConvention.ENV_VAR.normalize("loWer_cAsE")).isEqualTo("lower.case");
assertThat(ConfigBuilder.NamingConvention.ENV_VAR.normalize("lower.case"))
.isEqualTo("lower.case");
assertThat(ConfigBuilder.NamingConvention.ENV_VAR.normalize("lower_case"))
.isEqualTo("lower.case");
assertThat(ConfigBuilder.NamingConvention.ENV_VAR.normalize("loWer.cAsE"))
.isEqualTo("lower.case");
assertThat(ConfigBuilder.NamingConvention.ENV_VAR.normalize("loWer_cAsE"))
.isEqualTo("lower.case");
}
@Test
@ -134,7 +140,7 @@ public class ConfigBuilderTest {
map.put("lower_case", "2");
map.put("loWer.cAsE", "3");
map.put("loWer_cAsE", "4");
Map<String, String> normalized = NamingConvention.DOT.normalize(map);
Map<String, String> normalized = ConfigBuilder.NamingConvention.DOT.normalize(map);
assertThat(normalized.size()).isEqualTo(2);
assertThat(normalized).containsOnly(entry("lower.case", "3"), entry("lower_case", "4"));
}
@ -146,7 +152,7 @@ public class ConfigBuilderTest {
map.put("lower_case", "2");
map.put("loWer.cAsE", "3");
map.put("loWer_cAsE", "4");
Map<String, String> normalized = NamingConvention.ENV_VAR.normalize(map);
Map<String, String> normalized = ConfigBuilder.NamingConvention.ENV_VAR.normalize(map);
assertThat(normalized.size()).isEqualTo(1);
assertThat(normalized).containsExactly(entry("lower.case", "3"));
}
@ -217,7 +223,8 @@ public class ConfigBuilderTest {
assertThat(ConfigBuilder.getStringProperty("no-key", map)).isNull();
}
private static final class ConfigTester extends ConfigBuilder<Map<String, String>> {
private static final class ConfigTester
extends io.opentelemetry.sdk.common.export.ConfigBuilder<Map<String, String>> {
public static NamingConvention getNamingDot() {
return NamingConvention.DOT;

View File

@ -8,7 +8,6 @@ package io.opentelemetry.sdk.metrics.export;
import com.google.auto.value.AutoValue;
import io.opentelemetry.api.internal.Utils;
import io.opentelemetry.sdk.common.CompletableResultCode;
import io.opentelemetry.sdk.common.export.ConfigBuilder;
import io.opentelemetry.sdk.internal.DaemonThreadFactory;
import io.opentelemetry.sdk.metrics.data.MetricData;
import java.util.ArrayList;
@ -88,7 +87,9 @@ public final class IntervalMetricReader {
}
/** Builder for {@link IntervalMetricReader}. */
public static final class Builder extends ConfigBuilder<Builder> {
@SuppressWarnings("deprecation") // Remove after ConfigBuilder is deleted
public static final class Builder
extends io.opentelemetry.sdk.common.export.ConfigBuilder<Builder> {
private final InternalState.Builder optionsBuilder;
private static final String KEY_EXPORT_INTERVAL = "otel.imr.export.interval";

View File

@ -9,13 +9,14 @@ import static java.util.Objects.requireNonNull;
import io.opentelemetry.api.internal.Utils;
import io.opentelemetry.api.trace.Span;
import io.opentelemetry.sdk.common.export.ConfigBuilder;
import io.opentelemetry.sdk.trace.samplers.Sampler;
import java.util.Map;
import java.util.Properties;
/** Builder for {@link TraceConfig}. */
public final class TraceConfigBuilder extends ConfigBuilder<TraceConfigBuilder> {
@SuppressWarnings("deprecation") // Remove after ConfigBuilder is deleted
public final class TraceConfigBuilder
extends io.opentelemetry.sdk.common.export.ConfigBuilder<TraceConfigBuilder> {
private static final String KEY_SAMPLER_PROBABILITY = "otel.config.sampler.probability";
private static final String KEY_SPAN_ATTRIBUTE_COUNT_LIMIT = "otel.span.attribute.count.limit";
private static final String KEY_SPAN_EVENT_COUNT_LIMIT = "otel.span.event.count.limit";

View File

@ -6,12 +6,13 @@
package io.opentelemetry.sdk.trace.export;
import io.opentelemetry.api.internal.Utils;
import io.opentelemetry.sdk.common.export.ConfigBuilder;
import java.util.Map;
import java.util.Objects;
/** Builder class for {@link BatchSpanProcessor}. */
public final class BatchSpanProcessorBuilder extends ConfigBuilder<BatchSpanProcessorBuilder> {
@SuppressWarnings("deprecation") // Remove after ConfigBuilder is deleted
public final class BatchSpanProcessorBuilder
extends io.opentelemetry.sdk.common.export.ConfigBuilder<BatchSpanProcessorBuilder> {
private static final String KEY_SCHEDULE_DELAY_MILLIS = "otel.bsp.schedule.delay.millis";
private static final String KEY_MAX_QUEUE_SIZE = "otel.bsp.max.queue.size";

View File

@ -5,7 +5,6 @@
package io.opentelemetry.sdk.trace.export;
import io.opentelemetry.sdk.common.export.ConfigBuilder;
import java.util.Map;
import java.util.Objects;
@ -15,7 +14,9 @@ import java.util.Objects;
* @deprecated Use {@link SimpleSpanProcessor#create(SpanExporter)}
*/
@Deprecated
public final class SimpleSpanProcessorBuilder extends ConfigBuilder<SimpleSpanProcessorBuilder> {
@SuppressWarnings("deprecation") // Remove after ConfigBuilder is deleted
public final class SimpleSpanProcessorBuilder
extends io.opentelemetry.sdk.common.export.ConfigBuilder<SimpleSpanProcessorBuilder> {
private static final String KEY_SAMPLED = "otel.ssp.export.sampled";