This is an automated email from the ASF dual-hosted git repository.
jianbin 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 f8e0bd5a28 test: fix the exception caused by the disorder of test case
execution order (#7580)
f8e0bd5a28 is described below
commit f8e0bd5a28b7bf6bae2f148c799b8be488161b45
Author: funkye <[email protected]>
AuthorDate: Wed Aug 13 09:08:17 2025 +0800
test: fix the exception caused by the disorder of test case execution order
(#7580)
---
changes/en-us/2.x.md | 1 +
changes/zh-cn/2.x.md | 2 +-
.../core/rpc/netty/RmNettyRemotingClient.java | 1 +
.../org/apache/seata/mockserver/MockServer.java | 6 ++
.../java/org/apache/seata/server/ServerRunner.java | 2 +-
.../apache/seata/server/session/SessionHolder.java | 5 +-
.../spring/listener/ServerApplicationListener.java | 1 +
.../apache/seata/server/BaseSpringBootTest.java | 52 +++++++++++++++++
.../apache/seata/server/DynamicPortTestConfig.java | 45 ---------------
.../org/apache/seata/server/LoaderConfTest.java | 6 +-
.../apache/seata/server/ParameterParserTest.java | 6 +-
.../server/controller/ClusterControllerTest.java | 24 ++++----
.../server/coordinator/DefaultCoordinatorTest.java | 8 +--
.../seata/server/coordinator/DefaultCoreTest.java | 8 +--
.../apache/seata/server/env/PortHelperTest.java | 2 +-
.../server/event/DefaultCoreForEventBusTest.java | 8 +--
.../server/lock/DistributedLockerFactoryTest.java | 8 +--
.../apache/seata/server/lock/LockManagerTest.java | 8 +--
.../lock/db/DataBaseLockManagerImplTest.java | 8 +--
.../server/lock/db/DataBaseLockStoreDAOTest.java | 8 +--
.../server/lock/file/FileLockManagerImplTest.java | 8 +--
.../server/lock/redis/RedisLockManagerTest.java | 10 +---
.../server/lock/redis/RedisLuaLockManagerTest.java | 5 --
.../apache/seata/server/logging/AppenderTest.java | 8 +--
.../apache/seata/server/raft/RaftServerTest.java | 8 +--
.../seata/server/raft/RaftSyncMessageTest.java | 8 +--
.../raft/execute/BranchSessionExecuteTest.java | 8 +--
.../raft/execute/GlobalSessionExecuteTest.java | 8 +--
.../seata/server/raft/execute/LockExecuteTest.java | 10 +---
.../server/ratelimiter/RateLimiterHandlerTest.java | 8 +--
.../server/ratelimiter/TokenBucketLimiterTest.java | 8 +--
.../seata/server/session/BranchSessionTest.java | 8 +--
.../server/session/FileSessionManagerTest.java | 8 +--
.../seata/server/session/GlobalSessionTest.java | 8 +--
.../seata/server/session/SessionHolderTest.java | 8 +--
.../server/session/SessionStatusValidatorTest.java | 8 +--
.../session/db/DataBaseSessionManagerTest.java | 8 +--
.../session/redis/RedisDistributedLockerTest.java | 8 +--
.../redis/RedisLuaTransactionStoreManagerTest.java | 5 --
.../server/session/redis/RedisQueryConsolTest.java | 8 +--
.../session/redis/RedisSessionManagerTest.java | 8 +--
.../redis/RedisTransactionStoreManagerTest.java | 8 +--
.../server/session/redis/SessionConverterTest.java | 8 +--
.../ClearServerServicePortInitializer.java | 65 ++++++++++++++++++++++
.../store/FileVGroupMappingStoreManagerTest.java | 8 +--
.../store/RaftVGroupMappingStoreManagerTest.java | 8 +--
.../store/RedisVGroupMappingStoreManagerTest.java | 8 +--
.../store/RaftSyncMessageSerializerTest.java | 10 +---
.../seata/server/store/SessionStoreTest.java | 27 +++++----
.../store/db/AbstractDataSourceProviderTest.java | 10 +---
.../server/store/db/LogStoreDataBaseDAOTest.java | 10 +---
.../file/FileTransactionStoreManagerTest.java | 10 +---
.../spring.factories} | 6 +-
server/src/test/resources/application.properties | 2 -
.../AdapterSpringSeataInterceptorTest.java | 2 +
.../annotation/GlobalTransactionScannerTest.java | 7 +++
56 files changed, 242 insertions(+), 322 deletions(-)
diff --git a/changes/en-us/2.x.md b/changes/en-us/2.x.md
index 7f1add0791..99ea9240c8 100644
--- a/changes/en-us/2.x.md
+++ b/changes/en-us/2.x.md
@@ -50,6 +50,7 @@ Add changes here for all PR submitted to the 2.x branch.
- [[#7541](https://github.com/seata/seata/pull/7541)] fix jakarta UT failed in
jdk17+
- [[#7540](https://github.com/seata/seata/pull/7540)] fix port of mock server
+- [[#7580](https://github.com/seata/seata/pull/7580)] fix the exception
caused by the disorder of test case execution order
### refactor:
diff --git a/changes/zh-cn/2.x.md b/changes/zh-cn/2.x.md
index 70abe17143..f87de6e290 100644
--- a/changes/zh-cn/2.x.md
+++ b/changes/zh-cn/2.x.md
@@ -49,7 +49,7 @@
- [[#7541](https://github.com/seata/seata/pull/7541)] 修复 jakarta 依赖在 jdk17+
单测失败问题
- [[#7540](https://github.com/seata/seata/pull/7540)] 修复mock server端口冲突问题
- [[#7578](https://github.com/seata/seata/pull/7578)]
zstd解压由jni改为ZstdInputStream
-
+- [[#7580](https://github.com/seata/seata/pull/7580)] 修复测试用例顺序错乱导致的异常
### refactor:
diff --git
a/core/src/main/java/org/apache/seata/core/rpc/netty/RmNettyRemotingClient.java
b/core/src/main/java/org/apache/seata/core/rpc/netty/RmNettyRemotingClient.java
index 7cc8fc7d79..5987a18354 100644
---
a/core/src/main/java/org/apache/seata/core/rpc/netty/RmNettyRemotingClient.java
+++
b/core/src/main/java/org/apache/seata/core/rpc/netty/RmNettyRemotingClient.java
@@ -320,6 +320,7 @@ public final class RmNettyRemotingClient extends
AbstractNettyRemotingClient {
super.destroy();
initialized.getAndSet(false);
instance = null;
+ transactionServiceGroup = null;
}
@Override
diff --git
a/mock-server/src/main/java/org/apache/seata/mockserver/MockServer.java
b/mock-server/src/main/java/org/apache/seata/mockserver/MockServer.java
index 195881f58c..df980215b8 100644
--- a/mock-server/src/main/java/org/apache/seata/mockserver/MockServer.java
+++ b/mock-server/src/main/java/org/apache/seata/mockserver/MockServer.java
@@ -23,6 +23,8 @@ import org.apache.seata.common.thread.NamedThreadFactory;
import org.apache.seata.common.util.NetUtil;
import org.apache.seata.common.util.NumberUtils;
import org.apache.seata.common.util.UUIDGenerator;
+import org.apache.seata.config.ConfigurationCache;
+import org.apache.seata.core.constants.ConfigurationKeys;
import org.apache.seata.core.rpc.netty.NettyServerConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -74,6 +76,10 @@ public class MockServer {
if (!inited) {
synchronized (MockServer.class) {
if (!inited) {
+ ConfigurationCache.clear();
+ // Clear the property for any of the supported events
+
System.clearProperty(ConfigurationKeys.SERVER_SERVICE_PORT_CAMEL);
+ System.clearProperty("server.port");
inited = true;
workingThreads = new ThreadPoolExecutor(
50,
diff --git a/server/src/main/java/org/apache/seata/server/ServerRunner.java
b/server/src/main/java/org/apache/seata/server/ServerRunner.java
index ff581481cb..9d49a16042 100644
--- a/server/src/main/java/org/apache/seata/server/ServerRunner.java
+++ b/server/src/main/java/org/apache/seata/server/ServerRunner.java
@@ -82,7 +82,6 @@ public class ServerRunner implements CommandLineRunner,
DisposableBean, Applicat
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("destoryAll starting");
}
-
for (Disposable disposable : DISPOSABLE_LIST) {
disposable.destroy();
}
@@ -90,6 +89,7 @@ public class ServerRunner implements CommandLineRunner,
DisposableBean, Applicat
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("destoryAll finish");
}
+ DISPOSABLE_LIST.clear();
}
@Override
diff --git
a/server/src/main/java/org/apache/seata/server/session/SessionHolder.java
b/server/src/main/java/org/apache/seata/server/session/SessionHolder.java
index 7c076cc502..32baf18150 100644
--- a/server/src/main/java/org/apache/seata/server/session/SessionHolder.java
+++ b/server/src/main/java/org/apache/seata/server/session/SessionHolder.java
@@ -48,7 +48,6 @@ import java.util.Objects;
import java.util.concurrent.CompletableFuture;
import static java.io.File.separator;
-import static
org.apache.seata.common.ConfigurationKeys.SERVER_SERVICE_PORT_CAMEL;
import static
org.apache.seata.common.DefaultValues.DEFAULT_DISTRIBUTED_LOCK_EXPIRE_TIME;
import static org.apache.seata.common.DefaultValues.DEFAULT_SEATA_GROUP;
import static
org.apache.seata.common.DefaultValues.DEFAULT_SESSION_STORE_FILE_DIR;
@@ -125,11 +124,11 @@ public class SessionHolder {
String vGroupMappingStorePath =
CONFIG.getConfig(ConfigurationKeys.STORE_FILE_DIR,
DEFAULT_VGROUP_MAPPING_STORE_FILE_DIR)
+ separator
- +
System.getProperty(SERVER_SERVICE_PORT_CAMEL);
+ + XID.getPort();
String sessionStorePath =
CONFIG.getConfig(ConfigurationKeys.STORE_FILE_DIR,
DEFAULT_SESSION_STORE_FILE_DIR)
+ separator
- +
System.getProperty(SERVER_SERVICE_PORT_CAMEL);
+ + XID.getPort();
if (StringUtils.isBlank(sessionStorePath) ||
StringUtils.isBlank(vGroupMappingStorePath)) {
throw new StoreException("the {store.file.dir} is empty.");
}
diff --git
a/server/src/main/java/org/apache/seata/server/spring/listener/ServerApplicationListener.java
b/server/src/main/java/org/apache/seata/server/spring/listener/ServerApplicationListener.java
index 3f1a06c7d0..21c0dcd822 100644
---
a/server/src/main/java/org/apache/seata/server/spring/listener/ServerApplicationListener.java
+++
b/server/src/main/java/org/apache/seata/server/spring/listener/ServerApplicationListener.java
@@ -114,6 +114,7 @@ public class ServerApplicationListener implements
GenericApplicationListener {
// add property source to the first position
Properties pro = new Properties();
pro.setProperty(SERVER_SERVICE_PORT_CONFIG, port);
+ pro.setProperty(SERVER_SERVICE_PORT_CAMEL, port);
environment.getPropertySources().addFirst(new
PropertiesPropertySource("serverProperties", pro));
}
}
diff --git
a/server/src/test/java/org/apache/seata/server/BaseSpringBootTest.java
b/server/src/test/java/org/apache/seata/server/BaseSpringBootTest.java
new file mode 100644
index 0000000000..927dd08b1b
--- /dev/null
+++ b/server/src/test/java/org/apache/seata/server/BaseSpringBootTest.java
@@ -0,0 +1,52 @@
+/*
+ * 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.server;
+
+import org.apache.seata.config.ConfigurationCache;
+import org.apache.seata.config.ConfigurationFactory;
+import org.apache.seata.core.constants.ConfigurationKeys;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeAll;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.annotation.DirtiesContext;
+import org.springframework.test.context.TestPropertySource;
+
+@TestPropertySource(properties = {"server.port=${random.int[10000,60000]}"})
+@SpringBootTest
+@DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_CLASS)
+public abstract class BaseSpringBootTest {
+
+ @BeforeAll
+ public static void beforeAll() {
+ System.setProperty(ConfigurationKeys.SHUTDOWN_WAIT, "1");
+ ConfigurationCache.clear();
+ System.clearProperty(ConfigurationKeys.SERVER_SERVICE_PORT_CAMEL);
+ }
+
+ @AfterAll
+ public static void afterAll() {
+ ConfigurationCache.clear();
+ System.clearProperty(ConfigurationKeys.SERVER_SERVICE_PORT_CAMEL);
+ }
+
+ @AfterEach
+ public void AfterEach() {
+ ConfigurationFactory.reload();
+ System.clearProperty(ConfigurationKeys.SERVER_SERVICE_PORT_CAMEL);
+ }
+}
diff --git
a/server/src/test/java/org/apache/seata/server/DynamicPortTestConfig.java
b/server/src/test/java/org/apache/seata/server/DynamicPortTestConfig.java
deleted file mode 100644
index bd00461c83..0000000000
--- a/server/src/test/java/org/apache/seata/server/DynamicPortTestConfig.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * 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.server;
-
-import org.springframework.boot.test.context.TestConfiguration;
-import org.springframework.test.context.DynamicPropertyRegistry;
-import org.springframework.test.context.DynamicPropertySource;
-
-import java.io.IOException;
-import java.net.ServerSocket;
-
-@TestConfiguration
-public class DynamicPortTestConfig {
- @DynamicPropertySource
- static void dynamicProperties(DynamicPropertyRegistry registry) throws
IOException {
- try (ServerSocket serverSocket = new ServerSocket(0);
- ServerSocket exporterSocket = new ServerSocket(0); ) {
- int servicePort = serverSocket.getLocalPort();
- int exporterPort = exporterSocket.getLocalPort();
-
- registry.add("server.servicePort", () ->
String.valueOf(servicePort));
- registry.add("metrics.exporter.prometheus.port", () ->
String.valueOf(exporterPort));
-
- System.clearProperty("server.servicePort");
- System.clearProperty("metrics.exporter.prometheus.port");
-
- System.setProperty("server.servicePort",
String.valueOf(servicePort));
- System.setProperty("metrics.exporter.prometheus.port",
String.valueOf(exporterPort));
- }
- }
-}
diff --git a/server/src/test/java/org/apache/seata/server/LoaderConfTest.java
b/server/src/test/java/org/apache/seata/server/LoaderConfTest.java
index 071a94d482..811615dcf0 100644
--- a/server/src/test/java/org/apache/seata/server/LoaderConfTest.java
+++ b/server/src/test/java/org/apache/seata/server/LoaderConfTest.java
@@ -19,17 +19,13 @@ package org.apache.seata.server;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Import;
import org.springframework.core.env.Environment;
/**
*
*/
-@SpringBootTest
-@Import(DynamicPortTestConfig.class)
-public class LoaderConfTest {
+public class LoaderConfTest extends BaseSpringBootTest {
static Environment environment;
diff --git
a/server/src/test/java/org/apache/seata/server/ParameterParserTest.java
b/server/src/test/java/org/apache/seata/server/ParameterParserTest.java
index 4468a11501..e632c5e91c 100644
--- a/server/src/test/java/org/apache/seata/server/ParameterParserTest.java
+++ b/server/src/test/java/org/apache/seata/server/ParameterParserTest.java
@@ -20,16 +20,12 @@ import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.context.annotation.Import;
/**
* The type parameter parser test
*
*/
-@SpringBootTest
-@Import(DynamicPortTestConfig.class)
-public class ParameterParserTest {
+public class ParameterParserTest extends BaseSpringBootTest {
private static ParameterParser parameterParser = null;
/**
diff --git
a/server/src/test/java/org/apache/seata/server/controller/ClusterControllerTest.java
b/server/src/test/java/org/apache/seata/server/controller/ClusterControllerTest.java
index f78aad1bc2..18dc5d867d 100644
---
a/server/src/test/java/org/apache/seata/server/controller/ClusterControllerTest.java
+++
b/server/src/test/java/org/apache/seata/server/controller/ClusterControllerTest.java
@@ -23,7 +23,7 @@ import org.apache.http.entity.ContentType;
import org.apache.http.protocol.HTTP;
import org.apache.seata.common.holder.ObjectHolder;
import org.apache.seata.common.util.HttpClientUtil;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import org.apache.seata.server.cluster.listener.ClusterChangeEvent;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
@@ -31,10 +31,9 @@ import org.junit.jupiter.api.MethodOrderer;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestMethodOrder;
-import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationEventPublisher;
-import org.springframework.context.annotation.Import;
+import org.springframework.core.env.Environment;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
@@ -44,13 +43,17 @@ import java.util.Map;
import static
org.apache.seata.common.ConfigurationKeys.SERVER_SERVICE_PORT_CAMEL;
import static
org.apache.seata.common.Constants.OBJECT_KEY_SPRING_APPLICATION_CONTEXT;
-@SpringBootTest
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
-@Import(DynamicPortTestConfig.class)
-class ClusterControllerTest {
+class ClusterControllerTest extends BaseSpringBootTest {
+
+ private static Environment environment;
+ private static int port;
@BeforeAll
- public static void setUp(ApplicationContext context) {}
+ public static void setUp(ApplicationContext context) {
+ environment = context.getEnvironment();
+ port =
Integer.parseInt(environment.getProperty(SERVER_SERVICE_PORT_CAMEL, "18091"));
+ }
@Test
@Order(1)
@@ -60,7 +63,6 @@ class ClusterControllerTest {
header.put(HTTP.CONN_KEEP_ALIVE, "close");
Map<String, String> param = new HashMap<>();
param.put("default-test", "1");
- int port =
Integer.parseInt(System.getProperty(SERVER_SERVICE_PORT_CAMEL, "8091"));
try (CloseableHttpResponse response = HttpClientUtil.doPost(
"http://127.0.0.1:" + port +
"/metadata/v1/watch?timeout=3000", param, header, 5000)) {
if (response != null) {
@@ -92,7 +94,6 @@ class ClusterControllerTest {
}
});
thread.start();
- int port =
Integer.parseInt(System.getProperty(SERVER_SERVICE_PORT_CAMEL, "8091"));
try (CloseableHttpResponse response =
HttpClientUtil.doPost("http://127.0.0.1:" + port +
"/metadata/v1/watch", param, header, 30000)) {
if (response != null) {
@@ -107,7 +108,6 @@ class ClusterControllerTest {
@Test
@Order(3)
void testXssFilterBlocked_queryParam() throws Exception {
- int port =
Integer.parseInt(System.getProperty(SERVER_SERVICE_PORT_CAMEL, "8091"));
String malicious = "<script>alert('xss')</script>";
Map<String, String> header = new HashMap<>();
header.put(HTTP.CONTENT_TYPE,
ContentType.APPLICATION_FORM_URLENCODED.getMimeType());
@@ -131,7 +131,6 @@ class ClusterControllerTest {
Map<String, String> params = new HashMap<>();
params.put("testParam", "<script>alert('xss')</script>");
- int port =
Integer.parseInt(System.getProperty(SERVER_SERVICE_PORT_CAMEL, "8091"));
try (CloseableHttpResponse response = HttpClientUtil.doPost(
"http://127.0.0.1:" + port +
"/metadata/v1/watch?timeout=3000", params, headers, 5000)) {
Assertions.assertEquals(
@@ -147,7 +146,6 @@ class ClusterControllerTest {
String jsonBody = "{\"testParam\":\"<script>alert('xss')</script>\"}";
- int port =
Integer.parseInt(System.getProperty(SERVER_SERVICE_PORT_CAMEL, "8091"));
try (CloseableHttpResponse response = HttpClientUtil.doPostJson(
"http://127.0.0.1:" + port +
"/metadata/v1/watch?timeout=3000", jsonBody, headers, 5000)) {
Assertions.assertEquals(
@@ -165,7 +163,6 @@ class ClusterControllerTest {
Map<String, String> params = new HashMap<>();
params.put("safeParam", "123");
- int port =
Integer.parseInt(System.getProperty(SERVER_SERVICE_PORT_CAMEL, "8091"));
try (CloseableHttpResponse response = HttpClientUtil.doPost(
"http://127.0.0.1:" + port +
"/metadata/v1/watch?timeout=3000", params, headers, 5000)) {
Assertions.assertEquals(
@@ -182,7 +179,6 @@ class ClusterControllerTest {
String jsonBody = "{\"testParam\":\"<script>alert('xss')</script>\"}";
- int port =
Integer.parseInt(System.getProperty(SERVER_SERVICE_PORT_CAMEL, "8091"));
try (CloseableHttpResponse response = HttpClientUtil.doPostJson(
"http://127.0.0.1:" + port +
"/metadata/v1/watch?timeout=3000&urlParam="
+ URLEncoder.encode("<script>alert('xss')</script>",
String.valueOf(StandardCharsets.UTF_8)),
diff --git
a/server/src/test/java/org/apache/seata/server/coordinator/DefaultCoordinatorTest.java
b/server/src/test/java/org/apache/seata/server/coordinator/DefaultCoordinatorTest.java
index 9727028f77..4015235ac4 100644
---
a/server/src/test/java/org/apache/seata/server/coordinator/DefaultCoordinatorTest.java
+++
b/server/src/test/java/org/apache/seata/server/coordinator/DefaultCoordinatorTest.java
@@ -36,7 +36,7 @@ import
org.apache.seata.core.protocol.transaction.BranchRollbackRequest;
import org.apache.seata.core.protocol.transaction.BranchRollbackResponse;
import org.apache.seata.core.rpc.RemotingServer;
import org.apache.seata.core.rpc.processor.RemotingProcessor;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import org.apache.seata.server.metrics.MetricsManager;
import org.apache.seata.server.session.GlobalSession;
import org.apache.seata.server.session.SessionHolder;
@@ -53,9 +53,7 @@ import org.junit.jupiter.api.condition.JRE;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
-import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Import;
import java.io.IOException;
import java.util.Collection;
@@ -68,9 +66,7 @@ import java.util.stream.Stream;
* The type DefaultCoordinator test.
*
*/
-@SpringBootTest
-@Import(DynamicPortTestConfig.class)
-public class DefaultCoordinatorTest {
+public class DefaultCoordinatorTest extends BaseSpringBootTest {
private static DefaultCoordinator defaultCoordinator;
private static final String applicationId = "demo-child-app";
diff --git
a/server/src/test/java/org/apache/seata/server/coordinator/DefaultCoreTest.java
b/server/src/test/java/org/apache/seata/server/coordinator/DefaultCoreTest.java
index 763ebac4c8..d88ecf4cbd 100644
---
a/server/src/test/java/org/apache/seata/server/coordinator/DefaultCoreTest.java
+++
b/server/src/test/java/org/apache/seata/server/coordinator/DefaultCoreTest.java
@@ -22,7 +22,7 @@ import org.apache.seata.core.model.BranchStatus;
import org.apache.seata.core.model.BranchType;
import org.apache.seata.core.model.GlobalStatus;
import org.apache.seata.core.rpc.RemotingServer;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import org.apache.seata.server.session.BranchSession;
import org.apache.seata.server.session.GlobalSession;
import org.apache.seata.server.session.SessionHelper;
@@ -35,9 +35,7 @@ import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
-import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Import;
import java.util.Collection;
import java.util.stream.Stream;
@@ -46,9 +44,7 @@ import java.util.stream.Stream;
* The type Default core test.
*
*/
-@SpringBootTest
-@Import(DynamicPortTestConfig.class)
-public class DefaultCoreTest {
+public class DefaultCoreTest extends BaseSpringBootTest {
private static DefaultCore core;
private static RemotingServer remotingServer;
diff --git
a/server/src/test/java/org/apache/seata/server/env/PortHelperTest.java
b/server/src/test/java/org/apache/seata/server/env/PortHelperTest.java
index 717cbcdbf0..c7c31962b3 100644
--- a/server/src/test/java/org/apache/seata/server/env/PortHelperTest.java
+++ b/server/src/test/java/org/apache/seata/server/env/PortHelperTest.java
@@ -32,6 +32,6 @@ class PortHelperTest {
@Test
public void testGetPortFromConfigFile() throws IOException {
- Assertions.assertEquals(8091, PortHelper.getPortFromConfigFile());
+ Assertions.assertEquals(8080, PortHelper.getPortFromConfigFile());
}
}
diff --git
a/server/src/test/java/org/apache/seata/server/event/DefaultCoreForEventBusTest.java
b/server/src/test/java/org/apache/seata/server/event/DefaultCoreForEventBusTest.java
index eaf46bfde4..0f0bb79430 100644
---
a/server/src/test/java/org/apache/seata/server/event/DefaultCoreForEventBusTest.java
+++
b/server/src/test/java/org/apache/seata/server/event/DefaultCoreForEventBusTest.java
@@ -24,7 +24,7 @@ import org.apache.seata.core.exception.TransactionException;
import org.apache.seata.core.model.GlobalStatus;
import org.apache.seata.core.rpc.RemotingServer;
import org.apache.seata.metrics.registry.Registry;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import org.apache.seata.server.coordinator.DefaultCoordinator;
import org.apache.seata.server.coordinator.DefaultCoordinatorTest;
import org.apache.seata.server.coordinator.DefaultCore;
@@ -36,9 +36,7 @@ import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Import;
import java.io.IOException;
import java.util.Map;
@@ -52,9 +50,7 @@ import java.util.concurrent.atomic.AtomicInteger;
* Test events come from Default Core.
*
*/
-@SpringBootTest
-@Import(DynamicPortTestConfig.class)
-public class DefaultCoreForEventBusTest {
+public class DefaultCoreForEventBusTest extends BaseSpringBootTest {
private static final boolean DELAY_HANDLE_SESSION =
StoreConfig.getSessionMode() != SessionMode.FILE;
diff --git
a/server/src/test/java/org/apache/seata/server/lock/DistributedLockerFactoryTest.java
b/server/src/test/java/org/apache/seata/server/lock/DistributedLockerFactoryTest.java
index 56e0616c12..0f3719f1d9 100644
---
a/server/src/test/java/org/apache/seata/server/lock/DistributedLockerFactoryTest.java
+++
b/server/src/test/java/org/apache/seata/server/lock/DistributedLockerFactoryTest.java
@@ -18,22 +18,18 @@ package org.apache.seata.server.lock;
import org.apache.seata.core.store.DefaultDistributedLocker;
import org.apache.seata.core.store.DistributedLocker;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import org.apache.seata.server.lock.distributed.DistributedLockerFactory;
import org.apache.seata.server.storage.redis.lock.RedisDistributedLocker;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.context.annotation.Import;
/**
* @description Distributed locker factory test
*/
-@SpringBootTest
-@Import(DynamicPortTestConfig.class)
-public class DistributedLockerFactoryTest {
+public class DistributedLockerFactoryTest extends BaseSpringBootTest {
@BeforeEach
public void setUp() {
diff --git
a/server/src/test/java/org/apache/seata/server/lock/LockManagerTest.java
b/server/src/test/java/org/apache/seata/server/lock/LockManagerTest.java
index b2fef44f80..e045d0437e 100644
--- a/server/src/test/java/org/apache/seata/server/lock/LockManagerTest.java
+++ b/server/src/test/java/org/apache/seata/server/lock/LockManagerTest.java
@@ -22,7 +22,7 @@ import org.apache.seata.common.util.CollectionUtils;
import org.apache.seata.common.util.UUIDGenerator;
import org.apache.seata.core.exception.TransactionException;
import org.apache.seata.core.model.BranchType;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import org.apache.seata.server.console.entity.param.GlobalLockParam;
import org.apache.seata.server.console.entity.vo.GlobalLockVO;
import org.apache.seata.server.console.service.GlobalLockService;
@@ -36,9 +36,7 @@ import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
-import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Import;
import javax.annotation.Resource;
import java.text.ParseException;
@@ -56,9 +54,7 @@ import static
org.apache.seata.common.DefaultValues.DEFAULT_TX_GROUP;
*
* @since 2019 /1/23
*/
-@SpringBootTest
-@Import(DynamicPortTestConfig.class)
-public class LockManagerTest {
+public class LockManagerTest extends BaseSpringBootTest {
@Resource(type = GlobalLockService.class)
private GlobalLockService globalLockService;
diff --git
a/server/src/test/java/org/apache/seata/server/lock/db/DataBaseLockManagerImplTest.java
b/server/src/test/java/org/apache/seata/server/lock/db/DataBaseLockManagerImplTest.java
index 19807c8e20..b4d8214c2f 100644
---
a/server/src/test/java/org/apache/seata/server/lock/db/DataBaseLockManagerImplTest.java
+++
b/server/src/test/java/org/apache/seata/server/lock/db/DataBaseLockManagerImplTest.java
@@ -20,7 +20,7 @@ import org.apache.commons.dbcp2.BasicDataSource;
import org.apache.seata.common.util.IOUtil;
import org.apache.seata.core.exception.TransactionException;
import org.apache.seata.core.lock.Locker;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import org.apache.seata.server.lock.LockManager;
import org.apache.seata.server.session.BranchSession;
import org.apache.seata.server.storage.db.lock.DataBaseLocker;
@@ -29,9 +29,7 @@ import
org.apache.seata.server.storage.file.lock.FileLockManager;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Import;
import java.sql.Connection;
import java.sql.ResultSet;
@@ -40,9 +38,7 @@ import java.sql.Statement;
/**
*/
-@SpringBootTest
-@Import(DynamicPortTestConfig.class)
-public class DataBaseLockManagerImplTest {
+public class DataBaseLockManagerImplTest extends BaseSpringBootTest {
static LockManager lockManager = null;
diff --git
a/server/src/test/java/org/apache/seata/server/lock/db/DataBaseLockStoreDAOTest.java
b/server/src/test/java/org/apache/seata/server/lock/db/DataBaseLockStoreDAOTest.java
index 874a7c1abe..696030d72b 100644
---
a/server/src/test/java/org/apache/seata/server/lock/db/DataBaseLockStoreDAOTest.java
+++
b/server/src/test/java/org/apache/seata/server/lock/db/DataBaseLockStoreDAOTest.java
@@ -21,16 +21,14 @@ import org.apache.seata.common.ConfigurationKeys;
import org.apache.seata.common.util.IOUtil;
import org.apache.seata.config.ConfigurationFactory;
import org.apache.seata.core.store.LockDO;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import org.apache.seata.server.storage.db.lock.LockStoreDataBaseDAO;
import org.h2.store.fs.FileUtils;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Import;
import java.sql.Connection;
import java.sql.ResultSet;
@@ -41,9 +39,7 @@ import java.util.List;
/**
*/
-@SpringBootTest
-@Import(DynamicPortTestConfig.class)
-public class DataBaseLockStoreDAOTest {
+public class DataBaseLockStoreDAOTest extends BaseSpringBootTest {
static LockStoreDataBaseDAO dataBaseLockStoreDAO = null;
diff --git
a/server/src/test/java/org/apache/seata/server/lock/file/FileLockManagerImplTest.java
b/server/src/test/java/org/apache/seata/server/lock/file/FileLockManagerImplTest.java
index 55aeedfda9..8566e9b1b7 100644
---
a/server/src/test/java/org/apache/seata/server/lock/file/FileLockManagerImplTest.java
+++
b/server/src/test/java/org/apache/seata/server/lock/file/FileLockManagerImplTest.java
@@ -19,7 +19,7 @@ package org.apache.seata.server.lock.file;
import org.apache.seata.common.XID;
import org.apache.seata.common.util.UUIDGenerator;
import org.apache.seata.core.model.BranchType;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import org.apache.seata.server.lock.LockManager;
import org.apache.seata.server.session.BranchSession;
import org.junit.jupiter.api.Assertions;
@@ -27,9 +27,7 @@ import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
-import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Import;
import java.util.stream.Stream;
@@ -40,9 +38,7 @@ import static
org.apache.seata.common.DefaultValues.DEFAULT_TX_GROUP;
*
* @since 2019 /1/23
*/
-@SpringBootTest
-@Import(DynamicPortTestConfig.class)
-public class FileLockManagerImplTest {
+public class FileLockManagerImplTest extends BaseSpringBootTest {
private LockManager lockManager = new FileLockManagerForTest();
diff --git
a/server/src/test/java/org/apache/seata/server/lock/redis/RedisLockManagerTest.java
b/server/src/test/java/org/apache/seata/server/lock/redis/RedisLockManagerTest.java
index b6e2ed3980..5877e7cb87 100644
---
a/server/src/test/java/org/apache/seata/server/lock/redis/RedisLockManagerTest.java
+++
b/server/src/test/java/org/apache/seata/server/lock/redis/RedisLockManagerTest.java
@@ -20,7 +20,7 @@ import org.apache.seata.common.exception.StoreException;
import org.apache.seata.core.exception.TransactionException;
import org.apache.seata.core.lock.Locker;
import org.apache.seata.core.model.LockStatus;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import org.apache.seata.server.lock.LockManager;
import org.apache.seata.server.session.BranchSession;
import org.apache.seata.server.storage.redis.JedisPooledFactory;
@@ -30,21 +30,15 @@ import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledIfSystemProperty;
-import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Import;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import java.io.IOException;
-/**
- */
-@SpringBootTest
@EnabledIfSystemProperty(named = "redisCaseEnabled", matches = "true")
-@Import(DynamicPortTestConfig.class)
-public class RedisLockManagerTest {
+public class RedisLockManagerTest extends BaseSpringBootTest {
static LockManager lockManager = null;
static Jedis jedis = null;
diff --git
a/server/src/test/java/org/apache/seata/server/lock/redis/RedisLuaLockManagerTest.java
b/server/src/test/java/org/apache/seata/server/lock/redis/RedisLuaLockManagerTest.java
index f979e992f1..7eb000b6eb 100644
---
a/server/src/test/java/org/apache/seata/server/lock/redis/RedisLuaLockManagerTest.java
+++
b/server/src/test/java/org/apache/seata/server/lock/redis/RedisLuaLockManagerTest.java
@@ -18,15 +18,12 @@ package org.apache.seata.server.lock.redis;
import org.apache.seata.common.loader.EnhancedServiceLoader;
import org.apache.seata.core.lock.Locker;
-import org.apache.seata.server.DynamicPortTestConfig;
import org.apache.seata.server.session.BranchSession;
import org.apache.seata.server.storage.redis.lock.RedisLockManager;
import org.apache.seata.server.storage.redis.lock.RedisLuaLocker;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.condition.EnabledIfSystemProperty;
-import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Import;
import java.io.IOException;
@@ -34,9 +31,7 @@ import java.io.IOException;
* RedisLocker use lua script
*
*/
-@SpringBootTest
@EnabledIfSystemProperty(named = "redisCaseEnabled", matches = "true")
-@Import(DynamicPortTestConfig.class)
public class RedisLuaLockManagerTest extends RedisLockManagerTest {
/**
diff --git
a/server/src/test/java/org/apache/seata/server/logging/AppenderTest.java
b/server/src/test/java/org/apache/seata/server/logging/AppenderTest.java
index 5db183892b..894959e499 100644
--- a/server/src/test/java/org/apache/seata/server/logging/AppenderTest.java
+++ b/server/src/test/java/org/apache/seata/server/logging/AppenderTest.java
@@ -21,21 +21,17 @@ import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.Appender;
import com.github.danielwegener.logback.kafka.KafkaAppender;
import net.logstash.logback.appender.LogstashTcpSocketAppender;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import org.apache.seata.server.logging.logback.appender.MetricLogbackAppender;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.slf4j.impl.StaticLoggerBinder;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.context.annotation.Import;
import java.lang.reflect.Field;
import java.util.Iterator;
-@SpringBootTest
-@Import(DynamicPortTestConfig.class)
-public class AppenderTest {
+public class AppenderTest extends BaseSpringBootTest {
@BeforeAll
public static void init() {
diff --git
a/server/src/test/java/org/apache/seata/server/raft/RaftServerTest.java
b/server/src/test/java/org/apache/seata/server/raft/RaftServerTest.java
index 96f21b5759..eddc15740f 100644
--- a/server/src/test/java/org/apache/seata/server/raft/RaftServerTest.java
+++ b/server/src/test/java/org/apache/seata/server/raft/RaftServerTest.java
@@ -20,7 +20,7 @@ import org.apache.seata.common.ConfigurationKeys;
import org.apache.seata.common.XID;
import org.apache.seata.config.ConfigurationCache;
import org.apache.seata.config.ConfigurationFactory;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import org.apache.seata.server.cluster.raft.RaftServerManager;
import org.apache.seata.server.lock.LockerManagerFactory;
import org.apache.seata.server.session.SessionHolder;
@@ -29,9 +29,7 @@ import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Import;
import static
org.apache.seata.common.ConfigurationKeys.SERVER_RAFT_SSL_CLIENT_KEYSTORE_PATH;
import static
org.apache.seata.common.ConfigurationKeys.SERVER_RAFT_SSL_ENABLED;
@@ -39,9 +37,7 @@ import static
org.apache.seata.common.ConfigurationKeys.SERVER_RAFT_SSL_KMF_ALGO
import static
org.apache.seata.common.ConfigurationKeys.SERVER_RAFT_SSL_SERVER_KEYSTORE_PATH;
import static
org.apache.seata.common.ConfigurationKeys.SERVER_RAFT_SSL_TMF_ALGORITHM;
-@SpringBootTest
-@Import(DynamicPortTestConfig.class)
-public class RaftServerTest {
+public class RaftServerTest extends BaseSpringBootTest {
@BeforeAll
public static void setUp(ApplicationContext context) {
diff --git
a/server/src/test/java/org/apache/seata/server/raft/RaftSyncMessageTest.java
b/server/src/test/java/org/apache/seata/server/raft/RaftSyncMessageTest.java
index d7ff9a06a4..cdf2704f73 100644
--- a/server/src/test/java/org/apache/seata/server/raft/RaftSyncMessageTest.java
+++ b/server/src/test/java/org/apache/seata/server/raft/RaftSyncMessageTest.java
@@ -22,7 +22,7 @@ import org.apache.seata.common.metadata.Node;
import org.apache.seata.common.store.SessionMode;
import org.apache.seata.core.exception.TransactionException;
import org.apache.seata.core.model.BranchType;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import org.apache.seata.server.cluster.raft.snapshot.RaftSnapshot;
import org.apache.seata.server.cluster.raft.snapshot.RaftSnapshotSerializer;
import
org.apache.seata.server.cluster.raft.snapshot.session.RaftSessionSnapshot;
@@ -41,9 +41,7 @@ import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Import;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@@ -56,9 +54,7 @@ import java.util.Map;
/**
*/
-@SpringBootTest
-@Import(DynamicPortTestConfig.class)
-public class RaftSyncMessageTest {
+public class RaftSyncMessageTest extends BaseSpringBootTest {
@BeforeAll
public static void setUp(ApplicationContext context) {
diff --git
a/server/src/test/java/org/apache/seata/server/raft/execute/BranchSessionExecuteTest.java
b/server/src/test/java/org/apache/seata/server/raft/execute/BranchSessionExecuteTest.java
index 25db4c9c1e..3a6ba2653e 100644
---
a/server/src/test/java/org/apache/seata/server/raft/execute/BranchSessionExecuteTest.java
+++
b/server/src/test/java/org/apache/seata/server/raft/execute/BranchSessionExecuteTest.java
@@ -25,7 +25,7 @@ import org.apache.seata.config.ConfigurationCache;
import org.apache.seata.core.exception.TransactionException;
import org.apache.seata.core.model.BranchStatus;
import org.apache.seata.core.model.BranchType;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import
org.apache.seata.server.cluster.raft.execute.branch.AddBranchSessionExecute;
import
org.apache.seata.server.cluster.raft.execute.branch.RemoveBranchSessionExecute;
import
org.apache.seata.server.cluster.raft.execute.branch.UpdateBranchSessionExecute;
@@ -40,9 +40,7 @@ import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Import;
import java.util.ArrayList;
import java.util.List;
@@ -51,9 +49,7 @@ import static
org.apache.seata.common.DefaultValues.DEFAULT_TX_GROUP;
/**
*/
-@SpringBootTest
-@Import(DynamicPortTestConfig.class)
-class BranchSessionExecuteTest {
+class BranchSessionExecuteTest extends BaseSpringBootTest {
private static GlobalSession GLOBAL_SESSION;
diff --git
a/server/src/test/java/org/apache/seata/server/raft/execute/GlobalSessionExecuteTest.java
b/server/src/test/java/org/apache/seata/server/raft/execute/GlobalSessionExecuteTest.java
index 372983b89c..2f144b21b0 100644
---
a/server/src/test/java/org/apache/seata/server/raft/execute/GlobalSessionExecuteTest.java
+++
b/server/src/test/java/org/apache/seata/server/raft/execute/GlobalSessionExecuteTest.java
@@ -22,7 +22,7 @@ import org.apache.seata.common.util.NetUtil;
import org.apache.seata.config.ConfigurationCache;
import org.apache.seata.core.exception.TransactionException;
import org.apache.seata.core.model.GlobalStatus;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import
org.apache.seata.server.cluster.raft.execute.global.AddGlobalSessionExecute;
import
org.apache.seata.server.cluster.raft.execute.global.RemoveGlobalSessionExecute;
import
org.apache.seata.server.cluster.raft.execute.global.UpdateGlobalSessionExecute;
@@ -38,15 +38,11 @@ import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Import;
/**
*/
-@SpringBootTest
-@Import(DynamicPortTestConfig.class)
-class GlobalSessionExecuteTest {
+class GlobalSessionExecuteTest extends BaseSpringBootTest {
@BeforeAll
public static void setUp(ApplicationContext context) {
System.setProperty("server.raft.serverAddr", NetUtil.getLocalIp() +
":9091");
diff --git
a/server/src/test/java/org/apache/seata/server/raft/execute/LockExecuteTest.java
b/server/src/test/java/org/apache/seata/server/raft/execute/LockExecuteTest.java
index 47a81696dc..0c45b9363e 100644
---
a/server/src/test/java/org/apache/seata/server/raft/execute/LockExecuteTest.java
+++
b/server/src/test/java/org/apache/seata/server/raft/execute/LockExecuteTest.java
@@ -23,7 +23,7 @@ import org.apache.seata.common.util.UUIDGenerator;
import org.apache.seata.config.ConfigurationCache;
import org.apache.seata.core.exception.TransactionException;
import org.apache.seata.core.model.BranchType;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import
org.apache.seata.server.cluster.raft.execute.branch.RemoveBranchSessionExecute;
import
org.apache.seata.server.cluster.raft.execute.lock.BranchReleaseLockExecute;
import
org.apache.seata.server.cluster.raft.execute.lock.GlobalReleaseLockExecute;
@@ -43,20 +43,14 @@ import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Import;
import java.util.ArrayList;
import java.util.List;
import static org.apache.seata.common.DefaultValues.DEFAULT_TX_GROUP;
-/**
- */
-@SpringBootTest
-@Import(DynamicPortTestConfig.class)
-class LockExecuteTest {
+class LockExecuteTest extends BaseSpringBootTest {
private static GlobalSession GLOBAL_SESSION;
diff --git
a/server/src/test/java/org/apache/seata/server/ratelimiter/RateLimiterHandlerTest.java
b/server/src/test/java/org/apache/seata/server/ratelimiter/RateLimiterHandlerTest.java
index a5e7a02366..03d273b220 100644
---
a/server/src/test/java/org/apache/seata/server/ratelimiter/RateLimiterHandlerTest.java
+++
b/server/src/test/java/org/apache/seata/server/ratelimiter/RateLimiterHandlerTest.java
@@ -18,7 +18,7 @@ package org.apache.seata.server.ratelimiter;
import org.apache.seata.core.protocol.transaction.GlobalBeginRequest;
import org.apache.seata.core.rpc.RpcContext;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import org.apache.seata.server.limit.ratelimit.RateLimiter;
import org.apache.seata.server.limit.ratelimit.RateLimiterHandler;
import org.apache.seata.server.limit.ratelimit.RateLimiterHandlerConfig;
@@ -27,15 +27,11 @@ import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.context.annotation.Import;
/**
* RateLimiterHandlerTest
*/
-@SpringBootTest
-@Import(DynamicPortTestConfig.class)
-public class RateLimiterHandlerTest {
+public class RateLimiterHandlerTest extends BaseSpringBootTest {
/**
* Logger for TokenBucketLimiterTest
diff --git
a/server/src/test/java/org/apache/seata/server/ratelimiter/TokenBucketLimiterTest.java
b/server/src/test/java/org/apache/seata/server/ratelimiter/TokenBucketLimiterTest.java
index c5485f0f01..9e16b236b7 100644
---
a/server/src/test/java/org/apache/seata/server/ratelimiter/TokenBucketLimiterTest.java
+++
b/server/src/test/java/org/apache/seata/server/ratelimiter/TokenBucketLimiterTest.java
@@ -17,15 +17,13 @@
package org.apache.seata.server.ratelimiter;
import org.apache.seata.common.thread.NamedThreadFactory;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import org.apache.seata.server.limit.ratelimit.RateLimiter;
import org.apache.seata.server.limit.ratelimit.TokenBucketLimiter;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.context.annotation.Import;
import org.springframework.util.StopWatch;
import java.util.concurrent.CountDownLatch;
@@ -37,9 +35,7 @@ import java.util.concurrent.atomic.AtomicInteger;
/**
* TokenBucketLimiterTest
*/
-@SpringBootTest
-@Import(DynamicPortTestConfig.class)
-public class TokenBucketLimiterTest {
+public class TokenBucketLimiterTest extends BaseSpringBootTest {
/**
* Logger for TokenBucketLimiterTest
diff --git
a/server/src/test/java/org/apache/seata/server/session/BranchSessionTest.java
b/server/src/test/java/org/apache/seata/server/session/BranchSessionTest.java
index c40236e4e0..b689e83b3c 100644
---
a/server/src/test/java/org/apache/seata/server/session/BranchSessionTest.java
+++
b/server/src/test/java/org/apache/seata/server/session/BranchSessionTest.java
@@ -19,15 +19,13 @@ package org.apache.seata.server.session;
import org.apache.seata.common.util.UUIDGenerator;
import org.apache.seata.core.exception.TransactionException;
import org.apache.seata.core.model.BranchType;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
-import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Import;
import java.util.concurrent.ThreadLocalRandom;
import java.util.stream.Stream;
@@ -39,9 +37,7 @@ import static
org.apache.seata.common.DefaultValues.DEFAULT_TX_GROUP;
*
* @since 2019 /1/23
*/
-@SpringBootTest
-@Import(DynamicPortTestConfig.class)
-public class BranchSessionTest {
+public class BranchSessionTest extends BaseSpringBootTest {
@BeforeAll
public static void setUp(ApplicationContext context) {}
diff --git
a/server/src/test/java/org/apache/seata/server/session/FileSessionManagerTest.java
b/server/src/test/java/org/apache/seata/server/session/FileSessionManagerTest.java
index 2b6714b89d..b55dabe615 100644
---
a/server/src/test/java/org/apache/seata/server/session/FileSessionManagerTest.java
+++
b/server/src/test/java/org/apache/seata/server/session/FileSessionManagerTest.java
@@ -27,7 +27,7 @@ import org.apache.seata.core.model.BranchStatus;
import org.apache.seata.core.model.BranchType;
import org.apache.seata.core.model.GlobalStatus;
import org.apache.seata.core.model.LockStatus;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import org.apache.seata.server.console.entity.param.GlobalSessionParam;
import org.apache.seata.server.console.entity.vo.GlobalSessionVO;
import org.apache.seata.server.console.service.BranchSessionService;
@@ -41,9 +41,7 @@ import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
-import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Import;
import javax.annotation.Resource;
import java.io.IOException;
@@ -62,9 +60,7 @@ import static
org.apache.seata.common.DefaultValues.DEFAULT_TX_GROUP;
*
* @since 2019 /1/22
*/
-@SpringBootTest
-@Import(DynamicPortTestConfig.class)
-public class FileSessionManagerTest {
+public class FileSessionManagerTest extends BaseSpringBootTest {
private static volatile List<SessionManager> sessionManagerList;
diff --git
a/server/src/test/java/org/apache/seata/server/session/GlobalSessionTest.java
b/server/src/test/java/org/apache/seata/server/session/GlobalSessionTest.java
index ffddf3010e..342dc19650 100644
---
a/server/src/test/java/org/apache/seata/server/session/GlobalSessionTest.java
+++
b/server/src/test/java/org/apache/seata/server/session/GlobalSessionTest.java
@@ -21,16 +21,14 @@ import org.apache.seata.core.exception.TransactionException;
import org.apache.seata.core.model.BranchStatus;
import org.apache.seata.core.model.BranchType;
import org.apache.seata.core.model.GlobalStatus;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
-import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Import;
import java.io.IOException;
import java.util.stream.Stream;
@@ -42,9 +40,7 @@ import static
org.apache.seata.common.DefaultValues.DEFAULT_TX_GROUP;
*
* @since 2019 /1/23
*/
-@SpringBootTest
-@Import(DynamicPortTestConfig.class)
-public class GlobalSessionTest {
+public class GlobalSessionTest extends BaseSpringBootTest {
@BeforeAll
public static void init(ApplicationContext context) {
diff --git
a/server/src/test/java/org/apache/seata/server/session/SessionHolderTest.java
b/server/src/test/java/org/apache/seata/server/session/SessionHolderTest.java
index 29e36c966d..692a37fc95 100644
---
a/server/src/test/java/org/apache/seata/server/session/SessionHolderTest.java
+++
b/server/src/test/java/org/apache/seata/server/session/SessionHolderTest.java
@@ -19,7 +19,7 @@ package org.apache.seata.server.session;
import org.apache.seata.common.XID;
import org.apache.seata.common.store.SessionMode;
import org.apache.seata.core.constants.ConfigurationKeys;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
@@ -27,8 +27,6 @@ import org.junit.jupiter.api.MethodOrderer;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestMethodOrder;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.context.annotation.Import;
import java.io.File;
import java.io.IOException;
@@ -47,9 +45,7 @@ import static
org.apache.seata.server.session.SessionHolder.ROOT_SESSION_MANAGER
*
*/
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
-@SpringBootTest
-@Import(DynamicPortTestConfig.class)
-public class SessionHolderTest {
+public class SessionHolderTest extends BaseSpringBootTest {
private String pathname;
@BeforeEach
diff --git
a/server/src/test/java/org/apache/seata/server/session/SessionStatusValidatorTest.java
b/server/src/test/java/org/apache/seata/server/session/SessionStatusValidatorTest.java
index 0722a0c95e..1957e9d39d 100644
---
a/server/src/test/java/org/apache/seata/server/session/SessionStatusValidatorTest.java
+++
b/server/src/test/java/org/apache/seata/server/session/SessionStatusValidatorTest.java
@@ -17,19 +17,15 @@
package org.apache.seata.server.session;
import org.apache.seata.core.model.GlobalStatus;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.context.annotation.Import;
/**
* the type change status validator test
*
*/
-@SpringBootTest
-@Import(DynamicPortTestConfig.class)
-public class SessionStatusValidatorTest {
+public class SessionStatusValidatorTest extends BaseSpringBootTest {
@Test
public void testValidateUpdateStatus() {
diff --git
a/server/src/test/java/org/apache/seata/server/session/db/DataBaseSessionManagerTest.java
b/server/src/test/java/org/apache/seata/server/session/db/DataBaseSessionManagerTest.java
index 714f3c51aa..d8efc22f81 100644
---
a/server/src/test/java/org/apache/seata/server/session/db/DataBaseSessionManagerTest.java
+++
b/server/src/test/java/org/apache/seata/server/session/db/DataBaseSessionManagerTest.java
@@ -24,7 +24,7 @@ import org.apache.seata.core.exception.TransactionException;
import org.apache.seata.core.model.BranchStatus;
import org.apache.seata.core.model.BranchType;
import org.apache.seata.core.model.GlobalStatus;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import org.apache.seata.server.session.BranchSession;
import org.apache.seata.server.session.GlobalSession;
import org.apache.seata.server.session.SessionCondition;
@@ -37,9 +37,7 @@ import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.DisabledIfSystemProperty;
-import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Import;
import java.sql.Connection;
import java.sql.ResultSet;
@@ -54,11 +52,9 @@ import static
org.apache.seata.common.DefaultValues.DEFAULT_TX_GROUP;
* The type Data base session manager test.
*
*/
-@SpringBootTest
-@Import(DynamicPortTestConfig.class)
// Unit test triggered a bug in Druid, see the issue
https://github.com/alibaba/druid/issues/4936
@DisabledIfSystemProperty(named = "druid.version", matches = "1.2.12")
-public class DataBaseSessionManagerTest {
+public class DataBaseSessionManagerTest extends BaseSpringBootTest {
static SessionManager sessionManager = null;
diff --git
a/server/src/test/java/org/apache/seata/server/session/redis/RedisDistributedLockerTest.java
b/server/src/test/java/org/apache/seata/server/session/redis/RedisDistributedLockerTest.java
index 9fb205cd70..4e83e81b73 100644
---
a/server/src/test/java/org/apache/seata/server/session/redis/RedisDistributedLockerTest.java
+++
b/server/src/test/java/org/apache/seata/server/session/redis/RedisDistributedLockerTest.java
@@ -22,7 +22,7 @@ import org.apache.seata.common.store.SessionMode;
import org.apache.seata.common.store.StoreMode;
import org.apache.seata.core.store.DistributedLockDO;
import org.apache.seata.core.store.DistributedLocker;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import org.apache.seata.server.lock.distributed.DistributedLockerFactory;
import org.apache.seata.server.session.SessionHolder;
import org.apache.seata.server.storage.redis.JedisPooledFactory;
@@ -31,9 +31,7 @@ import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledIfSystemProperty;
-import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Import;
import redis.clients.jedis.Jedis;
import java.io.IOException;
@@ -42,10 +40,8 @@ import java.io.IOException;
* @description redis distributed lock test
*
*/
-@SpringBootTest
@EnabledIfSystemProperty(named = "redisCaseEnabled", matches = "true")
-@Import(DynamicPortTestConfig.class)
-public class RedisDistributedLockerTest {
+public class RedisDistributedLockerTest extends BaseSpringBootTest {
private String retryRollbacking = "RetryRollbacking";
private String retryRollbacking2 = "RetryRollbacking2";
diff --git
a/server/src/test/java/org/apache/seata/server/session/redis/RedisLuaTransactionStoreManagerTest.java
b/server/src/test/java/org/apache/seata/server/session/redis/RedisLuaTransactionStoreManagerTest.java
index d24bc190ee..7587b26b53 100644
---
a/server/src/test/java/org/apache/seata/server/session/redis/RedisLuaTransactionStoreManagerTest.java
+++
b/server/src/test/java/org/apache/seata/server/session/redis/RedisLuaTransactionStoreManagerTest.java
@@ -17,14 +17,11 @@
package org.apache.seata.server.session.redis;
import org.apache.seata.common.loader.EnhancedServiceLoader;
-import org.apache.seata.server.DynamicPortTestConfig;
import org.apache.seata.server.storage.redis.session.RedisSessionManager;
import
org.apache.seata.server.storage.redis.store.RedisLuaTransactionStoreManager;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.condition.EnabledIfSystemProperty;
-import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Import;
import java.io.IOException;
@@ -32,9 +29,7 @@ import java.io.IOException;
* test RedisLuaTransactionStoreManager
*
*/
-@SpringBootTest
@EnabledIfSystemProperty(named = "redisCaseEnabled", matches = "true")
-@Import(DynamicPortTestConfig.class)
public class RedisLuaTransactionStoreManagerTest extends
RedisTransactionStoreManagerTest {
/**
diff --git
a/server/src/test/java/org/apache/seata/server/session/redis/RedisQueryConsolTest.java
b/server/src/test/java/org/apache/seata/server/session/redis/RedisQueryConsolTest.java
index 94b6603dad..b21babacd0 100644
---
a/server/src/test/java/org/apache/seata/server/session/redis/RedisQueryConsolTest.java
+++
b/server/src/test/java/org/apache/seata/server/session/redis/RedisQueryConsolTest.java
@@ -18,7 +18,7 @@ package org.apache.seata.server.session.redis;
import com.alibaba.fastjson.JSON;
import org.apache.seata.common.result.PageResult;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import org.apache.seata.server.console.entity.param.GlobalLockParam;
import org.apache.seata.server.console.entity.param.GlobalSessionParam;
import org.apache.seata.server.console.entity.vo.GlobalLockVO;
@@ -27,17 +27,13 @@ import
org.apache.seata.server.console.service.GlobalLockService;
import org.apache.seata.server.console.service.GlobalSessionService;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledIfSystemProperty;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.context.annotation.Import;
import javax.annotation.Resource;
/**
*/
-@SpringBootTest
@EnabledIfSystemProperty(named = "redisCaseEnabled", matches = "true")
-@Import(DynamicPortTestConfig.class)
-public class RedisQueryConsolTest {
+public class RedisQueryConsolTest extends BaseSpringBootTest {
/**
*
diff --git
a/server/src/test/java/org/apache/seata/server/session/redis/RedisSessionManagerTest.java
b/server/src/test/java/org/apache/seata/server/session/redis/RedisSessionManagerTest.java
index d8f9b43451..4131065e61 100644
---
a/server/src/test/java/org/apache/seata/server/session/redis/RedisSessionManagerTest.java
+++
b/server/src/test/java/org/apache/seata/server/session/redis/RedisSessionManagerTest.java
@@ -24,7 +24,7 @@ import org.apache.seata.core.exception.TransactionException;
import org.apache.seata.core.model.BranchStatus;
import org.apache.seata.core.model.BranchType;
import org.apache.seata.core.model.GlobalStatus;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import org.apache.seata.server.session.BranchSession;
import org.apache.seata.server.session.GlobalSession;
import org.apache.seata.server.session.SessionCondition;
@@ -37,9 +37,7 @@ import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledIfSystemProperty;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Import;
import java.io.IOException;
import java.lang.reflect.Field;
@@ -49,10 +47,8 @@ import static
org.apache.seata.common.DefaultValues.DEFAULT_TX_GROUP;
/**
*/
-@SpringBootTest
@EnabledIfSystemProperty(named = "redisCaseEnabled", matches = "true")
-@Import(DynamicPortTestConfig.class)
-public class RedisSessionManagerTest {
+public class RedisSessionManagerTest extends BaseSpringBootTest {
private static final Logger LOGGER =
LoggerFactory.getLogger(RedisSessionManagerTest.class);
private static SessionManager sessionManager = null;
diff --git
a/server/src/test/java/org/apache/seata/server/session/redis/RedisTransactionStoreManagerTest.java
b/server/src/test/java/org/apache/seata/server/session/redis/RedisTransactionStoreManagerTest.java
index ad19417ea8..3509a173ed 100644
---
a/server/src/test/java/org/apache/seata/server/session/redis/RedisTransactionStoreManagerTest.java
+++
b/server/src/test/java/org/apache/seata/server/session/redis/RedisTransactionStoreManagerTest.java
@@ -23,7 +23,7 @@ import org.apache.seata.common.util.BeanUtils;
import org.apache.seata.common.util.CollectionUtils;
import org.apache.seata.core.exception.TransactionException;
import org.apache.seata.core.model.GlobalStatus;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import org.apache.seata.server.console.entity.param.GlobalSessionParam;
import org.apache.seata.server.console.entity.vo.GlobalLockVO;
import org.apache.seata.server.console.entity.vo.GlobalSessionVO;
@@ -40,9 +40,7 @@ import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledIfSystemProperty;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Import;
import redis.clients.jedis.Jedis;
import java.io.IOException;
@@ -55,10 +53,8 @@ import static
org.apache.seata.server.storage.SessionConverter.convertToGlobalSe
/**
*/
-@SpringBootTest
@EnabledIfSystemProperty(named = "redisCaseEnabled", matches = "true")
-@Import(DynamicPortTestConfig.class)
-public class RedisTransactionStoreManagerTest {
+public class RedisTransactionStoreManagerTest extends BaseSpringBootTest {
private static final Logger LOGGER =
LoggerFactory.getLogger(RedisTransactionStoreManagerTest.class);
diff --git
a/server/src/test/java/org/apache/seata/server/session/redis/SessionConverterTest.java
b/server/src/test/java/org/apache/seata/server/session/redis/SessionConverterTest.java
index 86b90e8908..beaaa7355e 100644
---
a/server/src/test/java/org/apache/seata/server/session/redis/SessionConverterTest.java
+++
b/server/src/test/java/org/apache/seata/server/session/redis/SessionConverterTest.java
@@ -21,14 +21,12 @@ import org.apache.seata.core.model.BranchType;
import org.apache.seata.core.model.GlobalStatus;
import org.apache.seata.core.store.BranchTransactionDO;
import org.apache.seata.core.store.GlobalTransactionDO;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import org.apache.seata.server.session.BranchSession;
import org.apache.seata.server.session.GlobalSession;
import org.apache.seata.server.storage.SessionConverter;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.context.annotation.Import;
import java.util.Date;
@@ -36,9 +34,7 @@ import java.util.Date;
* The session converter utils
*
*/
-@SpringBootTest
-@Import(DynamicPortTestConfig.class)
-public class SessionConverterTest {
+public class SessionConverterTest extends BaseSpringBootTest {
@Test
public void testConvertGlobalSessionNotNull() {
diff --git
a/server/src/test/java/org/apache/seata/server/spring/listener/ClearServerServicePortInitializer.java
b/server/src/test/java/org/apache/seata/server/spring/listener/ClearServerServicePortInitializer.java
new file mode 100644
index 0000000000..6c90dee227
--- /dev/null
+++
b/server/src/test/java/org/apache/seata/server/spring/listener/ClearServerServicePortInitializer.java
@@ -0,0 +1,65 @@
+/*
+ * 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.server.spring.listener;
+
+import org.apache.seata.config.ConfigurationCache;
+import org.apache.seata.core.constants.ConfigurationKeys;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import
org.springframework.boot.context.event.ApplicationEnvironmentPreparedEvent;
+import org.springframework.boot.context.logging.LoggingApplicationListener;
+import org.springframework.context.ApplicationEvent;
+import org.springframework.context.event.ContextClosedEvent;
+import org.springframework.context.event.GenericApplicationListener;
+import org.springframework.core.Ordered;
+import org.springframework.core.ResolvableType;
+
+/**
+ * Application listener to clear the SERVER_SERVICE_PORT_CAMEL system property
+ * during Spring context environment preparation, refresh, and close events.
+ * It runs with higher priority than ServerApplicationListener.
+ */
+public class ClearServerServicePortInitializer implements
GenericApplicationListener, Ordered {
+
+ private final Logger log = LoggerFactory.getLogger(this.getClass());
+
+ @Override
+ public boolean supportsEventType(ResolvableType eventType) {
+ Class<?> rawClass = eventType.getRawClass();
+ if (rawClass == null) {
+ return false;
+ }
+ // Listen to environment preparation, context refresh, and context
close events
+ return
ApplicationEnvironmentPreparedEvent.class.isAssignableFrom(rawClass)
+ || ContextClosedEvent.class.isAssignableFrom(rawClass);
+ }
+
+ @Override
+ public void onApplicationEvent(ApplicationEvent event) {
+ ConfigurationCache.clear();
+ // Clear the property for any of the supported events
+ System.clearProperty(ConfigurationKeys.SERVER_SERVICE_PORT_CAMEL);
+ log.info("Cleared system property: " +
ConfigurationKeys.SERVER_SERVICE_PORT_CAMEL);
+ }
+
+ @Override
+ public int getOrder() {
+ // ServerApplicationListener order is
LoggingApplicationListener.DEFAULT_ORDER - 1.
+ // This listener needs to run before ServerApplicationListener for
ApplicationEnvironmentPreparedEvent.
+ return LoggingApplicationListener.DEFAULT_ORDER - 2;
+ }
+}
diff --git
a/server/src/test/java/org/apache/seata/server/storage/file/store/FileVGroupMappingStoreManagerTest.java
b/server/src/test/java/org/apache/seata/server/storage/file/store/FileVGroupMappingStoreManagerTest.java
index 174a2b33f6..8eff02a539 100644
---
a/server/src/test/java/org/apache/seata/server/storage/file/store/FileVGroupMappingStoreManagerTest.java
+++
b/server/src/test/java/org/apache/seata/server/storage/file/store/FileVGroupMappingStoreManagerTest.java
@@ -18,13 +18,11 @@ package org.apache.seata.server.storage.file.store;
import org.apache.commons.io.FileUtils;
import org.apache.seata.core.store.MappingDO;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.junit.jupiter.MockitoExtension;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.context.annotation.Import;
import java.io.File;
import java.io.IOException;
@@ -36,9 +34,7 @@ import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Mockito.*;
@ExtendWith(MockitoExtension.class)
-@SpringBootTest
-@Import(DynamicPortTestConfig.class)
-public class FileVGroupMappingStoreManagerTest {
+public class FileVGroupMappingStoreManagerTest extends BaseSpringBootTest {
private FileVGroupMappingStoreManager fileVGroupMappingStoreManager;
private static final String STORE_PATH =
"sessionStore/vgroup_mapping.json";
diff --git
a/server/src/test/java/org/apache/seata/server/storage/raft/store/RaftVGroupMappingStoreManagerTest.java
b/server/src/test/java/org/apache/seata/server/storage/raft/store/RaftVGroupMappingStoreManagerTest.java
index b29cd78912..3405bf090f 100644
---
a/server/src/test/java/org/apache/seata/server/storage/raft/store/RaftVGroupMappingStoreManagerTest.java
+++
b/server/src/test/java/org/apache/seata/server/storage/raft/store/RaftVGroupMappingStoreManagerTest.java
@@ -17,11 +17,9 @@
package org.apache.seata.server.storage.raft.store;
import org.apache.seata.core.store.MappingDO;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.context.annotation.Import;
import java.util.HashMap;
import java.util.Map;
@@ -29,9 +27,7 @@ import java.util.Map;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
-@SpringBootTest
-@Import(DynamicPortTestConfig.class)
-public class RaftVGroupMappingStoreManagerTest {
+public class RaftVGroupMappingStoreManagerTest extends BaseSpringBootTest {
private RaftVGroupMappingStoreManager raftVGroupMappingStoreManager;
diff --git
a/server/src/test/java/org/apache/seata/server/storage/redis/store/RedisVGroupMappingStoreManagerTest.java
b/server/src/test/java/org/apache/seata/server/storage/redis/store/RedisVGroupMappingStoreManagerTest.java
index 500efa3c18..d5ef182822 100644
---
a/server/src/test/java/org/apache/seata/server/storage/redis/store/RedisVGroupMappingStoreManagerTest.java
+++
b/server/src/test/java/org/apache/seata/server/storage/redis/store/RedisVGroupMappingStoreManagerTest.java
@@ -18,20 +18,16 @@ package org.apache.seata.server.storage.redis.store;
import org.apache.seata.common.metadata.Instance;
import org.apache.seata.core.store.MappingDO;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledIfSystemProperty;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.context.annotation.Import;
import java.util.Map;
@EnabledIfSystemProperty(named = "redisCaseEnabled", matches = "true")
-@SpringBootTest
-@Import(DynamicPortTestConfig.class)
-public class RedisVGroupMappingStoreManagerTest {
+public class RedisVGroupMappingStoreManagerTest extends BaseSpringBootTest {
private RedisVGroupMappingStoreManager redisVGroupMappingStoreManager;
@BeforeEach
diff --git
a/server/src/test/java/org/apache/seata/server/store/RaftSyncMessageSerializerTest.java
b/server/src/test/java/org/apache/seata/server/store/RaftSyncMessageSerializerTest.java
index 1149a470f6..410b2c1ecf 100644
---
a/server/src/test/java/org/apache/seata/server/store/RaftSyncMessageSerializerTest.java
+++
b/server/src/test/java/org/apache/seata/server/store/RaftSyncMessageSerializerTest.java
@@ -16,7 +16,7 @@
*/
package org.apache.seata.server.store;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import org.apache.seata.server.cluster.raft.sync.RaftSyncMessageSerializer;
import org.apache.seata.server.cluster.raft.sync.msg.RaftGlobalSessionSyncMsg;
import org.apache.seata.server.cluster.raft.sync.msg.RaftSyncMessage;
@@ -27,15 +27,9 @@ import org.apache.seata.server.storage.SessionConverter;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Import;
-/**
- */
-@SpringBootTest
-@Import(DynamicPortTestConfig.class)
-public class RaftSyncMessageSerializerTest {
+public class RaftSyncMessageSerializerTest extends BaseSpringBootTest {
@BeforeAll
public static void setUp(ApplicationContext context) {}
diff --git
a/server/src/test/java/org/apache/seata/server/store/SessionStoreTest.java
b/server/src/test/java/org/apache/seata/server/store/SessionStoreTest.java
index 51d2e4a44e..b9633743db 100644
--- a/server/src/test/java/org/apache/seata/server/store/SessionStoreTest.java
+++ b/server/src/test/java/org/apache/seata/server/store/SessionStoreTest.java
@@ -24,7 +24,7 @@ import org.apache.seata.core.constants.ConfigurationKeys;
import org.apache.seata.core.model.BranchStatus;
import org.apache.seata.core.model.BranchType;
import org.apache.seata.core.model.GlobalStatus;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import org.apache.seata.server.lock.LockManager;
import org.apache.seata.server.lock.file.FileLockManagerForTest;
import org.apache.seata.server.session.BranchSession;
@@ -35,10 +35,11 @@ import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.MethodOrderer;
+import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.context.SpringBootTest;
+import org.junit.jupiter.api.TestMethodOrder;
import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Import;
import java.io.File;
@@ -49,19 +50,20 @@ import static
org.apache.seata.common.DefaultValues.DEFAULT_TX_GROUP;
/**
* The type Session store test.
*/
-@SpringBootTest
-@Import(DynamicPortTestConfig.class)
-public class SessionStoreTest {
-
- @BeforeAll
- public static void setUp(ApplicationContext context) {}
+@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
+public class SessionStoreTest extends BaseSpringBootTest {
/**
* The constant RESOURCE_ID.
*/
public static final String RESOURCE_ID = "mysql:xxx";
- private static Configuration CONFIG = ConfigurationFactory.getInstance();
+ private static Configuration CONFIG;
+
+ @BeforeAll
+ public static void setUp(ApplicationContext context) {
+ CONFIG = ConfigurationFactory.getInstance();
+ }
/**
* Clean.
@@ -97,6 +99,7 @@ public class SessionStoreTest {
* @throws Exception the exception
*/
@Test
+ @Order(1)
public void testRestoredFromFile() throws Exception {
try {
SessionHolder.init(SessionMode.FILE);
@@ -176,6 +179,7 @@ public class SessionStoreTest {
* @throws Exception the exception
*/
@Test
+ @Order(2)
public void testRestoredFromFileAsyncCommitting() throws Exception {
try {
SessionHolder.init(SessionMode.FILE);
@@ -229,6 +233,7 @@ public class SessionStoreTest {
* @throws Exception the exception
*/
@Test
+ @Order(3)
public void testRestoredFromFileCommitRetry() throws Exception {
try {
SessionHolder.init(SessionMode.FILE);
@@ -287,6 +292,7 @@ public class SessionStoreTest {
* @throws Exception the exception
*/
@Test
+ @Order(4)
public void testRestoredFromFileRollbackRetry() throws Exception {
try {
SessionHolder.init(SessionMode.FILE);
@@ -346,6 +352,7 @@ public class SessionStoreTest {
* @throws Exception the exception
*/
@Test
+ @Order(5)
public void testRestoredFromFileRollbackFailed() throws Exception {
try {
SessionHolder.init(SessionMode.FILE);
diff --git
a/server/src/test/java/org/apache/seata/server/store/db/AbstractDataSourceProviderTest.java
b/server/src/test/java/org/apache/seata/server/store/db/AbstractDataSourceProviderTest.java
index 7d992cba3d..0906d69f36 100644
---
a/server/src/test/java/org/apache/seata/server/store/db/AbstractDataSourceProviderTest.java
+++
b/server/src/test/java/org/apache/seata/server/store/db/AbstractDataSourceProviderTest.java
@@ -20,7 +20,7 @@ import org.apache.seata.common.loader.EnhancedServiceLoader;
import org.apache.seata.common.loader.EnhancedServiceNotFoundException;
import org.apache.seata.config.ConfigurationFactory;
import org.apache.seata.core.store.db.DataSourceProvider;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
@@ -28,9 +28,7 @@ import org.junit.jupiter.api.MethodOrderer;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestMethodOrder;
-import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Import;
import javax.sql.DataSource;
import java.sql.Connection;
@@ -38,10 +36,8 @@ import java.sql.SQLException;
/**
*/
-@SpringBootTest
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
-@Import(DynamicPortTestConfig.class)
-public class AbstractDataSourceProviderTest {
+public class AbstractDataSourceProviderTest extends BaseSpringBootTest {
private final String dbcpDatasourceType = "dbcp";
@@ -60,7 +56,7 @@ public class AbstractDataSourceProviderTest {
}
@AfterEach
- void tearDown() {
+ public void tearDown() {
EnhancedServiceLoader.unloadAll();
ConfigurationFactory.reload();
System.clearProperty("store.db.driverClassName");
diff --git
a/server/src/test/java/org/apache/seata/server/store/db/LogStoreDataBaseDAOTest.java
b/server/src/test/java/org/apache/seata/server/store/db/LogStoreDataBaseDAOTest.java
index f4808dbb6e..5b22d6f65d 100644
---
a/server/src/test/java/org/apache/seata/server/store/db/LogStoreDataBaseDAOTest.java
+++
b/server/src/test/java/org/apache/seata/server/store/db/LogStoreDataBaseDAOTest.java
@@ -21,16 +21,14 @@ import org.apache.seata.common.util.CollectionUtils;
import org.apache.seata.common.util.IOUtil;
import org.apache.seata.core.store.BranchTransactionDO;
import org.apache.seata.core.store.GlobalTransactionDO;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import org.apache.seata.server.storage.db.store.LogStoreDataBaseDAO;
import org.h2.store.fs.FileUtils;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Import;
import java.sql.Connection;
import java.sql.ResultSet;
@@ -38,11 +36,7 @@ import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;
-/**
- */
-@SpringBootTest
-@Import(DynamicPortTestConfig.class)
-public class LogStoreDataBaseDAOTest {
+public class LogStoreDataBaseDAOTest extends BaseSpringBootTest {
static LogStoreDataBaseDAO logStoreDataBaseDAO = null;
diff --git
a/server/src/test/java/org/apache/seata/server/store/file/FileTransactionStoreManagerTest.java
b/server/src/test/java/org/apache/seata/server/store/file/FileTransactionStoreManagerTest.java
index 87e7fa90f0..188eb38385 100644
---
a/server/src/test/java/org/apache/seata/server/store/file/FileTransactionStoreManagerTest.java
+++
b/server/src/test/java/org/apache/seata/server/store/file/FileTransactionStoreManagerTest.java
@@ -19,7 +19,7 @@ package org.apache.seata.server.store.file;
import org.apache.seata.common.store.SessionMode;
import org.apache.seata.common.util.BufferUtils;
import org.apache.seata.common.util.UUIDGenerator;
-import org.apache.seata.server.DynamicPortTestConfig;
+import org.apache.seata.server.BaseSpringBootTest;
import org.apache.seata.server.session.BranchSession;
import org.apache.seata.server.session.GlobalSession;
import org.apache.seata.server.session.SessionHolder;
@@ -35,8 +35,6 @@ import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.context.annotation.Import;
import java.io.File;
import java.lang.reflect.Method;
@@ -45,11 +43,7 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
-/**
- */
-@SpringBootTest
-@Import(DynamicPortTestConfig.class)
-public class FileTransactionStoreManagerTest {
+public class FileTransactionStoreManagerTest extends BaseSpringBootTest {
@BeforeEach
public void setUp() {
diff --git a/server/src/test/resources/test-cluster-controller.properties
b/server/src/test/resources/META-INF/spring.factories
similarity index 86%
rename from server/src/test/resources/test-cluster-controller.properties
rename to server/src/test/resources/META-INF/spring.factories
index 49c04b3204..2d9fec086a 100644
--- a/server/src/test/resources/test-cluster-controller.properties
+++ b/server/src/test/resources/META-INF/spring.factories
@@ -14,7 +14,5 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-
-
-server.port=18091
-seata.server.service-port=18091
\ No newline at end of file
+org.springframework.context.ApplicationListener=\
+org.apache.seata.server.spring.listener.ClearServerServicePortInitializer
diff --git a/server/src/test/resources/application.properties
b/server/src/test/resources/application.properties
index cbc2472198..dc879b0458 100644
--- a/server/src/test/resources/application.properties
+++ b/server/src/test/resources/application.properties
@@ -16,12 +16,10 @@
#
-server.port=8091
seata.metrics.enabled=true
seata.metrics.exporter-list=prometheus
seata.metrics.exporter-prometheus-port=9898
seata.metrics.registry-type=compact
-seata.server.service-port=8091
seata.registry.namingserver.server-addr=127.0.0.1:8081
seata.registry.namingserver.namespace=public
seata.registry.namingserver.heartbeat-period=5000
diff --git
a/spring/src/test/java/org/apache/seata/spring/annotation/AdapterSpringSeataInterceptorTest.java
b/spring/src/test/java/org/apache/seata/spring/annotation/AdapterSpringSeataInterceptorTest.java
index 3b1e8f4213..67a24a1a06 100644
---
a/spring/src/test/java/org/apache/seata/spring/annotation/AdapterSpringSeataInterceptorTest.java
+++
b/spring/src/test/java/org/apache/seata/spring/annotation/AdapterSpringSeataInterceptorTest.java
@@ -17,6 +17,7 @@
package org.apache.seata.spring.annotation;
import org.aopalliance.intercept.MethodInvocation;
+import org.apache.seata.core.rpc.netty.RmNettyRemotingClient;
import
org.apache.seata.integration.tx.api.interceptor.handler.ProxyInvocationHandler;
import
org.apache.seata.integration.tx.api.interceptor.parser.DefaultInterfaceParser;
import org.apache.seata.rm.tcc.api.BusinessActionContext;
@@ -43,6 +44,7 @@ class AdapterSpringSeataInterceptorTest {
@BeforeAll
static void init() throws Throwable {
+ RmNettyRemotingClient.getInstance().destroy();
// given
normalTccAction = new NormalTccActionImpl();
ProxyInvocationHandler proxyInvocationHandler =
diff --git
a/spring/src/test/java/org/apache/seata/spring/annotation/GlobalTransactionScannerTest.java
b/spring/src/test/java/org/apache/seata/spring/annotation/GlobalTransactionScannerTest.java
index 383602d810..5da4a2c5e5 100644
---
a/spring/src/test/java/org/apache/seata/spring/annotation/GlobalTransactionScannerTest.java
+++
b/spring/src/test/java/org/apache/seata/spring/annotation/GlobalTransactionScannerTest.java
@@ -19,7 +19,9 @@ package org.apache.seata.spring.annotation;
import org.aopalliance.aop.Advice;
import org.apache.seata.config.ConfigurationChangeEvent;
import org.apache.seata.core.constants.ConfigurationKeys;
+import org.apache.seata.core.rpc.netty.RmNettyRemotingClient;
import org.apache.seata.tm.api.FailureHandler;
+import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
@@ -84,6 +86,11 @@ class GlobalTransactionScannerTest {
}
}
+ @AfterAll
+ static void afterAll() {
+ RmNettyRemotingClient.getInstance().destroy();
+ }
+
@Test
void testConstructorWithTxServiceGroup() {
// Test single parameter constructor
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]