Skip to content

Commit 97b6cac

Browse files
committed
Instrument NATS agent 'request' method
1 parent 065007d commit 97b6cac

File tree

7 files changed

+990
-15
lines changed

7 files changed

+990
-15
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.javaagent.instrumentation.nats.v2_21;
7+
8+
import io.opentelemetry.context.Context;
9+
import io.opentelemetry.context.Scope;
10+
import java.util.concurrent.CompletableFuture;
11+
12+
public final class CompletableFutureWrapper {
13+
14+
private CompletableFutureWrapper() {}
15+
16+
public static <T> CompletableFuture<T> wrap(CompletableFuture<T> future, Context context) {
17+
CompletableFuture<T> result = new CompletableFuture<>();
18+
future.whenComplete(
19+
(T value, Throwable throwable) -> {
20+
try (Scope ignored = context.makeCurrent()) {
21+
if (throwable != null) {
22+
result.completeExceptionally(throwable);
23+
} else {
24+
result.complete(value);
25+
}
26+
}
27+
});
28+
29+
return result;
30+
}
31+
}

0 commit comments

Comments
 (0)