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