Move autoconfigure getConfig to internal, remove getResource (#5467)

This commit is contained in:
jack-berg 2023-06-27 12:45:53 -05:00 committed by GitHub
parent ddb47e14c8
commit 73597b1332
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 69 additions and 2 deletions

View File

@ -51,10 +51,10 @@ public abstract class AutoConfiguredOpenTelemetrySdk {
public abstract OpenTelemetrySdk getOpenTelemetrySdk();
/** Returns the {@link Resource} that was auto-configured. */
public abstract Resource getResource();
abstract Resource getResource();
/** Returns the {@link ConfigProperties} used for auto-configuration. */
public abstract ConfigProperties getConfig();
abstract ConfigProperties getConfig();
AutoConfiguredOpenTelemetrySdk() {}
}

View File

@ -0,0 +1,33 @@
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/
package io.opentelemetry.sdk.autoconfigure.internal;
import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk;
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
/**
* This class is internal and is hence not for public use. Its APIs are unstable and can change at
* any time.
*/
public final class AutoConfigureUtil {
private AutoConfigureUtil() {}
/** Returns the {@link ConfigProperties} used for auto-configuration. */
public static ConfigProperties getConfig(
AutoConfiguredOpenTelemetrySdk autoConfiguredOpenTelemetrySdk) {
try {
Method method = AutoConfiguredOpenTelemetrySdk.class.getDeclaredMethod("getConfig");
method.setAccessible(true);
return (ConfigProperties) method.invoke(autoConfiguredOpenTelemetrySdk);
} catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) {
throw new IllegalStateException(
"Error calling getConfig on AutoConfiguredOpenTelemetrySdk", e);
}
}
}

View File

@ -0,0 +1,34 @@
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/
package io.opentelemetry.sdk.autoconfigure;
import static java.util.Collections.singletonMap;
import io.opentelemetry.sdk.autoconfigure.internal.AutoConfigureUtil;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
class AutoConfigureUtilTest {
AutoConfiguredOpenTelemetrySdk autoConfiguredOpenTelemetrySdk;
@BeforeEach
void beforeEach() {
autoConfiguredOpenTelemetrySdk =
AutoConfiguredOpenTelemetrySdk.builder()
.addPropertiesSupplier(() -> singletonMap("otel.metrics.exporter", "none"))
.addPropertiesSupplier(() -> singletonMap("otel.traces.exporter", "none"))
.addPropertiesSupplier(() -> singletonMap("otel.logs.exporter", "none"))
.build();
}
@Test
void getConfig() {
Assertions.assertThat(AutoConfigureUtil.getConfig(autoConfiguredOpenTelemetrySdk))
.isSameAs(autoConfiguredOpenTelemetrySdk.getConfig());
}
}