Skip to content

Commit 446a961

Browse files
committed
Revert "Relocate OpenTelemetryLoggingAutoConfiguration and SdkLoggerProviderBuilderCustomizer to an OpenTelemetry-specific package"
This reverts commit 2ca0897. See gh-44647
1 parent 0c32011 commit 446a961

File tree

9 files changed

+48
-190
lines changed

9 files changed

+48
-190
lines changed

Diff for: spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/logging/OpenTelemetryLoggingAutoConfiguration.java

+33-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2025 the original author or authors.
2+
* Copyright 2012-2024 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -16,17 +16,46 @@
1616

1717
package org.springframework.boot.actuate.autoconfigure.logging;
1818

19+
import io.opentelemetry.api.OpenTelemetry;
20+
import io.opentelemetry.sdk.logs.LogRecordProcessor;
21+
import io.opentelemetry.sdk.logs.SdkLoggerProvider;
22+
import io.opentelemetry.sdk.logs.SdkLoggerProviderBuilder;
23+
import io.opentelemetry.sdk.logs.export.BatchLogRecordProcessor;
24+
import io.opentelemetry.sdk.logs.export.LogRecordExporter;
25+
import io.opentelemetry.sdk.resources.Resource;
26+
27+
import org.springframework.beans.factory.ObjectProvider;
28+
import org.springframework.boot.autoconfigure.AutoConfiguration;
1929
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
30+
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
31+
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
32+
import org.springframework.context.annotation.Bean;
2033

2134
/**
2235
* {@link EnableAutoConfiguration Auto-configuration} for OpenTelemetry logging.
2336
*
2437
* @author Toshiaki Maki
2538
* @since 3.4.0
26-
* @deprecated since 3.5.0 for removal in 4.0.0 in favor of
27-
* {@link org.springframework.boot.actuate.autoconfigure.logging.opentelemetry.OpenTelemetryLoggingAutoConfiguration}
2839
*/
29-
@Deprecated(since = "3.4.0", forRemoval = true)
40+
@AutoConfiguration
41+
@ConditionalOnClass({ SdkLoggerProvider.class, OpenTelemetry.class })
3042
public class OpenTelemetryLoggingAutoConfiguration {
3143

44+
@Bean
45+
@ConditionalOnMissingBean
46+
BatchLogRecordProcessor batchLogRecordProcessor(ObjectProvider<LogRecordExporter> logRecordExporters) {
47+
return BatchLogRecordProcessor.builder(LogRecordExporter.composite(logRecordExporters.orderedStream().toList()))
48+
.build();
49+
}
50+
51+
@Bean
52+
@ConditionalOnMissingBean
53+
SdkLoggerProvider otelSdkLoggerProvider(Resource resource, ObjectProvider<LogRecordProcessor> logRecordProcessors,
54+
ObjectProvider<SdkLoggerProviderBuilderCustomizer> customizers) {
55+
SdkLoggerProviderBuilder builder = SdkLoggerProvider.builder().setResource(resource);
56+
logRecordProcessors.orderedStream().forEach(builder::addLogRecordProcessor);
57+
customizers.orderedStream().forEach((customizer) -> customizer.customize(builder));
58+
return builder.build();
59+
}
60+
3261
}

Diff for: spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/logging/SdkLoggerProviderBuilderCustomizer.java

