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;
+ }
}