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 2022/08/04 14:19:02 UTC

[camel] 01/04: CAMEL-18347: fix ArangoDB services in test infra not being singleton

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 9daa7f606df6249fd1ac86c5cca857fe5f31355e
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Thu Aug 4 14:56:34 2022 +0200

    CAMEL-18347: fix ArangoDB services in test infra not being singleton
---
 .../arangodb/services/ArangoDBServiceFactory.java   | 21 +++++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

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 2233912f73a..38fba488ee2 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
@@ -47,6 +47,9 @@ public final class ArangoDBServiceFactory {
         }
     }
 
+    private static SimpleTestServiceBuilder<ArangoDBService> instance;
+    private static ArangoDBService arangoDBService;
+
     private ArangoDBServiceFactory() {
 
     }
@@ -63,9 +66,19 @@ public final class ArangoDBServiceFactory {
     }
 
     public static ArangoDBService createSingletonService() {
-        return builder()
-                .addLocalMapping(() -> new SingletonArangoDBService(new ArangoDBLocalContainerService(), "arangoDB"))
-                .addRemoteMapping(ArangoDBRemoteService::new)
-                .build();
+        if (arangoDBService == null) {
+
+            if (instance == null) {
+                instance = builder();
+
+                instance.addLocalMapping(() -> new SingletonArangoDBService(new ArangoDBLocalContainerService(), "arangoDB"))
+                        .addRemoteMapping(ArangoDBRemoteService::new)
+                        .build();
+            }
+
+            arangoDBService = instance.build();
+        }
+
+        return arangoDBService;
     }
 }