+1-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2025 the original author or authors.
2+
* Copyright 2012-2024 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -25,11 +25,8 @@
2525
*
2626
* @author Toshiaki Maki
2727
* @since 3.4.0
28-
* @deprecated since 3.5.0 for removal in 4.0.0 in favor of
29-
* {@link org.springframework.boot.actuate.autoconfigure.logging.opentelemetry.SdkLoggerProviderBuilderCustomizer}
3028
*/
3129
@FunctionalInterface
32-
@Deprecated(since = "3.5.0", forRemoval = true)
3330
public interface SdkLoggerProviderBuilderCustomizer {
3431

3532
/**

Diff for: spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/logging/opentelemetry/OpenTelemetryLoggingAutoConfiguration.java

-64
This file was deleted.

Diff for: spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/logging/opentelemetry/SdkLoggerProviderBuilderCustomizer.java

-38
This file was deleted.

Diff for: spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/logging/opentelemetry/package-info.java

-20
This file was deleted.

Diff for: spring-boot-project/spring-boot-actuator-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ org.springframework.boot.actuate.autoconfigure.ldap.LdapHealthContributorAutoCon
3434
org.springframework.boot.actuate.autoconfigure.liquibase.LiquibaseEndpointAutoConfiguration
3535
org.springframework.boot.actuate.autoconfigure.logging.LogFileWebEndpointAutoConfiguration
3636
org.springframework.boot.actuate.autoconfigure.logging.LoggersEndpointAutoConfiguration
37-
org.springframework.boot.actuate.autoconfigure.logging.opentelemetry.OpenTelemetryLoggingAutoConfiguration
37+
org.springframework.boot.actuate.autoconfigure.logging.OpenTelemetryLoggingAutoConfiguration
3838
org.springframework.boot.actuate.autoconfigure.logging.otlp.OtlpLoggingAutoConfiguration
3939
org.springframework.boot.actuate.autoconfigure.mail.MailHealthContributorAutoConfiguration
4040
org.springframework.boot.actuate.autoconfigure.management.HeapDumpWebEndpointAutoConfiguration
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
11
org.springframework.boot.actuate.autoconfigure.tracing.OpenTelemetryAutoConfiguration=org.springframework.boot.actuate.autoconfigure.tracing.OpenTelemetryTracingAutoConfiguration
22
org.springframework.boot.actuate.autoconfigure.tracing.otlp.OtlpAutoConfiguration=org.springframework.boot.actuate.autoconfigure.tracing.otlp.OtlpTracingAutoConfiguration
3-
org.springframework.boot.actuate.autoconfigure.logging.OpenTelemetryLoggingAutoConfiguration=org.springframework.boot.actuate.autoconfigure.logging.opentelemetry.OpenTelemetryLoggingAutoConfiguration
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2025 the original author or authors.
2+
* Copyright 2012-2024 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.boot.actuate.autoconfigure.logging.opentelemetry;
17+
package org.springframework.boot.actuate.autoconfigure.logging;
1818

1919
import java.util.Collection;
2020
import java.util.concurrent.atomic.AtomicInteger;
@@ -45,7 +45,6 @@
4545
* Tests for {@link OpenTelemetryLoggingAutoConfiguration}.
4646
*
4747
* @author Toshiaki Maki
48-
* @author Moritz Halbritter
4948
*/
5049
class OpenTelemetryLoggingAutoConfigurationTests {
5150

@@ -121,33 +120,16 @@ void shouldAllowMultipleSdkLoggerProviderBuilderCustomizers() {
121120
});
122121
}
123122

