diff --git a/aws-junit/src/main/java/zipkin2/junit/aws/AmazonSQSExtension.java b/aws-junit/src/main/java/zipkin2/junit/aws/AmazonSQSExtension.java index 66b7bd68..89f07664 100644 --- a/aws-junit/src/main/java/zipkin2/junit/aws/AmazonSQSExtension.java +++ b/aws-junit/src/main/java/zipkin2/junit/aws/AmazonSQSExtension.java @@ -1,5 +1,5 @@ /* - * Copyright 2016-2023 The OpenZipkin Authors + * Copyright 2016-2024 The OpenZipkin Authors * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at @@ -30,8 +30,7 @@ import org.elasticmq.StrictSQSLimits$; import org.elasticmq.rest.sqs.SQSRestServer; import org.elasticmq.rest.sqs.SQSRestServerBuilder; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; +import org.junit.jupiter.api.extension.AfterEachCallback; import org.junit.jupiter.api.extension.BeforeEachCallback; import org.junit.jupiter.api.extension.ExtensionContext; import zipkin2.Span; @@ -40,7 +39,7 @@ import static java.nio.charset.StandardCharsets.UTF_8; import static java.util.Collections.singletonList; -public class AmazonSQSExtension implements BeforeEachCallback, BeforeAllCallback, AfterAllCallback { +public class AmazonSQSExtension implements BeforeEachCallback, AfterEachCallback { SQSRestServer server; int serverPort; AmazonSQS client; @@ -49,7 +48,7 @@ public class AmazonSQSExtension implements BeforeEachCallback, BeforeAllCallback public AmazonSQSExtension() { } - @Override public void beforeAll(ExtensionContext extensionContext) { + @Override public void beforeEach(ExtensionContext extensionContext) { if (server == null) { server = SQSRestServerBuilder.withDynamicPort().withSQSLimits(StrictSQSLimits$.MODULE$).start(); @@ -64,15 +63,21 @@ public AmazonSQSExtension() { .build(); queueUrl = client.createQueue("zipkin").getQueueUrl(); } + + if (client != null && queueUrl != null) { + client.purgeQueue(new PurgeQueueRequest(queueUrl)); + } } - @Override public void afterAll(ExtensionContext extensionContext) { + @Override public void afterEach(ExtensionContext extensionContext) { if (client != null) { client.shutdown(); + client = null; } if (server == null) { server.stopAndWait(); + server = null; } } @@ -80,12 +85,6 @@ public String queueUrl() { return queueUrl; } - @Override public void beforeEach(ExtensionContext extensionContext) { - if (client != null && queueUrl != null) { - client.purgeQueue(new PurgeQueueRequest(queueUrl)); - } - } - public int queueCount() { String count = client.getQueueAttributes(queueUrl, singletonList("ApproximateNumberOfMessages")) .getAttributes() diff --git a/collector/sqs/src/test/java/zipkin2/collector/sqs/ITSQSCollector.java b/collector/sqs/src/test/java/zipkin2/collector/sqs/ITSQSCollector.java index e2b9fef6..35eaedf7 100644 --- a/collector/sqs/src/test/java/zipkin2/collector/sqs/ITSQSCollector.java +++ b/collector/sqs/src/test/java/zipkin2/collector/sqs/ITSQSCollector.java @@ -1,5 +1,5 @@ /* - * Copyright 2016-2023 The OpenZipkin Authors + * Copyright 2016-2024 The OpenZipkin Authors * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at @@ -16,6 +16,7 @@ import com.amazonaws.auth.AWSStaticCredentialsProvider; import com.amazonaws.auth.BasicAWSCredentials; import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration; + import java.io.IOException; import java.util.ArrayList; import java.util.Base64; @@ -24,7 +25,6 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.TestInstance; import org.junit.jupiter.api.extension.RegisterExtension; import zipkin2.Span; import zipkin2.TestObjects; @@ -40,9 +40,8 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; -@TestInstance(TestInstance.Lifecycle.PER_CLASS) class ITSQSCollector { - @RegisterExtension static AmazonSQSExtension sqs = new AmazonSQSExtension(); + @RegisterExtension AmazonSQSExtension sqs = new AmazonSQSExtension(); List spans = asList( // No unicode or data that doesn't translate between json formats diff --git a/reporter/sender-awssdk-sqs/src/test/java/zipkin2/reporter/awssdk/sqs/SQSAsyncSenderTest.java b/reporter/sender-awssdk-sqs/src/test/java/zipkin2/reporter/awssdk/sqs/SQSAsyncSenderTest.java index c904524f..61bd23f2 100644 --- a/reporter/sender-awssdk-sqs/src/test/java/zipkin2/reporter/awssdk/sqs/SQSAsyncSenderTest.java +++ b/reporter/sender-awssdk-sqs/src/test/java/zipkin2/reporter/awssdk/sqs/SQSAsyncSenderTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2016-2023 The OpenZipkin Authors + * Copyright 2016-2024 The OpenZipkin Authors * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at @@ -18,6 +18,8 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; import java.util.stream.Stream; + +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; @@ -38,9 +40,13 @@ import static zipkin2.TestObjects.CLIENT_SPAN; class SQSAsyncSenderTest { - @RegisterExtension static AmazonSQSExtension sqs = new AmazonSQSExtension(); + @RegisterExtension AmazonSQSExtension sqs = new AmazonSQSExtension(); + + private SqsClient sqsClient; + private SQSSender sender; - SqsClient sqsClient = SqsClient.builder() + @BeforeEach public void setup() { + sqsClient = SqsClient.builder() .httpClient(UrlConnectionHttpClient.create()) .region(Region.US_EAST_1) .endpointOverride(URI.create(sqs.queueUrl())) @@ -48,10 +54,11 @@ class SQSAsyncSenderTest { StaticCredentialsProvider.create(AwsBasicCredentials.create("x", "x"))) .build(); - SQSSender sender = SQSSender.newBuilder() + sender = SQSSender.newBuilder() .queueUrl(sqs.queueUrl()) .sqsClient(sqsClient) .build(); + } @Test void sendsSpans() throws Exception { send(CLIENT_SPAN, CLIENT_SPAN).execute(); diff --git a/reporter/sender-awssdk-sqs/src/test/java/zipkin2/reporter/awssdk/sqs/SQSSenderTest.java b/reporter/sender-awssdk-sqs/src/test/java/zipkin2/reporter/awssdk/sqs/SQSSenderTest.java index ad743d70..d0d63be4 100644 --- a/reporter/sender-awssdk-sqs/src/test/java/zipkin2/reporter/awssdk/sqs/SQSSenderTest.java +++ b/reporter/sender-awssdk-sqs/src/test/java/zipkin2/reporter/awssdk/sqs/SQSSenderTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2016-2023 The OpenZipkin Authors + * Copyright 2016-2024 The OpenZipkin Authors * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at @@ -18,6 +18,8 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; import java.util.stream.Stream; + +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; @@ -38,9 +40,13 @@ import static zipkin2.TestObjects.CLIENT_SPAN; class SQSSenderTest { - @RegisterExtension static AmazonSQSExtension sqs = new AmazonSQSExtension(); + @RegisterExtension AmazonSQSExtension sqs = new AmazonSQSExtension(); + + private SqsClient sqsClient; + private SQSSender sender; - SqsClient sqsClient = SqsClient.builder() + @BeforeEach public void setup() { + sqsClient = SqsClient.builder() .httpClient(UrlConnectionHttpClient.create()) .region(Region.US_EAST_1) .endpointOverride(URI.create(sqs.queueUrl())) @@ -48,10 +54,11 @@ class SQSSenderTest { StaticCredentialsProvider.create(AwsBasicCredentials.create("x", "x"))) .build(); - SQSSender sender = SQSSender.newBuilder() + sender = SQSSender.newBuilder() .queueUrl(sqs.queueUrl()) .sqsClient(sqsClient) .build(); + } @Test void sendsSpans() throws Exception { send(CLIENT_SPAN, CLIENT_SPAN).execute(); diff --git a/reporter/sender-sqs/src/test/java/zipkin2/reporter/sqs/SQSSenderTest.java b/reporter/sender-sqs/src/test/java/zipkin2/reporter/sqs/SQSSenderTest.java index 5efa23cb..ddbff52b 100644 --- a/reporter/sender-sqs/src/test/java/zipkin2/reporter/sqs/SQSSenderTest.java +++ b/reporter/sender-sqs/src/test/java/zipkin2/reporter/sqs/SQSSenderTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2016-2023 The OpenZipkin Authors + * Copyright 2016-2024 The OpenZipkin Authors * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at @@ -20,6 +20,8 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; import java.util.stream.Stream; + +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; import zipkin2.Call; @@ -35,14 +37,18 @@ import static zipkin2.TestObjects.CLIENT_SPAN; class SQSSenderTest { - @RegisterExtension static AmazonSQSExtension sqs = new AmazonSQSExtension(); + @RegisterExtension AmazonSQSExtension sqs = new AmazonSQSExtension(); + + private SQSSender sender; - SQSSender sender = + @BeforeEach public void setup() { + sender = SQSSender.newBuilder() .queueUrl(sqs.queueUrl()) .endpointConfiguration(new EndpointConfiguration(sqs.queueUrl(), "us-east-1")) .credentialsProvider(new AWSStaticCredentialsProvider(new BasicAWSCredentials("x", "x"))) .build(); + } @Test void sendsSpans() throws Exception { send(CLIENT_SPAN, CLIENT_SPAN).execute();