This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-examples.git


The following commit(s) were added to refs/heads/main by this push:
     new 0c04f26  Simplify the tests by using the testcontainers' extension
0c04f26 is described below

commit 0c04f263aa72cc45dd758b6db190d63123e3129f
Author: Nicolas Filotto <[email protected]>
AuthorDate: Mon Feb 21 13:16:14 2022 +0100

    Simplify the tests by using the testcontainers' extension
---
 .../org/apache/camel/example/AwsS3KafkaTest.java   | 40 ++++-------
 .../java/org/apache/camel/example/AwsS3Test.java   | 30 +++-----
 .../java/org/apache/camel/example/AwsS3Test.java   | 31 +++------
 .../java/org/apache/camel/example/AwsSQSTest.java  | 34 +++------
 .../org/apache/camel/example/KafkaAwsS3Test.java   | 40 ++++-------
 .../org/apache/camel/example/KafkaAwsS3Test.java   | 40 ++++-------
 examples/aws/pom.xml                               |  6 ++
 examples/couchbase-log/pom.xml                     |  6 ++
 .../org/apache/camel/example/CouchbaseTest.java    | 65 +++++++++--------
 examples/debezium/pom.xml                          |  6 ++
 .../camel/example/debezium/DebeziumTest.java       | 81 +++++++++++-----------
 examples/kafka/pom.xml                             |  6 ++
 .../org/apache/camel/example/kafka/KafkaTest.java  | 24 ++-----
 examples/mongodb/pom.xml                           |  6 ++
 .../apache/camel/example/mongodb/MongoDBTest.java  | 22 ++----
 examples/vertx-kafka/pom.xml                       |  6 ++
 .../camel/example/vertx/kafka/VertxKafkaTest.java  | 24 ++-----
 17 files changed, 197 insertions(+), 270 deletions(-)

diff --git 
a/examples/aws/main-endpointdsl-aws2-s3-kafka/src/test/java/org/apache/camel/example/AwsS3KafkaTest.java
 
b/examples/aws/main-endpointdsl-aws2-s3-kafka/src/test/java/org/apache/camel/example/AwsS3KafkaTest.java
index 9c031b8..8b22514 100644
--- 
a/examples/aws/main-endpointdsl-aws2-s3-kafka/src/test/java/org/apache/camel/example/AwsS3KafkaTest.java
+++ 
b/examples/aws/main-endpointdsl-aws2-s3-kafka/src/test/java/org/apache/camel/example/AwsS3KafkaTest.java
@@ -26,12 +26,12 @@ import org.apache.camel.component.aws2.s3.AWS2S3Component;
 import org.apache.camel.component.aws2.s3.AWS2S3Constants;
 import org.apache.camel.main.MainConfigurationProperties;
 import org.apache.camel.test.main.junit5.CamelMainTestSupport;
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 import org.testcontainers.containers.KafkaContainer;
 import org.testcontainers.containers.localstack.LocalStackContainer;
 import org.testcontainers.containers.wait.strategy.Wait;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
 import org.testcontainers.utility.DockerImageName;
 import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
 import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
@@ -45,32 +45,18 @@ import static 
org.testcontainers.containers.localstack.LocalStackContainer.Servi
 /**
  * A unit test checking that Camel can poll an Amazon S3 bucket and put the 
data into a Kafka topic.
  */
