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

nfilotto pushed a commit to branch CAMEL-19400/reduce-it-duration
in repository https://gitbox.apache.org/repos/asf/camel.git

commit ca9fbbb6698a5744b435cf5d76ce76b62a0bdec9
Author: Nicolas Filotto <nfilo...@talend.com>
AuthorDate: Mon May 29 19:02:58 2023 +0200

    CAMEL-19400: camel-test-infra - Only initialize and shutdown for outer 
classes
---
 .../infra/common/services/TestServiceUtil.java     | 31 ++++++++++++++++------
 1 file changed, 23 insertions(+), 8 deletions(-)

diff --git 
a/test-infra/camel-test-infra-common/src/test/java/org/apache/camel/test/infra/common/services/TestServiceUtil.java
 
b/test-infra/camel-test-infra-common/src/test/java/org/apache/camel/test/infra/common/services/TestServiceUtil.java
index 95e8d32ff95..0a688ca8cbd 100644
--- 
a/test-infra/camel-test-infra-common/src/test/java/org/apache/camel/test/infra/common/services/TestServiceUtil.java
+++ 
b/test-infra/camel-test-infra-common/src/test/java/org/apache/camel/test/infra/common/services/TestServiceUtil.java
@@ -17,6 +17,7 @@
 
 package org.apache.camel.test.infra.common.services;
 
+import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.extension.ExtensionContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -39,10 +40,12 @@ public final class TestServiceUtil {
      * @throws Exception        exception thrown while initializing (if any)
      */
     public static void tryInitialize(TestService service, ExtensionContext 
extensionContext) throws Exception {
-        try {
-            service.initialize();
-        } catch (Exception e) {
-            logAndRethrow(service, extensionContext, e);
+        if (isOuterTestClass(extensionContext)) {
+            try {
+                service.initialize();
+            } catch (Exception e) {
+                logAndRethrow(service, extensionContext, e);
+            }
         }
     }
 
@@ -54,10 +57,12 @@ public final class TestServiceUtil {
      * @throws Exception        exception thrown while initializing (if any)
      */
     public static void tryShutdown(TestService service, ExtensionContext 
extensionContext) throws Exception {
-        try {
-            service.shutdown();
-        } catch (Exception e) {
-            logAndRethrow(service, extensionContext, e);
+        if (isOuterTestClass(extensionContext)) {
+            try {
+                service.shutdown();
+            } catch (Exception e) {
+                logAndRethrow(service, extensionContext, e);
+            }
         }
     }
 
@@ -76,4 +81,14 @@ public final class TestServiceUtil {
                 extensionContext.getDisplayName(), o.getClass().getName());
         throw exception;
     }
+
+    /**
+     * Indicates whether the test class called is an outer class.
+     *
+     * @param  extensionContext JUnit's extension context
+     * @return                  {@code true} if the test class called is an 
outer class, {@code false} otherwise.
+     */
+    private static boolean isOuterTestClass(ExtensionContext extensionContext) 
{
+        return extensionContext.getTestClass().map(aClass -> 
aClass.getAnnotation(Nested.class) == null).orElse(true);
+    }
 }

Reply via email to