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

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

commit 66cdfb4235588a2f4356a73219a4906c2be504e8
Author: James Netherton <[email protected]>
AuthorDate: Mon Mar 23 12:58:50 2026 +0000

    Upgrade Quarkus to 3.35.0.CR1
---
 .../storage/blob/it/AzureStorageBlobResource.java  | 17 +++++
 .../storage/blob/it/AzureStorageBlobTest.java      | 28 --------
 .../common/it/mongodb/DebeziumMongodbTest.java     | 56 ++--------------
 .../it/mongodb/DebeziumMongodbTestResource.java    | 26 ++++++++
 .../common/it/postgres/DebeziumOracleTest.java     | 19 +-----
 .../it/postgres/DebeziumOracleTestResource.java    | 28 +++++++-
 .../common/it/postgres/DebeziumPostgresTest.java   | 22 +------
 .../it/postgres/DebeziumPostgresTestResource.java  | 45 ++++++++++++-
 .../quarkus/component/mongodb/it/MongoDbTest.java  | 28 +-------
 .../test/support/mongodb/MongoDbTestResource.java  | 24 +++++--
 .../component/arangodb/it/ArangodbTest.java        | 27 +-------
 .../arangodb/it/ArangodbTestResource.java          | 27 +++++++-
 .../camel/quarkus/component/jira/it/JiraTest.java  | 75 +++-------------------
 .../component/jira/it/JiraTestResource.java        | 43 ++++++++++++-
 .../quarkus/component/jpa/it/JpaResource.java      | 14 ++++
 .../quarkus/component/jpa/it/JpaTestBase.java      | 22 +------
 .../camel/quarkus/component/kudu/it/KuduTest.java  | 27 +-------
 .../component/kudu/it/KuduTestResource.java        | 17 ++++-
 .../camel/quarkus/component/mail/MailTest.java     | 30 +--------
 .../quarkus/component/mail/MailTestResource.java   | 42 ++++++++++++
 .../component/olingo4/it/OdataTestResource.java    | 36 +++++++++++
 .../quarkus/component/olingo4/it/Olingo4Test.java  | 45 +++----------
 .../replication/slot/it/PgReplicationSlotTest.java | 36 +----------
 .../slot/it/PgReplicationSlotTestResource.java     | 38 ++++++++++-
 .../component/pinecone/it/PineconeTest.java        |  9 +--
 .../pinecone/it/PineconeTestResource.java          | 13 +++-
 pom.xml                                            |  2 +-
 27 files changed, 390 insertions(+), 406 deletions(-)

diff --git 
a/integration-test-groups/azure/azure-storage-blob/src/main/java/org/apache/camel/quarkus/component/azure/storage/blob/it/AzureStorageBlobResource.java
 
b/integration-test-groups/azure/azure-storage-blob/src/main/java/org/apache/camel/quarkus/component/azure/storage/blob/it/AzureStorageBlobResource.java
index 156af66d5d..c0a012a339 100644
--- 
a/integration-test-groups/azure/azure-storage-blob/src/main/java/org/apache/camel/quarkus/component/azure/storage/blob/it/AzureStorageBlobResource.java
+++ 
b/integration-test-groups/azure/azure-storage-blob/src/main/java/org/apache/camel/quarkus/component/azure/storage/blob/it/AzureStorageBlobResource.java
@@ -35,6 +35,7 @@ import com.azure.core.http.rest.PagedIterable;
 import com.azure.core.implementation.ReflectiveInvoker;
 import com.azure.core.implementation.http.UnexpectedExceptionInformation;
 import 
com.azure.core.implementation.http.rest.ResponseExceptionConstructorCache;
+import com.azure.storage.blob.BlobServiceClient;
 import com.azure.storage.blob.changefeed.models.BlobChangefeedEvent;
 import com.azure.storage.blob.changefeed.models.BlobChangefeedEventType;
 import 
com.azure.storage.blob.implementation.models.BlobStorageExceptionInternal;
@@ -47,7 +48,9 @@ import com.azure.storage.blob.models.BlockListType;
 import com.azure.storage.blob.models.PageRange;
 import com.azure.storage.blob.models.PageRangeItem;
 import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.event.Observes;
 import jakarta.inject.Inject;
+import jakarta.inject.Named;
 import jakarta.json.Json;
 import jakarta.json.JsonArrayBuilder;
 import jakarta.json.JsonObject;
@@ -72,6 +75,8 @@ import org.apache.camel.Processor;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.component.azure.storage.blob.BlobBlock;
 import org.apache.camel.component.azure.storage.blob.BlobConstants;
+import org.apache.camel.impl.event.CamelContextStartedEvent;
+import org.apache.camel.impl.event.CamelContextStoppedEvent;
 import org.apache.camel.quarkus.core.util.FileUtils;
 import org.eclipse.microprofile.config.inject.ConfigProperty;
 
