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 f76434b594d CAMEL-20813: use singleton containers for camel-infinispan
f76434b594d is described below

commit f76434b594df5efd3c32f267f962af0e372eead6
Author: Otavio Rodolfo Piske <[email protected]>
AuthorDate: Wed May 29 11:01:01 2024 +0200

    CAMEL-20813: use singleton containers for camel-infinispan
    
    Developed along with Vaishnavi R ([email protected])
---
 .../infinispan/InfinispanTestSupport.java          |  6 +-
 .../embedded/InfinispanEmbeddedTestSupport.java    |  2 +-
 .../remote/InfinispanRemoteConfigurationIT.java    |  2 +-
 .../remote/InfinispanRemoteTestSupport.java        |  4 +-
 .../AbstractInfinispanRemoteClusteredIT.java       |  2 +-
 .../cluster/InfinispanRemoteClusteredViewIT.java   |  2 +-
 ...ispanRemoteIdempotentRepositoryTestSupport.java |  2 +-
 .../services/InfinispanServiceFactory.java         | 67 ++++++++++++++++++++++
 8 files changed, 78 insertions(+), 9 deletions(-)

diff --git 
a/components/camel-infinispan/camel-infinispan-common/src/test/java/org/apache/camel/component/infinispan/InfinispanTestSupport.java
 
b/components/camel-infinispan/camel-infinispan-common/src/test/java/org/apache/camel/component/infinispan/InfinispanTestSupport.java
index df4a96fea04..bff56683271 100644
--- 
a/components/camel-infinispan/camel-infinispan-common/src/test/java/org/apache/camel/component/infinispan/InfinispanTestSupport.java
+++ 
b/components/camel-infinispan/camel-infinispan-common/src/test/java/org/apache/camel/component/infinispan/InfinispanTestSupport.java
@@ -16,6 +16,8 @@
  */
 package org.apache.camel.component.infinispan;
 
+import java.util.concurrent.ThreadLocalRandom;
+
 import org.apache.camel.test.junit5.CamelTestSupport;
 import org.infinispan.commons.api.BasicCache;
 import org.junit.jupiter.api.MethodOrderer;
