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 2b1b546fc41c599278931eeeadc7630e43f4d5e0 Author: Otavio Rodolfo Piske <angusyo...@gmail.com> AuthorDate: Fri Mar 25 12:16:26 2022 +0100 CAMEL-17855: enable singleton services for HBase --- .../component/hbase/CamelHBaseTestSupport.java | 2 +- .../infra/hbase/services/HBaseServiceFactory.java | 31 +++++++++++++++++++++- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/components/camel-hbase/src/test/java/org/apache/camel/component/hbase/CamelHBaseTestSupport.java b/components/camel-hbase/src/test/java/org/apache/camel/component/hbase/CamelHBaseTestSupport.java index 1dd954f..d713c93 100644 --- a/components/camel-hbase/src/test/java/org/apache/camel/component/hbase/CamelHBaseTestSupport.java +++ b/components/camel-hbase/src/test/java/org/apache/camel/component/hbase/CamelHBaseTestSupport.java @@ -38,7 +38,7 @@ import org.junit.jupiter.api.extension.RegisterExtension; public abstract class CamelHBaseTestSupport extends CamelTestSupport { @RegisterExtension - public static HBaseService service = HBaseServiceFactory.createService(); + public static HBaseService service = HBaseServiceFactory.createSingletonService(); protected static final String PERSON_TABLE = "person"; protected static final String INFO_FAMILY = "info"; diff --git a/test-infra/camel-test-infra-hbase/src/test/java/org/apache/camel/test/infra/hbase/services/HBaseServiceFactory.java b/test-infra/camel-test-infra-hbase/src/test/java/org/apache/camel/test/infra/hbase/services/HBaseServiceFactory.java index 607e5fa..0a9a6ed 100644 --- a/test-infra/camel-test-infra-hbase/src/test/java/org/apache/camel/test/infra/hbase/services/HBaseServiceFactory.java +++ b/test-infra/camel-test-infra-hbase/src/test/java/org/apache/camel/test/infra/hbase/services/HBaseServiceFactory.java @@ -17,8 +17,32 @@ package org.apache.camel.test.infra.hbase.services; import org.apache.camel.test.infra.common.services.SimpleTestServiceBuilder; +import org.apache.camel.test.infra.common.services.SingletonService; +import org.apache.hadoop.conf.Configuration; +import org.junit.jupiter.api.extension.ExtensionContext; public final class HBaseServiceFactory { + static class SingletonHBaseService extends SingletonService<HBaseService> implements HBaseService { + public SingletonHBaseService(HBaseService service, String name) { + super(service, name); + } + + @Override + public Configuration getConfiguration() { + return getService().getConfiguration(); + } + + @Override + public void beforeAll(ExtensionContext extensionContext) { + addToStore(extensionContext); + } + + @Override + public void afterAll(ExtensionContext extensionContext) { + // NO-OP + } + } + private HBaseServiceFactory() { } @@ -30,7 +54,12 @@ public final class HBaseServiceFactory { public static HBaseService createService() { return builder() .addLocalMapping(HBaseLocalContainerService::new) - .addRemoteMapping(HBaseLocalContainerService::new) + .build(); + } + + public static HBaseService createSingletonService() { + return builder() + .addLocalMapping(() -> new SingletonHBaseService(new HBaseLocalContainerService(), "hbase")) .build(); } }