+@Testcontainers
 class AwsS3KafkaTest extends CamelMainTestSupport {
 
     private static final String AWS_IMAGE = "localstack/localstack:0.13.3";
     private static final String KAFKA_IMAGE = "confluentinc/cp-kafka:6.2.2";
-    private static LocalStackContainer AWS_CONTAINER;
-    private static KafkaContainer KAFKA_CONTAINER;
 
-    @BeforeAll
-    static void init() {
-        AWS_CONTAINER = new 
LocalStackContainer(DockerImageName.parse(AWS_IMAGE))
-                .withServices(S3)
-                .waitingFor(Wait.forLogMessage(".*Ready\\.\n", 1));;
-        AWS_CONTAINER.start();
-        KAFKA_CONTAINER = new 
KafkaContainer(DockerImageName.parse(KAFKA_IMAGE));
-        KAFKA_CONTAINER.start();
-    }
-
-    @AfterAll
-    static void destroy() {
-        if (AWS_CONTAINER != null) {
-            AWS_CONTAINER.stop();
-        }
-        if (KAFKA_CONTAINER != null) {
-            KAFKA_CONTAINER.stop();
-        }
-    }
+    @Container
+    private final LocalStackContainer awsContainer = new 
LocalStackContainer(DockerImageName.parse(AWS_IMAGE))
+            .withServices(S3)
+            .waitingFor(Wait.forLogMessage(".*Ready\\.\n", 1));
+    @Container
+    private final KafkaContainer kafkaContainer = new 
KafkaContainer(DockerImageName.parse(KAFKA_IMAGE));
 
     @Override
     protected CamelContext createCamelContext() throws Exception {
@@ -78,13 +64,13 @@ class AwsS3KafkaTest extends CamelMainTestSupport {
         AWS2S3Component s3 = camelContext.getComponent("aws2-s3", 
AWS2S3Component.class);
         s3.getConfiguration().setAmazonS3Client(
                 S3Client.builder()
-                .endpointOverride(AWS_CONTAINER.getEndpointOverride(S3))
+                .endpointOverride(awsContainer.getEndpointOverride(S3))
                 .credentialsProvider(
                     StaticCredentialsProvider.create(
-                        
AwsBasicCredentials.create(AWS_CONTAINER.getAccessKey(), 
AWS_CONTAINER.getSecretKey())
+                        
AwsBasicCredentials.create(awsContainer.getAccessKey(), 
awsContainer.getSecretKey())
                     )
                 )
-                .region(Region.of(AWS_CONTAINER.getRegion()))
+                .region(Region.of(awsContainer.getRegion()))
                 .build()
         );
         return camelContext;
@@ -93,7 +79,7 @@ class AwsS3KafkaTest extends CamelMainTestSupport {
     @Override
     protected Properties useOverridePropertiesWithPropertiesComponent() {
         return asProperties(
-            "kafkaBrokers", String.format("%s:%d", KAFKA_CONTAINER.getHost(), 
KAFKA_CONTAINER.getMappedPort(9093))
+            "kafkaBrokers", String.format("%s:%d", kafkaContainer.getHost(), 
kafkaContainer.getMappedPort(9093))
         );
     }
 
diff --git 
a/examples/aws/main-endpointdsl-aws2-s3/src/test/java/org/apache/camel/example/AwsS3Test.java
 
b/examples/aws/main-endpointdsl-aws2-s3/src/test/java/org/apache/camel/example/AwsS3Test.java
index 9fd16ce..48bf872 100644
--- 
a/examples/aws/main-endpointdsl-aws2-s3/src/test/java/org/apache/camel/example/AwsS3Test.java
+++ 
b/examples/aws/main-endpointdsl-aws2-s3/src/test/java/org/apache/camel/example/AwsS3Test.java
@@ -25,11 +25,11 @@ import org.apache.camel.component.aws2.s3.AWS2S3Component;
 import org.apache.camel.component.aws2.s3.AWS2S3Constants;
 import org.apache.camel.main.MainConfigurationProperties;
 import org.apache.camel.test.main.junit5.CamelMainTestSupport;
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 import org.testcontainers.containers.localstack.LocalStackContainer;
 import org.testcontainers.containers.wait.strategy.Wait;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
 import org.testcontainers.utility.DockerImageName;
 import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
 import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
@@ -42,25 +42,15 @@ import static 
org.testcontainers.containers.localstack.LocalStackContainer.Servi
 /**
  * A unit test checking that Camel can poll an Amazon S3 bucket.
  */
+@Testcontainers
 class AwsS3Test extends CamelMainTestSupport {
 
     private static final String IMAGE = "localstack/localstack:0.13.3";
-    private static LocalStackContainer CONTAINER;
 
-    @BeforeAll
-    static void init() {
-        CONTAINER = new LocalStackContainer(DockerImageName.parse(IMAGE))
-                .withServices(S3)
-                .waitingFor(Wait.forLogMessage(".*Ready\\.\n", 1));;
-        CONTAINER.start();
-    }
-
-    @AfterAll
-    static void destroy() {
-        if (CONTAINER != null) {
-            CONTAINER.stop();
-        }
-    }
+    @Container
+    private final LocalStackContainer container = new 
LocalStackContainer(DockerImageName.parse(IMAGE))
+            .withServices(S3)
+            .waitingFor(Wait.forLogMessage(".*Ready\\.\n", 1));
 
     @Override
     protected CamelContext createCamelContext() throws Exception {
@@ -68,13 +58,13 @@ class AwsS3Test extends CamelMainTestSupport {
         AWS2S3Component s3 = camelContext.getComponent("aws2-s3", 
AWS2S3Component.class);
         s3.getConfiguration().setAmazonS3Client(
                 S3Client.builder()
-                .endpointOverride(CONTAINER.getEndpointOverride(S3))
+                .endpointOverride(container.getEndpointOverride(S3))
                 .credentialsProvider(
                     StaticCredentialsProvider.create(
-                        AwsBasicCredentials.create(CONTAINER.getAccessKey(), 
CONTAINER.getSecretKey())
+                        AwsBasicCredentials.create(container.getAccessKey(), 
container.getSecretKey())
                     )
                 )
-                .region(Region.of(CONTAINER.getRegion()))
+                .region(Region.of(container.getRegion()))
                 .build()
         );
         return camelContext;
diff --git 
a/examples/aws/main-endpointdsl-aws2/aws2-s3-events-inject/src/test/java/org/apache/camel/example/AwsS3Test.java
 
b/examples/aws/main-endpointdsl-aws2/aws2-s3-events-inject/src/test/java/org/apache/camel/example/AwsS3Test.java
index a54d130..01ad71c 100644
--- 
a/examples/aws/main-endpointdsl-aws2/aws2-s3-events-inject/src/test/java/org/apache/camel/example/AwsS3Test.java
+++ 
b/examples/aws/main-endpointdsl-aws2/aws2-s3-events-inject/src/test/java/org/apache/camel/example/AwsS3Test.java
@@ -22,13 +22,12 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.builder.NotifyBuilder;
 import org.apache.camel.component.aws2.s3.AWS2S3Component;
 import org.apache.camel.main.MainConfigurationProperties;
-import org.apache.camel.spi.Registry;
 import org.apache.camel.test.main.junit5.CamelMainTestSupport;
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 import org.testcontainers.containers.localstack.LocalStackContainer;
 import org.testcontainers.containers.wait.strategy.Wait;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
 import org.testcontainers.utility.DockerImageName;
 import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
 import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
@@ -41,25 +40,15 @@ import static 
org.testcontainers.containers.localstack.LocalStackContainer.Servi
 /**
  * A unit test checking that Camel can store content into an Amazon S3 bucket.
  */
+@Testcontainers
 class AwsS3Test extends CamelMainTestSupport {
 
     private static final String IMAGE = "localstack/localstack:0.13.3";
-    private static LocalStackContainer CONTAINER;
 
-    @BeforeAll
-    static void init() {
-        CONTAINER = new LocalStackContainer(DockerImageName.parse(IMAGE))
-                .withServices(S3)
-                .waitingFor(Wait.forLogMessage(".*Ready\\.\n", 1));;
-        CONTAINER.start();
-    }
-
-    @AfterAll
-    static void destroy() {
-        if (CONTAINER != null) {
-            CONTAINER.stop();
-        }
-    }
+    @Container
+    private final LocalStackContainer container = new 
LocalStackContainer(DockerImageName.parse(IMAGE))
+            .withServices(S3)
+            .waitingFor(Wait.forLogMessage(".*Ready\\.\n", 1));
 
     @Override
     protected CamelContext createCamelContext() throws Exception {
@@ -67,13 +56,13 @@ class AwsS3Test extends CamelMainTestSupport {
         AWS2S3Component s3 = camelContext.getComponent("aws2-s3", 
AWS2S3Component.class);
         s3.getConfiguration().setAmazonS3Client(
                 S3Client.builder()
-                .endpointOverride(CONTAINER.getEndpointOverride(S3))
+                .endpointOverride(container.getEndpointOverride(S3))
                 .credentialsProvider(
                     StaticCredentialsProvider.create(
-                        AwsBasicCredentials.create(CONTAINER.getAccessKey(), 
CONTAINER.getSecretKey())
+                        AwsBasicCredentials.create(container.getAccessKey(), 
container.getSecretKey())
                     )
                 )
-                .region(Region.of(CONTAINER.getRegion()))
+                .region(Region.of(container.getRegion()))
                 .build()
         );
         return camelContext;
diff --git 
a/examples/aws/main-endpointdsl-aws2/aws2-sqs-consumer/src/test/java/org/apache/camel/example/AwsSQSTest.java
 
b/examples/aws/main-endpointdsl-aws2/aws2-sqs-consumer/src/test/java/org/apache/camel/example/AwsSQSTest.java
index 8d396fd..46a1ec6 100644
--- 
a/examples/aws/main-endpointdsl-aws2/aws2-sqs-consumer/src/test/java/org/apache/camel/example/AwsSQSTest.java
+++ 
b/examples/aws/main-endpointdsl-aws2/aws2-sqs-consumer/src/test/java/org/apache/camel/example/AwsSQSTest.java
@@ -24,11 +24,11 @@ import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.aws2.sqs.Sqs2Component;
 import org.apache.camel.main.MainConfigurationProperties;
 import org.apache.camel.test.main.junit5.CamelMainTestSupport;
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 import org.testcontainers.containers.localstack.LocalStackContainer;
 import org.testcontainers.containers.wait.strategy.Wait;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
 import org.testcontainers.utility.DockerImageName;
 import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
 import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
@@ -41,25 +41,15 @@ import static 
org.testcontainers.containers.localstack.LocalStackContainer.Servi
 /**
  * A unit test checking that Camel can consume messages from Amazon SQS.
  */
+@Testcontainers
 class AwsSQSTest extends CamelMainTestSupport {
 
     private static final String IMAGE = "localstack/localstack:0.13.3";
-    private static LocalStackContainer CONTAINER;
 
-    @BeforeAll
-    static void init() {
-        CONTAINER = new LocalStackContainer(DockerImageName.parse(IMAGE))
-                .withServices(SQS)
-                .waitingFor(Wait.forLogMessage(".*Ready\\.\n", 1));;
-        CONTAINER.start();
-    }
-
-    @AfterAll
-    static void destroy() {
-        if (CONTAINER != null) {
-            CONTAINER.stop();
-        }
-    }
+    @Container
+    private final LocalStackContainer container = new 
LocalStackContainer(DockerImageName.parse(IMAGE))
+            .withServices(SQS)
+            .waitingFor(Wait.forLogMessage(".*Ready\\.\n", 1));
 
     @Override
     protected CamelContext createCamelContext() throws Exception {
@@ -67,13 +57,13 @@ class AwsSQSTest extends CamelMainTestSupport {
         Sqs2Component sqs = camelContext.getComponent("aws2-sqs", 
Sqs2Component.class);
         sqs.getConfiguration().setAmazonSQSClient(
                 SqsClient.builder()
-                .endpointOverride(CONTAINER.getEndpointOverride(SQS))
+                .endpointOverride(container.getEndpointOverride(SQS))
                 .credentialsProvider(
                     StaticCredentialsProvider.create(
-                        AwsBasicCredentials.create(CONTAINER.getAccessKey(), 
CONTAINER.getSecretKey())
+                        AwsBasicCredentials.create(container.getAccessKey(), 
container.getSecretKey())
                     )
                 )
-                .region(Region.of(CONTAINER.getRegion()))
+                .region(Region.of(container.getRegion()))
                 .build()
         );
         return camelContext;
@@ -82,9 +72,7 @@ class AwsSQSTest extends CamelMainTestSupport {
     @Test
     void should_poll_sqs_queue() {
         // Add a message first
-        template.send("direct:publishMessage", exchange -> {
-            exchange.getIn().setBody("Camel rocks!");
-        });
+        template.send("direct:publishMessage", exchange -> 
exchange.getIn().setBody("Camel rocks!"));
 
         NotifyBuilder notify = new 
NotifyBuilder(context).from("aws2-sqs:*").whenCompleted(1).create();
         assertTrue(
diff --git 
a/examples/aws/main-endpointdsl-kafka-aws2-s3-restarting-policy/src/test/java/org/apache/camel/example/KafkaAwsS3Test.java
 
b/examples/aws/main-endpointdsl-kafka-aws2-s3-restarting-policy/src/test/java/org/apache/camel/example/KafkaAwsS3Test.java
index 8db62bd..b96fc05 100644
--- 
a/examples/aws/main-endpointdsl-kafka-aws2-s3-restarting-policy/src/test/java/org/apache/camel/example/KafkaAwsS3Test.java
+++ 
b/examples/aws/main-endpointdsl-kafka-aws2-s3-restarting-policy/src/test/java/org/apache/camel/example/KafkaAwsS3Test.java
@@ -25,12 +25,12 @@ import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.aws2.s3.AWS2S3Component;
 import org.apache.camel.main.MainConfigurationProperties;
 import org.apache.camel.test.main.junit5.CamelMainTestSupport;
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 import org.testcontainers.containers.KafkaContainer;
 import org.testcontainers.containers.localstack.LocalStackContainer;
 import org.testcontainers.containers.wait.strategy.Wait;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
 import org.testcontainers.utility.DockerImageName;
 import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
 import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
@@ -44,32 +44,18 @@ import static 
org.testcontainers.containers.localstack.LocalStackContainer.Servi
 /**
  * A unit test checking that Camel can poll data from a Kafka topic and put it 
into an Amazon S3 bucket.
  */
+@Testcontainers
 class KafkaAwsS3Test extends CamelMainTestSupport {
 
     private static final String AWS_IMAGE = "localstack/localstack:0.13.3";
     private static final String KAFKA_IMAGE = "confluentinc/cp-kafka:6.2.2";
-    private static LocalStackContainer AWS_CONTAINER;
-    private static KafkaContainer KAFKA_CONTAINER;
 
-    @BeforeAll
-    static void init() {
-        AWS_CONTAINER = new 
LocalStackContainer(DockerImageName.parse(AWS_IMAGE))
-                .withServices(S3)
-                .waitingFor(Wait.forLogMessage(".*Ready\\.\n", 1));
-        AWS_CONTAINER.start();
-        KAFKA_CONTAINER = new 
KafkaContainer(DockerImageName.parse(KAFKA_IMAGE));
-        KAFKA_CONTAINER.start();
-    }
-
-    @AfterAll
-    static void destroy() {
-        if (AWS_CONTAINER != null) {
-            AWS_CONTAINER.stop();
-        }
-        if (KAFKA_CONTAINER != null) {
-            KAFKA_CONTAINER.stop();
-        }
-    }
+    @Container
+    private final LocalStackContainer awsContainer = new 
LocalStackContainer(DockerImageName.parse(AWS_IMAGE))
+            .withServices(S3)
+            .waitingFor(Wait.forLogMessage(".*Ready\\.\n", 1));
+    @Container
+    private final KafkaContainer kafkaContainer = new 
KafkaContainer(DockerImageName.parse(KAFKA_IMAGE));
 
     @Override
     protected CamelContext createCamelContext() throws Exception {
@@ -77,13 +63,13 @@ class KafkaAwsS3Test extends CamelMainTestSupport {
         AWS2S3Component s3 = camelContext.getComponent("aws2-s3", 
AWS2S3Component.class);
         s3.getConfiguration().setAmazonS3Client(
                 S3Client.builder()
-                .endpointOverride(AWS_CONTAINER.getEndpointOverride(S3))
+                .endpointOverride(awsContainer.getEndpointOverride(S3))
                 .credentialsProvider(
                     StaticCredentialsProvider.create(
-                        
AwsBasicCredentials.create(AWS_CONTAINER.getAccessKey(), 
AWS_CONTAINER.getSecretKey())
+                        
AwsBasicCredentials.create(awsContainer.getAccessKey(), 
awsContainer.getSecretKey())
                     )
                 )
-                .region(Region.of(AWS_CONTAINER.getRegion()))
+                .region(Region.of(awsContainer.getRegion()))
                 .build()
         );
         return camelContext;
@@ -92,7 +78,7 @@ class KafkaAwsS3Test extends CamelMainTestSupport {
     @Override
     protected Properties useOverridePropertiesWithPropertiesComponent() {
         return asProperties(
-            "kafkaBrokers", String.format("%s:%d", KAFKA_CONTAINER.getHost(), 
KAFKA_CONTAINER.getMappedPort(9093))
+            "kafkaBrokers", String.format("%s:%d", kafkaContainer.getHost(), 
kafkaContainer.getMappedPort(9093))
         );
     }
 
diff --git 
a/examples/aws/main-endpointdsl-kafka-aws2-s3/src/test/java/org/apache/camel/example/KafkaAwsS3Test.java
 
b/examples/aws/main-endpointdsl-kafka-aws2-s3/src/test/java/org/apache/camel/example/KafkaAwsS3Test.java
index 78bbe93..b0ff334 100644
--- 
a/examples/aws/main-endpointdsl-kafka-aws2-s3/src/test/java/org/apache/camel/example/KafkaAwsS3Test.java
+++ 
b/examples/aws/main-endpointdsl-kafka-aws2-s3/src/test/java/org/apache/camel/example/KafkaAwsS3Test.java
@@ -25,12 +25,12 @@ import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.aws2.s3.AWS2S3Component;
 import org.apache.camel.main.MainConfigurationProperties;
 import org.apache.camel.test.main.junit5.CamelMainTestSupport;
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 import org.testcontainers.containers.KafkaContainer;
 import org.testcontainers.containers.localstack.LocalStackContainer;
 import org.testcontainers.containers.wait.strategy.Wait;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
 import org.testcontainers.utility.DockerImageName;
 import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
 import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
@@ -44,32 +44,18 @@ import static 
org.testcontainers.containers.localstack.LocalStackContainer.Servi
 /**
  * A unit test checking that Camel can poll data from a Kafka topic and put it 
into an Amazon S3 bucket.
  */
+@Testcontainers
 class KafkaAwsS3Test extends CamelMainTestSupport {
 
     private static final String AWS_IMAGE = "localstack/localstack:0.13.3";
     private static final String KAFKA_IMAGE = "confluentinc/cp-kafka:6.2.2";
-    private static LocalStackContainer AWS_CONTAINER;
-    private static KafkaContainer KAFKA_CONTAINER;
 
-    @BeforeAll
-    static void init() {
-        AWS_CONTAINER = new 
LocalStackContainer(DockerImageName.parse(AWS_IMAGE))
-                .withServices(S3)
-                .waitingFor(Wait.forLogMessage(".*Ready\\.\n", 1));
-        AWS_CONTAINER.start();
-        KAFKA_CONTAINER = new 
KafkaContainer(DockerImageName.parse(KAFKA_IMAGE));
-        KAFKA_CONTAINER.start();
-    }
-
-    @AfterAll
-    static void destroy() {
-        if (AWS_CONTAINER != null) {
-            AWS_CONTAINER.stop();
-        }
-        if (KAFKA_CONTAINER != null) {
-            KAFKA_CONTAINER.stop();
-        }
-    }
+    @Container
+    private final LocalStackContainer awsContainer = new 
LocalStackContainer(DockerImageName.parse(AWS_IMAGE))
+            .withServices(S3)
+            .waitingFor(Wait.forLogMessage(".*Ready\\.\n", 1));
+    @Container
+    private final KafkaContainer kafkaContainer = new 
KafkaContainer(DockerImageName.parse(KAFKA_IMAGE));
 
     @Override
     protected CamelContext createCamelContext() throws Exception {
@@ -77,13 +63,13 @@ class KafkaAwsS3Test extends CamelMainTestSupport {
         AWS2S3Component s3 = camelContext.getComponent("aws2-s3", 
AWS2S3Component.class);
         s3.getConfiguration().setAmazonS3Client(
                 S3Client.builder()
-                .endpointOverride(AWS_CONTAINER.getEndpointOverride(S3))
+                .endpointOverride(awsContainer.getEndpointOverride(S3))
                 .credentialsProvider(
                     StaticCredentialsProvider.create(
-                        
AwsBasicCredentials.create(AWS_CONTAINER.getAccessKey(), 
AWS_CONTAINER.getSecretKey())
+                        
AwsBasicCredentials.create(awsContainer.getAccessKey(), 
awsContainer.getSecretKey())
                     )
                 )
-                .region(Region.of(AWS_CONTAINER.getRegion()))
+                .region(Region.of(awsContainer.getRegion()))
                 .build()
         );
         return camelContext;
@@ -92,7 +78,7 @@ class KafkaAwsS3Test extends CamelMainTestSupport {
     @Override
     protected Properties useOverridePropertiesWithPropertiesComponent() {
         return asProperties(
-            "kafkaBrokers", String.format("%s:%d", KAFKA_CONTAINER.getHost(), 
KAFKA_CONTAINER.getMappedPort(9093))
+            "kafkaBrokers", String.format("%s:%d", kafkaContainer.getHost(), 
kafkaContainer.getMappedPort(9093))
         );
     }
 
diff --git a/examples/aws/pom.xml b/examples/aws/pom.xml
index bdaab06..a3e3d28 100644
--- a/examples/aws/pom.xml
+++ b/examples/aws/pom.xml
@@ -59,6 +59,12 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>org.testcontainers</groupId>
+            <artifactId>junit-jupiter</artifactId>
+            <version>${testcontainers-version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>com.amazonaws</groupId>
             <artifactId>aws-java-sdk-core</artifactId>
             <version>1.12.150</version>
diff --git a/examples/couchbase-log/pom.xml b/examples/couchbase-log/pom.xml
index 822d36c..35c5100 100644
--- a/examples/couchbase-log/pom.xml
+++ b/examples/couchbase-log/pom.xml
@@ -89,6 +89,12 @@
             <version>${testcontainers-version}</version>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.testcontainers</groupId>
+            <artifactId>junit-jupiter</artifactId>
+            <version>${testcontainers-version}</version>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 
     <build>
diff --git 
a/examples/couchbase-log/src/test/java/org/apache/camel/example/CouchbaseTest.java
 
b/examples/couchbase-log/src/test/java/org/apache/camel/example/CouchbaseTest.java
index 2e64b6f..825d622 100644
--- 
a/examples/couchbase-log/src/test/java/org/apache/camel/example/CouchbaseTest.java
+++ 
b/examples/couchbase-log/src/test/java/org/apache/camel/example/CouchbaseTest.java
@@ -31,11 +31,13 @@ import org.apache.camel.builder.NotifyBuilder;
 import org.apache.camel.component.couchbase.CouchbaseConstants;
 import org.apache.camel.main.MainConfigurationProperties;
 import org.apache.camel.test.main.junit5.CamelMainTestSupport;
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.testcontainers.couchbase.BucketDefinition;
 import org.testcontainers.couchbase.CouchbaseContainer;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
 
 import static org.apache.camel.util.PropertiesHelper.asProperties;
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -43,27 +45,28 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 /**
  * A unit test checking that Camel consume data from Couchbase.
  */
+@Testcontainers
 class CouchbaseTest extends CamelMainTestSupport {
 
     private static final String IMAGE = "couchbase/server:7.0.3";
     private static final String BUCKET = "test-bucket-" + 
System.currentTimeMillis();
-    private static CouchbaseContainer CONTAINER;
-    private static Cluster CLUSTER;
 
-    @BeforeAll
-    static void init() {
-        CONTAINER = new CouchbaseContainer(IMAGE) {
-            {
-                // Camel component tries to use the default port of the KV 
Service, so we need to fix it
-                final int kvPort = 11210;
-                addFixedExposedPort(kvPort, kvPort);
-            }
-        }.withBucket(new BucketDefinition(BUCKET));
-        CONTAINER.start();
-        CLUSTER = Cluster.connect(
-            CONTAINER.getConnectionString(),
-            CONTAINER.getUsername(),
-            CONTAINER.getPassword()
+    @Container
+    private final CouchbaseContainer container = new CouchbaseContainer(IMAGE) 
{
+        {
+            // Camel component tries to use the default port of the KV 
Service, so we need to fix it
+            final int kvPort = 11210;
+            addFixedExposedPort(kvPort, kvPort);
+        }
+    }.withBucket(new BucketDefinition(BUCKET));
+    private Cluster cluster;
+
+    @BeforeEach
+    void init() {
+        cluster = Cluster.connect(
+            container.getConnectionString(),
+            container.getUsername(),
+            container.getPassword()
         );
         DesignDocument designDoc = new DesignDocument(
             CouchbaseConstants.DEFAULT_DESIGN_DOCUMENT_NAME,
@@ -72,36 +75,30 @@ class CouchbaseTest extends CamelMainTestSupport {
                 new View("function (doc, meta) {  emit(meta.id, doc);}")
             )
         );
-        CLUSTER.bucket(BUCKET).viewIndexes().upsertDesignDocument(designDoc, 
DesignDocumentNamespace.PRODUCTION);
+        cluster.bucket(BUCKET).viewIndexes().upsertDesignDocument(designDoc, 
DesignDocumentNamespace.PRODUCTION);
     }
 
-    @AfterAll
-    static void destroy() {
-        if (CONTAINER != null) {
-            try {
-                if (CLUSTER != null) {
-                    CLUSTER.disconnect();
-                }
-            } finally {
-                CONTAINER.stop();
-            }
+    @AfterEach
+    void destroy() {
+        if (cluster != null) {
+            cluster.disconnect();
         }
     }
 
     @Override
     protected Properties useOverridePropertiesWithPropertiesComponent() {
         return asProperties(
-            "couchbase.host", CONTAINER.getHost(),
-            "couchbase.port", 
Integer.toString(CONTAINER.getBootstrapHttpDirectPort()),
-            "couchbase.username", CONTAINER.getUsername(),
-            "couchbase.password", CONTAINER.getPassword(),
+            "couchbase.host", container.getHost(),
+            "couchbase.port", 
Integer.toString(container.getBootstrapHttpDirectPort()),
+            "couchbase.username", container.getUsername(),
+            "couchbase.password", container.getPassword(),
             "couchbase.bucket", BUCKET
         );
     }
 
     @Test
     void should_consume_bucket() {
-        Bucket bucket = CLUSTER.bucket(BUCKET);
+        Bucket bucket = cluster.bucket(BUCKET);
         bucket.waitUntilReady(Duration.ofSeconds(10L));
         for (int i = 0; i < 10; i++) {
             bucket.defaultCollection().upsert("my-doc-" + i, 
JsonObject.create().put("name", "My Name " + i));
diff --git a/examples/debezium/pom.xml b/examples/debezium/pom.xml
index 3090864..6891771 100644
--- a/examples/debezium/pom.xml
+++ b/examples/debezium/pom.xml
@@ -117,6 +117,12 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>org.testcontainers</groupId>
+            <artifactId>junit-jupiter</artifactId>
+            <version>${testcontainers-version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>com.amazonaws</groupId>
             <artifactId>aws-java-sdk-core</artifactId>
             <version>1.12.150</version>
diff --git 
a/examples/debezium/src/test/java/org/apache/camel/example/debezium/DebeziumTest.java
 
b/examples/debezium/src/test/java/org/apache/camel/example/debezium/DebeziumTest.java
index 7cdd8bf..aa659ea 100644
--- 
a/examples/debezium/src/test/java/org/apache/camel/example/debezium/DebeziumTest.java
+++ 
b/examples/debezium/src/test/java/org/apache/camel/example/debezium/DebeziumTest.java
@@ -29,14 +29,15 @@ import 
org.apache.camel.component.aws2.kinesis.Kinesis2Component;
 import org.apache.camel.component.sql.SqlComponent;
 import org.apache.camel.main.MainConfigurationProperties;
 import org.apache.camel.test.main.junit5.CamelMainTestSupport;
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.postgresql.ds.PGSimpleDataSource;
 import org.testcontainers.containers.CassandraContainer;
 import org.testcontainers.containers.PostgreSQLContainer;
 import org.testcontainers.containers.localstack.LocalStackContainer;
 import org.testcontainers.containers.wait.strategy.Wait;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
 import org.testcontainers.utility.DockerImageName;
 import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
 import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
@@ -55,48 +56,34 @@ import static 
org.testcontainers.containers.localstack.LocalStackContainer.Servi
 /**
  * A unit test checking that Camel can propagate changes from one Database to 
another thanks to Debezium.
  */
+@Testcontainers
 class DebeziumTest extends CamelMainTestSupport {
 
     private static final String AWS_IMAGE = "localstack/localstack:0.13.3";
     private static final String PGSQL_IMAGE = "debezium/example-postgres:1.9";
     private static final String CASSANDRA_IMAGE = "cassandra:4.0.1";
-    private static LocalStackContainer AWS_CONTAINER;
-    private static PostgreSQLContainer<?> PGSQL_CONTAINER;
-    private static CassandraContainer<?> CASSANDRA_CONTAINER;
 
     private static final String SOURCE_DB_NAME = "debezium-db";
     private static final String SOURCE_DB_SCHEMA = "inventory";
     private static final String SOURCE_DB_USERNAME = "pgsql-user";
     private static final String SOURCE_DB_PASSWORD = "pgsql-pw";
 
-    @BeforeAll
-    static void init() throws IOException {
+    @Container
+    private final LocalStackContainer awsContainer = new 
LocalStackContainer(DockerImageName.parse(AWS_IMAGE))
+            .withServices(KINESIS)
+            .waitingFor(Wait.forLogMessage(".*Ready\\.\n", 1));
+    @Container
+    private final PostgreSQLContainer<?> pgsqlContainer = new 
PostgreSQLContainer<>(DockerImageName.parse(PGSQL_IMAGE).asCompatibleSubstituteFor("postgres"))
+            .withDatabaseName(SOURCE_DB_NAME)
+            .withUsername(SOURCE_DB_USERNAME)
+            .withPassword(SOURCE_DB_PASSWORD);
+    @Container
+    private final CassandraContainer<?> cassandraContainer = new 
CassandraContainer<>(CASSANDRA_IMAGE)
+            .withInitScript("org/apache/camel/example/debezium/db-init.cql");
+
+    @BeforeEach
+    void init() throws IOException {
         Files.deleteIfExists(Path.of("target/offset-01.data"));
-        AWS_CONTAINER = new 
LocalStackContainer(DockerImageName.parse(AWS_IMAGE))
-                .withServices(KINESIS)
-                .waitingFor(Wait.forLogMessage(".*Ready\\.\n", 1));
-        AWS_CONTAINER.start();
-        PGSQL_CONTAINER = new 
PostgreSQLContainer<>(DockerImageName.parse(PGSQL_IMAGE).asCompatibleSubstituteFor("postgres"))
-                .withDatabaseName(SOURCE_DB_NAME)
-                .withUsername(SOURCE_DB_USERNAME)
-                .withPassword(SOURCE_DB_PASSWORD);
-        PGSQL_CONTAINER.start();
-        CASSANDRA_CONTAINER = new CassandraContainer<>(CASSANDRA_IMAGE)
-                
.withInitScript("org/apache/camel/example/debezium/db-init.cql");
-        CASSANDRA_CONTAINER.start();
-    }
-
-    @AfterAll
-    static void destroy() {
-        if (AWS_CONTAINER != null) {
-            AWS_CONTAINER.stop();
-        }
-        if (PGSQL_CONTAINER != null) {
-            PGSQL_CONTAINER.stop();
-        }
-        if (CASSANDRA_CONTAINER != null) {
-            CASSANDRA_CONTAINER.stop();
-        }
     }
 
     @Override
@@ -104,13 +91,13 @@ class DebeziumTest extends CamelMainTestSupport {
         CamelContext camelContext = super.createCamelContext();
         Kinesis2Component component = 
camelContext.getComponent("aws2-kinesis", Kinesis2Component.class);
         KinesisClient kinesisClient = KinesisClient.builder()
-                .endpointOverride(AWS_CONTAINER.getEndpointOverride(KINESIS))
+                .endpointOverride(awsContainer.getEndpointOverride(KINESIS))
                 .credentialsProvider(
                         StaticCredentialsProvider.create(
-                                
AwsBasicCredentials.create(AWS_CONTAINER.getAccessKey(), 
AWS_CONTAINER.getSecretKey())
+                                
AwsBasicCredentials.create(awsContainer.getAccessKey(), 
awsContainer.getSecretKey())
                         )
                 )
-                .region(Region.of(AWS_CONTAINER.getRegion()))
+                .region(Region.of(awsContainer.getRegion()))
                 .build();
         // Create the stream
         
kinesisClient.createStream(CreateStreamRequest.builder().streamName("camel-debezium-example").shardCount(1).build());
@@ -122,11 +109,11 @@ class DebeziumTest extends CamelMainTestSupport {
     protected Properties useOverridePropertiesWithPropertiesComponent() {
         // Override the host and port of the broker
         return asProperties(
-            "debezium.postgres.databaseHostName", PGSQL_CONTAINER.getHost(),
-            "debezium.postgres.databasePort", 
Integer.toString(PGSQL_CONTAINER.getMappedPort(5432)),
+            "debezium.postgres.databaseHostName", pgsqlContainer.getHost(),
+            "debezium.postgres.databasePort", 
Integer.toString(pgsqlContainer.getMappedPort(5432)),
             "debezium.postgres.databaseUser", SOURCE_DB_USERNAME,
             "debezium.postgres.databasePassword", SOURCE_DB_PASSWORD,
-            "cassandra.host", String.format("%s:%d", 
CASSANDRA_CONTAINER.getHost(), CASSANDRA_CONTAINER.getMappedPort(9042))
+            "cassandra.host", String.format("%s:%d", 
cassandraContainer.getHost(), cassandraContainer.getMappedPort(9042))
         );
     }
 
@@ -165,17 +152,29 @@ class DebeziumTest extends CamelMainTestSupport {
     protected void configure(MainConfigurationProperties configuration) {
         
configuration.addRoutesBuilder(DebeziumPgSQLConsumerToKinesis.createRouteBuilder());
         
configuration.addRoutesBuilder(KinesisProducerToCassandra.createRouteBuilder());
-        configuration.addRoutesBuilder(new ApplyChangesToPgSQLRouteBuilder());
+        configuration.addRoutesBuilder(
+            new ApplyChangesToPgSQLRouteBuilder(
+                pgsqlContainer.getHost(), pgsqlContainer.getMappedPort(5432)
+            )
+        );
     }
 
     private static class ApplyChangesToPgSQLRouteBuilder extends RouteBuilder {
 
+        private final String hostname;
+        private final int port;
+
+        ApplyChangesToPgSQLRouteBuilder(String hostname, int port) {
+            this.hostname = hostname;
+            this.port = port;
+        }
+
         @Override
         public void configure() {
             // required for the sql component
             PGSimpleDataSource db = new PGSimpleDataSource();
-            db.setServerNames(new String[]{PGSQL_CONTAINER.getHost()});
-            db.setPortNumbers(new int[]{PGSQL_CONTAINER.getMappedPort(5432)});
+            db.setServerNames(new String[]{hostname});
+            db.setPortNumbers(new int[]{port});
             db.setUser(SOURCE_DB_USERNAME);
             db.setPassword(SOURCE_DB_PASSWORD);
             db.setDatabaseName(SOURCE_DB_NAME);
diff --git a/examples/kafka/pom.xml b/examples/kafka/pom.xml
index a1403b8..ade4a26 100644
--- a/examples/kafka/pom.xml
+++ b/examples/kafka/pom.xml
@@ -96,6 +96,12 @@
             <version>${testcontainers-version}</version>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.testcontainers</groupId>
+            <artifactId>junit-jupiter</artifactId>
+            <version>${testcontainers-version}</version>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 
     <profiles>
diff --git 
a/examples/kafka/src/test/java/org/apache/camel/example/kafka/KafkaTest.java 
b/examples/kafka/src/test/java/org/apache/camel/example/kafka/KafkaTest.java
index 75aa1f0..5dfb813 100644
--- a/examples/kafka/src/test/java/org/apache/camel/example/kafka/KafkaTest.java
+++ b/examples/kafka/src/test/java/org/apache/camel/example/kafka/KafkaTest.java
@@ -23,11 +23,11 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.RoutesBuilder;
 import org.apache.camel.builder.NotifyBuilder;
 import org.apache.camel.test.junit5.CamelTestSupport;
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.testcontainers.containers.KafkaContainer;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
 import org.testcontainers.utility.DockerImageName;
 
 import static 
org.apache.camel.example.kafka.MessagePublisherClient.setUpKafkaComponent;
@@ -37,23 +37,13 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 /**
  * A unit test checking that Camel can produce and consume messages to / from 
a Kafka broker.
  */
+@Testcontainers
 class KafkaTest extends CamelTestSupport {
 
     private static final String IMAGE = "confluentinc/cp-kafka:6.2.2";
-    private static KafkaContainer CONTAINER;
 
-    @BeforeAll
-    static void init() {
-        CONTAINER = new KafkaContainer(DockerImageName.parse(IMAGE));
-        CONTAINER.start();
-    }
-
-    @AfterAll
-    static void destroy() {
-        if (CONTAINER != null) {
-            CONTAINER.stop();
-        }
-    }
+    @Container
+    private final KafkaContainer container = new 
KafkaContainer(DockerImageName.parse(IMAGE));
 
     @Override
     protected CamelContext createCamelContext() throws Exception {
@@ -63,8 +53,8 @@ class KafkaTest extends CamelTestSupport {
         // Override the host and port of the broker
         camelContext.getPropertiesComponent().setOverrideProperties(
             asProperties(
-                "kafka.host", CONTAINER.getHost(),
-                "kafka.port", Integer.toString(CONTAINER.getMappedPort(9093))
+                "kafka.host", container.getHost(),
+                "kafka.port", Integer.toString(container.getMappedPort(9093))
             )
         );
         setUpKafkaComponent(camelContext);
diff --git a/examples/mongodb/pom.xml b/examples/mongodb/pom.xml
index 5145425..4548bde 100644
--- a/examples/mongodb/pom.xml
+++ b/examples/mongodb/pom.xml
@@ -89,6 +89,12 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>org.testcontainers</groupId>
+            <artifactId>junit-jupiter</artifactId>
+            <version>${testcontainers-version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>io.rest-assured</groupId>
             <artifactId>rest-assured</artifactId>
             <version>${rest-assured-version}</version>
diff --git 
a/examples/mongodb/src/test/java/org/apache/camel/example/mongodb/MongoDBTest.java
 
b/examples/mongodb/src/test/java/org/apache/camel/example/mongodb/MongoDBTest.java
index e83eb8b..647c82e 100644
--- 
a/examples/mongodb/src/test/java/org/apache/camel/example/mongodb/MongoDBTest.java
+++ 
b/examples/mongodb/src/test/java/org/apache/camel/example/mongodb/MongoDBTest.java
@@ -24,10 +24,10 @@ import io.restassured.response.Response;
 import org.apache.camel.main.MainConfigurationProperties;
 import org.apache.camel.spi.Registry;
 import org.apache.camel.test.main.junit5.CamelMainTestSupport;
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 import org.testcontainers.containers.MongoDBContainer;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
 import org.testcontainers.utility.DockerImageName;
 
 import static io.restassured.RestAssured.given;
@@ -38,31 +38,21 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 /**
  * A unit test checking that Camel can execute CRUD operations against MongoDB.
  */
+@Testcontainers
 class MongoDBTest extends CamelMainTestSupport {
 
     private static final String IMAGE = "mongo:5.0";
-    private static MongoDBContainer CONTAINER;
 
     private static final String BASE_URI = "http://localhost:8081";;
 
-    @BeforeAll
-    static void init() {
-        CONTAINER = new MongoDBContainer(DockerImageName.parse(IMAGE));
-        CONTAINER.start();
-    }
-
-    @AfterAll
-    static void destroy() {
-        if (CONTAINER != null) {
-            CONTAINER.stop();
-        }
-    }
+    @Container
+    private final MongoDBContainer container = new 
MongoDBContainer(DockerImageName.parse(IMAGE));
 
     @Override
     protected void bindToRegistry(Registry registry) throws Exception {
         registry.bind(
             "myDb",
-            MongoClients.create(String.format("mongodb://%s:%d", 
CONTAINER.getHost(), CONTAINER.getMappedPort(27017)))
+            MongoClients.create(String.format("mongodb://%s:%d", 
container.getHost(), container.getMappedPort(27017)))
         );
     }
 
diff --git a/examples/vertx-kafka/pom.xml b/examples/vertx-kafka/pom.xml
index 361be63..5aad0c3 100644
--- a/examples/vertx-kafka/pom.xml
+++ b/examples/vertx-kafka/pom.xml
@@ -104,6 +104,12 @@
             <version>${testcontainers-version}</version>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.testcontainers</groupId>
+            <artifactId>junit-jupiter</artifactId>
+            <version>${testcontainers-version}</version>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 
     <profiles>
diff --git 
a/examples/vertx-kafka/src/test/java/org/apache/camel/example/vertx/kafka/VertxKafkaTest.java
 
b/examples/vertx-kafka/src/test/java/org/apache/camel/example/vertx/kafka/VertxKafkaTest.java
index 14a9795..a66b741 100644
--- 
a/examples/vertx-kafka/src/test/java/org/apache/camel/example/vertx/kafka/VertxKafkaTest.java
+++ 
b/examples/vertx-kafka/src/test/java/org/apache/camel/example/vertx/kafka/VertxKafkaTest.java
@@ -23,11 +23,11 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.RoutesBuilder;
 import org.apache.camel.builder.NotifyBuilder;
 import org.apache.camel.test.junit5.CamelTestSupport;
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.testcontainers.containers.KafkaContainer;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
 import org.testcontainers.utility.DockerImageName;
 
 import static 
org.apache.camel.example.vertx.kafka.MessagePublisherClient.setUpKafkaComponent;
@@ -38,23 +38,13 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
  * A unit test checking that Camel can produce and consume messages to / from 
a Kafka broker using the Kafka Vertx
  * component.
  */
+@Testcontainers
 class VertxKafkaTest extends CamelTestSupport {
 
     private static final String IMAGE = "confluentinc/cp-kafka:6.2.2";
-    private static KafkaContainer CONTAINER;
 
-    @BeforeAll
-    static void init() {
-        CONTAINER = new KafkaContainer(DockerImageName.parse(IMAGE));
-        CONTAINER.start();
-    }
-
-    @AfterAll
-    static void destroy() {
-        if (CONTAINER != null) {
-            CONTAINER.stop();
-        }
-    }
+    @Container
+    private final KafkaContainer container = new 
KafkaContainer(DockerImageName.parse(IMAGE));
 
     @Override
     protected CamelContext createCamelContext() throws Exception {
@@ -64,8 +54,8 @@ class VertxKafkaTest extends CamelTestSupport {
         // Override the host and port of the broker
         camelContext.getPropertiesComponent().setOverrideProperties(
             asProperties(
-                "kafka.host", CONTAINER.getHost(),
-                "kafka.port", Integer.toString(CONTAINER.getMappedPort(9093))
+                "kafka.host", container.getHost(),
+                "kafka.port", Integer.toString(container.getMappedPort(9093))
             )
         );
         setUpKafkaComponent(camelContext);

Reply via email to