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

commit 398e0d6762c69cf0ee7a957f3fe62a80bebf77a1
Author: Otavio Rodolfo Piske <[email protected]>
AuthorDate: Fri Mar 25 12:38:05 2022 +0100

    CAMEL-17855: enable singleton services for ArangoDB
---
 .../arangodb/integration/BaseArangoDb.java         |  2 +-
 .../arangodb/services/ArangoDBServiceFactory.java  | 35 ++++++++++++++++++++++
 2 files changed, 36 insertions(+), 1 deletion(-)

diff --git 
a/components/camel-arangodb/src/test/java/org/apache/camel/component/arangodb/integration/BaseArangoDb.java
 
b/components/camel-arangodb/src/test/java/org/apache/camel/component/arangodb/integration/BaseArangoDb.java
index 01f2954..f9dec8e 100644
--- 
a/components/camel-arangodb/src/test/java/org/apache/camel/component/arangodb/integration/BaseArangoDb.java
+++ 
b/components/camel-arangodb/src/test/java/org/apache/camel/component/arangodb/integration/BaseArangoDb.java
@@ -30,7 +30,7 @@ import org.junit.jupiter.api.extension.RegisterExtension;
 
 public class BaseArangoDb extends CamelTestSupport {
     @RegisterExtension
-    public static ArangoDBService service = 
ArangoDBServiceFactory.createService();
+    public static ArangoDBService service = 
ArangoDBServiceFactory.createSingletonService();
 
     protected static final String DATABASE_NAME = "dbTest";
     protected static final String COLLECTION_NAME = "camelTest";
diff --git 
a/test-infra/camel-test-infra-arangodb/src/test/java/org/apache/camel/test/infra/arangodb/services/ArangoDBServiceFactory.java
 
b/test-infra/camel-test-infra-arangodb/src/test/java/org/apache/camel/test/infra/arangodb/services/ArangoDBServiceFactory.java
index 06eb905..2233912 100644
--- 
a/test-infra/camel-test-infra-arangodb/src/test/java/org/apache/camel/test/infra/arangodb/services/ArangoDBServiceFactory.java
+++ 
b/test-infra/camel-test-infra-arangodb/src/test/java/org/apache/camel/test/infra/arangodb/services/ArangoDBServiceFactory.java
@@ -17,8 +17,36 @@
 package org.apache.camel.test.infra.arangodb.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 ArangoDBServiceFactory {
+    private static class SingletonArangoDBService extends 
SingletonService<ArangoDBService> implements ArangoDBService {
+        public SingletonArangoDBService(ArangoDBService service, String name) {
+            super(service, name);
+        }
+
+        @Override
+        public void beforeAll(ExtensionContext extensionContext) {
+            addToStore(extensionContext);
+        }
+
+        @Override
+        public void afterAll(ExtensionContext extensionContext) {
+            // NO-OP
+        }
+
+        @Override
+        public int getPort() {
+            return getService().getPort();
+        }
+
+        @Override
+        public String getHost() {
+            return getService().getHost();
+        }
+    }
+
     private ArangoDBServiceFactory() {
 
     }
@@ -33,4 +61,11 @@ public final class ArangoDBServiceFactory {
                 .addRemoteMapping(ArangoDBRemoteService::new)
                 .build();
     }
+
+    public static ArangoDBService createSingletonService() {
+        return builder()
+                .addLocalMapping(() -> new SingletonArangoDBService(new 
ArangoDBLocalContainerService(), "arangoDB"))
+                .addRemoteMapping(ArangoDBRemoteService::new)
+                .build();
+    }
 }

Reply via email to