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

jimin pushed a commit to branch 2.x
in repository https://gitbox.apache.org/repos/asf/incubator-seata.git


The following commit(s) were added to refs/heads/2.x by this push:
     new 01877a9f27 refactor: refactor the `Result` Class (#7176)
01877a9f27 is described below

commit 01877a9f272390a3fd5bd8991fab22b308449c68
Author: Yongjun Hong <[email protected]>
AuthorDate: Sun Mar 9 10:56:30 2025 +0900

    refactor: refactor the `Result` Class (#7176)
---
 changes/en-us/2.x.md                               |  2 +-
 changes/zh-cn/2.x.md                               |  2 +-
 .../java/org/apache/seata/common/result/Code.java  | 26 ++--------
 .../org/apache/seata/common/result/PageResult.java | 32 ++++++------
 .../org/apache/seata/common/result/Result.java     | 25 +++-------
 .../apache/seata/common/result/SingleResult.java   | 30 ++++++-----
 .../org/apache/seata/common/code/CodeTest.java     | 17 ++-----
 .../apache/seata/common/result/PageResultTest.java | 21 ++++----
 .../org/apache/seata/common/result/ResultTest.java | 50 +++++++++++++++++++
 .../seata/common/result/SingleResultTest.java      | 58 ++++++++++++++++++----
 .../seata/console/controller/AuthController.java   |  4 +-
 .../console/controller/OverviewController.java     |  4 +-
 .../namingserver/controller/HealthController.java  |  6 +--
 .../namingserver/controller/NamingController.java  | 47 +++++++-----------
 .../seata/namingserver/manager/NamingManager.java  | 40 ++++++++-------
 .../server/console/impl/AbstractLockService.java   |  4 +-
 .../seata/server/controller/ClusterController.java |  9 ++--
 .../server/controller/VGroupMappingController.java | 25 ++++------
 18 files changed, 221 insertions(+), 181 deletions(-)

diff --git a/changes/en-us/2.x.md b/changes/en-us/2.x.md
index e2dfb146c1..5d5da91640 100644
--- a/changes/en-us/2.x.md
+++ b/changes/en-us/2.x.md
@@ -71,7 +71,7 @@ Add changes here for all PR submitted to the 2.x branch.
 
 ### refactor:
 
-- [[#PR_NO](https://github.com/apache/incubator-seata/pull/PR_NO)] refactor XXX
+- [[#7176](https://github.com/apache/incubator-seata/pull/7176)] refactor the 
Result class
 
 Thanks to these contributors for their code commits. Please report an 
unintended omission.
 
diff --git a/changes/zh-cn/2.x.md b/changes/zh-cn/2.x.md
index d735368a81..bd0c00be4e 100644
--- a/changes/zh-cn/2.x.md
+++ b/changes/zh-cn/2.x.md
@@ -71,7 +71,7 @@
 
 ### refactor:
 
-- [[#PR_NO](https://github.com/apache/incubator-seata/pull/PR_NO)] 重构XXX
+- [[#7176](https://github.com/apache/incubator-seata/pull/7176)] 重构 Result 类
 
 非常感谢以下 contributors 的代码贡献。若有无意遗漏,请报告。
 
diff --git a/common/src/main/java/org/apache/seata/common/result/Code.java 
b/common/src/main/java/org/apache/seata/common/result/Code.java
index 18756e3f0b..4c80730bf0 100644
--- a/common/src/main/java/org/apache/seata/common/result/Code.java
+++ b/common/src/main/java/org/apache/seata/common/result/Code.java
@@ -25,21 +25,21 @@ public enum Code {
     /**
      * server error
      */
-    ERROR("500", "Server error"),
+    INTERNAL_SERVER_ERROR("500", "Server error"),
     /**
      * the custom error
      */
-    LOGIN_FAILED("401", "Login failed");
+    UNAUTHORIZED("401", "Login failed");
 
     /**
      * The Code.
      */
-    public String code;
+    public final String code;
 
     /**
      * The Msg.
      */
-    public String msg;
+    public final String msg;
 
     private Code(String code, String msg) {
         this.code = code;
@@ -55,15 +55,6 @@ public enum Code {
         return this.code;
     }
 
-    /**
-     * Sets code.
-     *
-     * @param code the code
-     */
-    public void setCode(String code) {
-        this.code = code;
-    }
-
     /**
      * Gets msg.
      *
@@ -73,15 +64,6 @@ public enum Code {
         return msg;
     }
 
-    /**
-     * Sets msg.
-     *
-     * @param msg the msg
-     */
-    public void setMsg(String msg) {
-        this.msg = msg;
-    }
-
     /**
      * Gets error msg.
      *
diff --git 
a/common/src/main/java/org/apache/seata/common/result/PageResult.java 
b/common/src/main/java/org/apache/seata/common/result/PageResult.java
index cb3f4564df..16bd533b88 100644
--- a/common/src/main/java/org/apache/seata/common/result/PageResult.java
+++ b/common/src/main/java/org/apache/seata/common/result/PageResult.java
@@ -16,14 +16,14 @@
  */
 package org.apache.seata.common.result;
 
-import java.io.Serializable;
+import static org.apache.seata.common.result.Code.SUCCESS;
+
 import java.util.List;
 
 /**
  * The page result
- *
  */
-public class PageResult<T> extends Result<T> implements Serializable {
+public class PageResult<T> extends Result {
     private static final long serialVersionUID = 7761262662429121287L;
 
     /**
@@ -55,7 +55,7 @@ public class PageResult<T> extends Result<T> implements 
Serializable {
     }
 
     public PageResult(List<T> data, Integer total, Integer pages, Integer 
pageNum, Integer pageSize) {
-        super(SUCCESS_CODE, SUCCESS_MSG);
+        super(SUCCESS.code, SUCCESS.msg);
         this.total = total;
         this.pages = pages;
         this.pageNum = pageNum;
@@ -71,19 +71,19 @@ public class PageResult<T> extends Result<T> implements 
Serializable {
         }
         final int offset = pageSize * (pageNum - 1);
         return PageResult.success(
-                list.subList(
-                        Math.min(offset, list.size()),
-                        Math.min(offset + pageSize, list.size())
-                ),
-                list.size(),
-                pages,
-                pageNum,
-                pageSize
+            list.subList(
+                Math.min(offset, list.size()),
+                Math.min(offset + pageSize, list.size())
+            ),
+            list.size(),
+            pages,
+            pageNum,
+            pageSize
         );
     }
 
     public PageResult(List<T> data, Integer total, Integer pageNum, Integer 
pageSize) {
-        super(SUCCESS_CODE, SUCCESS_MSG);
+        super(SUCCESS.code, SUCCESS.msg);
         this.total = total;
         this.pageNum = pageNum;
         this.pageSize = pageSize;
@@ -101,12 +101,14 @@ public class PageResult<T> extends Result<T> implements 
Serializable {
     }
 
     public static <T> PageResult<T> success() {
-        return new PageResult<>(SUCCESS_CODE, SUCCESS_MSG);
+        return new PageResult<>(SUCCESS.code, SUCCESS.msg);
     }
 
-    public static <T> PageResult<T> success(List<T> data, Integer total, 
Integer pages, Integer pageNum, Integer pageSize) {
+    public static <T> PageResult<T> success(List<T> data, Integer total, 
Integer pages, Integer pageNum,
+        Integer pageSize) {
         return new PageResult<>(data, total, pages, pageNum, pageSize);
     }
+
     public static <T> PageResult<T> success(List<T> data, Integer total, 
Integer pageNum, Integer pageSize) {
         return new PageResult<>(data, total, pageNum, pageSize);
     }
diff --git a/common/src/main/java/org/apache/seata/common/result/Result.java 
b/common/src/main/java/org/apache/seata/common/result/Result.java
index 615b94ea09..c1dbbd069a 100644
--- a/common/src/main/java/org/apache/seata/common/result/Result.java
+++ b/common/src/main/java/org/apache/seata/common/result/Result.java
@@ -16,23 +16,21 @@
  */
 package org.apache.seata.common.result;
 
+import static org.apache.seata.common.result.Code.SUCCESS;
+
 import java.io.Serializable;
 
 /**
  * The basic result
  */
-public class Result<T>  implements Serializable {
+public class Result implements Serializable {
     private static final long serialVersionUID = 7761261124298767L;
 
-    public static final String SUCCESS_CODE = "200";
-    public static final String SUCCESS_MSG = "success";
-    public static final String FAIL_CODE = "500";
-
-
-    private String code = SUCCESS_CODE;
-    private String message = SUCCESS_MSG;
+    private final String code;
+    private final String message;
 
     public Result() {
+        this(null, null);
     }
 
     public Result(String code, String message) {
@@ -41,23 +39,14 @@ public class Result<T>  implements Serializable {
     }
 
     public boolean isSuccess() {
-        return SUCCESS_CODE.equals(this.code);
+        return this.code.equals(SUCCESS.code);
     }
 
     public String getCode() {
         return code;
     }
 
-    public void setCode(String code) {
-        this.code = code;
-    }
-
     public String getMessage() {
         return message;
     }
-
-    public void setMessage(String message) {
-        this.message = message;
-    }
-
 }
diff --git 
a/common/src/main/java/org/apache/seata/common/result/SingleResult.java 
b/common/src/main/java/org/apache/seata/common/result/SingleResult.java
index a9f1b8b1bb..dc5f1e7160 100644
--- a/common/src/main/java/org/apache/seata/common/result/SingleResult.java
+++ b/common/src/main/java/org/apache/seata/common/result/SingleResult.java
@@ -16,18 +16,15 @@
  */
 package org.apache.seata.common.result;
 
-import java.io.Serializable;
-
+import static org.apache.seata.common.result.Code.SUCCESS;
+import static org.apache.seata.common.result.Code.INTERNAL_SERVER_ERROR;
 
 /**
  * The single result
  */
-public class SingleResult<T> extends Result<T>  implements Serializable {
+public class SingleResult<T> extends Result {
     private static final long serialVersionUID = 77612626624298767L;
 
-    /**
-     * the data
-     */
     private T data;
 
     public SingleResult(String code, String message) {
@@ -44,27 +41,34 @@ public class SingleResult<T> extends Result<T>  implements 
Serializable {
     }
 
     public static <T> SingleResult<T> failure(Code errorCode) {
-        return new SingleResult(errorCode.getCode(), errorCode.getMsg());
+        return failure(errorCode.code, errorCode.msg);
     }
 
     public static <T> SingleResult<T> failure(String msg) {
-        return new SingleResult<>(FAIL_CODE, msg);
+        return failure(INTERNAL_SERVER_ERROR.code, msg);
+    }
+
+    public static <T> SingleResult<T> success(String msg, T data) {
+        return new SingleResult<>(SUCCESS.code, msg, data);
     }
 
-    public static <T> SingleResult<T> success(T data) {
-        return new SingleResult<>(SUCCESS_CODE, SUCCESS_MSG,data);
+    public static SingleResult<Void> success(String msg) {
+        return success(msg, null);
     }
 
     public static <T> SingleResult<T> success() {
-        return new SingleResult<>(SUCCESS_CODE, SUCCESS_MSG, null);
+        return success(SUCCESS.msg, null);
+    }
+
+    public static <T> SingleResult<T> successWithData(T data) {
+        return success(SUCCESS.msg, data);
     }
 
     public T getData() {
         return data;
     }
 
-    public void setData(T data) {
+    public void setData(final T data) {
         this.data = data;
     }
-
 }
diff --git a/common/src/test/java/org/apache/seata/common/code/CodeTest.java 
b/common/src/test/java/org/apache/seata/common/code/CodeTest.java
index 66eeffcd87..202257a893 100644
--- a/common/src/test/java/org/apache/seata/common/code/CodeTest.java
+++ b/common/src/test/java/org/apache/seata/common/code/CodeTest.java
@@ -28,10 +28,10 @@ public class CodeTest {
     public void testGetErrorMsgWithValidCodeReturnsExpectedMsg() {
         // Test case for SUCCESS
         assertEquals("ok", Code.SUCCESS.getMsg());
-        // Test case for ERROR
-        assertEquals("Server error", Code.ERROR.getMsg());
-        // Test case for LOGIN_FAILED
-        assertEquals("Login failed", Code.LOGIN_FAILED.getMsg());
+        // Test case for INTERNAL_SERVER_ERROR
+        assertEquals("Server error", Code.INTERNAL_SERVER_ERROR.getMsg());
+        // Test case for UNAUTHORIZED
+        assertEquals("Login failed", Code.UNAUTHORIZED.getMsg());
     }
 
     @Test
@@ -39,13 +39,4 @@ public class CodeTest {
         // Test case for non-existing code
         assertNull(Code.getErrorMsg("404"));
     }
-
-    @Test
-    public void testSetCodeAndMsgUpdatesValuesCorrectly() {
-        // Test case to check if setCode and setMsg are working as expected
-        Code.SUCCESS.setCode("201");
-        Code.SUCCESS.setMsg("Created");
-        assertEquals("201", Code.SUCCESS.getCode());
-        assertEquals("Created", Code.SUCCESS.getMsg());
-    }
 }
diff --git 
a/common/src/test/java/org/apache/seata/common/result/PageResultTest.java 
b/common/src/test/java/org/apache/seata/common/result/PageResultTest.java
index 4ee65f108a..f45d1d5985 100644
--- a/common/src/test/java/org/apache/seata/common/result/PageResultTest.java
+++ b/common/src/test/java/org/apache/seata/common/result/PageResultTest.java
@@ -23,6 +23,7 @@ import org.junit.jupiter.api.Test;
 import org.mockito.InjectMocks;
 import org.mockito.MockitoAnnotations;
 
+import static org.apache.seata.common.result.Code.*;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNull;
 
@@ -41,7 +42,7 @@ public class PageResultTest {
         for (long i = 0; i < 100; i++) {
             list.add(i);
         }
-        PageResult pageResult = PageResult.build(list, 1, 10);
+        PageResult<Long> pageResult = PageResult.build(list, 1, 10);
         assertEquals(10, pageResult.getPages());
         assertEquals(10, pageResult.getData().size());
     }
@@ -52,7 +53,7 @@ public class PageResultTest {
         for (long i = 0; i < 9; i++) {
             list.add(i);
         }
-        PageResult pageResult = PageResult.build(list, 1, 10);
+        PageResult<Long> pageResult = PageResult.build(list, 1, 10);
         assertEquals(1, pageResult.getPages());
         assertEquals(9, pageResult.getData().size());
     }
@@ -63,7 +64,7 @@ public class PageResultTest {
         for (long i = 0; i < 5; i++) {
             list.add(i);
         }
-        PageResult pageResult = PageResult.build(list, 10, 2);
+        PageResult<Long> pageResult = PageResult.build(list, 10, 2);
         assertEquals(10, pageResult.getPageNum().intValue());
         assertEquals(3, pageResult.getPages().intValue());
         assertEquals(0, pageResult.getData().size());
@@ -71,16 +72,16 @@ public class PageResultTest {
 
     @Test
     void failureInvalidParams() {
-        PageResult pageResult = PageResult.failure("400", "error");
+        PageResult<Void> pageResult = PageResult.failure("400", "error");
         assertEquals("400", pageResult.getCode());
         assertEquals("error", pageResult.getMessage());
     }
 
     @Test
     void successNoData() {
-        PageResult pageResult = PageResult.success();
-        assertEquals(PageResult.SUCCESS_CODE, pageResult.getCode());
-        assertEquals(PageResult.SUCCESS_MSG, pageResult.getMessage());
+        PageResult<Void> pageResult = PageResult.success();
+        assertEquals(SUCCESS.code, pageResult.getCode());
+        assertEquals(SUCCESS.msg, pageResult.getMessage());
         assertNull(pageResult.getData());
     }
 
@@ -90,9 +91,9 @@ public class PageResultTest {
         for (long i = 0; i < 5; i++) {
             list.add(i);
         }
-        PageResult pageResult = PageResult.success(list, 5, 1, 5);
-        assertEquals(PageResult.SUCCESS_CODE, pageResult.getCode());
-        assertEquals(PageResult.SUCCESS_MSG, pageResult.getMessage());
+        PageResult<Long> pageResult = PageResult.success(list, 5, 1, 5);
+        assertEquals(SUCCESS.code, pageResult.getCode());
+        assertEquals(SUCCESS.msg, pageResult.getMessage());
         assertEquals(5, pageResult.getTotal().intValue());
         assertEquals(1, pageResult.getPageNum().intValue());
         assertEquals(5, pageResult.getPageSize().intValue());
diff --git 
a/common/src/test/java/org/apache/seata/common/result/ResultTest.java 
b/common/src/test/java/org/apache/seata/common/result/ResultTest.java
new file mode 100644
index 0000000000..5659f88d3a
--- /dev/null
+++ b/common/src/test/java/org/apache/seata/common/result/ResultTest.java
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.seata.common.result;
+
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+import static org.apache.seata.common.result.Code.SUCCESS;
+
+class ResultTest {
+
+    @Test
+    void testConstructor() {
+        Result result = new Result("200", "ok");
+        Assertions.assertEquals(SUCCESS.code, result.getCode());
+        Assertions.assertEquals(SUCCESS.msg, result.getMessage());
+    }
+
+    @Test
+    void testIsSuccess() {
+        Result result = new Result("200", "ok");
+        Assertions.assertTrue(result.isSuccess());
+    }
+
+    @Test
+    void testGetCode() {
+        Result result = new Result("200", "ok");
+        Assertions.assertEquals(SUCCESS.code, result.getCode());
+    }
+
+    @Test
+    void testGetMessage() {
+        Result result = new Result("200", "ok");
+        Assertions.assertEquals(SUCCESS.msg, result.getMessage());
+    }
+}
diff --git 
a/common/src/test/java/org/apache/seata/common/result/SingleResultTest.java 
b/common/src/test/java/org/apache/seata/common/result/SingleResultTest.java
index db690aa4e9..a38eaded3b 100644
--- a/common/src/test/java/org/apache/seata/common/result/SingleResultTest.java
+++ b/common/src/test/java/org/apache/seata/common/result/SingleResultTest.java
@@ -16,6 +16,10 @@
  */
 package org.apache.seata.common.result;
 
+import static org.apache.seata.common.result.Code.SUCCESS;
+import static org.apache.seata.common.result.Code.INTERNAL_SERVER_ERROR;
+import static org.apache.seata.common.result.Code.UNAUTHORIZED;
+
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 
@@ -23,23 +27,31 @@ class SingleResultTest {
 
     @Test
     void testConstructor() {
-        SingleResult<String> result = new SingleResult<>("200", "OK", "Data");
-        Assertions.assertEquals("200", result.getCode());
-        Assertions.assertEquals("OK", result.getMessage());
+        SingleResult<String> result = new SingleResult<>("200", "ok", "Data");
+        Assertions.assertEquals(SUCCESS.code, result.getCode());
+        Assertions.assertEquals(SUCCESS.msg, result.getMessage());
         Assertions.assertEquals("Data", result.getData());
     }
 
     @Test
     void testFailureWithCodeAndMessage() {
-        SingleResult<String> result = SingleResult.failure("500", "Error");
-        Assertions.assertEquals("500", result.getCode());
-        Assertions.assertEquals("Error", result.getMessage());
+        SingleResult<String> result = SingleResult.failure("500", "Server 
error");
+        Assertions.assertEquals(INTERNAL_SERVER_ERROR.code, result.getCode());
+        Assertions.assertEquals(INTERNAL_SERVER_ERROR.msg, 
result.getMessage());
+        Assertions.assertNull(result.getData());
+    }
+
+    @Test
+    void testFailureWithMessage() {
+        SingleResult<String> result = SingleResult.failure("Server error");
+        Assertions.assertEquals(INTERNAL_SERVER_ERROR.code, result.getCode());
+        Assertions.assertEquals("Server error", result.getMessage());
         Assertions.assertNull(result.getData());
     }
 
     @Test
     void testFailureWithErrorCode() {
-        SingleResult<String> result = SingleResult.failure(Code.LOGIN_FAILED);
+        SingleResult<String> result = SingleResult.failure(UNAUTHORIZED);
         Assertions.assertEquals("401", result.getCode());
         Assertions.assertEquals("Login failed", result.getMessage());
         Assertions.assertNull(result.getData());
@@ -47,10 +59,34 @@ class SingleResultTest {
 
     @Test
     void testSuccess() {
-        SingleResult<String> result = SingleResult.success("SuccessData");
-        Assertions.assertEquals(SingleResult.SUCCESS_CODE, result.getCode());
-        Assertions.assertEquals(SingleResult.SUCCESS_MSG, result.getMessage());
-        Assertions.assertEquals("SuccessData", result.getData());
+        SingleResult<String> result = SingleResult.successWithData("ok");
+        Assertions.assertEquals(SUCCESS.code, result.getCode());
+        Assertions.assertEquals(SUCCESS.msg, result.getMessage());
+        Assertions.assertEquals("ok", result.getData());
+    }
+
+    @Test
+    void testSuccessWithoutData() {
+        SingleResult<String> result = SingleResult.success();
+        Assertions.assertEquals(SUCCESS.code, result.getCode());
+        Assertions.assertEquals(SUCCESS.msg, result.getMessage());
+        Assertions.assertNull(result.getData());
+    }
+
+    @Test
+    void testSuccessWithMessage() {
+        SingleResult<Void> result = SingleResult.success("ok");
+        Assertions.assertEquals(SUCCESS.code, result.getCode());
+        Assertions.assertEquals("ok", result.getMessage());
+        Assertions.assertNull(result.getData());
+    }
+
+    @Test
+    void testSuccessWithMessageAndData() {
+        SingleResult<String> result = SingleResult.success("ok", "Data");
+        Assertions.assertEquals(SUCCESS.code, result.getCode());
+        Assertions.assertEquals("ok", result.getMessage());
+        Assertions.assertEquals("Data", result.getData());
     }
 
     @Test
diff --git 
a/console/src/main/java/org/apache/seata/console/controller/AuthController.java 
b/console/src/main/java/org/apache/seata/console/controller/AuthController.java
index 7f43218c4c..091fe718e0 100644
--- 
a/console/src/main/java/org/apache/seata/console/controller/AuthController.java
+++ 
b/console/src/main/java/org/apache/seata/console/controller/AuthController.java
@@ -55,7 +55,7 @@ public class AuthController {
      * Seata is in broken states.
      */
     @PostMapping("/login")
-    public SingleResult<String> login(HttpServletResponse response, 
@RequestBody User user) {
+    public SingleResult<Void> login(HttpServletResponse response, @RequestBody 
User user) {
         UsernamePasswordAuthenticationToken authenticationToken = new 
UsernamePasswordAuthenticationToken(
             user.getUsername(), user.getPassword());
 
@@ -73,7 +73,7 @@ public class AuthController {
 
             return SingleResult.success(authHeader);
         } catch (BadCredentialsException authentication) {
-            return SingleResult.failure(Code.LOGIN_FAILED);
+            return SingleResult.failure(Code.UNAUTHORIZED);
         }
     }
 }
diff --git 
a/console/src/main/java/org/apache/seata/console/controller/OverviewController.java
 
b/console/src/main/java/org/apache/seata/console/controller/OverviewController.java
index 6bbfc31239..8da7e164df 100644
--- 
a/console/src/main/java/org/apache/seata/console/controller/OverviewController.java
+++ 
b/console/src/main/java/org/apache/seata/console/controller/OverviewController.java
@@ -41,7 +41,7 @@ public class OverviewController {
      * @return the data
      */
     @GetMapping(value = "/getData")
-    public SingleResult<List> getData() {
+    public SingleResult<List<Map<String, Object>>> getData() {
         List<Map<String, Object>> result = new ArrayList<>();
         int count = 10;
         while (count-- > 0) {
@@ -51,6 +51,6 @@ public class OverviewController {
             result.add(hashMap);
         }
 
-        return SingleResult.success(result);
+        return SingleResult.successWithData(result);
     }
 }
diff --git 
a/namingserver/src/main/java/org/apache/seata/namingserver/controller/HealthController.java
 
b/namingserver/src/main/java/org/apache/seata/namingserver/controller/HealthController.java
index 7fd77f8e63..5900014f48 100644
--- 
a/namingserver/src/main/java/org/apache/seata/namingserver/controller/HealthController.java
+++ 
b/namingserver/src/main/java/org/apache/seata/namingserver/controller/HealthController.java
@@ -16,7 +16,7 @@
  */
 package org.apache.seata.namingserver.controller;
 
-import org.apache.seata.common.result.Result;
+import org.apache.seata.common.result.SingleResult;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -26,8 +26,8 @@ import org.springframework.web.bind.annotation.RestController;
 public class HealthController {
 
     @GetMapping("/health")
-    public Result<?> healthCheck() {
-        return new Result<>();
+    public SingleResult<Void> healthCheck() {
+        return SingleResult.success();
     }
 
 }
diff --git 
a/namingserver/src/main/java/org/apache/seata/namingserver/controller/NamingController.java
 
b/namingserver/src/main/java/org/apache/seata/namingserver/controller/NamingController.java
index e194dbe73f..be9da59a92 100644
--- 
a/namingserver/src/main/java/org/apache/seata/namingserver/controller/NamingController.java
+++ 
b/namingserver/src/main/java/org/apache/seata/namingserver/controller/NamingController.java
@@ -19,7 +19,6 @@ package org.apache.seata.namingserver.controller;
 
 import org.apache.seata.common.metadata.namingserver.MetaResponse;
 import org.apache.seata.common.metadata.namingserver.NamingServerNode;
-import org.apache.seata.common.result.Result;
 import org.apache.seata.common.result.SingleResult;
 import org.apache.seata.namingserver.entity.vo.NamespaceVO;
 import org.apache.seata.namingserver.listener.Watcher;
@@ -58,48 +57,39 @@ public class NamingController {
     private ClusterWatcherManager clusterWatcherManager;
 
     @PostMapping("/register")
-    public Result<String> registerInstance(@RequestParam String namespace,
+    public SingleResult<Void> registerInstance(@RequestParam String namespace,
                                            @RequestParam String clusterName,
                                            @RequestParam String unit,
                                            @RequestBody NamingServerNode 
registerBody) {
-        Result<String> result = new Result<>();
         boolean isSuccess = namingManager.registerInstance(registerBody, 
namespace, clusterName, unit);
         if (isSuccess) {
-            result.setMessage("node has registered successfully!");
+            return SingleResult.success("node has registered successfully!");
         } else {
-            result.setCode("500");
-            result.setMessage("node registered unsuccessfully!");
+            return SingleResult.failure("node registered unsuccessfully!");
         }
-        return result;
     }
 
     @PostMapping("/batchRegister")
-    public Result<String> batchRegisterInstance(@RequestParam String namespace,
+    public SingleResult<Void> batchRegisterInstance(@RequestParam String 
namespace,
                                            @RequestParam String clusterName,
                                            @RequestBody List<NamingServerNode> 
nodes) {
-        Result<String> result = new Result<>();
         boolean isSuccess = namingManager.registerInstances(nodes, namespace, 
clusterName);
         if (isSuccess) {
-            result.setMessage("node has registered successfully!");
+            return SingleResult.success("nodes have registered successfully!");
         } else {
-            result.setCode("500");
-            result.setMessage("node registered unsuccessfully!");
+            return SingleResult.failure("nodes registered unsuccessfully!");
         }
-        return result;
     }
 
     @PostMapping("/unregister")
-    public Result<String> unregisterInstance(@RequestParam String namespace, 
@RequestParam String clusterName,
+    public SingleResult<Void> unregisterInstance(@RequestParam String 
namespace, @RequestParam String clusterName,
         @RequestParam String unit, @RequestBody NamingServerNode registerBody) 
{
-        Result<String> result = new Result<>();
         boolean isSuccess = namingManager.unregisterInstance(namespace, 
clusterName, unit, registerBody);
         if (isSuccess) {
-            result.setMessage("node has unregistered successfully!");
+            return SingleResult.success("node has unregistered successfully!");
         } else {
-            result.setCode("500");
-            result.setMessage("node unregistered unsuccessfully!");
+            return SingleResult.failure("node unregistered unsuccessfully!");
         }
-        return result;
     }
 
     @GetMapping("/clusters")
@@ -114,26 +104,27 @@ public class NamingController {
     }
 
     @PostMapping("/addGroup")
-    public Result<String> addGroup(@RequestParam String namespace, 
@RequestParam String clusterName, String unitName,
-        @RequestParam String vGroup) {
-
-        Result<String> addGroupResult = namingManager.createGroup(namespace, 
vGroup, clusterName, unitName);
+    public SingleResult<Void> addGroup(@RequestParam String namespace,
+                                      @RequestParam String clusterName,
+                                      @RequestParam String unitName,
+                                      @RequestParam String vGroup) {
+        SingleResult<Void> addGroupResult = 
namingManager.createGroup(namespace, vGroup, clusterName, unitName);
         if (!addGroupResult.isSuccess()) {
             return addGroupResult;
         }
-        return new Result<>("200", "change vGroup " + vGroup + "to cluster " + 
clusterName + " successfully!");
+        return SingleResult.success("change vGroup " + vGroup + "to cluster " 
+ clusterName + " successfully!");
     }
 
     @PostMapping("/changeGroup")
-    public Result<String> changeGroup(@RequestParam String namespace,
+    public SingleResult<Void> changeGroup(@RequestParam String namespace,
                                       @RequestParam String clusterName,
                                       @RequestParam String unitName,
                                       @RequestParam String vGroup) {
-        Result<String> addGroupResult = namingManager.changeGroup(namespace, 
vGroup, clusterName, unitName);
+        SingleResult<Void> addGroupResult = 
namingManager.changeGroup(namespace, vGroup, clusterName, unitName);
         if (!addGroupResult.isSuccess()) {
             return addGroupResult;
         }
-        return new Result<>("200", "change vGroup " + vGroup + "to cluster " + 
clusterName + " successfully!");
+        return SingleResult.success("change vGroup " + vGroup + "to cluster " 
+ clusterName + " successfully!");
     }
 
     @GetMapping("/namespace")
@@ -166,6 +157,4 @@ public class NamingController {
                 .map(vgroup -> new WatcherVO(vgroup, 
clusterWatcherManager.getWatcherIpList(vgroup)))
                 .collect(Collectors.toList());
     }
-
-
 }
diff --git 
a/namingserver/src/main/java/org/apache/seata/namingserver/manager/NamingManager.java
 
b/namingserver/src/main/java/org/apache/seata/namingserver/manager/NamingManager.java
index 3656710b37..d09a3fc45c 100644
--- 
a/namingserver/src/main/java/org/apache/seata/namingserver/manager/NamingManager.java
+++ 
b/namingserver/src/main/java/org/apache/seata/namingserver/manager/NamingManager.java
@@ -24,6 +24,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.Objects;
 import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
@@ -47,7 +48,6 @@ import org.apache.seata.common.metadata.ClusterRole;
 import org.apache.seata.common.metadata.Node;
 import org.apache.seata.common.metadata.namingserver.NamingServerNode;
 import org.apache.seata.common.metadata.namingserver.Unit;
-import org.apache.seata.common.result.Result;
 import org.apache.seata.common.result.SingleResult;
 import org.apache.seata.common.util.HttpClientUtil;
 import org.apache.seata.common.NamingServerConstants;
@@ -149,12 +149,12 @@ public class NamingManager {
         return new ArrayList<>(clusterVOHashMap.values());
     }
 
-    public Result<String> createGroup(String namespace, String vGroup, String 
clusterName, String unitName) {
+    public SingleResult<Void> createGroup(String namespace, String vGroup, 
String clusterName, String unitName) {
         // add vGroup in new cluster
         List<Node> nodeList = getInstances(namespace, clusterName);
         if (nodeList == null || nodeList.size() == 0) {
             LOGGER.error("no instance in cluster {}", clusterName);
-            return new Result<>("301", "no instance in cluster" + clusterName);
+            return new SingleResult<>("301", "no instance in cluster" + 
clusterName);
         } else {
             Node node =
                 nodeList.stream().filter(n -> n.getRole() == 
ClusterRole.LEADER || n.getRole() == ClusterRole.MEMBER)
@@ -171,19 +171,19 @@ public class NamingManager {
 
             try (CloseableHttpResponse closeableHttpResponse = 
HttpClientUtil.doGet(httpUrl, params, header, 3000)) {
                 if (closeableHttpResponse == null || 
closeableHttpResponse.getStatusLine().getStatusCode() != 200) {
-                    return new 
Result<>(String.valueOf(closeableHttpResponse.getStatusLine().getStatusCode()),
-                        "add vGroup in new cluster failed");
+                    int statusCode = 
Objects.requireNonNull(closeableHttpResponse).getStatusLine().getStatusCode();
+                    return SingleResult.failure(String.valueOf(statusCode), 
"add vGroup in new cluster failed");
                 }
                 LOGGER.info("namespace: {} add vGroup: {} in new cluster: {} 
successfully!", namespace, vGroup, clusterName);
             } catch (IOException e) {
                 LOGGER.warn("add vGroup in new cluster failed");
-                return new Result<>("500", "add vGroup in new cluster failed");
+                return SingleResult.failure("500", "add vGroup in new cluster 
failed");
             }
         }
-        return new Result<>("200", "add vGroup successfully!");
+        return SingleResult.success("add vGroup in new cluster successfully!");
     }
 
-    public Result<String> removeGroup(Unit unit, String vGroup, String 
clusterName, String namespace, String unitName) {
+    public SingleResult<Void> removeGroup(Unit unit, String vGroup, String 
clusterName, String namespace, String unitName) {
         if (unit != null && 
!CollectionUtils.isEmpty(unit.getNamingInstanceList())) {
             Node node = unit.getNamingInstanceList().get(0);
             String httpUrl = NamingServerConstants.HTTP_PREFIX + 
node.getControl().getHost()
@@ -197,18 +197,17 @@ public class NamingManager {
             try (CloseableHttpResponse closeableHttpResponse = 
HttpClientUtil.doGet(httpUrl, params, header, 3000)) {
                 if (closeableHttpResponse == null || 
closeableHttpResponse.getStatusLine().getStatusCode() != 200) {
                     LOGGER.warn("remove vGroup in old cluster failed");
-                    return new 
Result<>(String.valueOf(closeableHttpResponse.getStatusLine().getStatusCode()),
-                        "removing vGroup " + vGroup + " in old cluster " + 
clusterName + " failed");
+                    int statusCode = 
Objects.requireNonNull(closeableHttpResponse).getStatusLine().getStatusCode();
+                    return SingleResult.failure(String.valueOf(statusCode), 
"removing vGroup " + vGroup + " in old cluster " + clusterName + " failed");
                 }
                 LOGGER.info("namespace: {} remove vGroup: {} in new cluster: 
{} successfully!", namespace, vGroup,
                     clusterName);
             } catch (IOException e) {
                 LOGGER.warn("handle removing vGroup in old cluster failed");
-                return new Result<>("500",
-                    "handle removing vGroup " + vGroup + " in old cluster " + 
clusterName + " failed");
+                return SingleResult.failure("500", "handle removing vGroup " + 
vGroup + " in old cluster " + clusterName + " failed");
             }
         }
-        return new Result<>("200", "remove group in old cluster 
successfully!");
+        return SingleResult.success("remove group in old cluster 
successfully!");
     }
 
     public boolean addGroup(String namespace, String clusterName, String 
unitName, String vGroup) {
@@ -388,7 +387,7 @@ public class NamingManager {
         }
     }
 
-    public Result<String> changeGroup(String namespace, String vGroup, String 
clusterName, String unitName) {
+    public SingleResult<Void> changeGroup(String namespace, String vGroup, 
String clusterName, String unitName) {
         long changeTime = System.currentTimeMillis();
         ConcurrentMap<String, NamespaceBO> namespaceMap = new 
ConcurrentHashMap<>(vGroupMap.get(vGroup));
         Set<String> currentNamespaces = namespaceMap.keySet();
@@ -397,12 +396,12 @@ public class NamingManager {
             namespaceClusters.put(currentNamespace,
                 new 
HashSet<>(namespaceMap.get(currentNamespace).getClusterMap().keySet()));
         }
-        Result<String> res = createGroup(namespace, vGroup, clusterName, 
unitName);
+        SingleResult<Void> res = createGroup(namespace, vGroup, clusterName, 
unitName);
         if (!res.isSuccess()) {
             LOGGER.error("add vgroup failed!" + res.getMessage());
             return res;
         }
-        AtomicReference<Result<String>> result = new AtomicReference<>();
+        AtomicReference<SingleResult<Void>> result = new AtomicReference<>();
         namespaceClusters.forEach((oldNamespace, clusters) -> {
             for (String cluster : clusters) {
                 Optional.ofNullable(namespaceClusterDataMap.get(oldNamespace))
@@ -420,7 +419,10 @@ public class NamingManager {
                         });
             }
         });
-        return Optional.ofNullable(result.get()).orElseGet(() -> new 
Result<>("200", "change vGroup successfully!"));
+        if (result.get() == null) {
+            throw new NullPointerException("change vGroup failed!");
+        }
+        return SingleResult.success("change vGroup successfully!");
     }
 
     public SingleResult<Map<String, NamespaceVO>> namespace() {
@@ -434,7 +436,7 @@ public class NamingManager {
                 namespaceVO.setClusters(new 
ArrayList<>(clusterDataMap.keySet()));
                 namespaceVOs.put(namespace, namespaceVO);
             });
-            return SingleResult.success(namespaceVOs);
+            return SingleResult.successWithData(namespaceVOs);
         }
         currentVGourpMap.forEach((vGroup, namespaceMap) -> namespaceMap
             .forEach((namespace, namespaceBO) -> 
namespaceBO.getClusterMap().forEach((clusterName, clusterBO) -> {
@@ -442,7 +444,7 @@ public class NamingManager {
                 namespaceVO.getClusters().add(clusterName);
                 namespaceVO.getVgroups().add(vGroup);
             })));
-        return SingleResult.success(namespaceVOs);
+        return SingleResult.successWithData(namespaceVOs);
     }
 
 }
diff --git 
a/server/src/main/java/org/apache/seata/server/console/impl/AbstractLockService.java
 
b/server/src/main/java/org/apache/seata/server/console/impl/AbstractLockService.java
index 3b3f7634ae..e61cc1a9bb 100644
--- 
a/server/src/main/java/org/apache/seata/server/console/impl/AbstractLockService.java
+++ 
b/server/src/main/java/org/apache/seata/server/console/impl/AbstractLockService.java
@@ -28,9 +28,9 @@ public abstract class AbstractLockService extends 
AbstractService implements Glo
         try {
             commonCheckAndGetGlobalStatus(xid, branchId);
         } catch (IllegalArgumentException e) {
-            return SingleResult.success(Boolean.FALSE);
+            return SingleResult.successWithData(Boolean.FALSE);
         }
-        return SingleResult.success(Boolean.TRUE);
+        return SingleResult.successWithData(Boolean.TRUE);
     }
 
     protected void checkDeleteLock(GlobalLockParam param) {
diff --git 
a/server/src/main/java/org/apache/seata/server/controller/ClusterController.java
 
b/server/src/main/java/org/apache/seata/server/controller/ClusterController.java
index 816f6e3e25..29beb097cf 100644
--- 
a/server/src/main/java/org/apache/seata/server/controller/ClusterController.java
+++ 
b/server/src/main/java/org/apache/seata/server/controller/ClusterController.java
@@ -31,7 +31,7 @@ import com.alipay.sofa.jraft.entity.PeerId;
 import org.apache.seata.common.ConfigurationKeys;
 import org.apache.seata.common.metadata.MetadataResponse;
 import org.apache.seata.common.metadata.Node;
-import org.apache.seata.common.result.Result;
+import org.apache.seata.common.result.SingleResult;
 import org.apache.seata.common.util.StringUtils;
 import org.apache.seata.config.ConfigurationFactory;
 import org.apache.seata.server.cluster.manager.ClusterWatcherManager;
@@ -74,11 +74,10 @@ public class ClusterController {
     }
 
     @PostMapping("/changeCluster")
-    public Result<?> changeCluster(@RequestParam String raftClusterStr) {
-        Result<?> result = new Result<>();
+    public SingleResult<Void> changeCluster(@RequestParam String 
raftClusterStr) {
         final Configuration newConf = new Configuration();
         if (!newConf.parse(raftClusterStr)) {
-            result.setMessage("fail to parse initConf:" + raftClusterStr);
+            return SingleResult.failure("fail to parse initConf:" + 
raftClusterStr);
         } else {
             RaftServerManager.groups().forEach(group -> {
                 RaftServerManager.getCliServiceInstance().changePeers(group,
@@ -86,7 +85,7 @@ public class ClusterController {
                 RouteTable.getInstance().updateConfiguration(group, newConf);
             });
         }
-        return result;
+        return SingleResult.success("success");
     }
 
     @GetMapping("/cluster")
diff --git 
a/server/src/main/java/org/apache/seata/server/controller/VGroupMappingController.java
 
b/server/src/main/java/org/apache/seata/server/controller/VGroupMappingController.java
index bf9edf9787..fff5c929fa 100644
--- 
a/server/src/main/java/org/apache/seata/server/controller/VGroupMappingController.java
+++ 
b/server/src/main/java/org/apache/seata/server/controller/VGroupMappingController.java
@@ -17,7 +17,7 @@
 package org.apache.seata.server.controller;
 
 import org.apache.seata.common.metadata.Instance;
-import org.apache.seata.common.result.Result;
+import org.apache.seata.common.result.SingleResult;
 import org.apache.seata.config.Configuration;
 import org.apache.seata.config.ConfigurationFactory;
 import org.apache.seata.core.store.MappingDO;
@@ -40,11 +40,11 @@ public class VGroupMappingController {
      * add vGroup in cluster
      *
      * @param vGroup
-     * @return
+     * @param unit
+     * @return SingleResult
      */
     @GetMapping("/addVGroup")
-    public Result<?> addVGroup(@RequestParam String vGroup, @RequestParam 
String unit) {
-        Result<?> result = new Result<>();
+    public SingleResult<Void> addVGroup(@RequestParam String vGroup, 
@RequestParam String unit) {
         MappingDO mappingDO = new MappingDO();
         mappingDO.setNamespace(Instance.getInstance().getNamespace());
         mappingDO.setCluster(Instance.getInstance().getClusterName());
@@ -53,29 +53,24 @@ public class VGroupMappingController {
         boolean rst = 
SessionHolder.getRootVGroupMappingManager().addVGroup(mappingDO);
         Instance.getInstance().setTerm(System.currentTimeMillis());
         if (!rst) {
-            result.setCode("500");
-            result.setMessage("add vGroup failed!");
+            return SingleResult.failure("add vGroup failed!");
         }
-        return result;
+        return SingleResult.success();
     }
 
     /**
      * remove vGroup in cluster
      *
      * @param vGroup
-     * @return
+     * @return SingleResult
      */
     @GetMapping("/removeVGroup")
-    public Result<?> removeVGroup(@RequestParam String vGroup) {
-        Result<?> result = new Result<>();
+    public SingleResult<Void> removeVGroup(@RequestParam String vGroup) {
         boolean rst = 
SessionHolder.getRootVGroupMappingManager().removeVGroup(vGroup);
         Instance.getInstance().setTerm(System.currentTimeMillis());
         if (!rst) {
-            result.setCode("500");
-            result.setMessage("remove vGroup failed!");
+            return SingleResult.failure("remove vGroup failed!");
         }
-        return result;
+        return SingleResult.success();
     }
-
-
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


Reply via email to