You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tubemq.apache.org by yu...@apache.org on 2021/01/29 10:07:18 UTC

[incubator-tubemq] 20/49: [TUBEMQ-472]Adjust Broker's AbstractWebHandler class implementation

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

yuanbo pushed a commit to branch TUBEMQ-421
in repository https://gitbox.apache.org/repos/asf/incubator-tubemq.git

commit 4920c51d731da45371dbf57b0dc14624d561950c
Author: gosonzhang <go...@tencent.com>
AuthorDate: Tue Dec 22 19:56:49 2020 +0800

    [TUBEMQ-472]Adjust Broker's AbstractWebHandler class implementation
---
 .../server/broker/web/AbstractWebHandler.java      |   2 +-
 .../server/broker/web/BrokerAdminServlet.java      | 120 +++++++++++----------
 2 files changed, 64 insertions(+), 58 deletions(-)

diff --git a/tubemq-server/src/main/java/org/apache/tubemq/server/broker/web/AbstractWebHandler.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/web/AbstractWebHandler.java
index aece762..508849c 100644
--- a/tubemq-server/src/main/java/org/apache/tubemq/server/broker/web/AbstractWebHandler.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/web/AbstractWebHandler.java
@@ -64,7 +64,7 @@ public abstract class AbstractWebHandler extends HttpServlet {
                     strBuffer.append("{\"result\":false,\"errCode\":400,\"errMsg\":\"")
                             .append("Unsupported method ").append(method).append("\"}");
                 } else {
-                    strBuffer = (StringBuilder) webApiRegInfo.method.invoke(webApiRegInfo.webHandler, req);
+                    webApiRegInfo.method.invoke(webApiRegInfo.webHandler, req, strBuffer);
                 }
             }
         } catch (Throwable e) {
diff --git a/tubemq-server/src/main/java/org/apache/tubemq/server/broker/web/BrokerAdminServlet.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/web/BrokerAdminServlet.java
index dfb8b2d..1b3f524 100644
--- a/tubemq-server/src/main/java/org/apache/tubemq/server/broker/web/BrokerAdminServlet.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/web/BrokerAdminServlet.java
@@ -73,10 +73,10 @@ public class BrokerAdminServlet extends AbstractWebHandler {
                 "adminQueryAllMethods");
     }
 
