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]