@@ -94,6 +99,18 @@ public class AzureStorageBlobResource {
     @ConfigProperty(name = "azure.blob.container.name")
     public String azureBlobContainerName;
 
+    @Inject
+    @Named("azureBlobServiceClient")
+    BlobServiceClient client;
+
+    void onCamelContextStarted(@Observes CamelContextStartedEvent event) {
+        client.createBlobContainer(azureBlobContainerName);
+    }
+
+    void onCamelContextStopped(@Observes CamelContextStoppedEvent event) {
+        client.deleteBlobContainer(azureBlobContainerName);
+    }
+
     @Path("/blob/create")
     @POST
     @Consumes(MediaType.TEXT_PLAIN)
diff --git 
a/integration-test-groups/azure/azure-storage-blob/src/test/java/org/apache/camel/quarkus/component/azure/storage/blob/it/AzureStorageBlobTest.java
 
b/integration-test-groups/azure/azure-storage-blob/src/test/java/org/apache/camel/quarkus/component/azure/storage/blob/it/AzureStorageBlobTest.java
index ec7f2f59a9..d34d6b4c6c 100644
--- 
a/integration-test-groups/azure/azure-storage-blob/src/test/java/org/apache/camel/quarkus/component/azure/storage/blob/it/AzureStorageBlobTest.java
+++ 
b/integration-test-groups/azure/azure-storage-blob/src/test/java/org/apache/camel/quarkus/component/azure/storage/blob/it/AzureStorageBlobTest.java
@@ -39,10 +39,7 @@ import org.apache.camel.quarkus.test.EnabledIf;
 import org.apache.camel.quarkus.test.mock.backend.MockBackendDisabled;
 import org.apache.camel.quarkus.test.support.azure.AzureStorageTestResource;
 import org.awaitility.Awaitility;
-import org.eclipse.microprofile.config.Config;
 import org.eclipse.microprofile.config.ConfigProvider;
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 
 import static org.hamcrest.Matchers.anyOf;
@@ -57,33 +54,8 @@ import static org.junit.jupiter.api.Assertions.fail;
 @QuarkusTest
 @QuarkusTestResource(AzureStorageTestResource.class)
 class AzureStorageBlobTest {
-
     private static final String BLOB_CONTENT = "Hello Camel Quarkus Azure 
Blob";
 
-    @BeforeAll
-    static void beforeAll() {
-        final Config config = ConfigProvider.getConfig();
-        String containerName = config.getValue("azure.blob.container.name", 
String.class);
-        int port = config.getValue("quarkus.http.test-port", int.class);
-        RestAssured.port = port;
-        RestAssured.given()
-                .queryParam("containerName", containerName)
-                .post("/azure-storage-blob/blob/container")
-                .then()
-                .statusCode(201);
-    }
-
-    @AfterAll
-    static void afterAll() {
-        final Config config = ConfigProvider.getConfig();
-        String containerName = config.getValue("azure.blob.container.name", 
String.class);
-        RestAssured.given()
-                .queryParam("containerName", containerName)
-                .delete("/azure-storage-blob/blob/container")
-                .then()
-                .statusCode(204);
-    }
-
     @Test
     public void crud() {
         try {
diff --git 
a/integration-test-groups/debezium/mongodb/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/mongodb/DebeziumMongodbTest.java
 
b/integration-test-groups/debezium/mongodb/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/mongodb/DebeziumMongodbTest.java
index 7ff47a7def..62998e8011 100644
--- 
a/integration-test-groups/debezium/mongodb/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/mongodb/DebeziumMongodbTest.java
+++ 
b/integration-test-groups/debezium/mongodb/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/mongodb/DebeziumMongodbTest.java
@@ -18,23 +18,14 @@ package 
org.apache.camel.quarkus.component.debezium.common.it.mongodb;
 
 import java.sql.Connection;
 import java.sql.SQLException;
-import java.util.Optional;
 
-import com.mongodb.client.MongoClient;
-import com.mongodb.client.MongoClients;
 import com.mongodb.client.MongoCollection;
-import com.mongodb.client.MongoDatabase;
 import com.mongodb.client.result.DeleteResult;
 import io.quarkus.test.common.QuarkusTestResource;
 import io.quarkus.test.junit.QuarkusTest;
 import org.apache.camel.quarkus.test.support.debezium.AbstractDebeziumTest;
 import org.apache.camel.quarkus.test.support.debezium.Type;
 import org.bson.Document;
-import org.eclipse.microprofile.config.Config;
-import org.eclipse.microprofile.config.ConfigProvider;
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.MethodOrderer;
 import org.junit.jupiter.api.Order;
 import org.junit.jupiter.api.Test;
@@ -44,52 +35,17 @@ import static org.hamcrest.Matchers.containsString;
 import static org.hamcrest.Matchers.equalTo;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.fail;
-import static org.junit.jupiter.api.Assumptions.assumeTrue;
 
 @QuarkusTest
 @QuarkusTestResource(value = DebeziumMongodbTestResource.class, 
restrictToAnnotatedClass = true)
 @TestMethodOrder(MethodOrderer.OrderAnnotation.class)
 class DebeziumMongodbTest extends AbstractDebeziumTest {
-    private static MongoClient mongoClient;
-
-    private static MongoCollection<Document> companies;
+    private MongoCollection<Document> collection;
 
     public DebeziumMongodbTest() {
         super(Type.mongodb);
     }
 
-    @BeforeAll
-    public static void setUp() throws SQLException {
-        Config config = ConfigProvider.getConfig();
-
-        final Optional<String> mongoUrl = 
config.getOptionalValue(Type.mongodb.getPropertyJdbc(), String.class);
-
-        if (mongoUrl.isPresent()) {
-            mongoClient = MongoClients.create(mongoUrl.get());
-        } else {
-            fail("Container is not running. Connection is not created.");
-        }
-
-        assertNotNull(mongoClient, String.format("Can not create client for 
url '%s'.", mongoUrl.get()));
-
-        MongoDatabase db = mongoClient.getDatabase("test");
-
-        companies = db.getCollection("companies");
-    }
-
-    @BeforeEach
-    public void before() {
-        assumeTrue(mongoClient != null);
-    }
-
-    @AfterAll
-    public static void cleanUp() throws SQLException {
-        if (mongoClient != null) {
-            mongoClient.close();
-        }
-    }
-
     @Override
     protected Connection getConnection() {
         throw new IllegalStateException("Not used");
@@ -114,12 +70,12 @@ class DebeziumMongodbTest extends AbstractDebeziumTest {
         Document doc = new Document();
         doc.put("name", name);
         doc.put("city", city);
-        companies.insertOne(doc);
+        collection.insertOne(doc);
     }
 
     @Override
     protected void isInitialized(String s) {
-        assertNotNull(mongoClient, s);
+        assertNotNull(collection, s);
     }
 
     @Test
@@ -132,14 +88,14 @@ class DebeziumMongodbTest extends AbstractDebeziumTest {
     @Order(2)
     public void testUpdate() throws SQLException {
         Document doc = new Document().append("name", COMPANY_2).append("city", 
CITY_2);
-        companies.insertOne(doc);
+        collection.insertOne(doc);
 
         //validate that event is received
         receiveResponse(200, containsString(COMPANY_2));
 
         Document searchQuery = new Document().append("name", COMPANY_2);
         Document updateQuery = new Document().append("$set", new 
Document().append("city", CITY_2 + "_changed"));
-        companies.updateMany(searchQuery, updateQuery);
+        collection.updateMany(searchQuery, updateQuery);
 
         //validate that event for create is in queue
         receiveResponse(200, containsString(CITY_2 + "_changed"));
@@ -148,7 +104,7 @@ class DebeziumMongodbTest extends AbstractDebeziumTest {
     @Test
     @Order(3)
     public void testDelete() throws SQLException {
-        DeleteResult dr = companies.deleteMany(new Document().append("name", 
COMPANY_2));
+        DeleteResult dr = collection.deleteMany(new Document().append("name", 
COMPANY_2));
         assertEquals(1, dr.getDeletedCount(), "Only one company should be 
deleted.");
 
         //validate that event for delete is in queue
diff --git 
a/integration-test-groups/debezium/mongodb/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/mongodb/DebeziumMongodbTestResource.java
 
b/integration-test-groups/debezium/mongodb/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/mongodb/DebeziumMongodbTestResource.java
index 544c1aca1b..2676f9b547 100644
--- 
a/integration-test-groups/debezium/mongodb/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/mongodb/DebeziumMongodbTestResource.java
+++ 
b/integration-test-groups/debezium/mongodb/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/mongodb/DebeziumMongodbTestResource.java
@@ -19,12 +19,17 @@ package 
org.apache.camel.quarkus.component.debezium.common.it.mongodb;
 
 import java.net.URL;
 import java.nio.charset.StandardCharsets;
+import java.util.Map;
 import java.util.Objects;
 
+import com.mongodb.client.MongoClient;
+import com.mongodb.client.MongoClients;
+import com.mongodb.client.MongoCollection;
 import org.apache.camel.quarkus.test.AvailablePortFinder;
 import 
org.apache.camel.quarkus.test.support.debezium.AbstractDebeziumTestResource;
 import org.apache.camel.quarkus.test.support.debezium.Type;
 import org.apache.commons.io.IOUtils;
+import org.bson.Document;
 import org.eclipse.microprofile.config.ConfigProvider;
 import org.jboss.logging.Logger;
 import org.testcontainers.containers.Container;
@@ -43,6 +48,8 @@ public class DebeziumMongodbTestResource extends 
AbstractDebeziumTestResource<Ge
     private static final String DB_INIT_SCRIPT = "/initMongodb.txt";
     private static final int DB_PORT = AvailablePortFinder.getNextAvailable();
     private static final String MONGO_IMAGE_NAME = 
ConfigProvider.getConfig().getValue("mongodb.container.image", String.class);
+    private MongoClient client;
+    private MongoCollection<Document> collection;
 
     public DebeziumMongodbTestResource() {
         super(Type.mongodb);
@@ -50,6 +57,16 @@ public class DebeziumMongodbTestResource extends 
AbstractDebeziumTestResource<Ge
 
     private final Network net = Network.newNetwork();
 
+    @Override
+    public Map<String, String> start() {
+        Map<String, String> config = super.start();
+
+        client = 
MongoClients.create(config.get(Type.mongodb.getPropertyJdbc()));
+        collection = client.getDatabase("test").getCollection("companies");
+
+        return config;
+    }
+
     @Override
     protected GenericContainer<?> createContainer() {
         return new FixedHostPortGenericContainer<>(MONGO_IMAGE_NAME)
@@ -68,8 +85,17 @@ public class DebeziumMongodbTestResource extends 
AbstractDebeziumTestResource<Ge
         execScriptInContainer();
     }
 
+    @Override
+    public void inject(TestInjector testInjector) {
+        testInjector.injectIntoFields(collection, new 
TestInjector.MatchesType(MongoCollection.class));
+    }
+
     @Override
     public void stop() {
+        if (client != null) {
+            client.close();
+        }
+
         super.stop();
         AvailablePortFinder.releaseReservedPorts();
     }
diff --git 
a/integration-test-groups/debezium/oracle/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/postgres/DebeziumOracleTest.java
 
b/integration-test-groups/debezium/oracle/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/postgres/DebeziumOracleTest.java
index 5275ff037a..df72b10b0b 100644
--- 
a/integration-test-groups/debezium/oracle/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/postgres/DebeziumOracleTest.java
+++ 
b/integration-test-groups/debezium/oracle/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/postgres/DebeziumOracleTest.java
@@ -17,17 +17,11 @@
 package org.apache.camel.quarkus.component.debezium.common.it.postgres;
 
 import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.SQLException;
 
 import io.quarkus.test.common.QuarkusTestResource;
 import io.quarkus.test.junit.QuarkusTest;
 import org.apache.camel.quarkus.test.support.debezium.AbstractDebeziumTest;
 import org.apache.camel.quarkus.test.support.debezium.Type;
-import org.eclipse.microprofile.config.Config;
-import org.eclipse.microprofile.config.ConfigProvider;
-import org.jboss.logging.Logger;
-import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.MethodOrderer;
 import org.junit.jupiter.api.TestMethodOrder;
 
@@ -37,25 +31,14 @@ import static org.hamcrest.Matchers.*;
 @QuarkusTestResource(value = DebeziumOracleTestResource.class, 
restrictToAnnotatedClass = true)
 @TestMethodOrder(MethodOrderer.OrderAnnotation.class)
 class DebeziumOracleTest extends AbstractDebeziumTest {
-    private static final Logger LOG = 
Logger.getLogger(DebeziumOracleTest.class);
-
-    private static Connection connection;
+    private Connection connection;
 
     public DebeziumOracleTest() {
         super(Type.oracle);
     }
 
-    @BeforeAll
-    public static void setUp() throws SQLException {
-        Config config = ConfigProvider.getConfig();
-        final String jdbcUrl = config.getValue(Type.oracle.getPropertyJdbc(), 
String.class);
-        connection = DriverManager.getConnection(jdbcUrl, 
DebeziumOracleTestResource.DB_USERNAME,
-                DebeziumOracleTestResource.DB_PASSWORD);
-    }
-
     @Override
     protected Connection getConnection() {
         return connection;
     }
-
 }
diff --git 
a/integration-test-groups/debezium/oracle/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/postgres/DebeziumOracleTestResource.java
 
b/integration-test-groups/debezium/oracle/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/postgres/DebeziumOracleTestResource.java
index eb0032ebdd..ce19470569 100644
--- 
a/integration-test-groups/debezium/oracle/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/postgres/DebeziumOracleTestResource.java
+++ 
b/integration-test-groups/debezium/oracle/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/postgres/DebeziumOracleTestResource.java
@@ -20,6 +20,9 @@ package 
org.apache.camel.quarkus.component.debezium.common.it.postgres;
 import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Path;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.SQLException;
 import java.util.Map;
 
 import 
org.apache.camel.quarkus.test.support.debezium.AbstractDebeziumTestResource;
@@ -41,6 +44,7 @@ public class DebeziumOracleTestResource extends 
AbstractDebeziumTestResource<Gen
             String.class);
     private static final int DB_PORT = 1521;
     private Path historyFile;
+    private Connection connection;
 
     public DebeziumOracleTestResource() {
         super(Type.oracle);
@@ -72,8 +76,14 @@ public class DebeziumOracleTestResource extends 
AbstractDebeziumTestResource<Gen
                 properties = super.start();
                 historyFile = Files.createTempFile(getClass().getSimpleName() 
+ "-history-file-", "");
                 
properties.put(DebeziumOracleResource.PROPERTY_DB_HISTORY_FILE, 
historyFile.toString());
+
+                connection = DriverManager.getConnection(
+                        properties.get(Type.oracle.getPropertyJdbc()),
+                        DebeziumOracleTestResource.DB_USERNAME,
+                        DebeziumOracleTestResource.DB_PASSWORD);
+
                 return properties;
-            } catch (IOException e) {
+            } catch (IOException | SQLException e) {
                 throw new RuntimeException(e);
             } catch (Exception e) {
                 LOG.warn("Container startup failed", e);
@@ -82,7 +92,6 @@ public class DebeziumOracleTestResource extends 
AbstractDebeziumTestResource<Gen
                     LOG.warn("Giving up starting {} - max container startup 
attempts reached", ORACLE_IMAGE);
                     throw e;
                 }
-
                 try {
                     Thread.sleep(5000);
                 } catch (InterruptedException ex) {
@@ -94,8 +103,21 @@ public class DebeziumOracleTestResource extends 
AbstractDebeziumTestResource<Gen
         throw new IllegalStateException("Could not start container for " + 
ORACLE_IMAGE);
     }
 
+    @Override
+    public void inject(TestInjector testInjector) {
+        testInjector.injectIntoFields(connection, new 
TestInjector.MatchesType(Connection.class));
+    }
+
     @Override
     public void stop() {
+        if (connection != null) {
+            try {
+                connection.close();
+            } catch (SQLException e) {
+                LOG.warn("Failed to close database connection", e);
+            }
+        }
+
         super.stop();
 
         try {
@@ -103,7 +125,7 @@ public class DebeziumOracleTestResource extends 
AbstractDebeziumTestResource<Gen
                 Files.deleteIfExists(historyFile);
             }
         } catch (Exception e) {
-            // ignored
+            LOG.warn("Failed deleting history file: {}", historyFile, e);
         }
     }
 
diff --git 
a/integration-test-groups/debezium/postgresql/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/postgres/DebeziumPostgresTest.java
 
b/integration-test-groups/debezium/postgresql/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/postgres/DebeziumPostgresTest.java
index 402c201b0d..e399d92b3e 100644
--- 
a/integration-test-groups/debezium/postgresql/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/postgres/DebeziumPostgresTest.java
+++ 
b/integration-test-groups/debezium/postgresql/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/postgres/DebeziumPostgresTest.java
@@ -17,18 +17,12 @@
 package org.apache.camel.quarkus.component.debezium.common.it.postgres;
 
 import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.SQLException;
 
 import io.quarkus.test.common.QuarkusTestResource;
 import io.quarkus.test.junit.QuarkusTest;
 import io.restassured.RestAssured;
 import org.apache.camel.quarkus.test.support.debezium.AbstractDebeziumTest;
 import org.apache.camel.quarkus.test.support.debezium.Type;
-import org.eclipse.microprofile.config.Config;
-import org.eclipse.microprofile.config.ConfigProvider;
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.MethodOrderer;
 import org.junit.jupiter.api.Order;
 import org.junit.jupiter.api.Test;
@@ -40,19 +34,12 @@ import static org.hamcrest.Matchers.*;
 @QuarkusTestResource(value = DebeziumPostgresTestResource.class, 
restrictToAnnotatedClass = true)
 @TestMethodOrder(MethodOrderer.OrderAnnotation.class)
 class DebeziumPostgresTest extends AbstractDebeziumTest {
-    private static Connection connection;
+    private Connection connection;
 
     public DebeziumPostgresTest() {
         super(Type.postgres);
     }
 
-    @BeforeAll
-    public static void setUp() throws SQLException {
-        Config config = ConfigProvider.getConfig();
-        final String jdbcUrl = 
config.getValue(Type.postgres.getPropertyJdbc(), String.class);
-        connection = DriverManager.getConnection(jdbcUrl);
-    }
-
     @Test
     @Order(4)
     public void testAdditionalProperty() {
@@ -63,13 +50,6 @@ class DebeziumPostgresTest extends AbstractDebeziumTest {
                 .body("'database.connectionTimeZone'", is("CET"));
     }
 
-    @AfterAll
-    public static void cleanUp() throws SQLException {
-        if (connection != null) {
-            connection.close();
-        }
-    }
-
     @Override
     protected Connection getConnection() {
         return connection;
diff --git 
a/integration-test-groups/debezium/postgresql/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/postgres/DebeziumPostgresTestResource.java
 
b/integration-test-groups/debezium/postgresql/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/postgres/DebeziumPostgresTestResource.java
index c3c99c1941..c8c1d0d13b 100644
--- 
a/integration-test-groups/debezium/postgresql/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/postgres/DebeziumPostgresTestResource.java
+++ 
b/integration-test-groups/debezium/postgresql/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/postgres/DebeziumPostgresTestResource.java
@@ -17,24 +17,53 @@
 
 package org.apache.camel.quarkus.component.debezium.common.it.postgres;
 
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.SQLException;
+import java.util.Map;
+
 import 
org.apache.camel.quarkus.test.support.debezium.AbstractDebeziumTestResource;
 import org.apache.camel.quarkus.test.support.debezium.Type;
 import org.eclipse.microprofile.config.ConfigProvider;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.testcontainers.postgresql.PostgreSQLContainer;
 import org.testcontainers.utility.DockerImageName;
 
 public class DebeziumPostgresTestResource extends 
AbstractDebeziumTestResource<PostgreSQLContainer> {
-
-    public static final String DB_USERNAME = "postgres";
     public static final String DB_PASSWORD = "changeit";
     private static final String POSTGRES_IMAGE = 
ConfigProvider.getConfig().getValue("postgres-debezium.container.image",
             String.class);
     private static final int DB_PORT = 5432;
+    private Connection connection;
+    private static final Logger LOG = 
LoggerFactory.getLogger(DebeziumPostgresTestResource.class);
+    public static final String DB_USERNAME = "postgres";
 
     public DebeziumPostgresTestResource() {
         super(Type.postgres);
     }
 
+    @Override
+    public Map<String, String> start() {
+        Map<String, String> config = super.start();
+
+        try {
+            connection = DriverManager.getConnection(
+                    config.get(Type.postgres.getPropertyJdbc()),
+                    DB_USERNAME,
+                    DB_PASSWORD);
+        } catch (SQLException e) {
+            throw new RuntimeException(e);
+        }
+
+        return config;
+    }
+
+    @Override
+    public void inject(TestInjector testInjector) {
+        testInjector.injectIntoFields(connection, new 
TestInjector.MatchesType(Connection.class));
+    }
+
     @Override
     protected PostgreSQLContainer createContainer() {
         DockerImageName imageName = DockerImageName.parse(POSTGRES_IMAGE)
@@ -67,4 +96,16 @@ public class DebeziumPostgresTestResource extends 
AbstractDebeziumTestResource<P
     protected int getPort() {
         return DB_PORT;
     }
+
+    @Override
+    public void stop() {
+        if (connection != null) {
+            try {
+                connection.close();
+            } catch (SQLException e) {
+                LOG.warn("Failed to close database connection", e);
+            }
+        }
+        super.stop();
+    }
 }
diff --git 
a/integration-test-groups/mongodb/mongodb/src/test/java/org/apache/camel/quarkus/component/mongodb/it/MongoDbTest.java
 
b/integration-test-groups/mongodb/mongodb/src/test/java/org/apache/camel/quarkus/component/mongodb/it/MongoDbTest.java
index 3dbc48b506..839c326401 100644
--- 
a/integration-test-groups/mongodb/mongodb/src/test/java/org/apache/camel/quarkus/component/mongodb/it/MongoDbTest.java
+++ 
b/integration-test-groups/mongodb/mongodb/src/test/java/org/apache/camel/quarkus/component/mongodb/it/MongoDbTest.java
@@ -16,13 +16,11 @@
  */
 package org.apache.camel.quarkus.component.mongodb.it;
 
-import java.sql.SQLException;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
 
 import com.mongodb.client.MongoClient;
-import com.mongodb.client.MongoClients;
 import com.mongodb.client.MongoCollection;
 import com.mongodb.client.MongoDatabase;
 import io.quarkus.test.common.QuarkusTestResource;
@@ -35,10 +33,7 @@ import 
org.apache.camel.quarkus.test.support.mongodb.MongoDbConstants;
 import org.apache.camel.quarkus.test.support.mongodb.MongoDbTestResource;
 import org.apache.camel.util.CollectionHelper;
 import org.bson.Document;
-import org.eclipse.microprofile.config.ConfigProvider;
 import org.jboss.logging.Logger;
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.ValueSource;
@@ -54,30 +49,11 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 @QuarkusTestResource(MongoDbTestResource.class)
 class MongoDbTest {
     private static final Logger LOG = Logger.getLogger(MongoDbTest.class);
-
     public static final String MSG = "Hello Camel Quarkus Mongo DB";
-
     private static final String COLLECTION_OUTPUT_TYPE_DOCUMENT_LIST = 
"outputTypeDocumentList";
     private static final String COLLECTION_OUTPUT_TYPE_DOCUMENT = 
"outputTypeDocument";
-
-    private static MongoClient mongoClient;
-
-    private static MongoDatabase db;
-
-    @BeforeAll
-    public static void setUp() throws SQLException {
-        final String mongoUrl = "mongodb://" + 
ConfigProvider.getConfig().getValue("quarkus.mongodb.hosts", String.class);
-
-        mongoClient = MongoClients.create(mongoUrl);
-        db = mongoClient.getDatabase("test");
-    }
-
-    @AfterAll
-    public static void cleanUp() throws SQLException {
-        if (mongoClient != null) {
-            mongoClient.close();
-        }
-    }
+    private MongoClient mongoClient;
+    private MongoDatabase db;
 
     @ParameterizedTest
     @ValueSource(strings = { MongoDbConstants.DEFAULT_MONGO_CLIENT_NAME, 
MongoDbConstants.NAMED_MONGO_CLIENT_NAME })
diff --git 
a/integration-tests-support/mongodb/src/main/java/org/apache/camel/quarkus/test/support/mongodb/MongoDbTestResource.java
 
b/integration-tests-support/mongodb/src/main/java/org/apache/camel/quarkus/test/support/mongodb/MongoDbTestResource.java
index 375343dad3..8382a68873 100644
--- 
a/integration-tests-support/mongodb/src/main/java/org/apache/camel/quarkus/test/support/mongodb/MongoDbTestResource.java
+++ 
b/integration-tests-support/mongodb/src/main/java/org/apache/camel/quarkus/test/support/mongodb/MongoDbTestResource.java
@@ -45,6 +45,8 @@ public class MongoDbTestResource implements 
QuarkusTestResourceLifecycleManager
     private static final String PRIVATE_HOST = "mongodb_private";
 
     private GenericContainer container;
+    private MongoClient client;
+    private MongoDatabase db;
 
     @Override
     public Map<String, String> start() {
@@ -62,18 +64,28 @@ public class MongoDbTestResource implements 
QuarkusTestResourceLifecycleManager
 
             setUpDb();
 
-            String host = container.getHost() + ":" + 
container.getMappedPort(MONGODB_PORT).toString();
+            String containerHost = container.getHost() + ":" + 
container.getMappedPort(MONGODB_PORT).toString();
+            String mongoHost = "mongodb://" + containerHost;
 
             Map<String, String> config = new HashMap<>();
-            config.put("quarkus.mongodb.hosts", host);
-            config.put("quarkus.mongodb." + 
MongoDbConstants.NAMED_MONGO_CLIENT_NAME + ".connection-string",
-                    "mongodb://" + host);
+            config.put("quarkus.mongodb.hosts", containerHost);
+            config.put("quarkus.mongodb." + 
MongoDbConstants.NAMED_MONGO_CLIENT_NAME + ".connection-string", mongoHost);
+
+            client = MongoClients.create(mongoHost);
+            db = client.getDatabase("test");
+
             return config;
         } catch (Exception e) {
             throw new RuntimeException(e);
         }
     }
 
+    @Override
+    public void inject(TestInjector testInjector) {
+        testInjector.injectIntoFields(client, new 
TestInjector.MatchesType(MongoClient.class));
+        testInjector.injectIntoFields(db, new 
TestInjector.MatchesType(MongoDatabase.class));
+    }
+
     void setUpDb() {
         final String mongoUrl = "mongodb://" + container.getHost() + ":"
                 + container.getMappedPort(MONGODB_PORT).toString();
@@ -113,6 +125,10 @@ public class MongoDbTestResource implements 
QuarkusTestResourceLifecycleManager
     @Override
     public void stop() {
         try {
+            if (client != null) {
+                client.close();
+            }
+
             if (container != null) {
                 container.stop();
             }
diff --git 
a/integration-tests/arangodb/src/test/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbTest.java
 
b/integration-tests/arangodb/src/test/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbTest.java
index aab9c737e8..ea97f923fd 100644
--- 
a/integration-tests/arangodb/src/test/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbTest.java
+++ 
b/integration-tests/arangodb/src/test/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbTest.java
@@ -17,16 +17,11 @@
 package org.apache.camel.quarkus.component.arangodb.it;
 
 import com.arangodb.ArangoCollection;
-import com.arangodb.ArangoDB;
-import com.arangodb.ArangoDatabase;
 import com.arangodb.entity.BaseDocument;
 import io.quarkus.test.common.QuarkusTestResource;
 import io.quarkus.test.junit.QuarkusTest;
 import io.restassured.RestAssured;
 import io.restassured.http.ContentType;
-import org.eclipse.microprofile.config.ConfigProvider;
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 
 import static org.hamcrest.Matchers.both;
@@ -36,10 +31,7 @@ import static org.junit.jupiter.api.Assertions.assertNull;
 @QuarkusTest
 @QuarkusTestResource(ArangodbTestResource.class)
 class ArangodbTest {
-    protected static final String DATABASE_NAME = "test";
-    protected static final String COLLECTION_NAME = "camel";
-    protected static ArangoDB arangoDb;
-    protected static ArangoCollection collection;
+    protected ArangoCollection collection;
 
     @Test
     public void testCreateGetDeleteDocument() {
@@ -116,21 +108,4 @@ class ArangodbTest {
                 .statusCode(200)
                 .body(containsString("_key:keyBar2"));
     }
-
-    @BeforeAll
-    public static void setup() {
-        String host = 
ConfigProvider.getConfig().getValue("camel.arangodb.host", String.class);
-        Integer port = 
ConfigProvider.getConfig().getValue("camel.arangodb.port", Integer.class);
-        arangoDb = new ArangoDB.Builder().host(host, port).build();
-        arangoDb.createDatabase(DATABASE_NAME);
-        ArangoDatabase arangoDatabase = arangoDb.db(DATABASE_NAME);
-        arangoDatabase.createCollection(COLLECTION_NAME);
-        collection = arangoDatabase.collection(COLLECTION_NAME);
-    }
-
-    @AfterAll
-    public static void teardown() {
-        arangoDb.shutdown();
-    }
-
 }
diff --git 
a/integration-tests/arangodb/src/test/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbTestResource.java
 
b/integration-tests/arangodb/src/test/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbTestResource.java
index 03b57a2033..76cc0a7bc0 100644
--- 
a/integration-tests/arangodb/src/test/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbTestResource.java
+++ 
b/integration-tests/arangodb/src/test/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbTestResource.java
@@ -18,6 +18,9 @@ package org.apache.camel.quarkus.component.arangodb.it;
 
 import java.util.Map;
 
+import com.arangodb.ArangoCollection;
+import com.arangodb.ArangoDB;
+import com.arangodb.ArangoDatabase;
 import com.github.dockerjava.api.model.Ulimit;
 import io.quarkus.test.common.QuarkusTestResourceLifecycleManager;
 import org.apache.camel.util.CollectionHelper;
@@ -28,13 +31,16 @@ import org.testcontainers.containers.GenericContainer;
 import org.testcontainers.containers.wait.strategy.Wait;
 
 public class ArangodbTestResource implements 
QuarkusTestResourceLifecycleManager {
-
+    private static final String DATABASE_NAME = "test";
+    private static final String COLLECTION_NAME = "camel";
     private static final Logger LOGGER = 
LoggerFactory.getLogger(ArangodbTestResource.class);
     private GenericContainer<?> container;
     private static final String CONTAINER_NAME = "arango";
     private static final String ARANGO_IMAGE = 
ConfigProvider.getConfig().getValue("arangodb.container.image", String.class);
     private static final String ARANGO_NO_AUTH = "ARANGO_NO_AUTH";
     private static final Integer PORT_DEFAULT = 8529;
+    private ArangoDB arangoDb;
+    private ArangoCollection collection;
 
     @Override
     public Map<String, String> start() {
@@ -49,19 +55,36 @@ public class ArangodbTestResource implements 
QuarkusTestResourceLifecycleManager
 
             container.start();
 
-            return CollectionHelper.mapOf(
+            Map<String, String> config = CollectionHelper.mapOf(
                     "camel.arangodb.port",
                     container.getMappedPort(PORT_DEFAULT).toString(),
                     "camel.arangodb.host",
                     container.getHost());
+
+            arangoDb = new ArangoDB.Builder().host(container.getHost(), 
container.getMappedPort(PORT_DEFAULT)).build();
+            arangoDb.createDatabase(DATABASE_NAME);
+            ArangoDatabase arangoDatabase = arangoDb.db(DATABASE_NAME);
+            arangoDatabase.createCollection(COLLECTION_NAME);
+            collection = arangoDatabase.collection(COLLECTION_NAME);
+
+            return config;
         } catch (Exception e) {
             throw new RuntimeException(e);
         }
     }
 
+    @Override
+    public void inject(TestInjector testInjector) {
+        testInjector.injectIntoFields(collection, new 
TestInjector.MatchesType(ArangoCollection.class));
+    }
+
     @Override
     public void stop() {
         try {
+            if (arangoDb != null) {
+                arangoDb.shutdown();
+            }
+
             if (container != null) {
                 container.stop();
             }
diff --git 
a/integration-tests/jira/src/test/java/org/apache/camel/quarkus/component/jira/it/JiraTest.java
 
b/integration-tests/jira/src/test/java/org/apache/camel/quarkus/component/jira/it/JiraTest.java
index f8c84045ed..faa9563a58 100644
--- 
a/integration-tests/jira/src/test/java/org/apache/camel/quarkus/component/jira/it/JiraTest.java
+++ 
b/integration-tests/jira/src/test/java/org/apache/camel/quarkus/component/jira/it/JiraTest.java
@@ -16,14 +16,11 @@
  */
 package org.apache.camel.quarkus.component.jira.it;
 
-import java.net.URI;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Optional;
 import java.util.concurrent.TimeUnit;
 
 import com.atlassian.jira.rest.client.api.JiraRestClient;
-import com.atlassian.jira.rest.client.api.JiraRestClientFactory;
 import com.atlassian.jira.rest.client.api.domain.Attachment;
 import com.atlassian.jira.rest.client.api.domain.BasicWatchers;
 import com.atlassian.jira.rest.client.api.domain.Issue;
@@ -35,11 +32,6 @@ import io.quarkus.test.junit.QuarkusTest;
 import io.restassured.RestAssured;
 import io.restassured.http.ContentType;
 import io.restassured.path.json.JsonPath;
-import org.apache.camel.component.jira.oauth.JiraOAuthAuthenticationHandler;
-import 
org.apache.camel.component.jira.oauth.OAuthAsynchronousJiraRestClientFactory;
-import org.eclipse.microprofile.config.Config;
-import org.eclipse.microprofile.config.ConfigProvider;
-import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 
 import static org.awaitility.Awaitility.await;
@@ -59,36 +51,7 @@ public class JiraTest {
     private static final String ISSUE_SUMMARY = "Camel Quarkus Test Issue 
Summary";
     private static final String ISSUE_TYPE = "Task";
     private static final String UPDATED_ISSUE_SUMMARY = "Updated summary";
-    private static JiraRestClient REST_CLIENT;
-
-    @BeforeAll
-    public static void beforeAll() {
-        Config config = ConfigProvider.getConfig();
-        String jiraUrl = config.getValue("camel.component.jira.jira-url", 
String.class);
-        Optional<String> username = 
config.getOptionalValue("camel.component.jira.username", String.class);
-        Optional<String> password = 
config.getOptionalValue("camel.component.jira.password", String.class);
-        Optional<String> accessToken = 
config.getOptionalValue("camel.component.jira.access-token", String.class);
-        Optional<String> consumerKey = 
config.getOptionalValue("camel.component.jira.consumer-key", String.class);
-        Optional<String> privateKey = 
config.getOptionalValue("camel.component.jira.private-key", String.class);
-        Optional<String> verificationCode = 
config.getOptionalValue("camel.component.jira.verification-code", String.class);
-
-        JiraRestClientFactory factory = new 
OAuthAsynchronousJiraRestClientFactory();
-        URI jiraServerUri = URI.create(jiraUrl);
-        if (username.isPresent() && password.isPresent()) {
-            REST_CLIENT = 
factory.createWithBasicHttpAuthentication(jiraServerUri, username.get(), 
password.get());
-        } else if (accessToken.isPresent() && consumerKey.isPresent() && 
privateKey.isPresent()
-                && verificationCode.isPresent()) {
-            JiraOAuthAuthenticationHandler oAuthHandler = new 
JiraOAuthAuthenticationHandler(
-                    consumerKey.get(),
-                    verificationCode.get(),
-                    privateKey.get(),
-                    accessToken.get(),
-                    jiraUrl);
-            REST_CLIENT = factory.create(jiraServerUri, oAuthHandler);
-        } else {
-            throw new IllegalStateException("Unable to create Jira client");
-        }
-    }
+    private JiraRestClient client;
 
     @Test
     public void issueCrud() {
@@ -250,14 +213,14 @@ public class JiraTest {
 
             // Verify attachment
             await().atMost(10, TimeUnit.SECONDS).pollDelay(1, 
TimeUnit.SECONDS).until(() -> {
-                Issue issue = 
getClient().getIssueClient().getIssue(issueKey).claim();
+                Issue issue = 
client.getIssueClient().getIssue(issueKey).claim();
                 assertNotNull(issue);
 
                 Iterable<Attachment> iterable = issue.getAttachments();
                 return iterable != null && iterable.iterator().hasNext();
             });
 
-            Issue issue = 
getClient().getIssueClient().getIssue(issueKey).claim();
+            Issue issue = client.getIssueClient().getIssue(issueKey).claim();
             Attachment attachment = issue.getAttachments().iterator().next();
             assertTrue(attachment.getFilename().startsWith("cq-jira"));
         } finally {
@@ -271,7 +234,6 @@ public class JiraTest {
         String issueKey = createIssue();
         try {
             // Unwatch issue
-            JiraRestClient client = getClient();
             String username = 
client.getSessionClient().getCurrentSession().claim().getUsername();
             RestAssured.given()
                     .contentType(ContentType.TEXT)
@@ -285,7 +247,7 @@ public class JiraTest {
 
             // Verify unwatch
             await().atMost(10, TimeUnit.SECONDS).pollDelay(1, 
TimeUnit.SECONDS).until(() -> {
-                Issue issue = 
getClient().getIssueClient().getIssue(issueKey).claim();
+                Issue issue = 
client.getIssueClient().getIssue(issueKey).claim();
                 assertNotNull(issue);
 
                 BasicWatchers watchers = issue.getWatchers();
@@ -305,7 +267,7 @@ public class JiraTest {
 
             // Verify unwatch
             await().atMost(10, TimeUnit.SECONDS).pollDelay(1, 
TimeUnit.SECONDS).until(() -> {
-                Issue issue = 
getClient().getIssueClient().getIssue(issueKey).claim();
+                Issue issue = 
client.getIssueClient().getIssue(issueKey).claim();
                 assertNotNull(issue);
 
                 BasicWatchers watchers = issue.getWatchers();
@@ -340,7 +302,7 @@ public class JiraTest {
 
             // Verify link
             await().atMost(10, TimeUnit.SECONDS).pollDelay(1, 
TimeUnit.SECONDS).until(() -> {
-                Issue parent = 
getClient().getIssueClient().getIssue(parentKey).claim();
+                Issue parent = 
client.getIssueClient().getIssue(parentKey).claim();
                 assertNotNull(parent);
 
                 Iterable<IssueLink> issueLinks = parent.getIssueLinks();
@@ -373,7 +335,7 @@ public class JiraTest {
 
             // Verify logged work
             await().atMost(10, TimeUnit.SECONDS).pollDelay(1, 
TimeUnit.SECONDS).until(() -> {
-                Issue issue = 
getClient().getIssueClient().getIssue(issueKey).claim();
+                Issue issue = 
client.getIssueClient().getIssue(issueKey).claim();
                 assertNotNull(issue);
 
                 Iterable<Worklog> workLogs = issue.getWorklogs();
@@ -394,7 +356,7 @@ public class JiraTest {
         // Create issue
         String issueKey = createIssue();
         try {
-            Issue originalIssue = 
getClient().getIssueClient().getIssue(issueKey).claim();
+            Issue originalIssue = 
client.getIssueClient().getIssue(issueKey).claim();
             assertNotNull(originalIssue);
 
             Resolution originalResolution = originalIssue.getResolution();
@@ -418,7 +380,7 @@ public class JiraTest {
 
             // Verify issue workflow transition
             await().atMost(10, TimeUnit.SECONDS).pollDelay(1, 
TimeUnit.SECONDS).until(() -> {
-                Issue issue = 
getClient().getIssueClient().getIssue(issueKey).claim();
+                Issue issue = 
client.getIssueClient().getIssue(issueKey).claim();
                 assertNotNull(issue);
 
                 Resolution resolution = issue.getResolution();
@@ -451,28 +413,11 @@ public class JiraTest {
 
     private void deleteIssue(String issueKey) {
         try {
-            getClient().getIssueClient()
+            client.getIssueClient()
                     .deleteIssue(issueKey, true)
                     .claim();
         } catch (Exception e) {
             // Ignore - issue may not exist
         }
     }
-
-    private static JiraRestClient getClient() {
-        if (REST_CLIENT == null) {
-            Config config = ConfigProvider.getConfig();
-            String jiraUrl = config.getValue("camel.component.jira.jira-url", 
String.class);
-            Optional<String> username = 
config.getOptionalValue("camel.component.jira.username", String.class);
-            Optional<String> password = 
config.getOptionalValue("camel.component.jira.password", String.class);
-
-            JiraRestClientFactory factory = new 
OAuthAsynchronousJiraRestClientFactory();
-            URI jiraServerUri = URI.create(jiraUrl);
-            if (username.isPresent() && password.isPresent()) {
-                return 
factory.createWithBasicHttpAuthentication(jiraServerUri, username.get(), 
password.get());
-            }
-            throw new IllegalStateException("Unable to create Jira client");
-        }
-        return REST_CLIENT;
-    }
 }
diff --git 
a/integration-tests/jira/src/test/java/org/apache/camel/quarkus/component/jira/it/JiraTestResource.java
 
b/integration-tests/jira/src/test/java/org/apache/camel/quarkus/component/jira/it/JiraTestResource.java
index 746eb80ec9..f17506b98e 100644
--- 
a/integration-tests/jira/src/test/java/org/apache/camel/quarkus/component/jira/it/JiraTestResource.java
+++ 
b/integration-tests/jira/src/test/java/org/apache/camel/quarkus/component/jira/it/JiraTestResource.java
@@ -16,12 +16,17 @@
  */
 package org.apache.camel.quarkus.component.jira.it;
 
+import java.net.URI;
 import java.util.Map;
 
+import com.atlassian.jira.rest.client.api.JiraRestClient;
+import com.atlassian.jira.rest.client.api.JiraRestClientFactory;
+import org.apache.camel.component.jira.oauth.JiraOAuthAuthenticationHandler;
+import 
org.apache.camel.component.jira.oauth.OAuthAsynchronousJiraRestClientFactory;
 import 
org.apache.camel.quarkus.test.wiremock.WireMockTestResourceLifecycleManager;
+import org.apache.camel.util.ObjectHelper;
 
 public class JiraTestResource extends WireMockTestResourceLifecycleManager {
-
     private static final String JIRA_ENV_URL = "JIRA_URL";
     private static final String JIRA_ENV_USERNAME = "JIRA_USERNAME";
     private static final String JIRA_ENV_PASSWORD = "JIRA_PASSWORD";
@@ -30,6 +35,7 @@ public class JiraTestResource extends 
WireMockTestResourceLifecycleManager {
     private static final String JIRA_ENV_OAUTH_CONSUMER_KEY = 
"JIRA_OAUTH_CONSUMER_KEY";
     private static final String JIRA_ENV_OAUTH_PRIVATE_KEY = 
"JIRA_OAUTH_PRIVATE_KEY";
     private static final String JIRA_ENV_OAUTH_VERIFICATION_CODE = 
"JIRA_OAUTH_VERIFICATION_CODE";
+    private Map<String, String> options;
 
     @Override
     public Map<String, String> start() {
@@ -52,9 +58,44 @@ public class JiraTestResource extends 
WireMockTestResourceLifecycleManager {
             options.put("camel.component.jira.password", 
envOrDefault(JIRA_ENV_PASSWORD, "tester123"));
         }
 
+        this.options = options;
+
         return options;
     }
 
+    @Override
+    public void inject(TestInjector testInjector) {
+        if (options != null) {
+            String jiraUrl = options.get("camel.component.jira.jira-url");
+            String username = options.get("camel.component.jira.username");
+            String password = options.get("camel.component.jira.password");
+            String accessToken = 
options.get("camel.component.jira.access-token");
+            String consumerKey = 
options.get("camel.component.jira.consumer-key");
+            String privateKey = 
options.get("camel.component.jira.private-key");
+            String verificationCode = 
options.get("camel.component.jira.verification-code");
+
+            JiraRestClient client;
+            JiraRestClientFactory factory = new 
OAuthAsynchronousJiraRestClientFactory();
+            URI jiraServerUri = URI.create(jiraUrl);
+            if (ObjectHelper.isNotEmpty(username) && 
ObjectHelper.isNotEmpty(password)) {
+                client = 
factory.createWithBasicHttpAuthentication(jiraServerUri, username, password);
+            } else if (ObjectHelper.isNotEmpty(accessToken) && 
ObjectHelper.isNotEmpty(consumerKey)
+                    && ObjectHelper.isNotEmpty(privateKey) && 
ObjectHelper.isNotEmpty(verificationCode)) {
+                JiraOAuthAuthenticationHandler oAuthHandler = new 
JiraOAuthAuthenticationHandler(
+                        consumerKey,
+                        verificationCode,
+                        privateKey,
+                        accessToken,
+                        jiraUrl);
+                client = factory.create(jiraServerUri, oAuthHandler);
+            } else {
+                throw new IllegalStateException("Unable to create Jira 
client");
+            }
+
+            testInjector.injectIntoFields(client, new 
TestInjector.MatchesType(JiraRestClient.class));
+        }
+    }
+
     @Override
     protected String getRecordTargetBaseUrl() {
         return envOrDefault(JIRA_ENV_URL, null);
diff --git 
a/integration-tests/jpa/src/main/java/org/apache/camel/quarkus/component/jpa/it/JpaResource.java
 
b/integration-tests/jpa/src/main/java/org/apache/camel/quarkus/component/jpa/it/JpaResource.java
index 762934284c..5bbd999695 100644
--- 
a/integration-tests/jpa/src/main/java/org/apache/camel/quarkus/component/jpa/it/JpaResource.java
+++ 
b/integration-tests/jpa/src/main/java/org/apache/camel/quarkus/component/jpa/it/JpaResource.java
@@ -23,9 +23,11 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 import io.quarkus.arc.ClientProxy;
 import io.quarkus.arc.InjectableBean;
+import jakarta.enterprise.event.Observes;
 import jakarta.enterprise.inject.Default;
 import jakarta.inject.Inject;
 import jakarta.inject.Named;
@@ -46,10 +48,12 @@ import org.apache.camel.ProducerTemplate;
 import org.apache.camel.component.jpa.JpaConstants;
 import org.apache.camel.component.jpa.JpaEndpoint;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.impl.event.CamelContextStartedEvent;
 import org.apache.camel.quarkus.component.jpa.it.model.Fruit;
 
 @Path("/jpa")
 public class JpaResource {
+    public static final String[] FRUITS = new String[] { "Orange", "Lemon", 
"Plum" };
 
     @Inject
     ProducerTemplate producerTemplate;
@@ -57,6 +61,16 @@ public class JpaResource {
     @Inject
     CamelContext context;
 
+    void onInit(@Observes CamelContextStartedEvent event) {
+        if (!context.getRoutes().isEmpty()) {
+            Stream.of(FRUITS)
+                    .map(Fruit::new)
+                    .forEach(fruit -> {
+                        producerTemplate.sendBody("direct:store", fruit);
+                    });
+        }
+    }
+
     @Path("/fruit")
     @GET
     @Produces(MediaType.APPLICATION_JSON)
diff --git 
a/integration-tests/jpa/src/test/java/org/apache/camel/quarkus/component/jpa/it/JpaTestBase.java
 
b/integration-tests/jpa/src/test/java/org/apache/camel/quarkus/component/jpa/it/JpaTestBase.java
index 461b47e697..29c745bce6 100644
--- 
a/integration-tests/jpa/src/test/java/org/apache/camel/quarkus/component/jpa/it/JpaTestBase.java
+++ 
b/integration-tests/jpa/src/test/java/org/apache/camel/quarkus/component/jpa/it/JpaTestBase.java
@@ -24,11 +24,9 @@ import io.restassured.http.ContentType;
 import jakarta.json.bind.Jsonb;
 import jakarta.json.bind.JsonbBuilder;
 import org.apache.camel.quarkus.component.jpa.it.model.Fruit;
-import org.eclipse.microprofile.config.Config;
-import org.eclipse.microprofile.config.ConfigProvider;
-import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 
+import static org.apache.camel.quarkus.component.jpa.it.JpaResource.FRUITS;
 import static org.awaitility.Awaitility.await;
 import static org.hamcrest.Matchers.contains;
 import static org.hamcrest.Matchers.containsInAnyOrder;
@@ -38,24 +36,6 @@ import static org.hamcrest.Matchers.is;
 import static org.hamcrest.Matchers.notNullValue;
 
 public class JpaTestBase {
-
-    static final String[] FRUITS = new String[] { "Orange", "Lemon", "Plum" };
-
-    @BeforeAll
-    public static void storeFruits() {
-        final Config config = ConfigProvider.getConfig();
-        int port = config.getValue("quarkus.http.test-port", int.class);
-        RestAssured.port = port;
-        for (String fruit : FRUITS) {
-            RestAssured.given()
-                    .contentType(ContentType.JSON)
-                    .body(JsonbBuilder.create().toJson(new Fruit(fruit)))
-                    .post("/jpa/fruit")
-                    .then()
-                    .statusCode(201);
-        }
-    }
-
     @Test
     public void testProducerQuery() {
         RestAssured.get("/jpa/fruit")
diff --git 
a/integration-tests/kudu/src/test/java/org/apache/camel/quarkus/component/kudu/it/KuduTest.java
 
b/integration-tests/kudu/src/test/java/org/apache/camel/quarkus/component/kudu/it/KuduTest.java
index 4e0aad2f14..9d41c8315e 100644
--- 
a/integration-tests/kudu/src/test/java/org/apache/camel/quarkus/component/kudu/it/KuduTest.java
+++ 
b/integration-tests/kudu/src/test/java/org/apache/camel/quarkus/component/kudu/it/KuduTest.java
@@ -25,15 +25,10 @@ import io.restassured.http.ContentType;
 import org.apache.camel.quarkus.test.DisabledIfFipsMode;
 import org.apache.kudu.client.KuduClient;
 import org.apache.kudu.client.KuduException;
-import org.eclipse.microprofile.config.ConfigProvider;
-import org.jboss.logging.Logger;
-import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
-import static 
org.apache.camel.quarkus.component.kudu.it.KuduRoute.KUDU_AUTHORITY_CONFIG_KEY;
 import static org.hamcrest.CoreMatchers.equalTo;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.CoreMatchers.nullValue;
@@ -41,27 +36,9 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 
 @QuarkusTestResource(KuduTestResource.class)
 @QuarkusTest
-@DisabledIfFipsMode // https://github.com/apache/camel-quarkus/issues/5700
+@DisabledIfFipsMode
 class KuduTest {
-    private static final Logger LOG = Logger.getLogger(KuduTest.class);
-    static KuduClient client;
-
-    @BeforeAll
-    static void setup() {
-        String authority = 
ConfigProvider.getConfig().getValue(KUDU_AUTHORITY_CONFIG_KEY, String.class);
-        client = new KuduClient.KuduClientBuilder(authority).build();
-    }
-
-    @AfterAll
-    static void afterAll() {
-        if (client != null) {
-            try {
-                client.close();
-            } catch (KuduException e) {
-                LOG.warn("Failed to close kudu client", e);
-            }
-        }
-    }
+    KuduClient client;
 
     @BeforeEach
     void beforeEach() throws KuduException {
diff --git 
a/integration-tests/kudu/src/test/java/org/apache/camel/quarkus/component/kudu/it/KuduTestResource.java
 
b/integration-tests/kudu/src/test/java/org/apache/camel/quarkus/component/kudu/it/KuduTestResource.java
index 956635934d..8b376057e9 100644
--- 
a/integration-tests/kudu/src/test/java/org/apache/camel/quarkus/component/kudu/it/KuduTestResource.java
+++ 
b/integration-tests/kudu/src/test/java/org/apache/camel/quarkus/component/kudu/it/KuduTestResource.java
@@ -29,6 +29,7 @@ import com.github.dockerjava.api.model.HostConfig;
 import com.github.dockerjava.api.model.Ports;
 import io.quarkus.test.common.QuarkusTestResourceLifecycleManager;
 import org.apache.camel.util.CollectionHelper;
+import org.apache.kudu.client.KuduClient;
 import org.eclipse.microprofile.config.ConfigProvider;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -55,6 +56,7 @@ public class KuduTestResource implements 
QuarkusTestResourceLifecycleManager {
 
     private GenericContainer<?> masterContainer;
     private GenericContainer<?> tabletContainer;
+    private KuduClient client;
 
     @Override
     public Map<String, String> start() {
@@ -121,13 +123,24 @@ public class KuduTestResource implements 
QuarkusTestResourceLifecycleManager {
                 + tabletContainer.getMappedPort(KUDU_TABLET_HTTP_PORT);
         LOG.info("Kudu tablet server HTTP accessible at " + 
tServerHttpAuthority);
 
-        return CollectionHelper.mapOf(
-                KUDU_AUTHORITY_CONFIG_KEY, masterRpcAuthority);
+        Map<String, String> config = 
CollectionHelper.mapOf(KUDU_AUTHORITY_CONFIG_KEY, masterRpcAuthority);
+
+        client = new KuduClient.KuduClientBuilder(masterRpcAuthority).build();
+
+        return config;
+    }
+
+    @Override
+    public void inject(TestInjector testInjector) {
+        testInjector.injectIntoFields(client, new 
TestInjector.MatchesType(KuduClient.class));
     }
 
     @Override
     public void stop() {
         try {
+            if (client != null) {
+                client.close();
+            }
             if (masterContainer != null) {
                 masterContainer.stop();
             }
diff --git 
a/integration-tests/mail/src/test/java/org/apache/camel/quarkus/component/mail/MailTest.java
 
b/integration-tests/mail/src/test/java/org/apache/camel/quarkus/component/mail/MailTest.java
index 24dd1a484f..4494e40b9b 100644
--- 
a/integration-tests/mail/src/test/java/org/apache/camel/quarkus/component/mail/MailTest.java
+++ 
b/integration-tests/mail/src/test/java/org/apache/camel/quarkus/component/mail/MailTest.java
@@ -20,7 +20,6 @@ import java.io.IOException;
 import java.net.URISyntaxException;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
-import java.nio.file.Path;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
@@ -39,22 +38,18 @@ import io.smallrye.certs.junit5.Certificate;
 import jakarta.json.bind.JsonbBuilder;
 import org.apache.camel.ExchangePropertyKey;
 import org.apache.camel.ServiceStatus;
+import 
org.apache.camel.quarkus.component.mail.MailTestResource.GreenMailClient;
 import org.apache.camel.quarkus.test.support.certificate.CertificatesUtil;
 import org.apache.camel.quarkus.test.support.certificate.TestCertificates;
 import org.awaitility.Awaitility;
 import org.eclipse.angus.mail.util.MailConnectException;
-import org.eclipse.microprofile.config.Config;
-import org.eclipse.microprofile.config.ConfigProvider;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.ValueSource;
 
 import static org.apache.camel.quarkus.component.mail.CamelRoute.EMAIL_ADDRESS;
-import static org.apache.camel.quarkus.component.mail.CamelRoute.PASSWORD;
-import static org.apache.camel.quarkus.component.mail.CamelRoute.USERNAME;
 import static org.hamcrest.Matchers.is;
 
 @TestCertificates(certificates = {
@@ -80,31 +75,12 @@ public class MailTest {
             + "\r\n"
             + "Hello attachment!"
             + "${delimiter}--\r\n";
-
-    @BeforeAll
-    public static void beforeAll() {
-        // Configure users
-        Config config = ConfigProvider.getConfig();
-        String userJson = String.format("{ \"email\": \"%s\", \"login\": 
\"%s\", \"password\": \"%s\"}", EMAIL_ADDRESS,
-                USERNAME, PASSWORD);
-
-        RestAssured.given()
-                .contentType(ContentType.JSON)
-                .body(userJson)
-                .post("http://"; + config.getValue("mail.host", String.class) + 
":"
-                        + config.getValue("mail.api.port", Integer.class) + 
"/api/user");
-    }
+    private GreenMailClient client;
 
     @AfterEach
     public void afterEach() {
         // Clear mailboxes
-        Config config = ConfigProvider.getConfig();
-        RestAssured.given()
-                .post("http://"; + config.getValue("mail.host", String.class) + 
":"
-                        + config.getValue("mail.api.port", Integer.class) + 
"/api/mail/purge")
-                .then()
-                .statusCode(200)
-                .body("message", is("Purged mails"));
+        client.purgeMail();
 
         RestAssured.get("/mail/stopConsumers")
                 .then()
diff --git 
a/integration-tests/mail/src/test/java/org/apache/camel/quarkus/component/mail/MailTestResource.java
 
b/integration-tests/mail/src/test/java/org/apache/camel/quarkus/component/mail/MailTestResource.java
index a8e6675b79..03c20f5493 100644
--- 
a/integration-tests/mail/src/test/java/org/apache/camel/quarkus/component/mail/MailTestResource.java
+++ 
b/integration-tests/mail/src/test/java/org/apache/camel/quarkus/component/mail/MailTestResource.java
@@ -23,6 +23,8 @@ import java.util.HashMap;
 import java.util.Map;
 
 import io.quarkus.test.common.QuarkusTestResourceLifecycleManager;
+import io.restassured.RestAssured;
+import io.restassured.http.ContentType;
 import org.apache.camel.quarkus.test.support.certificate.CertificatesUtil;
 import org.eclipse.microprofile.config.ConfigProvider;
 import org.slf4j.Logger;
@@ -32,6 +34,11 @@ import org.testcontainers.containers.output.Slf4jLogConsumer;
 import org.testcontainers.containers.wait.strategy.HttpWaitStrategy;
 import org.testcontainers.utility.MountableFile;
 
+import static org.apache.camel.quarkus.component.mail.CamelRoute.EMAIL_ADDRESS;
+import static org.apache.camel.quarkus.component.mail.CamelRoute.PASSWORD;
+import static org.apache.camel.quarkus.component.mail.CamelRoute.USERNAME;
+import static org.hamcrest.Matchers.is;
+
 public class MailTestResource implements QuarkusTestResourceLifecycleManager {
     private static final Logger LOG = 
LoggerFactory.getLogger(MailTestResource.class);
     private static final String GREENMAIL_IMAGE_NAME = 
ConfigProvider.getConfig().getValue("greenmail.container.image",
@@ -40,6 +47,7 @@ public class MailTestResource implements 
QuarkusTestResourceLifecycleManager {
     static final String KEYSTORE_PASSWORD = "changeit";
 
     private GenericContainer<?> container;
+    private GreenMailClient client;
 
     @Override
     public Map<String, String> start() {
@@ -64,9 +72,18 @@ public class MailTestResource implements 
QuarkusTestResourceLifecycleManager {
             options.put(optionName, mappedPort.toString());
         }
 
+        client = new GreenMailClient(
+                "http://"; + container.getHost() + ":" + 
container.getMappedPort(MailProtocol.API.getPort()));
+        client.createUsers();
+
         return options;
     }
 
+    @Override
+    public void inject(TestInjector testInjector) {
+        testInjector.injectIntoFields(client, new 
TestInjector.MatchesType(GreenMailClient.class));
+    }
+
     @Override
     public void stop() {
         if (container != null) {
@@ -110,4 +127,29 @@ public class MailTestResource implements 
QuarkusTestResourceLifecycleManager {
             return ports;
         }
     }
+
+    public static final class GreenMailClient {
+        private final String baseUrl;
+
+        public GreenMailClient(String url) {
+            this.baseUrl = url;
+        }
+
+        public void createUsers() {
+            String userJson = String.format("{ \"email\": \"%s\", \"login\": 
\"%s\", \"password\": \"%s\"}", EMAIL_ADDRESS,
+                    USERNAME, PASSWORD);
+            RestAssured.given()
+                    .contentType(ContentType.JSON)
+                    .body(userJson)
+                    .post(baseUrl + "/api/user");
+        }
+
+        public void purgeMail() {
+            RestAssured.given()
+                    .post(baseUrl + "/api/mail/purge")
+                    .then()
+                    .statusCode(200)
+                    .body("message", is("Purged mails"));
+        }
+    }
 }
diff --git 
a/integration-tests/olingo4/src/test/java/org/apache/camel/quarkus/component/olingo4/it/OdataTestResource.java
 
b/integration-tests/olingo4/src/test/java/org/apache/camel/quarkus/component/olingo4/it/OdataTestResource.java
index 0cc48f0bef..de38df60a9 100644
--- 
a/integration-tests/olingo4/src/test/java/org/apache/camel/quarkus/component/olingo4/it/OdataTestResource.java
+++ 
b/integration-tests/olingo4/src/test/java/org/apache/camel/quarkus/component/olingo4/it/OdataTestResource.java
@@ -16,14 +16,23 @@
  */
 package org.apache.camel.quarkus.component.olingo4.it;
 
+import java.io.IOException;
 import java.util.Map;
 
 import 
org.apache.camel.quarkus.test.wiremock.WireMockTestResourceLifecycleManager;
 import org.apache.camel.util.ObjectHelper;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpUriRequest;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.protocol.BasicHttpContext;
+import org.apache.http.protocol.HttpContext;
+import org.apache.http.protocol.HttpCoreContext;
 
 public class OdataTestResource extends WireMockTestResourceLifecycleManager {
     private static final String ODATA_API_BASE_URL = 
"https://services.odata.org/TripPinRESTierService";;
     private static final String ENV_ODATA_API_BASE_URL = "ODATA_API_BASE_URL";
+    private OlingoSession session;
 
     @Override
     public Map<String, String> start() {
@@ -36,9 +45,16 @@ public class OdataTestResource extends 
WireMockTestResourceLifecycleManager {
             configuration.put("olingo4.test.url", 
System.getenv(ENV_ODATA_API_BASE_URL));
         }
 
+        session = new OlingoSession(configuration.get("olingo4.test.url"));
+
         return configuration;
     }
 
+    @Override
+    public void inject(TestInjector testInjector) {
+        testInjector.injectIntoFields(session, new 
TestInjector.MatchesType(OlingoSession.class));
+    }
+
     @Override
     protected String getRecordTargetBaseUrl() {
         return ODATA_API_BASE_URL;
@@ -54,4 +70,24 @@ public class OdataTestResource extends 
WireMockTestResourceLifecycleManager {
         // we are testing scenario where we delete record and then we want to 
verify it was deleted (which returns non success code)
         return false;
     }
+
+    public static final class OlingoSession {
+        private String sessionId;
+
+        public OlingoSession(String serviceUrl) {
+            try (CloseableHttpClient httpClient = HttpClients.createDefault()) 
{
+                HttpGet httpGet = new HttpGet(serviceUrl);
+                HttpContext httpContext = new BasicHttpContext();
+                httpClient.execute(httpGet, httpContext);
+                HttpUriRequest currentReq = (HttpUriRequest) 
httpContext.getAttribute(HttpCoreContext.HTTP_REQUEST);
+                sessionId = currentReq.getURI().getPath().split("/")[2];
+            } catch (IOException e) {
+                throw new RuntimeException(e);
+            }
+        }
+
+        public String getSessionId() {
+            return sessionId;
+        }
+    }
 }
diff --git 
a/integration-tests/olingo4/src/test/java/org/apache/camel/quarkus/component/olingo4/it/Olingo4Test.java
 
b/integration-tests/olingo4/src/test/java/org/apache/camel/quarkus/component/olingo4/it/Olingo4Test.java
index 0ed89fc9e8..4f6c3ba05b 100644
--- 
a/integration-tests/olingo4/src/test/java/org/apache/camel/quarkus/component/olingo4/it/Olingo4Test.java
+++ 
b/integration-tests/olingo4/src/test/java/org/apache/camel/quarkus/component/olingo4/it/Olingo4Test.java
@@ -16,21 +16,11 @@
  */
 package org.apache.camel.quarkus.component.olingo4.it;
 
-import java.io.IOException;
-
 import io.quarkus.test.common.QuarkusTestResource;
 import io.quarkus.test.junit.QuarkusTest;
 import io.restassured.RestAssured;
 import io.restassured.http.ContentType;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.client.methods.HttpUriRequest;
-import org.apache.http.impl.client.CloseableHttpClient;
-import org.apache.http.impl.client.HttpClients;
-import org.apache.http.protocol.BasicHttpContext;
-import org.apache.http.protocol.HttpContext;
-import org.apache.http.protocol.HttpCoreContext;
-import org.eclipse.microprofile.config.ConfigProvider;
-import org.junit.jupiter.api.BeforeAll;
+import 
org.apache.camel.quarkus.component.olingo4.it.OdataTestResource.OlingoSession;
 import org.junit.jupiter.api.Test;
 
 import static org.hamcrest.core.Is.is;
@@ -38,20 +28,10 @@ import static org.hamcrest.core.Is.is;
 @QuarkusTest
 @QuarkusTestResource(OdataTestResource.class)
 class Olingo4Test {
-
-    public static final String TEST_SERVICE_BASE_URL = 
ConfigProvider.getConfig().getValue("olingo4.test.url", String.class);
-
-    private static String sessionId;
-
-    @BeforeAll
-    public static void beforeAll() throws IOException {
-        // Use the same session id for each request to the demo Olingo4 Service
-        sessionId = getSession();
-    }
+    private OlingoSession session;
 
     @Test
     public void testOlingo4CrudOperations() {
-
         // Create
         Person person = new Person();
         person.setUserName("lewisblack");
@@ -59,7 +39,7 @@ class Olingo4Test {
         person.setLastName("Black");
 
         RestAssured.given()
-                .queryParam("sessionId", sessionId)
+                .queryParam("sessionId", session.getSessionId())
                 .contentType(ContentType.JSON)
                 .body(person)
                 .post("/olingo4/create")
@@ -68,7 +48,7 @@ class Olingo4Test {
 
         // Read
         RestAssured.given()
-                .queryParam("sessionId", sessionId)
+                .queryParam("sessionId", session.getSessionId())
                 .body("msg")
                 .get("/olingo4/read")
                 .then()
@@ -81,7 +61,7 @@ class Olingo4Test {
         person.setMiddleName("James");
 
         RestAssured.given()
-                .queryParam("sessionId", sessionId)
+                .queryParam("sessionId", session.getSessionId())
                 .contentType(ContentType.JSON)
                 .body(person)
                 .patch("/olingo4/update")
@@ -89,7 +69,7 @@ class Olingo4Test {
                 .statusCode(204);
 
         RestAssured.given()
-                .queryParam("sessionId", sessionId)
+                .queryParam("sessionId", session.getSessionId())
                 .body("msg")
                 .get("/olingo4/read")
                 .then()
@@ -100,25 +80,16 @@ class Olingo4Test {
 
         // Delete
         RestAssured.given()
-                .queryParam("sessionId", sessionId)
+                .queryParam("sessionId", session.getSessionId())
                 .delete("/olingo4/delete")
                 .then()
                 .statusCode(204);
 
         RestAssured.given()
-                .queryParam("sessionId", sessionId)
+                .queryParam("sessionId", session.getSessionId())
                 .body("msg")
                 .get("/olingo4/read")
                 .then()
                 .statusCode(404);
     }
-
-    private static String getSession() throws IOException {
-        CloseableHttpClient httpClient = HttpClients.createDefault();
-        HttpGet httpGet = new HttpGet(TEST_SERVICE_BASE_URL);
-        HttpContext httpContext = new BasicHttpContext();
-        httpClient.execute(httpGet, httpContext);
-        HttpUriRequest currentReq = (HttpUriRequest) 
httpContext.getAttribute(HttpCoreContext.HTTP_REQUEST);
-        return currentReq.getURI().getPath().split("/")[2];
-    }
 }
diff --git 
a/integration-tests/pg-replication-slot/src/test/java/org/apache/camel/quarkus/component/pg/replication/slot/it/PgReplicationSlotTest.java
 
b/integration-tests/pg-replication-slot/src/test/java/org/apache/camel/quarkus/component/pg/replication/slot/it/PgReplicationSlotTest.java
index 331ceaec7c..6e2f432acd 100644
--- 
a/integration-tests/pg-replication-slot/src/test/java/org/apache/camel/quarkus/component/pg/replication/slot/it/PgReplicationSlotTest.java
+++ 
b/integration-tests/pg-replication-slot/src/test/java/org/apache/camel/quarkus/component/pg/replication/slot/it/PgReplicationSlotTest.java
@@ -17,60 +17,26 @@
 package org.apache.camel.quarkus.component.pg.replication.slot.it;
 
 import java.sql.Connection;
-import java.sql.DriverManager;
 import java.sql.SQLException;
 import java.sql.Statement;
-import java.util.Properties;
 import java.util.concurrent.TimeUnit;
 
 import io.quarkus.test.common.QuarkusTestResource;
 import io.quarkus.test.junit.QuarkusTest;
 import io.restassured.http.ContentType;
-import org.eclipse.microprofile.config.ConfigProvider;
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 
 import static io.restassured.RestAssured.given;
-import static 
org.apache.camel.quarkus.component.pg.replication.slot.it.PgReplicationSlotRoute.PG_AUTHORITY_CFG_KEY;
-import static 
org.apache.camel.quarkus.component.pg.replication.slot.it.PgReplicationSlotRoute.PG_DBNAME_CFG_KEY;
-import static 
org.apache.camel.quarkus.component.pg.replication.slot.it.PgReplicationSlotRoute.PG_PASSRD_CFG_KEY;
-import static 
org.apache.camel.quarkus.component.pg.replication.slot.it.PgReplicationSlotRoute.PG_USER_CFG_KEY;
 import static org.awaitility.Awaitility.await;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 @QuarkusTestResource(PgReplicationSlotTestResource.class)
 @QuarkusTest
 class PgReplicationSlotTest {
-
-    private static Connection connection;
-
-    @BeforeAll
-    public static void setUp() throws SQLException {
-        String authority = 
ConfigProvider.getConfig().getValue(PG_AUTHORITY_CFG_KEY, String.class);
-        String dbName = ConfigProvider.getConfig().getValue(PG_DBNAME_CFG_KEY, 
String.class);
-        String user = ConfigProvider.getConfig().getValue(PG_USER_CFG_KEY, 
String.class);
-        String password = 
ConfigProvider.getConfig().getValue(PG_PASSRD_CFG_KEY, String.class);
-
-        String url = String.format("jdbc:postgresql://%s/%s", authority, 
dbName);
-        Properties props = new Properties();
-        props.setProperty("user", user);
-        props.setProperty("password", password);
-
-        connection = DriverManager.getConnection(url, props);
-        try (Statement statement = connection.createStatement()) {
-            statement.execute("CREATE TABLE IF NOT EXISTS camel_test_table(id 
int);");
-        }
-    }
-
-    @AfterAll
-    public static void tearDown() throws SQLException {
-        connection.close();
-    }
+    private Connection connection;
 
     @Test
     public void insertsShouldTriggerReplicationEvents() throws SQLException {
-
         try (Statement statement = connection.createStatement()) {
             statement.execute("INSERT INTO camel_test_table(id) 
VALUES(1984);");
             statement.execute("INSERT INTO camel_test_table(id) 
VALUES(1998);");
diff --git 
a/integration-tests/pg-replication-slot/src/test/java/org/apache/camel/quarkus/component/pg/replication/slot/it/PgReplicationSlotTestResource.java
 
b/integration-tests/pg-replication-slot/src/test/java/org/apache/camel/quarkus/component/pg/replication/slot/it/PgReplicationSlotTestResource.java
index 14a9d0e680..492322864e 100644
--- 
a/integration-tests/pg-replication-slot/src/test/java/org/apache/camel/quarkus/component/pg/replication/slot/it/PgReplicationSlotTestResource.java
+++ 
b/integration-tests/pg-replication-slot/src/test/java/org/apache/camel/quarkus/component/pg/replication/slot/it/PgReplicationSlotTestResource.java
@@ -17,7 +17,12 @@
 
 package org.apache.camel.quarkus.component.pg.replication.slot.it;
 
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.SQLException;
+import java.sql.Statement;
 import java.util.Map;
+import java.util.Properties;
 
 import io.quarkus.test.common.QuarkusTestResourceLifecycleManager;
 import org.eclipse.microprofile.config.ConfigProvider;
@@ -42,6 +47,7 @@ public class PgReplicationSlotTestResource implements 
QuarkusTestResourceLifecyc
     private static final String POSTGRES_USER = "postgres-user";
 
     private GenericContainer<?> pgContainer;
+    private Connection connection;
 
     @Override
     public Map<String, String> start() {
@@ -54,20 +60,46 @@ public class PgReplicationSlotTestResource implements 
QuarkusTestResourceLifecyc
 
         // Print Postgres server connectivity information
         String pgAuthority = pgContainer.getHost() + ":" + 
pgContainer.getMappedPort(POSTGRES_PORT);
-        LOG.debug("Postgres database available at " + pgAuthority);
+        LOG.debug("Postgres database available at {}", pgAuthority);
 
-        return mapOf(PG_AUTHORITY_CFG_KEY, pgAuthority, PG_DBNAME_CFG_KEY, 
POSTGRES_DB_NAME, PG_USER_CFG_KEY, POSTGRES_USER,
+        Map<String, String> config = mapOf(
+                PG_AUTHORITY_CFG_KEY, pgAuthority,
+                PG_DBNAME_CFG_KEY, POSTGRES_DB_NAME,
+                PG_USER_CFG_KEY, POSTGRES_USER,
                 PG_PASSRD_CFG_KEY, POSTGRES_PASSWORD);
+
+        String url = String.format("jdbc:postgresql://%s/%s", pgAuthority, 
POSTGRES_DB_NAME);
+        Properties connectionProperties = new Properties();
+        connectionProperties.setProperty("user", POSTGRES_USER);
+        connectionProperties.setProperty("password", POSTGRES_PASSWORD);
+        try {
+            connection = DriverManager.getConnection(url, 
connectionProperties);
+            try (Statement statement = connection.createStatement()) {
+                statement.execute("CREATE TABLE IF NOT EXISTS 
camel_test_table(id int);");
+            }
+        } catch (SQLException e) {
+            throw new RuntimeException(e);
+        }
+
+        return config;
+    }
+
+    @Override
+    public void inject(TestInjector testInjector) {
+        testInjector.injectIntoFields(connection, new 
TestInjector.MatchesType(Connection.class));
     }
 
     @Override
     public void stop() {
         try {
+            if (connection != null) {
+                connection.close();
+            }
             if (pgContainer != null) {
                 pgContainer.stop();
             }
         } catch (Exception ex) {
-            LOG.error("An issue occured while stopping the 
PgReplicationSlotTestResource", ex);
+            LOG.error("An issue occurred while stopping the 
PgReplicationSlotTestResource", ex);
         }
     }
 }
diff --git 
a/integration-tests/pinecone/src/test/java/org/apache/camel/quarkus/component/pinecone/it/PineconeTest.java
 
b/integration-tests/pinecone/src/test/java/org/apache/camel/quarkus/component/pinecone/it/PineconeTest.java
index 2884e1be44..53138a0abc 100644
--- 
a/integration-tests/pinecone/src/test/java/org/apache/camel/quarkus/component/pinecone/it/PineconeTest.java
+++ 
b/integration-tests/pinecone/src/test/java/org/apache/camel/quarkus/component/pinecone/it/PineconeTest.java
@@ -24,11 +24,9 @@ import io.quarkus.test.common.QuarkusTestResource;
 import io.quarkus.test.junit.QuarkusTest;
 import io.restassured.RestAssured;
 import io.restassured.http.ContentType;
-import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 import org.openapitools.db_control.client.model.IndexModel;
 
-import static 
org.apache.camel.quarkus.component.pinecone.it.PineconeResource.createPineconeClient;
 import static 
org.apache.camel.quarkus.component.pinecone.it.PineconeRoutes.INDEX_NAME;
 import static org.awaitility.Awaitility.await;
 import static org.hamcrest.Matchers.is;
@@ -39,12 +37,7 @@ import static 
org.openapitools.db_control.client.model.IndexModelStatus.StateEnu
 @QuarkusTestResource(PineconeTestResource.class)
 @QuarkusTest
 class PineconeTest {
-    private static Pinecone pinecone;
-
-    @BeforeAll
-    public static void beforeAll() {
-        pinecone = createPineconeClient();
-    }
+    private Pinecone pinecone;
 
     @Test
     void serverlessIndex() {
diff --git 
a/integration-tests/pinecone/src/test/java/org/apache/camel/quarkus/component/pinecone/it/PineconeTestResource.java
 
b/integration-tests/pinecone/src/test/java/org/apache/camel/quarkus/component/pinecone/it/PineconeTestResource.java
index b884ada52f..1bcf7f97ed 100644
--- 
a/integration-tests/pinecone/src/test/java/org/apache/camel/quarkus/component/pinecone/it/PineconeTestResource.java
+++ 
b/integration-tests/pinecone/src/test/java/org/apache/camel/quarkus/component/pinecone/it/PineconeTestResource.java
@@ -19,6 +19,7 @@ package org.apache.camel.quarkus.component.pinecone.it;
 import java.util.List;
 import java.util.Map;
 
+import io.pinecone.clients.Pinecone;
 import io.quarkus.test.common.QuarkusTestResourceLifecycleManager;
 import org.apache.camel.util.CollectionHelper;
 import org.eclipse.microprofile.config.ConfigProvider;
@@ -34,6 +35,7 @@ public class PineconeTestResource implements 
QuarkusTestResourceLifecycleManager
     private static final String PINECONE_IMAGE = 
ConfigProvider.getConfig().getValue("pinecone.container.image", String.class);
 
     private PineconeLocalContainer container;
+    private Pinecone pinecone;
 
     @Override
     public Map<String, String> start() {
@@ -47,13 +49,22 @@ public class PineconeTestResource implements 
QuarkusTestResourceLifecycleManager
 
             container.start();
 
-            return CollectionHelper.mapOf("pinecone.emulator.endpoint", 
container.getEndpoint());
+            pinecone = new Pinecone.Builder("pclocal")
+                    .withHost(container.getEndpoint())
+                    .withTlsEnabled(false)
+                    .build();
 
+            return CollectionHelper.mapOf("pinecone.emulator.endpoint", 
container.getEndpoint());
         } catch (Exception e) {
             throw new RuntimeException(e);
         }
     }
 
+    @Override
+    public void inject(TestInjector testInjector) {
+        testInjector.injectIntoFields(pinecone, new 
TestInjector.MatchesType(Pinecone.class));
+    }
+
     @Override
     public void stop() {
         try {
diff --git a/pom.xml b/pom.xml
index b65fae18a6..1561c0cbb0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -63,7 +63,7 @@
         <quarkiverse-minio.version>3.8.6</quarkiverse-minio.version><!-- 
https://repo1.maven.org/maven2/io/quarkiverse/minio/quarkus-minio-parent/ -->
         <quarkiverse-mybatis.version>2.4.2</quarkiverse-mybatis.version><!-- 
https://repo1.maven.org/maven2/io/quarkiverse/mybatis/quarkus-mybatis-parent/ 
-->
         
<quarkiverse-pooled-jms.version>2.10.0</quarkiverse-pooled-jms.version><!-- 
https://repo1.maven.org/maven2/io/quarkiverse/messaginghub/quarkus-pooled-jms-parent/
 -->
-        <quarkus.version>3.34.0</quarkus.version><!-- 
https://repo1.maven.org/maven2/io/quarkus/quarkus-bom/ -->
+        <quarkus.version>999-SNAPSHOT</quarkus.version><!-- 
https://repo1.maven.org/maven2/io/quarkus/quarkus-bom/ -->
         
<quarkus-hazelcast-client.version>4.1.0</quarkus-hazelcast-client.version><!-- 
https://repo1.maven.org/maven2/com/hazelcast/quarkus-hazelcast-client-bom/ -->
         <quarkus-qpid-jms.version>2.12.0</quarkus-qpid-jms.version><!-- This 
should be in sync with quarkus-platform 
https://repo1.maven.org/maven2/org/amqphub/quarkus/quarkus-qpid-jms-bom/ -->
 

Reply via email to