124-
@Test
125-
@SuppressWarnings("removal")
126-
void shouldApplyDeprecatedCustomizers() {
127-
this.contextRunner.withUserConfiguration(DeprecatedSdkLoggerProviderBuilderCustomizerConfig.class)
128-
.run((context) -> {
129-
assertThat(context).hasSingleBean(SdkLoggerProvider.class);
130-
assertThat(context.getBeansOfType(
131-
org.springframework.boot.actuate.autoconfigure.logging.SdkLoggerProviderBuilderCustomizer.class))
132-
.hasSize(1);
133-
assertThat(context).hasBean("deprecatedSdkLoggerProviderBuilderCustomizer");
134-
assertThat(context
135-
.getBean("deprecatedSdkLoggerProviderBuilderCustomizer",
136-
DeprecatedNoopSdkLoggerProviderBuilderCustomizer.class)
137-
.called()).isEqualTo(1);
138-
});
139-
}
140-
141123
@Configuration(proxyBeanMethods = false)
142124
public static class CustomConfig {
143125

144126
@Bean
145-
BatchLogRecordProcessor customBatchLogRecordProcessor() {
127+
public BatchLogRecordProcessor customBatchLogRecordProcessor() {
146128
return BatchLogRecordProcessor.builder(new NoopLogRecordExporter()).build();
147129
}
148130

149131
@Bean
150-
SdkLoggerProvider customSdkLoggerProvider() {
132+
public SdkLoggerProvider customSdkLoggerProvider() {
151133
return SdkLoggerProvider.builder().build();
152134
}
153135

@@ -157,12 +139,12 @@ SdkLoggerProvider customSdkLoggerProvider() {
157139
public static class MultipleLogRecordExportersConfig {
158140

159141
@Bean
160-
LogRecordExporter customLogRecordExporter1() {
142+
public LogRecordExporter customLogRecordExporter1() {
161143
return new NoopLogRecordExporter();
162144
}
163145

164146
@Bean
165-
LogRecordExporter customLogRecordExporter2() {
147+
public LogRecordExporter customLogRecordExporter2() {
166148
return new NoopLogRecordExporter();
167149
}
168150

@@ -172,12 +154,12 @@ LogRecordExporter customLogRecordExporter2() {
172154
public static class MultipleLogRecordProcessorsConfig {
173155

174156
@Bean
175-
LogRecordProcessor customLogRecordProcessor1() {
157+
public LogRecordProcessor customLogRecordProcessor1() {
176158
return new NoopLogRecordProcessor();
177159
}
178160

179161
@Bean
180-
LogRecordProcessor customLogRecordProcessor2() {
162+
public LogRecordProcessor customLogRecordProcessor2() {
181163
return new NoopLogRecordProcessor();
182164
}
183165

@@ -187,27 +169,17 @@ LogRecordProcessor customLogRecordProcessor2() {
187169
public static class MultipleSdkLoggerProviderBuilderCustomizersConfig {
188170

189171
@Bean
190-
SdkLoggerProviderBuilderCustomizer customSdkLoggerProviderBuilderCustomizer1() {
172+
public SdkLoggerProviderBuilderCustomizer customSdkLoggerProviderBuilderCustomizer1() {
191173
return new NoopSdkLoggerProviderBuilderCustomizer();
192174
}
193175

194176
@Bean
195-
SdkLoggerProviderBuilderCustomizer customSdkLoggerProviderBuilderCustomizer2() {
177+
public SdkLoggerProviderBuilderCustomizer customSdkLoggerProviderBuilderCustomizer2() {
196178
return new NoopSdkLoggerProviderBuilderCustomizer();
197179
}
198180

199181
}
200182

201-
@Configuration(proxyBeanMethods = false)
202-
public static class DeprecatedSdkLoggerProviderBuilderCustomizerConfig {
203-
204-
@Bean
205-
DeprecatedNoopSdkLoggerProviderBuilderCustomizer deprecatedSdkLoggerProviderBuilderCustomizer() {
206-
return new DeprecatedNoopSdkLoggerProviderBuilderCustomizer();
207-
}
208-
209-
}
210-
211183
static class NoopLogRecordExporter implements LogRecordExporter {
212184

213185
@Override
@@ -238,24 +210,7 @@ public void onEmit(Context context, ReadWriteLogRecord logRecord) {
238210

239211
static class NoopSdkLoggerProviderBuilderCustomizer implements SdkLoggerProviderBuilderCustomizer {
240212

241-
private final AtomicInteger called = new AtomicInteger(0);
242-
243-
@Override
244-
public void customize(SdkLoggerProviderBuilder builder) {
245-
this.called.incrementAndGet();
246-
}
247-
248-
int called() {
249-
return this.called.get();
250-
}
251-
252-
}
253-
254-
@SuppressWarnings("removal")
255-
static class DeprecatedNoopSdkLoggerProviderBuilderCustomizer
256-
implements org.springframework.boot.actuate.autoconfigure.logging.SdkLoggerProviderBuilderCustomizer {
257-
258-
private final AtomicInteger called = new AtomicInteger(0);
213+
final AtomicInteger called = new AtomicInteger(0);
259214

260215
@Override
261216
public void customize(SdkLoggerProviderBuilder builder) {

Diff for: spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/logging/otlp/OtlpLoggingAutoConfigurationIntegrationTests.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2025 the original author or authors.
2+
* Copyright 2012-2024 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -32,7 +32,7 @@
3232
import org.junit.jupiter.api.BeforeEach;
3333
import org.junit.jupiter.api.Test;
3434

35-
import org.springframework.boot.actuate.autoconfigure.logging.opentelemetry.OpenTelemetryLoggingAutoConfiguration;
35+
import org.springframework.boot.actuate.autoconfigure.logging.OpenTelemetryLoggingAutoConfiguration;
3636
import org.springframework.boot.actuate.autoconfigure.opentelemetry.OpenTelemetryAutoConfiguration;
3737
import org.springframework.boot.autoconfigure.AutoConfigurations;
3838
import org.springframework.boot.test.context.runner.ApplicationContextRunner;

0 commit comments

Comments
 (0)