You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by or...@apache.org on 2024/07/19 11:38:25 UTC

(camel) branch main updated: CAMEL-20988: Fixed initialization failures logging (#14862)

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

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


The following commit(s) were added to refs/heads/main by this push:
     new b70ef86c314 CAMEL-20988: Fixed initialization failures logging (#14862)
b70ef86c314 is described below

commit b70ef86c314cd6879f2583bedeebc5f34cdd8428
Author: LostArtist <93...@users.noreply.github.com>
AuthorDate: Fri Jul 19 13:38:18 2024 +0200

    CAMEL-20988: Fixed initialization failures logging (#14862)
    
    * CAMEL-20988: Fixed initialization failures logging
    
    Co-authored-by: Nikita Konovalov <nk...@redhat.com>
---
 .../apache/camel/test/infra/common/TestUtils.java   | 21 +++++++++++++++++++++
 .../test/infra/kafka/services/KafkaService.java     | 12 +++---------
 .../camel/test/infra/smb/services/SmbService.java   |  9 ++-------
 3 files changed, 26 insertions(+), 16 deletions(-)

diff --git a/test-infra/camel-test-infra-common/src/test/java/org/apache/camel/test/infra/common/TestUtils.java b/test-infra/camel-test-infra-common/src/test/java/org/apache/camel/test/infra/common/TestUtils.java
index 5a218c6dd31..5ef6e072f84 100644
--- a/test-infra/camel-test-infra-common/src/test/java/org/apache/camel/test/infra/common/TestUtils.java
+++ b/test-infra/camel-test-infra-common/src/test/java/org/apache/camel/test/infra/common/TestUtils.java
@@ -16,11 +16,13 @@
  */
 package org.apache.camel.test.infra.common;
 
+import java.util.Optional;
 import java.util.concurrent.ThreadLocalRandom;
 import java.util.concurrent.TimeUnit;
 import java.util.function.BooleanSupplier;
 import java.util.function.Predicate;
 
+import org.junit.jupiter.api.extension.ExtensionContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.testcontainers.utility.TestcontainersConfiguration;
@@ -111,4 +113,23 @@ public final class TestUtils {
     public static String prependHubImageNamePrefixIfNeeded(String imageName) {
         return TestcontainersConfiguration.getInstance().getEnvVarOrProperty("hub.image.name.prefix", "") + imageName;
     }
+
+    /**
+     * Logs service initialization failure
+     *
+     * @param clazz
+     * @param <T>
+     */
+    public static <T> void logInitializationFailure(ExtensionContext extensionContext, Class<T> clazz) {
+        Logger log = LoggerFactory.getLogger(clazz);
+
+        Optional<Object> testInstance = extensionContext.getTestInstance();
+        if (testInstance.isPresent()) {
+            final Object o = testInstance.get();
+            log.error("Failed to initialize service {} for test {} on ({})", clazz.getSimpleName(),
+                    extensionContext.getDisplayName(), o.getClass().getName());
+        } else {
+            log.error("Failed to initialize service {} for test {}", clazz.getSimpleName(), extensionContext.getDisplayName());
+        }
+    }
 }
diff --git a/test-infra/camel-test-infra-kafka/src/test/java/org/apache/camel/test/infra/kafka/services/KafkaService.java b/test-infra/camel-test-infra-kafka/src/test/java/org/apache/camel/test/infra/kafka/services/KafkaService.java
index 962843d7282..917c2e11a30 100644
--- a/test-infra/camel-test-infra-kafka/src/test/java/org/apache/camel/test/infra/kafka/services/KafkaService.java
+++ b/test-infra/camel-test-infra-kafka/src/test/java/org/apache/camel/test/infra/kafka/services/KafkaService.java
@@ -17,12 +17,11 @@
 
 package org.apache.camel.test.infra.kafka.services;
 
+import org.apache.camel.test.infra.common.TestUtils;
 import org.apache.camel.test.infra.common.services.TestService;
 import org.junit.jupiter.api.extension.AfterTestExecutionCallback;
 import org.junit.jupiter.api.extension.BeforeTestExecutionCallback;
 import org.junit.jupiter.api.extension.ExtensionContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * Provides an interface for any type of Kafka service: remote instances, local container, etc
@@ -41,13 +40,8 @@ public interface KafkaService extends TestService, BeforeTestExecutionCallback,
         try {
             initialize();
         } catch (Exception e) {
-            Logger log = LoggerFactory.getLogger(KafkaService.class);
-            log.error("Unexpected error in {}: {} {} ", this.getClass().getSimpleName(), e.getMessage(), e.getCause());
-            if (extensionContext != null && extensionContext.getTestInstance() != null) {
-                Object o = extensionContext.getTestInstance().get();
-                log.error("Failed to initialize service {} for test {} on ({})", this.getClass().getSimpleName(),
-                        extensionContext.getDisplayName(), o.getClass().getName());
-            }
+            TestUtils.logInitializationFailure(extensionContext, KafkaService.class);
+
             throw e;
         }
     }
diff --git a/test-infra/camel-test-infra-smb/src/test/java/org/apache/camel/test/infra/smb/services/SmbService.java b/test-infra/camel-test-infra-smb/src/test/java/org/apache/camel/test/infra/smb/services/SmbService.java
index 42e1bcc9e41..b7c4ce1ade1 100644
--- a/test-infra/camel-test-infra-smb/src/test/java/org/apache/camel/test/infra/smb/services/SmbService.java
+++ b/test-infra/camel-test-infra-smb/src/test/java/org/apache/camel/test/infra/smb/services/SmbService.java
@@ -17,12 +17,11 @@
 
 package org.apache.camel.test.infra.smb.services;
 
+import org.apache.camel.test.infra.common.TestUtils;
 import org.apache.camel.test.infra.common.services.TestService;
 import org.junit.jupiter.api.extension.AfterTestExecutionCallback;
 import org.junit.jupiter.api.extension.BeforeTestExecutionCallback;
 import org.junit.jupiter.api.extension.ExtensionContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public interface SmbService extends TestService, BeforeTestExecutionCallback, AfterTestExecutionCallback {
     String address();
@@ -38,11 +37,7 @@ public interface SmbService extends TestService, BeforeTestExecutionCallback, Af
         try {
             initialize();
         } catch (Exception e) {
-            Logger log = LoggerFactory.getLogger(SmbService.class);
-
-            final Object o = extensionContext.getTestInstance().get();
-            log.error("Failed to initialize service {} for test {} on ({})", this.getClass().getSimpleName(),
-                    extensionContext.getDisplayName(), o.getClass().getName());
+            TestUtils.logInitializationFailure(extensionContext, SmbService.class);
 
             throw e;
         }