@@ -23,14 +25,14 @@ import org.junit.jupiter.api.TestMethodOrder;
 
 @TestMethodOrder(MethodOrderer.MethodName.class)
 public abstract class InfinispanTestSupport extends CamelTestSupport {
-    public static final String TEST_CACHE = "mycache";
+    private static final String TEST_CACHE = "mycache" + 
ThreadLocalRandom.current().nextInt(1, 100);
 
     protected BasicCache<Object, Object> getCache() {
         return getCache(getCacheName());
     }
 
     protected String getCacheName() {
-        return TEST_CACHE;
+        return TEST_CACHE + "-" + getClass().getSimpleName();
     }
 
     protected abstract BasicCache<Object, Object> getCache(String name);
diff --git 
a/components/camel-infinispan/camel-infinispan-embedded/src/test/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedTestSupport.java
 
b/components/camel-infinispan/camel-infinispan-embedded/src/test/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedTestSupport.java
index 1fc01395f32..917adff544d 100644
--- 
a/components/camel-infinispan/camel-infinispan-embedded/src/test/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedTestSupport.java
+++ 
b/components/camel-infinispan/camel-infinispan-embedded/src/test/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedTestSupport.java
@@ -42,7 +42,7 @@ public class InfinispanEmbeddedTestSupport extends 
InfinispanTestSupport {
         cacheContainer.administration()
                 .withFlags(CacheContainerAdmin.AdminFlag.VOLATILE)
                 .getOrCreateCache(
-                        InfinispanTestSupport.TEST_CACHE,
+                        getCacheName(),
                         getConfiguration().build());
 
         super.setupResources();
diff --git 
a/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteConfigurationIT.java
 
b/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteConfigurationIT.java
index 4e3451a8794..dc09c61fcf5 100644
--- 
a/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteConfigurationIT.java
+++ 
b/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteConfigurationIT.java
@@ -32,7 +32,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class InfinispanRemoteConfigurationIT {
     @RegisterExtension
-    static InfinispanService service = 
InfinispanServiceFactory.createService();
+    static InfinispanService service = 
InfinispanServiceFactory.createSingletonInfinispanService();
 
     @Test
     public void remoteCacheWithoutProperties() throws Exception {
diff --git 
a/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteTestSupport.java
 
b/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteTestSupport.java
index 15e3c5b0187..c26fb8f0a97 100644
--- 
a/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteTestSupport.java
+++ 
b/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteTestSupport.java
@@ -36,7 +36,7 @@ import 
org.testcontainers.shaded.org.apache.commons.lang3.SystemUtils;
 @TestMethodOrder(MethodOrderer.MethodName.class)
 public class InfinispanRemoteTestSupport extends InfinispanTestSupport {
     @RegisterExtension
-    public static InfinispanService service = 
InfinispanServiceFactory.createService();
+    public static InfinispanService service = 
InfinispanServiceFactory.createSingletonInfinispanService();
 
     protected RemoteCacheManager cacheContainer;
 
@@ -47,7 +47,7 @@ public class InfinispanRemoteTestSupport extends 
InfinispanTestSupport {
         cacheContainer = new RemoteCacheManager(getConfiguration().build());
         cacheContainer.administration()
                 .getOrCreateCache(
-                        InfinispanTestSupport.TEST_CACHE,
+                        getCacheName(),
                         new 
org.infinispan.configuration.cache.ConfigurationBuilder()
                                 .clustering()
                                 .cacheMode(CacheMode.DIST_SYNC).build());
diff --git 
a/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/cluster/AbstractInfinispanRemoteClusteredIT.java
 
b/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/cluster/AbstractInfinispanRemoteClusteredIT.java
index 22e9bca1819..caaedb3197d 100644
--- 
a/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/cluster/AbstractInfinispanRemoteClusteredIT.java
+++ 
b/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/cluster/AbstractInfinispanRemoteClusteredIT.java
@@ -51,7 +51,7 @@ import static org.junit.jupiter.api.Assertions.fail;
 @TestInstance(TestInstance.Lifecycle.PER_CLASS)
 public class AbstractInfinispanRemoteClusteredIT {
     @RegisterExtension
-    public static InfinispanService service = 
InfinispanServiceFactory.createService();
+    public static InfinispanService service = 
InfinispanServiceFactory.createSingletonInfinispanService();
 
     private RemoteCacheManager cacheContainer;
 
diff --git 
a/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/cluster/InfinispanRemoteClusteredViewIT.java
 
b/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/cluster/InfinispanRemoteClusteredViewIT.java
index 338d0275398..06901f49ae2 100644
--- 
a/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/cluster/InfinispanRemoteClusteredViewIT.java
+++ 
b/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/cluster/InfinispanRemoteClusteredViewIT.java
@@ -36,7 +36,7 @@ import static org.awaitility.Awaitility.await;
 
 public class InfinispanRemoteClusteredViewIT {
     @RegisterExtension
-    public static InfinispanService service = 
InfinispanServiceFactory.createService();
+    public static InfinispanService service = 
InfinispanServiceFactory.createSingletonInfinispanService();
 
     @Test
     public void getLeaderTest() throws Exception {
diff --git 
a/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/spring/SpringInfinispanRemoteIdempotentRepositoryTestSupport.java
 
b/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/spring/SpringInfinispanRemoteIdempotentRepositoryTestSupport.java
index 28ba51d8c71..425a49ac6f8 100644
--- 
a/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/spring/SpringInfinispanRemoteIdempotentRepositoryTestSupport.java
+++ 
b/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/spring/SpringInfinispanRemoteIdempotentRepositoryTestSupport.java
@@ -34,7 +34,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 public abstract class SpringInfinispanRemoteIdempotentRepositoryTestSupport 
extends CamelSpringTestSupport {
     @RegisterExtension
-    public static InfinispanService service = 
InfinispanServiceFactory.createService();
+    public static InfinispanService service = 
InfinispanServiceFactory.createSingletonInfinispanService();
 
     @Override
     public void doPreSetup() throws Exception {
diff --git 
a/test-infra/camel-test-infra-infinispan/src/test/java/org/apache/camel/test/infra/infinispan/services/InfinispanServiceFactory.java
 
b/test-infra/camel-test-infra-infinispan/src/test/java/org/apache/camel/test/infra/infinispan/services/InfinispanServiceFactory.java
index 0c2c2b54bae..68ce5966478 100644
--- 
a/test-infra/camel-test-infra-infinispan/src/test/java/org/apache/camel/test/infra/infinispan/services/InfinispanServiceFactory.java
+++ 
b/test-infra/camel-test-infra-infinispan/src/test/java/org/apache/camel/test/infra/infinispan/services/InfinispanServiceFactory.java
@@ -17,8 +17,71 @@
 package org.apache.camel.test.infra.infinispan.services;
 
 import org.apache.camel.test.infra.common.services.SimpleTestServiceBuilder;
+import org.apache.camel.test.infra.common.services.SingletonService;
+import org.junit.jupiter.api.extension.ExtensionContext;
 
 public final class InfinispanServiceFactory {
+    static class SingletonInfinispanceService extends 
SingletonService<InfinispanService> implements InfinispanService {
+
+        public SingletonInfinispanceService(InfinispanService service) {
+            this(service, "infinispan");
+        }
+
+        public SingletonInfinispanceService(InfinispanService service, String 
name) {
+            super(service, name);
+        }
+
+        @Override
+        public String username() {
+            return getService().username();
+        }
+
+        @Override
+        public String password() {
+            return getService().password();
+        }
+
+        @Override
+        public int port() {
+            return getService().port();
+        }
+
+        @Override
+        public String host() {
+            return getService().host();
+        }
+
+        @Override
+        public String getServiceAddress() {
+            return getService().getServiceAddress();
+        }
+
+        @Override
+        public void beforeAll(ExtensionContext extensionContext) {
+            addToStore(extensionContext);
+        }
+
+        @Override
+        public void afterAll(ExtensionContext extensionContext) {
+            // NO-OP
+        }
+
+    }
+
+    private static class SingletonServiceHolder {
+        static final InfinispanService INSTANCE;
+
+        static {
+            SimpleTestServiceBuilder<InfinispanService> 
serviceSimpleTestServiceBuilder
+                    = new SimpleTestServiceBuilder<>("infinispan");
+
+            serviceSimpleTestServiceBuilder
+                    .addLocalMapping(() -> new 
SingletonInfinispanceService(new InfinispanLocalContainerService()));
+
+            INSTANCE = serviceSimpleTestServiceBuilder.build();
+        }
+    }
+
     private InfinispanServiceFactory() {
 
     }
@@ -33,4 +96,8 @@ public final class InfinispanServiceFactory {
                 .addRemoteMapping(InfinispanRemoteService::new)
                 .build();
     }
+
+    public static InfinispanService createSingletonInfinispanService() {
+        return SingletonServiceHolder.INSTANCE;
+    }
 }

Reply via email to