File tree 2 files changed +35
-0
lines changed
dd-java-agent/agent-otel/otel-bootstrap
src/main/java/datadog/trace/bootstrap/otel/context 2 files changed +35
-0
lines changed Original file line number Diff line number Diff line change @@ -72,6 +72,7 @@ shadowJar {
72
72
include ' io/opentelemetry/api/**'
73
73
exclude ' io/opentelemetry/api/incubator/**'
74
74
include ' io/opentelemetry/context/**'
75
+ exclude ' io/opentelemetry/context/StrictContextStorage*'
75
76
exclude ' io/opentelemetry/context/internal/shaded/**'
76
77
include ' io/opentelemetry/semconv/**'
77
78
include ' io/opentelemetry/instrumentation/api/**'
Original file line number Diff line number Diff line change
1
+ package datadog .trace .bootstrap .otel .context ;
2
+
3
+ import io .opentelemetry .context .Context ;
4
+ import io .opentelemetry .context .ContextStorage ;
5
+ import io .opentelemetry .context .Scope ;
6
+
7
+ /**
8
+ * Replaces original class with a simple wrapper to avoid missing reference issue on native-image.
9
+ *
10
+ * <p>The original class is only used for testing purposes when a particular property is set, but
11
+ * native-image follows the reference in {@code LazyStorage} and attempts to load everything it
12
+ * touches, including some types we are not embedding. This simple replacement fixes this issue.
13
+ */
14
+ final class StrictContextStorage implements ContextStorage {
15
+ private final ContextStorage delegate ;
16
+
17
+ static StrictContextStorage create (ContextStorage delegate ) {
18
+ return new StrictContextStorage (delegate );
19
+ }
20
+
21
+ public StrictContextStorage (ContextStorage delegate ) {
22
+ this .delegate = delegate ;
23
+ }
24
+
25
+ @ Override
26
+ public Scope attach (Context context ) {
27
+ return delegate .attach (context );
28
+ }
29
+
30
+ @ Override
31
+ public Context current () {
32
+ return delegate .current ();
33
+ }
34
+ }
You can’t perform that action at this time.
0 commit comments