-    public StringBuilder adminQueryAllMethods(HttpServletRequest req) throws Exception {
+    public void adminQueryAllMethods(HttpServletRequest req,
+                                     StringBuilder sBuilder) throws Exception {
         int index = 0;
         List<String> methods = getSupportedMethod();
-        StringBuilder sBuilder = new StringBuilder(1024);
         sBuilder.append("{\"result\":true,\"errCode\":0,\"errMsg\":\"Success!\",\"dataSet\":[");
         for (index = 0; index < methods.size(); index++) {
             if (index > 0) {
@@ -86,26 +86,25 @@ public class BrokerAdminServlet extends AbstractWebHandler {
                     .append(",\"method\":\"").append(methods.get(index)).append("\"}");
         }
         sBuilder.append("],\"totalCnt\":").append(index + 1).append("}");
-        return sBuilder;
     }
 
     /***
      * Query broker's all consumer info.
      *
      * @param req
-     * @return
+     * @param sBuilder process result
      * @throws Exception
      */
-    public StringBuilder adminQueryBrokerAllConsumerInfo(HttpServletRequest req) throws Exception {
+    public void adminQueryBrokerAllConsumerInfo(HttpServletRequest req,
+                                                StringBuilder sBuilder) throws Exception {
         int index = 0;
-        StringBuilder sBuilder = new StringBuilder(1024);
         ProcessResult result = WebParameterUtils.getStringParamValue(req,
                 WebFieldDef.COMPSGROUPNAME, false, null);
         if (!result.success) {
-            return WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            return;
         }
         Set<String> groupNameSet = (Set<String>) result.retData1;
-
         sBuilder.append("{\"result\":true,\"errCode\":0,\"errMsg\":\"Success!\",\"dataSet\":[");
         Map<String, ConsumerNodeInfo> map =
                 broker.getBrokerServiceServer().getConsumerRegisterMap();
@@ -176,23 +175,22 @@ public class BrokerAdminServlet extends AbstractWebHandler {
             }
         }
         sBuilder.append("],\"totalCnt\":").append(index).append("}");
-        return sBuilder;
     }
 
     /***
      * Query broker's all message store info.
      *
      * @param req
-     * @return
+     * @param sBuilder process result
      * @throws Exception
      */
-    public StringBuilder adminQueryBrokerAllMessageStoreInfo(HttpServletRequest req)
-            throws Exception {
-        StringBuilder sBuilder = new StringBuilder(1024);
+    public void adminQueryBrokerAllMessageStoreInfo(HttpServletRequest req,
+                                                    StringBuilder sBuilder) throws Exception {
         ProcessResult result = WebParameterUtils.getStringParamValue(req,
                 WebFieldDef.COMPSTOPICNAME, false, null);
         if (!result.success) {
-            return WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            return;
         }
         Set<String> topicNameSet = (Set<String>) result.retData1;
         sBuilder.append("{\"result\":true,\"errCode\":0,\"errMsg\":\"Success!\",\"dataSet\":[");
@@ -244,28 +242,29 @@ public class BrokerAdminServlet extends AbstractWebHandler {
             sBuilder.append("]}");
         }
         sBuilder.append("],\"totalCnt\":").append(recordId).append("}");
-        return sBuilder;
     }
 
     /***
      * Get memory store status info.
      *
      * @param req
-     * @return
+     * @param sBuilder process result
      * @throws Exception
      */
-    public StringBuilder adminGetMemStoreStatisInfo(HttpServletRequest req) throws Exception {
-        StringBuilder sBuilder = new StringBuilder(1024);
+    public void adminGetMemStoreStatisInfo(HttpServletRequest req,
+                                           StringBuilder sBuilder) throws Exception {
         ProcessResult result = WebParameterUtils.getStringParamValue(req,
                 WebFieldDef.COMPSTOPICNAME, false, null);
         if (!result.success) {
-            return WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            return;
         }
         Set<String> topicNameSet = (Set<String>) result.retData1;
         result = WebParameterUtils.getBooleanParamValue(req,
                 WebFieldDef.NEEDREFRESH, false, false);
         if (!result.success) {
-            return WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            return;
         }
         boolean requireRefresh = (boolean) result.retData1;
         sBuilder.append("{\"result\":true,\"errCode\":0,\"errMsg\":\"Success!\",\"detail\":[");
@@ -302,46 +301,50 @@ public class BrokerAdminServlet extends AbstractWebHandler {
             sBuilder.append("]}");
         }
         sBuilder.append("],\"totalCount\":").append(recordId).append("}");
-        return sBuilder;
     }
 
     /***
      * Manual set offset.
      *
      * @param req
-     * @return
+     * @param sBuilder process result
      * @throws Exception
      */
-    public StringBuilder adminManualSetCurrentOffSet(HttpServletRequest req) throws Exception {
-        StringBuilder sBuilder = new StringBuilder(512);
+    public void adminManualSetCurrentOffSet(HttpServletRequest req,
+                                            StringBuilder sBuilder) throws Exception {
         ProcessResult result = WebParameterUtils.getStringParamValue(req,
                 WebFieldDef.TOPICNAME, true, null);
         if (!result.success) {
-            return WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            return;
         }
         final String topicName = (String) result.retData1;
         result = WebParameterUtils.getStringParamValue(req,
                 WebFieldDef.GROUPNAME, true, null);
         if (!result.success) {
-            return WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            return;
         }
         final String groupName = (String) result.retData1;
         result = WebParameterUtils.getStringParamValue(req,
                 WebFieldDef.MODIFYUSER, true, null);
         if (!result.success) {
-            return WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            return;
         }
         final String modifyUser = (String) result.retData1;
         result = WebParameterUtils.getIntParamValue(req,
                 WebFieldDef.PARTITIONID, true, -1, 0);
         if (!result.success) {
-            return WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            return;
         }
         int partitionId = (Integer) result.retData1;
         result = WebParameterUtils.getLongParamValue(req,
                 WebFieldDef.MANUALOFFSET, true, -1);
         if (!result.success) {
-            return WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            return;
         }
         long manualOffset = (Long) result.retData1;
         List<String> topicList = broker.getMetadataManager().getTopics();
@@ -349,7 +352,7 @@ public class BrokerAdminServlet extends AbstractWebHandler {
             sBuilder.append("{\"result\":false,\"errCode\":400,\"errMsg\":\"")
                     .append("Invalid parameter: not found the topicName configure!")
                     .append("\"}");
-            return sBuilder;
+            return;
         }
         MessageStoreManager storeManager = broker.getStoreManager();
         MessageStore store = null;
@@ -362,21 +365,21 @@ public class BrokerAdminServlet extends AbstractWebHandler {
             sBuilder.append("{\"result\":false,\"errCode\":400,\"errMsg\":\"")
                     .append("Invalid parameter: not found the store by topicName!")
                     .append("\"}");
-            return sBuilder;
+            return;
         }
         if (manualOffset < store.getIndexMinOffset()) {
             sBuilder.append("{\"result\":false,\"errCode\":400,\"errMsg\":\"")
                     .append("Invalid parameter: manualOffset lower than Current MinOffset:(")
                     .append(manualOffset).append("<").append(store.getIndexMinOffset())
                     .append(")\"}");
-            return sBuilder;
+            return;
         }
         if (manualOffset > store.getIndexMaxOffset()) {
             sBuilder.append("{\"result\":false,\"errCode\":400,\"errMsg\":\"")
                     .append("Invalid parameter: manualOffset bigger than Current MaxOffset:(")
                     .append(manualOffset).append(">").append(store.getIndexMaxOffset())
                     .append(")\"}");
-            return sBuilder;
+            return;
         }
         OffsetService offsetService = broker.getOffsetManager();
         long oldOffset =
@@ -391,34 +394,36 @@ public class BrokerAdminServlet extends AbstractWebHandler {
                     .append("Manual update current Offset success!")
                     .append("\",\"oldOffset\":").append(oldOffset).append("}");
         }
-        return sBuilder;
     }
 
     /***
      * Query snapshot message set.
      *
      * @param req
-     * @return
+     * @param sBuilder process result
      * @throws Exception
      */
-    public StringBuilder adminQuerySnapshotMessageSet(HttpServletRequest req) throws Exception {
-        StringBuilder sBuilder = new StringBuilder(1024);
+    public void adminQuerySnapshotMessageSet(HttpServletRequest req,
+                                             StringBuilder sBuilder) throws Exception {
         ProcessResult result = WebParameterUtils.getStringParamValue(req,
                 WebFieldDef.TOPICNAME, true, null);
         if (!result.success) {
-            return WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            return;
         }
         final String topicName = (String) result.retData1;
         result = WebParameterUtils.getIntParamValue(req,
                 WebFieldDef.PARTITIONID, true, -1, 0);
         if (!result.success) {
-            return WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            return;
         }
         int partitionId = (Integer) result.retData1;
         result = WebParameterUtils.getIntParamValue(req,
                 WebFieldDef.MSGCOUNT, false, 3, 3);
         if (!result.success) {
-            return WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            return;
         }
         int msgCount = (Integer) result.retData1;
         msgCount = Math.max(msgCount, 1);
@@ -426,52 +431,55 @@ public class BrokerAdminServlet extends AbstractWebHandler {
             sBuilder.append("{\"result\":false,\"errCode\":400,\"errMsg\":\"")
                     .append("Over max allowed msgCount value, allowed count is 50!")
                     .append("\"}");
-            return sBuilder;
+            return;
         }
         result = WebParameterUtils.getStringParamValue(req,
                 WebFieldDef.FILTERCONDS, false, null);
         if (!result.success) {
-            return WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            return;
         }
         Set<String> filterCondStrSet = (Set<String>) result.retData1;
         sBuilder = broker.getBrokerServiceServer()
                 .getMessageSnapshot(topicName, partitionId, msgCount, filterCondStrSet, sBuilder);
-        return sBuilder;
     }
 
     /***
      * Query consumer group offset.
      *
      * @param req
-     * @return
+     * @param sBuilder process result
      * @throws Exception
      */
-    public StringBuilder adminQueryCurrentGroupOffSet(HttpServletRequest req)
-            throws Exception {
-        StringBuilder sBuilder = new StringBuilder(1024);
+    public void adminQueryCurrentGroupOffSet(HttpServletRequest req,
+                                             StringBuilder sBuilder) throws Exception {
         ProcessResult result = WebParameterUtils.getStringParamValue(req,
                 WebFieldDef.TOPICNAME, true, null);
         if (!result.success) {
-            return WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            return;
         }
         final String topicName = (String) result.retData1;
         result = WebParameterUtils.getStringParamValue(req,
                 WebFieldDef.GROUPNAME, true, null);
         if (!result.success) {
-            return WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            return;
         }
         final String groupName = (String) result.retData1;
         result = WebParameterUtils.getIntParamValue(req,
                 WebFieldDef.PARTITIONID, true, -1, 0);
         if (!result.success) {
-            return WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            return;
         }
         int partitionId = (Integer) result.retData1;
 
         result = WebParameterUtils.getBooleanParamValue(req,
                 WebFieldDef.REQUIREREALOFFSET, false, false);
         if (!result.success) {
-            return WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            return;
         }
         boolean requireRealOffset = (Boolean) result.retData1;
         List<String> topicList = broker.getMetadataManager().getTopics();
@@ -479,7 +487,7 @@ public class BrokerAdminServlet extends AbstractWebHandler {
             sBuilder.append("{\"result\":false,\"errCode\":400,\"errMsg\":\"")
                     .append("Invalid parameter: not found the topicName configure!")
                     .append("\"}");
-            return sBuilder;
+            return;
         }
         MessageStoreManager storeManager = broker.getStoreManager();
         OffsetService offsetService = broker.getOffsetManager();
@@ -493,7 +501,7 @@ public class BrokerAdminServlet extends AbstractWebHandler {
             sBuilder.append("{\"result\":false,\"errCode\":400,\"errMsg\":\"")
                     .append("Invalid parameter: not found the store by topicName!")
                     .append("\"}");
-            return sBuilder;
+            return;
         }
         long tmpOffset = offsetService.getTmpOffset(groupName, topicName, partitionId);
         long minDataOffset = store.getDataMinOffset();
@@ -528,11 +536,10 @@ public class BrokerAdminServlet extends AbstractWebHandler {
             }
         }
         sBuilder.append("}");
-        return sBuilder;
     }
 
-    public StringBuilder adminQueryConsumerRegisterInfo(HttpServletRequest req) {
-        StringBuilder sBuilder = new StringBuilder(1024);
+    public void adminQueryConsumerRegisterInfo(HttpServletRequest req,
+                                               StringBuilder sBuilder) {
         Map<String, ConsumerNodeInfo> map =
                 broker.getBrokerServiceServer().getConsumerRegisterMap();
         int totalCnt = 0;
@@ -551,7 +558,6 @@ public class BrokerAdminServlet extends AbstractWebHandler {
                     .append("\",\"index\":").append(++totalCnt).append("}");
         }
         sBuilder.append("],\"totalCnt\":").append(totalCnt).append("}");
-        return sBuilder;
     }