diff --git a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkBuilder.java b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkBuilder.java index e5e2c37a4a1..c4900f6d92a 100644 --- a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkBuilder.java +++ b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkBuilder.java @@ -582,7 +582,7 @@ private static AutoConfiguredOpenTelemetrySdk maybeConfigureFromFile( String configurationFile = config.getString("otel.config.file"); if (configurationFile == null || configurationFile.isEmpty()) { configurationFile = config.getString("otel.experimental.config.file"); - if (configurationFile == null || configurationFile.isEmpty()) { + if (configurationFile != null && !configurationFile.isEmpty()) { logger.warning( "otel.experimental.config.file is deprecated and will be removed after 1.62.0 release. Please use otel.config.file instead."); } diff --git a/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/DeclarativeConfigurationTest.java b/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/DeclarativeConfigurationTest.java index f44cd3af2ba..1e9ad130c81 100644 --- a/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/DeclarativeConfigurationTest.java +++ b/sdk-extensions/autoconfigure/src/test/java/io/opentelemetry/sdk/autoconfigure/DeclarativeConfigurationTest.java @@ -5,8 +5,10 @@ package io.opentelemetry.sdk.autoconfigure; +import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; +import io.github.netmikey.logunit.api.LogCapturer; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException; import io.opentelemetry.sdk.autoconfigure.spi.internal.DefaultConfigProperties; @@ -15,11 +17,18 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.Collections; +import java.util.HashMap; +import java.util.Map; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; import org.junit.jupiter.api.io.TempDir; class DeclarativeConfigurationTest { + @RegisterExtension + LogCapturer logs = + LogCapturer.create().captureForType(AutoConfiguredOpenTelemetrySdkBuilder.class); + @Test void configFile(@TempDir Path tempDir) throws IOException { String yaml = @@ -44,4 +53,17 @@ void configFile(@TempDir Path tempDir) throws IOException { .hasMessage( "Cannot autoconfigure from config file without opentelemetry-sdk-extension-incubator on the classpath"); } + + @Test + void noLogMessages_whenBuildingWithDefaults() { + Map props = new HashMap<>(); + props.put("otel.metrics.exporter", "none"); + props.put("otel.traces.exporter", "none"); + props.put("otel.logs.exporter", "none"); + AutoConfiguredOpenTelemetrySdk sdk = + AutoConfiguredOpenTelemetrySdk.builder().addPropertiesSupplier(() -> props).build(); + sdk.getOpenTelemetrySdk().shutdown(); + + assertThat(logs.getEvents()).isEmpty(); + } }