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 12a644e6b46385c23c7f4158093657bc25182e2f
Author: James Netherton <jamesnether...@gmail.com>
AuthorDate: Mon Mar 31 14:18:17 2025 +0100

    Add workaround for test TCCL issues and ServiceLoader
---
 .../TestCertificateGenerationExtension.java        | 25 ++++++++++++----------
 .../test/mock/backend/MockBackendUtils.java        | 12 ++++++++---
 2 files changed, 23 insertions(+), 14 deletions(-)

diff --git 
a/integration-tests-support/certificate-generator/src/main/java/org/apache/camel/quarkus/test/support/certificate/TestCertificateGenerationExtension.java
 
b/integration-tests-support/certificate-generator/src/main/java/org/apache/camel/quarkus/test/support/certificate/TestCertificateGenerationExtension.java
index 0e4150c8f8..1104903631 100644
--- 
a/integration-tests-support/certificate-generator/src/main/java/org/apache/camel/quarkus/test/support/certificate/TestCertificateGenerationExtension.java
+++ 
b/integration-tests-support/certificate-generator/src/main/java/org/apache/camel/quarkus/test/support/certificate/TestCertificateGenerationExtension.java
@@ -68,8 +68,8 @@ public class TestCertificateGenerationExtension implements 
BeforeAllCallback {
         Optional<String> cn = Optional.empty();
         Optional<String> altSubName = Optional.empty();
         if (annotation.docker()) {
-            cn = resolveDockerHost();
-            altSubName = cn.stream().map(h -> "IP:%s".formatted(h)).findAny();
+            cn = resolveDockerHost(extensionContext);
+            altSubName = cn.stream().map("IP:%s"::formatted).findAny();
         }
 
         for (Certificate certificate : annotation.certificates()) {
@@ -86,9 +86,7 @@ public class TestCertificateGenerationExtension implements 
BeforeAllCallback {
                     .withPassword(certificate.password().isEmpty() ? null : 
certificate.password())
                     .withDuration(Duration.ofDays(certificate.duration()));
 
-            if (altSubName.isPresent()) {
-                request.withSubjectAlternativeName(altSubName.get());
-            }
+            altSubName.ifPresent(request::withSubjectAlternativeName);
 
             for (String san : certificate.subjectAlternativeNames()) {
                 request.withSubjectAlternativeName(san);
@@ -109,12 +107,17 @@ public class TestCertificateGenerationExtension 
implements BeforeAllCallback {
         }
     }
 
-    private Optional<String> resolveDockerHost() {
-        String dockerHost = 
DockerClientFactory.instance().dockerHostIpAddress();
-        if (!dockerHost.equals("localhost") && 
!dockerHost.equals("127.0.0.1")) {
-            return Optional.of(dockerHost);
+    private Optional<String> resolveDockerHost(ExtensionContext 
extensionContext) {
+        ClassLoader origTCCL = Thread.currentThread().getContextClassLoader();
+        try {
+            
Thread.currentThread().setContextClassLoader(extensionContext.getTestClass().get().getClassLoader());
+            String dockerHost = 
DockerClientFactory.instance().dockerHostIpAddress();
+            if (!dockerHost.equals("localhost") && 
!dockerHost.equals("127.0.0.1")) {
+                return Optional.of(dockerHost);
+            }
+            return Optional.empty();
+        } finally {
+            Thread.currentThread().setContextClassLoader(origTCCL);
         }
-        return Optional.empty();
     }
-
 }
diff --git 
a/integration-tests-support/test-support/src/main/java/org/apache/camel/quarkus/test/mock/backend/MockBackendUtils.java
 
b/integration-tests-support/test-support/src/main/java/org/apache/camel/quarkus/test/mock/backend/MockBackendUtils.java
index 6829413055..b4d378a8bc 100644
--- 
a/integration-tests-support/test-support/src/main/java/org/apache/camel/quarkus/test/mock/backend/MockBackendUtils.java
+++ 
b/integration-tests-support/test-support/src/main/java/org/apache/camel/quarkus/test/mock/backend/MockBackendUtils.java
@@ -50,8 +50,14 @@ public class MockBackendUtils {
     }
 
     static boolean mockBackendStarted() {
-        return ConfigProvider.getConfig()
-                .getOptionalValue("camel.quarkus.start-mock-backend", 
Boolean.class)
-                .orElse(Boolean.TRUE);
+        ClassLoader origTCCL = Thread.currentThread().getContextClassLoader();
+        try {
+            
Thread.currentThread().setContextClassLoader(MockBackendUtils.class.getClassLoader());
+            return ConfigProvider.getConfig()
+                    .getOptionalValue("camel.quarkus.start-mock-backend", 
Boolean.class)
+                    .orElse(Boolean.TRUE);
+        } finally {
+            Thread.currentThread().setContextClassLoader(origTCCL);
+        }
     }
 }

Reply via email to