Skip to content

Commit 5f06de2

Browse files
committed
Adjust API to be only supplier
1 parent 5dbbbc1 commit 5f06de2

File tree

2 files changed

+11
-11
lines changed

2 files changed

+11
-11
lines changed

api/all/src/main/java/io/opentelemetry/api/GlobalOpenTelemetry.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -121,15 +121,13 @@ public static void set(OpenTelemetry openTelemetry) {
121121
/**
122122
* Sets the {@link OpenTelemetry} that should be the global instance.
123123
*
124-
* <p>This method calls the given {@code supplier}, converts the output to an {@link
125-
* OpenTelemetry} object, and finally calls {@link #set(OpenTelemetry)}, all while holding the
124+
* <p>This method calls the given {@code supplier} and calls {@link #set(OpenTelemetry)}, all while holding the
126125
* {@link GlobalOpenTelemetry} mutex.
127126
*/
128-
public static <T> T set(Supplier<T> supplier, Function<T, OpenTelemetry> converter) {
127+
public static void set(Supplier<OpenTelemetry> supplier) {
129128
synchronized (mutex) {
130-
T output = supplier.get();
131-
set(converter.apply(output));
132-
return output;
129+
OpenTelemetry openTelemetry = supplier.get();
130+
set(openTelemetry);
133131
}
134132
}
135133

sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/AutoConfiguredOpenTelemetrySdkBuilder.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import java.util.HashMap;
4242
import java.util.List;
4343
import java.util.Map;
44+
import java.util.concurrent.atomic.AtomicReference;
4445
import java.util.function.BiFunction;
4546
import java.util.function.Function;
4647
import java.util.function.Supplier;
@@ -427,11 +428,12 @@ public AutoConfiguredOpenTelemetrySdk build() {
427428
if (!setResultAsGlobal) {
428429
return buildImpl();
429430
}
430-
AutoConfiguredOpenTelemetrySdk sdk =
431-
GlobalOpenTelemetry.set(
432-
this::buildImpl, AutoConfiguredOpenTelemetrySdk::getOpenTelemetrySdk);
433-
logger.log(Level.FINE, "Global OpenTelemetry set to {0} by autoconfiguration", sdk);
434-
return sdk;
431+
AtomicReference<AutoConfiguredOpenTelemetrySdk> autoConfiguredRef = new AtomicReference<>();
432+
GlobalOpenTelemetry.set(() -> {
433+
autoConfiguredRef.set(buildImpl());
434+
return autoConfiguredRef.get().getOpenTelemetrySdk();
435+
});
436+
return autoConfiguredRef.get();
435437
}
436438

437439
private AutoConfiguredOpenTelemetrySdk buildImpl() {

0 commit comments

Comments
 (0)