You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2023/05/06 04:39:53 UTC

[shardingsphere] branch master updated: Refactor HBaseErrorHintCommentQueryHandler (#25487)

This is an automated email from the ASF dual-hosted git repository.

zhangliang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 64c82cdb116 Refactor HBaseErrorHintCommentQueryHandler (#25487)
64c82cdb116 is described below

commit 64c82cdb11655a12b6d18ef97c93364892e8b831
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Sat May 6 12:39:44 2023 +0800

    Refactor HBaseErrorHintCommentQueryHandler (#25487)
    
    * Refactor DataSourcePoolDestroyerTest
    
    * Refactor YamlDataSourcePropertiesSwapperTest
    
    * Refactor HBaseErrorHintCommentQueryHandler
---
 .../hbase/handler/HBaseBackendQueryHandler.java    |  3 +-
 .../hbase/handler/HBaseBackendUpdateHandler.java   |  2 --
 ...java => HBaseErrorHintCommentQueryHandler.java} | 34 +++++++++-------------
 .../HBaseErrorHintCommentQueryRowData.java}        | 29 +++++++++++-------
 .../backend/hbase/result/HBaseBackendHandler.java  |  1 -
 5 files changed, 32 insertions(+), 37 deletions(-)

diff --git a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/handler/HBaseBackendQueryHandler.java b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/handler/HBaseBackendQueryHandler.java
index ef98008999c..46c36e9a208 100644
--- a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/handler/HBaseBackendQueryHandler.java
+++ b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/handler/HBaseBackendQueryHandler.java
@@ -17,7 +17,6 @@
 
 package org.apache.shardingsphere.proxy.backend.hbase.handler;
 
-import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.infra.binder.SQLStatementContextFactory;
 import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
@@ -27,6 +26,7 @@ import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
 import org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeader;
 import org.apache.shardingsphere.proxy.backend.response.header.query.QueryResponseHeader;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
+
 import java.sql.Types;
 import java.util.Collection;
 import java.util.List;
@@ -36,7 +36,6 @@ import java.util.stream.Collectors;
  * Backend handler for HBase.
  */
 @RequiredArgsConstructor
-@Getter
 public final class HBaseBackendQueryHandler implements HBaseBackendHandler {
     
     private final SQLStatement sqlStatement;
diff --git a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/handler/HBaseBackendUpdateHandler.java b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/handler/HBaseBackendUpdateHandler.java
index e633252f612..ed1a3e3ef46 100644
--- a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/handler/HBaseBackendUpdateHandler.java
+++ b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/handler/HBaseBackendUpdateHandler.java
@@ -17,7 +17,6 @@
 
 package org.apache.shardingsphere.proxy.backend.hbase.handler;
 
-import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.infra.binder.SQLStatementContextFactory;
 import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
@@ -35,7 +34,6 @@ import java.util.Collection;
  * HBase backend updater handler.
  */
 @RequiredArgsConstructor
-@Getter
 public final class HBaseBackendUpdateHandler implements DatabaseBackendHandler {
     
     private final SQLStatement sqlStatement;
diff --git a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/handler/ErrorHintCommentQueryHandler.java b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/handler/HBaseErrorHintCommentQueryHandler.java
similarity index 61%
rename from proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/handler/ErrorHintCommentQueryHandler.java
rename to proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/handler/HBaseErrorHintCommentQueryHandler.java
index ab603ced14a..a15b18b2ace 100644
--- a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/handler/ErrorHintCommentQueryHandler.java
+++ b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/handler/HBaseErrorHintCommentQueryHandler.java
@@ -17,12 +17,12 @@
 
 package org.apache.shardingsphere.proxy.backend.hbase.handler;
 
-import lombok.Getter;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shardingsphere.proxy.backend.hbase.result.HBaseBackendHandler;
 import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
 import org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeader;
 import org.apache.shardingsphere.proxy.backend.response.header.query.QueryResponseHeader;
+
 import java.sql.Types;
 import java.util.Arrays;
 import java.util.Collection;
@@ -30,43 +30,35 @@ import java.util.List;
 import java.util.stream.Collectors;
 
 /**
- * Backend handler for error hint.
+ * Backend handler for error hint for HBase.
  */
-@Getter
-public final class ErrorHintCommentQueryHandler implements HBaseBackendHandler {
+public final class HBaseErrorHintCommentQueryHandler implements HBaseBackendHandler {
     
-    private final String hintComment;
+    private static final Collection<String> COLUMN_NAMES = Arrays.asList("ID", "Hint", "Status");
     
-    private int currentIndex;
+    private final List<HBaseErrorHintCommentQueryRowData> rowDataList;
     
-    private final String[][] result;
+    private int currentIndex;
     
-    public ErrorHintCommentQueryHandler(final String hintComment) {
-        this.hintComment = hintComment;
-        this.currentIndex = 0;
-        int index = 1;
-        this.result = new String[][]{{String.valueOf(index++), "HBase", "supported", "", ""}, {String.valueOf(index), StringUtils.strip(hintComment, "* "), "unsupported", "/", "/"}};
+    public HBaseErrorHintCommentQueryHandler(final String hintComment) {
+        rowDataList = Arrays.asList(new HBaseErrorHintCommentQueryRowData(1, "HBase", true), new HBaseErrorHintCommentQueryRowData(2, StringUtils.strip(hintComment, "* "), false));
+        currentIndex = 0;
     }
     
     @Override
     public ResponseHeader execute() {
-        List<QueryHeader> queryHeaders = getColumnNames().stream().map(each -> new QueryHeader("", "", each, each, Types.CHAR, "CHAR", 255, 0, false, false, false, false)).collect(
-                Collectors.toList());
+        List<QueryHeader> queryHeaders = COLUMN_NAMES.stream().map(each -> new QueryHeader("", "", each, each, Types.CHAR, "CHAR", 255, 0, false, false, false, false)).collect(Collectors.toList());
         return new QueryResponseHeader(queryHeaders);
     }
     
-    private Collection<String> getColumnNames() {
-        return Arrays.asList("ID", "Hint", "Status", "Author", "Email");
-    }
-    
     @Override
     public boolean next() {
-        currentIndex += 1;
-        return currentIndex <= result.length;
+        currentIndex++;
+        return currentIndex <= rowDataList.size();
     }
     
     @Override
     public Collection<Object> getRowDataObjects() {
-        return Arrays.asList(result[currentIndex - 1]);
+        return rowDataList.get(currentIndex - 1).toList();
     }
 }
diff --git a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/result/HBaseBackendHandler.java b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/handler/HBaseErrorHintCommentQueryRowData.java
similarity index 61%
copy from proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/result/HBaseBackendHandler.java
copy to proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/handler/HBaseErrorHintCommentQueryRowData.java
index 3ad113e69e9..1a13f4afd1c 100644
--- a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/result/HBaseBackendHandler.java
+++ b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/handler/HBaseErrorHintCommentQueryRowData.java
@@ -15,24 +15,31 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.proxy.backend.hbase.result;
+package org.apache.shardingsphere.proxy.backend.hbase.handler;
 
-import org.apache.shardingsphere.proxy.backend.handler.ProxyBackendHandler;
+import lombok.RequiredArgsConstructor;
+
+import java.util.Arrays;
 import java.util.Collection;
-import java.util.Collections;
 
 /**
- * HBase backend handler.
+ * Error hint comment query row data for HBase.
  */
-public interface HBaseBackendHandler extends ProxyBackendHandler {
+@RequiredArgsConstructor
+public final class HBaseErrorHintCommentQueryRowData {
+    
+    private final int id;
+    
+    private final String hint;
+    
+    private final boolean supported;
     
     /**
-     * Get row data objects.
-     *
-     * @return row data
+     * List row data.
+     * 
+     * @return listed row data
      */
-    default Collection<Object> getRowDataObjects() {
-        return Collections.emptyList();
+    public Collection<Object> toList() {
+        return Arrays.asList(String.valueOf(id), hint, supported ? "supported" : "unsupported");
     }
-    
 }
diff --git a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/result/HBaseBackendHandler.java b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/result/HBaseBackendHandler.java
index 3ad113e69e9..8ab81f9af44 100644
--- a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/result/HBaseBackendHandler.java
+++ b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/result/HBaseBackendHandler.java
@@ -34,5 +34,4 @@ public interface HBaseBackendHandler extends ProxyBackendHandler {
     default Collection<Object> getRowDataObjects() {
         return Collections.emptyList();
     }
-    
 }