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/03/29 14:25:43 UTC

[camel] 01/03: CAMEL-17855: enable singleton services for HBase

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 <an...@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();
     }
 }