Skip to content

Commit 4820b95

Browse files
refactor: OpenTelemetry instance as Supplier (#5674)
1 parent f42a9c2 commit 4820b95

3 files changed

Lines changed: 10 additions & 9 deletions

File tree

core/common/boot/src/main/java/org/eclipse/edc/boot/system/ExtensionLoader.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import java.util.List;
3232
import java.util.ServiceLoader;
3333
import java.util.Set;
34+
import java.util.function.Supplier;
3435
import java.util.stream.Collectors;
3536
import java.util.stream.Stream;
3637

@@ -50,11 +51,11 @@ public ExtensionLoader(ServiceLocator serviceLocator) {
5051
return new Telemetry(selectOpenTelemetryImpl(openTelemetries));
5152
}
5253

53-
static @NotNull OpenTelemetry selectOpenTelemetryImpl(List<OpenTelemetry> openTelemetries) {
54+
static @NotNull Supplier<OpenTelemetry> selectOpenTelemetryImpl(List<OpenTelemetry> openTelemetries) {
5455
if (openTelemetries.size() > 1) {
5556
throw new IllegalStateException(String.format("Found %s OpenTelemetry implementations. Please provide only one OpenTelemetry service provider.", openTelemetries.size()));
5657
}
57-
return openTelemetries.isEmpty() ? GlobalOpenTelemetry.get() : openTelemetries.get(0);
58+
return openTelemetries.isEmpty() ? GlobalOpenTelemetry::get : () -> openTelemetries.get(0);
5859
}
5960

6061
/**

core/common/boot/src/test/java/org/eclipse/edc/boot/system/ExtensionLoaderTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ void shouldLoadMonitor_consoleMonitorDefaultLogLevelWhenWrongArgs(String program
125125
void selectOpenTelemetryImpl_whenNoOpenTelemetry() {
126126
var openTelemetry = ExtensionLoader.selectOpenTelemetryImpl(emptyList());
127127

128-
assertThat(openTelemetry).isEqualTo(GlobalOpenTelemetry.get());
128+
assertThat(openTelemetry.get()).isEqualTo(GlobalOpenTelemetry.get());
129129
}
130130

131131
@Test
@@ -134,7 +134,7 @@ void selectOpenTelemetryImpl_whenSingleOpenTelemetry() {
134134

135135
var openTelemetry = ExtensionLoader.selectOpenTelemetryImpl(List.of(customOpenTelemetry));
136136

137-
assertThat(openTelemetry).isSameAs(customOpenTelemetry);
137+
assertThat(openTelemetry.get()).isSameAs(customOpenTelemetry);
138138
}
139139

140140
@Test

spi/common/boot-spi/src/main/java/org/eclipse/edc/spi/telemetry/Telemetry.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,13 @@
3030
*/
3131
public class Telemetry {
3232

33-
private final OpenTelemetry openTelemetry;
33+
private final Supplier<OpenTelemetry> openTelemetry;
3434

3535
public Telemetry() {
36-
this.openTelemetry = OpenTelemetry.noop();
36+
this.openTelemetry = OpenTelemetry::noop;
3737
}
3838

39-
public Telemetry(OpenTelemetry openTelemetry) {
39+
public Telemetry(Supplier<OpenTelemetry> openTelemetry) {
4040
this.openTelemetry = openTelemetry;
4141
}
4242

@@ -47,7 +47,7 @@ public Telemetry(OpenTelemetry openTelemetry) {
4747
*/
4848
public Map<String, String> getCurrentTraceContext() {
4949
Map<String, String> traceContext = new HashMap<>();
50-
openTelemetry.getPropagators().getTextMapPropagator()
50+
openTelemetry.get().getPropagators().getTextMapPropagator()
5151
.inject(Context.current(), traceContext, Map::put);
5252
return traceContext;
5353
}
@@ -105,7 +105,7 @@ public <T> Supplier<T> contextPropagationMiddleware(Supplier<T> delegate, TraceC
105105
}
106106

107107
private Scope propagateTraceContext(TraceCarrier carrier) {
108-
Context extractedContext = openTelemetry.getPropagators().getTextMapPropagator()
108+
Context extractedContext = openTelemetry.get().getPropagators().getTextMapPropagator()
109109
.extract(Context.current(), carrier, new TraceCarrierTextMapGetter());
110110
return extractedContext.makeCurrent();
111111
}

0 commit comments

Comments
 (0)