Skip to content

Commit fefeebd

Browse files
committed
use @BeforeAll over static init
1 parent 6c092ad commit fefeebd

File tree

11 files changed

+67
-73
lines changed

11 files changed

+67
-73
lines changed

instrumentation/nats/nats-2.17/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/nats/v2_17/DispatcherInstrumentation.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,6 @@ public static Scope onEnter() {
4040
// Dispatchers are usually background long-lived threads, we can force root,
4141
// as we're not expecting to be anything else than entry points for network messages.
4242
if (Java8BytecodeBridge.currentContext() != Java8BytecodeBridge.rootContext()) {
43-
// Prevent context from leaking by running this method under root context.
44-
// Root context is not propagated by executor instrumentation.
4543
return Java8BytecodeBridge.rootContext().makeCurrent();
4644
}
4745
return null;

instrumentation/nats/nats-2.17/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/nats/v2_17/SpanFinisher.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import io.opentelemetry.instrumentation.nats.v2_17.internal.NatsRequest;
1313
import java.util.function.BiConsumer;
1414

15-
public class SpanFinisher implements BiConsumer<Message, Throwable> {
15+
public final class SpanFinisher implements BiConsumer<Message, Throwable> {
1616
private final Instrumenter<NatsRequest, NatsRequest> instrumenter;
1717
private final Context context;
1818
private final Connection connection;

instrumentation/nats/nats-2.17/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/nats/v2_17/NatsInstrumentationDispatcherTest.java

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import java.time.Duration;
1515
import java.util.concurrent.TimeoutException;
1616
import org.junit.jupiter.api.AfterAll;
17+
import org.junit.jupiter.api.BeforeAll;
1718
import org.junit.jupiter.api.extension.RegisterExtension;
1819
import org.testcontainers.containers.GenericContainer;
1920
import org.testcontainers.utility.DockerImageName;
@@ -23,23 +24,20 @@ class NatsInstrumentationDispatcherTest extends AbstractNatsInstrumentationDispa
2324
@RegisterExtension
2425
static final InstrumentationExtension testing = AgentInstrumentationExtension.create();
2526

26-
static final DockerImageName natsImage;
27-
static final GenericContainer<?> natsContainer;
28-
static final Connection natsConnection;
27+
static DockerImageName natsImage;
28+
static GenericContainer<?> natsContainer;
29+
static Connection natsConnection;
2930

30-
static {
31+
@BeforeAll
32+
static void beforeAll() throws IOException, InterruptedException {
3133
natsImage = DockerImageName.parse("nats:2.11.2-alpine3.21");
3234

3335
natsContainer = new GenericContainer<>(natsImage).withExposedPorts(4222);
3436
natsContainer.start();
3537

36-
try {
37-
String host = natsContainer.getHost();
38-
Integer port = natsContainer.getMappedPort(4222);
39-
natsConnection = Nats.connect("nats://" + host + ":" + port);
40-
} catch (IOException | InterruptedException e) {
41-
throw new RuntimeException(e);
42-
}
38+
String host = natsContainer.getHost();
39+
Integer port = natsContainer.getMappedPort(4222);
40+
natsConnection = Nats.connect("nats://" + host + ":" + port);
4341
}
4442

4543
@AfterAll

instrumentation/nats/nats-2.17/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/nats/v2_17/NatsInstrumentationExperimentalTest.java

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import java.time.Duration;
1515
import java.util.concurrent.TimeoutException;
1616
import org.junit.jupiter.api.AfterAll;
17+
import org.junit.jupiter.api.BeforeAll;
1718
import org.junit.jupiter.api.extension.RegisterExtension;
1819
import org.testcontainers.containers.GenericContainer;
1920
import org.testcontainers.utility.DockerImageName;
@@ -23,23 +24,20 @@ class NatsInstrumentationExperimentalTest extends AbstractNatsInstrumentationExp
2324
@RegisterExtension
2425
static final InstrumentationExtension testing = AgentInstrumentationExtension.create();
2526

26-
static final DockerImageName natsImage;
27-
static final GenericContainer<?> natsContainer;
28-
static final Connection natsConnection;
27+
static DockerImageName natsImage;
28+
static GenericContainer<?> natsContainer;
29+
static Connection natsConnection;
2930

30-
static {
31+
@BeforeAll
32+
static void beforeAll() throws IOException, InterruptedException {
3133
natsImage = DockerImageName.parse("nats:2.11.2-alpine3.21");
3234

3335
natsContainer = new GenericContainer<>(natsImage).withExposedPorts(4222);
3436
natsContainer.start();
3537

36-
try {
37-
String host = natsContainer.getHost();
38-
Integer port = natsContainer.getMappedPort(4222);
39-
natsConnection = Nats.connect("nats://" + host + ":" + port);
40-
} catch (IOException | InterruptedException e) {
41-
throw new RuntimeException(e);
42-
}
38+
String host = natsContainer.getHost();
39+
Integer port = natsContainer.getMappedPort(4222);
40+
natsConnection = Nats.connect("nats://" + host + ":" + port);
4341
}
4442

4543
@AfterAll

instrumentation/nats/nats-2.17/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/nats/v2_17/NatsInstrumentationPublishTest.java

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import java.time.Duration;
1515
import java.util.concurrent.TimeoutException;
1616
import org.junit.jupiter.api.AfterAll;
17+
import org.junit.jupiter.api.BeforeAll;
1718
import org.junit.jupiter.api.extension.RegisterExtension;
1819
import org.testcontainers.containers.GenericContainer;
1920
import org.testcontainers.utility.DockerImageName;
@@ -23,23 +24,20 @@ class NatsInstrumentationPublishTest extends AbstractNatsInstrumentationPublishT
2324
@RegisterExtension
2425
static final InstrumentationExtension testing = AgentInstrumentationExtension.create();
2526

26-
static final DockerImageName natsImage;
27-
static final GenericContainer<?> natsContainer;
28-
static final Connection natsConnection;
27+
static DockerImageName natsImage;
28+
static GenericContainer<?> natsContainer;
29+
static Connection natsConnection;
2930

30-
static {
31+
@BeforeAll
32+
static void beforeAll() throws IOException, InterruptedException {
3133
natsImage = DockerImageName.parse("nats:2.11.2-alpine3.21");
3234

3335
natsContainer = new GenericContainer<>(natsImage).withExposedPorts(4222);
3436
natsContainer.start();
3537

36-
try {
37-
String host = natsContainer.getHost();
38-
Integer port = natsContainer.getMappedPort(4222);
39-
natsConnection = Nats.connect("nats://" + host + ":" + port);
40-
} catch (IOException | InterruptedException e) {
41-
throw new RuntimeException(e);
42-
}
38+
String host = natsContainer.getHost();
39+
Integer port = natsContainer.getMappedPort(4222);
40+
natsConnection = Nats.connect("nats://" + host + ":" + port);
4341
}
4442

4543
@AfterAll

instrumentation/nats/nats-2.17/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/nats/v2_17/NatsInstrumentationRequestTest.java

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import java.time.Duration;
1515
import java.util.concurrent.TimeoutException;
1616
import org.junit.jupiter.api.AfterAll;
17+
import org.junit.jupiter.api.BeforeAll;
1718
import org.junit.jupiter.api.extension.RegisterExtension;
1819
import org.testcontainers.containers.GenericContainer;
1920
import org.testcontainers.utility.DockerImageName;
@@ -23,23 +24,20 @@ class NatsInstrumentationRequestTest extends AbstractNatsInstrumentationRequestT
2324
@RegisterExtension
2425
static final InstrumentationExtension testing = AgentInstrumentationExtension.create();
2526

26-
static final DockerImageName natsImage;
27-
static final GenericContainer<?> natsContainer;
28-
static final Connection natsConnection;
27+
static DockerImageName natsImage;
28+
static GenericContainer<?> natsContainer;
29+
static Connection natsConnection;
2930

30-
static {
31+
@BeforeAll
32+
static void beforeAll() throws IOException, InterruptedException {
3133
natsImage = DockerImageName.parse("nats:2.11.2-alpine3.21");
3234

3335
natsContainer = new GenericContainer<>(natsImage).withExposedPorts(4222);
3436
natsContainer.start();
3537

36-
try {
37-
String host = natsContainer.getHost();
38-
Integer port = natsContainer.getMappedPort(4222);
39-
natsConnection = Nats.connect("nats://" + host + ":" + port);
40-
} catch (IOException | InterruptedException e) {
41-
throw new RuntimeException(e);
42-
}
38+
String host = natsContainer.getHost();
39+
Integer port = natsContainer.getMappedPort(4222);
40+
natsConnection = Nats.connect("nats://" + host + ":" + port);
4341
}
4442

4543
@AfterAll

instrumentation/nats/nats-2.17/library/src/main/java/io/opentelemetry/instrumentation/nats/v2_17/OpenTelemetryConnection.java

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -79,14 +79,10 @@ public Object invoke(Object proxy, Method method, Object[] args) throws Throwabl
7979
return closeDispatcher(method, args);
8080
}
8181

82-
try {
83-
return method.invoke(delegate, args);
84-
} catch (InvocationTargetException e) {
85-
throw e.getCause();
86-
}
82+
return invokeMethod(method, delegate, args);
8783
}
8884

89-
private static Object invokeProxyMethod(Method method, Object target, Object[] args)
85+
private static Object invokeMethod(Method method, Object target, Object[] args)
9086
throws Throwable {
9187
try {
9288
return method.invoke(target, args);
@@ -134,12 +130,12 @@ private Object publish(Method method, Object[] args) throws Throwable {
134130
Context parentContext = Context.current();
135131

136132
if (natsRequest == null || !producerInstrumenter.shouldStart(parentContext, natsRequest)) {
137-
return invokeProxyMethod(method, delegate, args);
133+
return invokeMethod(method, delegate, args);
138134
}
139135

140136
Context context = producerInstrumenter.start(parentContext, natsRequest);
141137
try (Scope ignored = context.makeCurrent()) {
142-
return invokeProxyMethod(method, delegate, args);
138+
return invokeMethod(method, delegate, args);
143139
} finally {
144140
producerInstrumenter.end(context, natsRequest, null, null);
145141
}
@@ -169,15 +165,15 @@ private Message request(Method method, Object[] args) throws Throwable {
169165
Context parentContext = Context.current();
170166

171167
if (natsRequest == null || !producerInstrumenter.shouldStart(parentContext, natsRequest)) {
172-
return (Message) invokeProxyMethod(method, delegate, args);
168+
return (Message) invokeMethod(method, delegate, args);
173169
}
174170

175171
Context context = producerInstrumenter.start(parentContext, natsRequest);
176172
TimeoutException timeout = null;
177173
NatsRequest response = null;
178174

179175
try (Scope ignored = context.makeCurrent()) {
180-
Message message = (Message) invokeProxyMethod(method, delegate, args);
176+
Message message = (Message) invokeMethod(method, delegate, args);
181177

182178
if (message == null) {
183179
timeout = new TimeoutException("Timed out waiting for message");
@@ -220,13 +216,13 @@ private CompletableFuture<Message> requestAsync(Method method, Object[] args) th
220216
Context parentContext = Context.current();
221217

222218
if (natsRequest == null || !producerInstrumenter.shouldStart(parentContext, natsRequest)) {
223-
return (CompletableFuture<Message>) invokeProxyMethod(method, delegate, args);
219+
return (CompletableFuture<Message>) invokeMethod(method, delegate, args);
224220
}
225221

226222
NatsRequest notNullNatsRequest = natsRequest;
227223
Context context = producerInstrumenter.start(parentContext, notNullNatsRequest);
228224

229-
return ((CompletableFuture<Message>) invokeProxyMethod(method, delegate, args))
225+
return ((CompletableFuture<Message>) invokeMethod(method, delegate, args))
230226
.whenComplete(
231227
(message, exception) -> {
232228
if (message != null) {
@@ -247,7 +243,7 @@ private Dispatcher createDispatcher(Method method, Object[] args) throws Throwab
247243
(MessageHandler) args[0], consumerReceiveInstrumenter, consumerProcessInstrumenter);
248244
}
249245

250-
Dispatcher wrapped = (Dispatcher) invokeProxyMethod(method, delegate, args);
246+
Dispatcher wrapped = (Dispatcher) invokeMethod(method, delegate, args);
251247
return OpenTelemetryDispatcher.wrap(
252248
wrapped, consumerReceiveInstrumenter, consumerProcessInstrumenter);
253249
}
@@ -260,6 +256,6 @@ private Object closeDispatcher(Method method, Object[] args) throws Throwable {
260256
args[0] = ((OpenTelemetryDispatcher) Proxy.getInvocationHandler(args[0])).getDelegate();
261257
}
262258

263-
return invokeProxyMethod(method, delegate, args);
259+
return invokeMethod(method, delegate, args);
264260
}
265261
}

instrumentation/nats/nats-2.17/library/src/test/java/io/opentelemetry/instrumentation/nats/v2_17/NatsInstrumentationDispatcherTest.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,19 @@
88
import io.nats.client.Connection;
99
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
1010
import io.opentelemetry.instrumentation.testing.junit.LibraryInstrumentationExtension;
11+
import org.junit.jupiter.api.BeforeAll;
1112
import org.junit.jupiter.api.extension.RegisterExtension;
1213

1314
class NatsInstrumentationDispatcherTest extends AbstractNatsInstrumentationDispatcherTest {
1415

1516
@RegisterExtension
1617
static final InstrumentationExtension testing = LibraryInstrumentationExtension.create();
1718

18-
static final NatsTelemetry telemetry;
19-
static final Connection natsConnection;
19+
static NatsTelemetry telemetry;
20+
static Connection natsConnection;
2021

21-
static {
22+
@BeforeAll
23+
static void beforeAll() {
2224
telemetry = NatsTelemetry.create(testing.getOpenTelemetry());
2325
natsConnection = telemetry.wrap(new TestConnection());
2426
}

instrumentation/nats/nats-2.17/library/src/test/java/io/opentelemetry/instrumentation/nats/v2_17/NatsInstrumentationExperimentalTest.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,19 @@
1010
import io.nats.client.Connection;
1111
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
1212
import io.opentelemetry.instrumentation.testing.junit.LibraryInstrumentationExtension;
13+
import org.junit.jupiter.api.BeforeAll;
1314
import org.junit.jupiter.api.extension.RegisterExtension;
1415

1516
class NatsInstrumentationExperimentalTest extends AbstractNatsInstrumentationExperimentalTest {
1617

1718
@RegisterExtension
1819
static final InstrumentationExtension testing = LibraryInstrumentationExtension.create();
1920

20-
static final NatsTelemetry telemetry;
21-
static final Connection natsConnection;
21+
static NatsTelemetry telemetry;
22+
static Connection natsConnection;
2223

23-
static {
24+
@BeforeAll
25+
static void beforeAll() {
2426
telemetry =
2527
NatsTelemetry.builder(testing.getOpenTelemetry())
2628
.setMessagingReceiveInstrumentationEnabled(true)

instrumentation/nats/nats-2.17/library/src/test/java/io/opentelemetry/instrumentation/nats/v2_17/NatsInstrumentationPublishTest.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,19 @@
88
import io.nats.client.Connection;
99
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
1010
import io.opentelemetry.instrumentation.testing.junit.LibraryInstrumentationExtension;
11+
import org.junit.jupiter.api.BeforeAll;
1112
import org.junit.jupiter.api.extension.RegisterExtension;
1213

1314
class NatsInstrumentationPublishTest extends AbstractNatsInstrumentationPublishTest {
1415

1516
@RegisterExtension
1617
static final InstrumentationExtension testing = LibraryInstrumentationExtension.create();
1718

18-
static final NatsTelemetry telemetry;
19-
static final Connection natsConnection;
19+
static NatsTelemetry telemetry;
20+
static Connection natsConnection;
2021

21-
static {
22+
@BeforeAll
23+
static void beforeAll() {
2224
telemetry = NatsTelemetry.create(testing.getOpenTelemetry());
2325
natsConnection = telemetry.wrap(new TestConnection());
2426
}

0 commit comments

Comments
 (0)