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 748f50ea2c optimize: spring boot compatible with file.conf and 
registry.conf  (#6811) (#6828)
748f50ea2c is described below

commit 748f50ea2c7f6a53d3626e4513944e9f27175b17
Author: smartscity <lyl2008...@163.com>
AuthorDate: Tue Dec 24 22:48:27 2024 +0800

    optimize: spring boot compatible with file.conf and registry.conf  (#6811) 
(#6828)
---
 changes/en-us/2.x.md                               |   4 +-
 changes/zh-cn/2.x.md                               |   4 +-
 .../org/apache/seata/common/store/LockMode.java    |  69 ++++++++++++
 .../org/apache/seata/common/store/SessionMode.java |  69 ++++++++++++
 .../seata-spring-autoconfigure-core/pom.xml        |  11 ++
 .../listener/SeataApplicationListener.java         |  59 +++++++++++
 .../loader}/SeataPropertiesLoader.java             |  31 +++++-
 .../src/main/resources/META-INF/spring.factories   |   6 ++
 .../SeataCoreAutoConfigurationTest.java            |  88 +++++++++++++++
 .../src/test/resources/application-test.properties |   4 +-
 .../src/test/resources/file.conf                   |  67 ++++++++++++
 .../src/test/resources/registry.conf               |  18 +++-
 .../server/cluster/raft/RaftServerManager.java     |   3 +-
 .../server/cluster/raft/RaftStateMachine.java      |  10 +-
 .../server/coordinator/DefaultCoordinator.java     |   7 +-
 .../seata/server/coordinator/RaftCoordinator.java  |   3 +-
 .../seata/server/lock/LockerManagerFactory.java    |   5 +-
 .../apache/seata/server/session/SessionHelper.java |   2 +-
 .../apache/seata/server/session/SessionHolder.java |   2 +-
 .../org/apache/seata/server/store/StoreConfig.java | 118 +--------------------
 .../src/main/resources/META-INF/spring.factories   |   4 +-
 .../server/coordinator/DefaultCoordinatorTest.java |   2 +-
 .../seata/server/coordinator/DefaultCoreTest.java  |   2 +-
 .../server/event/DefaultCoreForEventBusTest.java   |   2 +-
 .../apache/seata/server/lock/LockManagerTest.java  |   2 +-
 .../seata/server/raft/RaftSyncMessageTest.java     |   4 +-
 .../raft/execute/BranchSessionExecuteTest.java     |   7 +-
 .../raft/execute/GlobalSessionExecuteTest.java     |   7 +-
 .../seata/server/raft/execute/LockExecuteTest.java |   7 +-
 .../server/session/FileSessionManagerTest.java     |   3 +-
 .../seata/server/session/GlobalSessionTest.java    |   5 +-
 .../seata/server/session/SessionHolderTest.java    |   3 +-
 .../session/redis/RedisDistributedLockerTest.java  |   4 +-
 .../seata/server/store/SessionStoreTest.java       |   2 +-
 .../file/FileTransactionStoreManagerTest.java      |   3 +-
 35 files changed, 466 insertions(+), 171 deletions(-)

diff --git a/changes/en-us/2.x.md b/changes/en-us/2.x.md
index 0dc00393b9..6156d31007 100644
--- a/changes/en-us/2.x.md
+++ b/changes/en-us/2.x.md
@@ -12,7 +12,7 @@ Add changes here for all PR submitted to the 2.x branch.
 
 ### optimize:
 
-- [[#PR_NO](https://github.com/apache/incubator-seata/pull/PR_NO)] optimize XXX
+- [[#6828](https://github.com/apache/incubator-seata/pull/6828)] spring boot 
compatible with file.conf and registry.conf
 
 ### security:
 
@@ -31,6 +31,6 @@ Thanks to these contributors for their code commits. Please 
report an unintended
 <!-- Please make sure your Github ID is in the list below -->
 
 - [slievrly](https://github.com/slievrly)
-- [GITHUB_ID](https://github.com/GITHUB_ID)
+- [lyl2008dsg](https://github.com/lyl2008dsg)
 
 Also, we receive many valuable issues, questions and advices from our 
community. Thanks for you all.
\ No newline at end of file
diff --git a/changes/zh-cn/2.x.md b/changes/zh-cn/2.x.md
index 5c76d15a1b..0b91dae095 100644
--- a/changes/zh-cn/2.x.md
+++ b/changes/zh-cn/2.x.md
@@ -12,7 +12,7 @@
 
 ### optimize:
 
-- [[#PR_NO](https://github.com/apache/incubator-seata/pull/PR_NO)] 优化XXX
+- [[#6828](https://github.com/apache/incubator-seata/pull/6828)] 
seata-spring-boot-starter兼容file.conf和registry.conf
 
 ### security:
 
@@ -31,6 +31,6 @@
 <!-- 请确保您的 GitHub ID 在以下列表中 -->
 
 - [slievrly](https://github.com/slievrly)
-- [GITHUB_ID](https://github.com/GITHUB_ID)
+- [lyl2008dsg](https://github.com/lyl2008dsg)
 
 同时,我们收到了社区反馈的很多有价值的issue和建议,非常感谢大家。
\ No newline at end of file
diff --git a/common/src/main/java/org/apache/seata/common/store/LockMode.java 
b/common/src/main/java/org/apache/seata/common/store/LockMode.java
new file mode 100644
index 0000000000..e36c6547f8
--- /dev/null
+++ b/common/src/main/java/org/apache/seata/common/store/LockMode.java
@@ -0,0 +1,69 @@
+/*
+ * 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.store;
+
+public enum LockMode {
+    /**
+     * The File store mode.
+     */
+    FILE("file"),
+    /**
+     * The Db store mode.
+     */
+    DB("db"),
+    /**
+     * The Redis store mode.
+     */
+    REDIS("redis"),
+    /**
+     * raft store
+     */
+    RAFT("raft");
+
+    private String name;
+
+    LockMode(String name) {
+        this.name = name;
+    }
+
+    public static LockMode get(String name) {
+        for (LockMode mode : LockMode.values()) {
+            if (mode.getName().equalsIgnoreCase(name)) {
+                return mode;
+            }
+        }
+        throw new IllegalArgumentException("unknown lock mode:" + name);
+    }
+
+    /**
+     * whether contains value of store mode
+     *
+     * @param name the mode name
+     * @return the boolean
+     */
+    public static boolean contains(String name) {
+        try {
+            return get(name) != null ? true : false;
+        } catch (IllegalArgumentException e) {
+            return false;
+        }
+    }
+
+    public String getName() {
+        return name;
+    }
+}
\ No newline at end of file
diff --git 
a/common/src/main/java/org/apache/seata/common/store/SessionMode.java 
b/common/src/main/java/org/apache/seata/common/store/SessionMode.java
new file mode 100644
index 0000000000..3db1307d82
--- /dev/null
+++ b/common/src/main/java/org/apache/seata/common/store/SessionMode.java
@@ -0,0 +1,69 @@
+/*
+ * 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.store;
+
+public enum SessionMode {
+    /**
+     * The File store mode.
+     */
+    FILE("file"),
+    /**
+     * The Db store mode.
+     */
+    DB("db"),
+    /**
+     * The Redis store mode.
+     */
+    REDIS("redis"),
+    /**
+     * raft store
+     */
+    RAFT("raft");
+
+    private String name;
+
+    SessionMode(String name) {
+        this.name = name;
+    }
+
+    public static SessionMode get(String name) {
+        for (SessionMode mode : SessionMode.values()) {
+            if (mode.getName().equalsIgnoreCase(name)) {
+                return mode;
+            }
+        }
+        throw new IllegalArgumentException("unknown session mode:" + name);
+    }
+
+    /**
+     * whether contains value of store mode
+     *
+     * @param name the mode name
+     * @return the boolean
+     */
+    public static boolean contains(String name) {
+        try {
+            return get(name) != null ? true : false;
+        } catch (IllegalArgumentException e) {
+            return false;
+        }
+    }
+
+    public String getName() {
+        return name;
+    }
+}
\ No newline at end of file
diff --git a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/pom.xml 
b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/pom.xml
index a3767ecb0a..9c24e75a96 100644
--- a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/pom.xml
+++ b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/pom.xml
@@ -38,5 +38,16 @@
             <version>${project.version}</version>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>ch.qos.logback</groupId>
+                    <artifactId>logback-classic</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
     </dependencies>
 </project>
\ No newline at end of file
diff --git 
a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/org/apache/seata/spring/boot/autoconfigure/listener/SeataApplicationListener.java
 
b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/org/apache/seata/spring/boot/autoconfigure/listener/SeataApplicationListener.java
new file mode 100644
index 0000000000..b347490a1a
--- /dev/null
+++ 
b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/org/apache/seata/spring/boot/autoconfigure/listener/SeataApplicationListener.java
@@ -0,0 +1,59 @@
+/*
+ * 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.spring.boot.autoconfigure.listener;
+
+import org.apache.seata.common.holder.ObjectHolder;
+import 
org.springframework.boot.context.event.ApplicationEnvironmentPreparedEvent;
+import org.springframework.boot.context.event.ApplicationReadyEvent;
+import org.springframework.boot.context.logging.LoggingApplicationListener;
+import org.springframework.context.ApplicationEvent;
+import org.springframework.context.event.GenericApplicationListener;
+import org.springframework.core.ResolvableType;
+import org.springframework.core.env.ConfigurableEnvironment;
+
+import static 
org.apache.seata.common.Constants.OBJECT_KEY_SPRING_CONFIGURABLE_ENVIRONMENT;
+
+
+public class SeataApplicationListener implements GenericApplicationListener {
+
+    @Override
+    public boolean supportsEventType(ResolvableType eventType) {
+        return eventType.getRawClass() != null
+                && 
(ApplicationEnvironmentPreparedEvent.class.isAssignableFrom(eventType.getRawClass())
 ||
+                
ApplicationReadyEvent.class.isAssignableFrom(eventType.getRawClass()));
+    }
+
+    @Override
+    public void onApplicationEvent(ApplicationEvent event) {
+        if (!(event instanceof ApplicationEnvironmentPreparedEvent)) {
+            return;
+        }
+        ApplicationEnvironmentPreparedEvent environmentPreparedEvent = 
(ApplicationEnvironmentPreparedEvent)event;
+        ConfigurableEnvironment environment = 
environmentPreparedEvent.getEnvironment();
+        
ObjectHolder.INSTANCE.setObject(OBJECT_KEY_SPRING_CONFIGURABLE_ENVIRONMENT, 
environment);
+    }
+
+    /**
+     * higher than LoggingApplicationListener
+     *
+     * @return the order
+     */
+    @Override
+    public int getOrder() {
+        return LoggingApplicationListener.DEFAULT_ORDER - 1;
+    }
+}
\ No newline at end of file
diff --git 
a/server/src/main/java/org/apache/seata/server/spring/listener/SeataPropertiesLoader.java
 
b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/org/apache/seata/spring/boot/autoconfigure/loader/SeataPropertiesLoader.java
similarity index 70%
rename from 
server/src/main/java/org/apache/seata/server/spring/listener/SeataPropertiesLoader.java
rename to 
seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/org/apache/seata/spring/boot/autoconfigure/loader/SeataPropertiesLoader.java
index 974416b26c..05931662ee 100644
--- 
a/server/src/main/java/org/apache/seata/server/spring/listener/SeataPropertiesLoader.java
+++ 
b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/org/apache/seata/spring/boot/autoconfigure/loader/SeataPropertiesLoader.java
@@ -14,14 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.seata.server.spring.listener;
+package org.apache.seata.spring.boot.autoconfigure.loader;
 
 import org.apache.seata.common.util.CollectionUtils;
 import org.apache.seata.common.util.StringUtils;
 import org.apache.seata.config.ConfigurationFactory;
 import org.apache.seata.config.FileConfiguration;
 import org.apache.seata.config.file.FileConfig;
-import org.apache.seata.server.store.StoreConfig;
 import org.springframework.context.ApplicationContextInitializer;
 import org.springframework.context.ConfigurableApplicationContext;
 import org.springframework.core.Ordered;
@@ -29,6 +28,8 @@ import org.springframework.core.annotation.Order;
 import org.springframework.core.env.ConfigurableEnvironment;
 import org.springframework.core.env.PropertiesPropertySource;
 
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
@@ -74,8 +75,30 @@ public class SeataPropertiesLoader implements 
ApplicationContextInitializer<Conf
             environment.getPropertySources().addLast(new 
PropertiesPropertySource("seataOldConfig", properties));
         }
         // Load by priority
-        System.setProperty("sessionMode", 
StoreConfig.getSessionMode().getName());
-        System.setProperty("lockMode", StoreConfig.getLockMode().getName());
+        loadSessionAndLockModes();
     }
 
+    public void loadSessionAndLockModes() {
+        try {
+            Class<?> storeConfigClass = 
Class.forName("org.apache.seata.server.store.StoreConfig");
+            Optional<String> sessionMode = invokeEnumMethod(storeConfigClass, 
"getSessionMode", "getName");
+            Optional<String> lockMode = invokeEnumMethod(storeConfigClass, 
"getLockMode", "getName");
+            sessionMode.ifPresent(value -> System.setProperty("sessionMode", 
value));
+            lockMode.ifPresent(value -> System.setProperty("lockMode", value));
+        } catch (ClassNotFoundException | NoSuchMethodException | 
InvocationTargetException | IllegalAccessException e) {
+            // The exception is not printed because it is an expected behavior 
and does not affect the normal operation of the program.
+            // StoreConfig only exists on the server side
+        }
+    }
+
+    private Optional<String> invokeEnumMethod(Class<?> clazz, String 
enumMethodName, String getterMethodName)
+            throws NoSuchMethodException, InvocationTargetException, 
IllegalAccessException {
+        Method enumMethod = clazz.getMethod(enumMethodName);
+        Object enumValue = enumMethod.invoke(null);
+        if (enumValue != null) {
+            Method getterMethod = 
enumValue.getClass().getMethod(getterMethodName);
+            return Optional.ofNullable((String) 
getterMethod.invoke(enumValue));
+        }
+        return Optional.empty();
+    }
 }
diff --git 
a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/resources/META-INF/spring.factories
 
b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/resources/META-INF/spring.factories
index df445bb697..27e069aa2e 100644
--- 
a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/resources/META-INF/spring.factories
+++ 
b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/resources/META-INF/spring.factories
@@ -21,3 +21,9 @@ 
org.apache.seata.spring.boot.autoconfigure.SeataCoreAutoConfiguration
 # Environment Post Processors
 org.springframework.boot.env.EnvironmentPostProcessor=\
 org.apache.seata.spring.boot.autoconfigure.SeataCoreEnvironmentPostProcessor
+
+org.springframework.context.ApplicationContextInitializer=\
+org.apache.seata.spring.boot.autoconfigure.loader.SeataPropertiesLoader
+
+org.springframework.context.ApplicationListener=\
+org.apache.seata.spring.boot.autoconfigure.listener.SeataApplicationListener
\ No newline at end of file
diff --git 
a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/test/java/org/apache/seata/spring/boot/autoconfigure/SeataCoreAutoConfigurationTest.java
 
b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/test/java/org/apache/seata/spring/boot/autoconfigure/SeataCoreAutoConfigurationTest.java
new file mode 100644
index 0000000000..8fbf0075e4
--- /dev/null
+++ 
b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/test/java/org/apache/seata/spring/boot/autoconfigure/SeataCoreAutoConfigurationTest.java
@@ -0,0 +1,88 @@
+/*
+ * 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.spring.boot.autoconfigure;
+
+import org.apache.seata.config.Configuration;
+import org.apache.seata.config.ConfigurationFactory;
+import org.apache.seata.config.FileConfiguration;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.core.env.Environment;
+import org.springframework.test.context.TestPropertySource;
+import org.springframework.test.context.junit.jupiter.SpringExtension;
+
+import java.util.Optional;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+@ExtendWith(SpringExtension.class)
+@SpringBootTest(classes = SeataCoreAutoConfiguration.class)
+@TestPropertySource(locations = "classpath:application-test.properties")
+public class SeataCoreAutoConfigurationTest {
+
+    @Autowired
+    private Environment environment;
+
+    @Test
+    public void testSeataPropertiesLoaded() {
+        ConfigurationFactory.reload();
+
+        // default file.conf
+        String dbUrl = environment.getProperty("seata.store.db.url");
+        
assertEquals("jdbc:mysql://127.0.0.1:3306/seata?rewriteBatchedStatements=true", 
dbUrl, "The DB URL should be correctly loaded from configuration");
+
+        // overridden by application-test.properties
+        String registryType = environment.getProperty("seata.config.type");
+        assertEquals("file", registryType, "The config type should be 'file'");
+
+        // overridden by application-test.properties
+        String seataNamespaces = 
environment.getProperty("seata.config.nacos.namespace");
+        assertEquals("seata-test-application.yml", seataNamespaces, "The Nacos 
namespace should be 'seata-test-application.yml'");
+    }
+
+    @Test
+    public void testConfigFromFileUsingGetInstance() {
+        Configuration configFromFile = ConfigurationFactory.getInstance();
+        String dbUrlFromFile = configFromFile.getConfig("store.db.url");
+        
assertEquals("jdbc:mysql://127.0.0.1:3306/seata?rewriteBatchedStatements=true", 
dbUrlFromFile, "The DB URL should be correctly loaded from file.conf");
+        String storeFileDirFromFile = 
configFromFile.getConfig("store.file.dir");
+        assertEquals("sessionStore", storeFileDirFromFile, "The storeFileDir 
should be 'sessionStore' in file.conf");
+    }
+
+    @Test
+    public void testConfigFromFileUsingGetOriginFileInstance() {
+        Optional<FileConfiguration> optionalConfigFromFile = 
ConfigurationFactory.getOriginFileInstance();
+        assertTrue(optionalConfigFromFile.isPresent(), "The configuration from 
file.conf should be present");
+        FileConfiguration configFromFile = optionalConfigFromFile.get();
+        String dbUrlFromFile = configFromFile.getConfig("store.db.url");
+        
assertEquals("jdbc:mysql://127.0.0.1:3306/seata?rewriteBatchedStatements=true", 
dbUrlFromFile, "The DB URL should be correctly loaded from file.conf");
+        String storeFileDirFromFile = 
configFromFile.getConfig("store.file.dir");
+        assertEquals("sessionStore", storeFileDirFromFile, "The storeFileDir 
should be 'sessionStore' in file.conf");
+    }
+
+    @Test
+    public void testConfigFromRegistryUsingGetOriginFileInstanceRegistry() {
+        Configuration configFromRegistry = 
ConfigurationFactory.getOriginFileInstanceRegistry();
+        String registryTypeFromRegistry = 
configFromRegistry.getConfig("config.type");
+        assertEquals("file", registryTypeFromRegistry, "The config type should 
be 'file' in registry.conf");
+        String seataNamespaceFromRegistry = 
configFromRegistry.getConfig("config.nacos.namespace");
+        assertEquals("seata-test", seataNamespaceFromRegistry, "The Nacos 
namespace should be 'seata-test' in registry.conf");
+    }
+}
\ No newline at end of file
diff --git 
a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/test/resources/application-test.properties
 
b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/test/resources/application-test.properties
index 8467d6cc7b..c492f36092 100755
--- 
a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/test/resources/application-test.properties
+++ 
b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/test/resources/application-test.properties
@@ -17,7 +17,7 @@
 
 seata.config.type=file
 seata.config.data-type=bbb
-seata.config.file.name=aaa
+seata.config.file.name=file.conf
 
 seata.config.consul.server-addr=aaa
 seata.config.consul.acl-token=bbb
@@ -33,7 +33,7 @@ seata.config.apollo.apollo-config-service=fff
 seata.config.etcd3.server-addr=aaa
 seata.config.etcd3.key=bbb
 
-seata.config.nacos.namespace=ddd
+seata.config.nacos.namespace=seata-test-application.yml
 seata.config.nacos.server-addr=aaa
 seata.config.nacos.group=ccc
 seata.config.nacos.username=eee
diff --git 
a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/test/resources/file.conf
 
b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/test/resources/file.conf
new file mode 100644
index 0000000000..422c6dd583
--- /dev/null
+++ 
b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/test/resources/file.conf
@@ -0,0 +1,67 @@
+#
+# 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.
+#
+
+#reduce delay for test
+## transaction log store, only used in seata-server
+store {
+  ## store mode: file、db
+  mode = "file"
+
+  ## file store property
+  file {
+    ## store location dir
+    dir = "sessionStore"
+  }
+
+  ## database store property
+  db {
+    ## the implement of javax.sql.DataSource, such as 
DruidDataSource(druid)/BasicDataSource(dbcp) etc.
+    datasource = "dbcp"
+    ## mysql/oracle/h2/oceanbase etc.
+    dbType = "mysql"
+    driverClassName = "com.mysql.jdbc.Driver"
+    ## if using mysql to store the data, recommend add 
rewriteBatchedStatements=true in jdbc connection param
+    url = "jdbc:mysql://127.0.0.1:3306/seata?rewriteBatchedStatements=true"
+    user = "mysql"
+    password = "mysql"
+  }
+}
+server {
+  recovery {
+    #schedule committing retry period in milliseconds
+    committingRetryPeriod = 100
+    #schedule asyn committing retry period in milliseconds
+    asynCommittingRetryPeriod = 100
+    #schedule rollbacking retry period in milliseconds
+    rollbackingRetryPeriod = 100
+    #schedule timeout retry period in milliseconds
+    timeoutRetryPeriod = 100
+  }
+  undo {
+    logSaveDays = 2
+    #schedule delete expired undo_log in milliseconds
+    logDeletePeriod = 86400000
+  }
+}
+## metrics settings
+metrics {
+  enabled = true
+  registryType = "compact"
+  # multi exporters use comma divided
+  exporterList = "prometheus"
+  exporterPrometheusPort = 9898
+}
\ No newline at end of file
diff --git a/server/src/main/resources/META-INF/spring.factories 
b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/test/resources/registry.conf
similarity index 76%
copy from server/src/main/resources/META-INF/spring.factories
copy to 
seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/test/resources/registry.conf
index 4b97deb210..ceb312b5e7 100644
--- a/server/src/main/resources/META-INF/spring.factories
+++ 
b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/test/resources/registry.conf
@@ -14,7 +14,17 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
-org.springframework.context.ApplicationListener=\
-org.apache.seata.server.spring.listener.ServerApplicationListener
-org.springframework.context.ApplicationContextInitializer=\
-org.apache.seata.server.spring.listener.SeataPropertiesLoader
\ No newline at end of file
+
+config {
+  type = "file"
+
+  file {
+    name = "file.conf"
+  }
+  nacos {
+    application = "seata-server"
+    serverAddr = "127.0.0.1:8848"
+    namespace = "seata-test"
+    cluster = "default"
+  }
+}
\ No newline at end of file
diff --git 
a/server/src/main/java/org/apache/seata/server/cluster/raft/RaftServerManager.java
 
b/server/src/main/java/org/apache/seata/server/cluster/raft/RaftServerManager.java
index b891bea848..47e7ee4432 100644
--- 
a/server/src/main/java/org/apache/seata/server/cluster/raft/RaftServerManager.java
+++ 
b/server/src/main/java/org/apache/seata/server/cluster/raft/RaftServerManager.java
@@ -38,6 +38,7 @@ import com.alipay.sofa.jraft.rpc.RpcServer;
 import com.alipay.sofa.jraft.rpc.impl.cli.CliClientServiceImpl;
 import org.apache.seata.common.ConfigurationKeys;
 import org.apache.seata.common.XID;
+import org.apache.seata.common.store.SessionMode;
 import org.apache.seata.common.util.StringUtils;
 import org.apache.seata.config.ConfigurationFactory;
 import org.apache.seata.core.serializer.SerializerType;
@@ -87,7 +88,7 @@ public class RaftServerManager {
     public static void init() {
         if (INIT.compareAndSet(false, true)) {
             String initConfStr = 
CONFIG.getConfig(ConfigurationKeys.SERVER_RAFT_SERVER_ADDR);
-            RAFT_MODE = 
StoreConfig.getSessionMode().equals(StoreConfig.SessionMode.RAFT);
+            RAFT_MODE = StoreConfig.getSessionMode().equals(SessionMode.RAFT);
             if (StringUtils.isBlank(initConfStr)) {
                 if (RAFT_MODE) {
                     throw new IllegalArgumentException(
diff --git 
a/server/src/main/java/org/apache/seata/server/cluster/raft/RaftStateMachine.java
 
b/server/src/main/java/org/apache/seata/server/cluster/raft/RaftStateMachine.java
index 9b49ba011f..2b14b2a5cb 100644
--- 
a/server/src/main/java/org/apache/seata/server/cluster/raft/RaftStateMachine.java
+++ 
b/server/src/main/java/org/apache/seata/server/cluster/raft/RaftStateMachine.java
@@ -49,6 +49,8 @@ import org.apache.seata.common.XID;
 import org.apache.seata.common.holder.ObjectHolder;
 import org.apache.seata.common.metadata.ClusterRole;
 import org.apache.seata.common.metadata.Node;
+import org.apache.seata.common.store.SessionMode;
+import org.apache.seata.common.store.StoreMode;
 import org.apache.seata.common.thread.NamedThreadFactory;
 import org.apache.seata.common.util.CollectionUtils;
 import org.apache.seata.common.util.StringUtils;
@@ -140,7 +142,7 @@ public class RaftStateMachine extends StateMachineAdapter {
             return null;
         });
         registryStoreSnapshotFile(new LeaderMetadataSnapshotFile(group));
-        if (StoreConfig.StoreMode.RAFT.getName().equalsIgnoreCase(mode)) {
+        if (StoreMode.RAFT.getName().equalsIgnoreCase(mode)) {
             registryStoreSnapshotFile(new SessionSnapshotFile(group));
             EXECUTES.put(ADD_GLOBAL_SESSION, new AddGlobalSessionExecute());
             EXECUTES.put(ADD_BRANCH_SESSION, new AddBranchSessionExecute());
@@ -180,7 +182,7 @@ public class RaftStateMachine extends StateMachineAdapter {
 
     @Override
     public void onSnapshotSave(final SnapshotWriter writer, final Closure 
done) {
-        if (!StringUtils.equals(StoreConfig.SessionMode.RAFT.getName(), mode)) 
{
+        if (!StringUtils.equals(SessionMode.RAFT.getName(), mode)) {
             done.run(Status.OK());
             return;
         }
@@ -198,7 +200,7 @@ public class RaftStateMachine extends StateMachineAdapter {
 
     @Override
     public boolean onSnapshotLoad(final SnapshotReader reader) {
-        if (!StringUtils.equals(StoreConfig.SessionMode.RAFT.getName(), mode)) 
{
+        if (!StringUtils.equals(SessionMode.RAFT.getName(), mode)) {
             return true;
         }
         if (isLeader()) {
@@ -232,7 +234,7 @@ public class RaftStateMachine extends StateMachineAdapter {
                 try {
                     // become the leader again,reloading global session
                     
SessionHolder.reload(SessionHolder.getRootSessionManager().allSessions(),
-                        StoreConfig.SessionMode.RAFT, false);
+                        SessionMode.RAFT, false);
                 } finally {
                     SeataClusterContext.unbindGroup();
                 }
diff --git 
a/server/src/main/java/org/apache/seata/server/coordinator/DefaultCoordinator.java
 
b/server/src/main/java/org/apache/seata/server/coordinator/DefaultCoordinator.java
index ddfd5f35d6..468e9ccc5f 100644
--- 
a/server/src/main/java/org/apache/seata/server/coordinator/DefaultCoordinator.java
+++ 
b/server/src/main/java/org/apache/seata/server/coordinator/DefaultCoordinator.java
@@ -30,6 +30,7 @@ import java.util.concurrent.TimeUnit;
 import io.netty.channel.Channel;
 import org.apache.commons.lang.time.DateFormatUtils;
 import org.apache.seata.common.DefaultValues;
+import org.apache.seata.common.store.SessionMode;
 import org.apache.seata.common.thread.NamedThreadFactory;
 import org.apache.seata.common.util.CollectionUtils;
 import org.apache.seata.config.ConfigurationFactory;
@@ -216,7 +217,7 @@ public class DefaultCoordinator extends 
AbstractTCInboundHandler implements Tran
         boolean enableBranchAsyncRemove = CONFIG.getBoolean(
                 ConfigurationKeys.ENABLE_BRANCH_ASYNC_REMOVE, 
DEFAULT_ENABLE_BRANCH_ASYNC_REMOVE);
         // create branchRemoveExecutor
-        if (enableBranchAsyncRemove && StoreConfig.getSessionMode() != 
StoreConfig.SessionMode.FILE) {
+        if (enableBranchAsyncRemove && StoreConfig.getSessionMode() != 
SessionMode.FILE) {
             branchRemoveExecutor = new 
ThreadPoolExecutor(BRANCH_ASYNC_POOL_SIZE, BRANCH_ASYNC_POOL_SIZE,
                     Integer.MAX_VALUE, TimeUnit.MILLISECONDS,
                     new ArrayBlockingQueue<>(
@@ -232,8 +233,8 @@ public class DefaultCoordinator extends 
AbstractTCInboundHandler implements Tran
         if (null == instance) {
             synchronized (DefaultCoordinator.class) {
                 if (null == instance) {
-                    StoreConfig.SessionMode storeMode = 
StoreConfig.getSessionMode();
-                    instance = Objects.equals(StoreConfig.SessionMode.RAFT, 
storeMode)
+                    SessionMode storeMode = StoreConfig.getSessionMode();
+                    instance = Objects.equals(SessionMode.RAFT, storeMode)
                         ? new RaftCoordinator(remotingServer) : new 
DefaultCoordinator(remotingServer);
                 }
             }
diff --git 
a/server/src/main/java/org/apache/seata/server/coordinator/RaftCoordinator.java 
b/server/src/main/java/org/apache/seata/server/coordinator/RaftCoordinator.java
index db9af1926b..8e01601b95 100644
--- 
a/server/src/main/java/org/apache/seata/server/coordinator/RaftCoordinator.java
+++ 
b/server/src/main/java/org/apache/seata/server/coordinator/RaftCoordinator.java
@@ -16,6 +16,7 @@
  */
 package org.apache.seata.server.coordinator;
 
+import org.apache.seata.common.store.SessionMode;
 import org.apache.seata.core.exception.TransactionException;
 import org.apache.seata.core.exception.TransactionExceptionCode;
 import org.apache.seata.core.protocol.transaction.AbstractTransactionRequest;
@@ -64,7 +65,7 @@ public class RaftCoordinator extends DefaultCoordinator 
implements ApplicationLi
     }
 
     public static void setPrevent(String group, boolean prevent) {
-        if (StoreConfig.getSessionMode() == StoreConfig.SessionMode.RAFT) {
+        if (StoreConfig.getSessionMode() == SessionMode.RAFT) {
             GROUP_PREVENT.put(group, prevent);
         }
     }
diff --git 
a/server/src/main/java/org/apache/seata/server/lock/LockerManagerFactory.java 
b/server/src/main/java/org/apache/seata/server/lock/LockerManagerFactory.java
index ae9e253411..45129d12f9 100644
--- 
a/server/src/main/java/org/apache/seata/server/lock/LockerManagerFactory.java
+++ 
b/server/src/main/java/org/apache/seata/server/lock/LockerManagerFactory.java
@@ -17,10 +17,11 @@
 package org.apache.seata.server.lock;
 
 import org.apache.seata.common.loader.EnhancedServiceLoader;
+import org.apache.seata.common.store.LockMode;
+import org.apache.seata.common.store.StoreMode;
 import org.apache.seata.config.Configuration;
 import org.apache.seata.config.ConfigurationFactory;
 import org.apache.seata.server.store.StoreConfig;
-import org.apache.seata.server.store.StoreConfig.LockMode;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -65,7 +66,7 @@ public class LockerManagerFactory {
                     }
                     LOGGER.info("use lock store mode: {}", lockMode.getName());
                     //if not exist the lock mode, throw exception
-                    if (null != StoreConfig.StoreMode.get(lockMode.name())) {
+                    if (null != StoreMode.get(lockMode.name())) {
                         LOCK_MANAGER = 
EnhancedServiceLoader.load(LockManager.class, lockMode.getName());
                     }
                 }
diff --git 
a/server/src/main/java/org/apache/seata/server/session/SessionHelper.java 
b/server/src/main/java/org/apache/seata/server/session/SessionHelper.java
index 17cd084505..356a50cb10 100644
--- a/server/src/main/java/org/apache/seata/server/session/SessionHelper.java
+++ b/server/src/main/java/org/apache/seata/server/session/SessionHelper.java
@@ -28,6 +28,7 @@ import java.util.stream.Stream;
 import java.util.stream.StreamSupport;
 
 import org.apache.seata.common.ConfigurationKeys;
+import org.apache.seata.common.store.SessionMode;
 import org.apache.seata.common.util.CollectionUtils;
 import org.apache.seata.config.Configuration;
 import org.apache.seata.config.ConfigurationFactory;
@@ -42,7 +43,6 @@ import 
org.apache.seata.server.cluster.raft.context.SeataClusterContext;
 import org.apache.seata.server.coordinator.DefaultCoordinator;
 import org.apache.seata.server.metrics.MetricsPublisher;
 import org.apache.seata.server.store.StoreConfig;
-import org.apache.seata.server.store.StoreConfig.SessionMode;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.MDC;
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 cd6f6273c7..e0e7a41b79 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
@@ -29,6 +29,7 @@ import org.apache.seata.common.XID;
 import org.apache.seata.common.exception.ShouldNeverHappenException;
 import org.apache.seata.common.exception.StoreException;
 import org.apache.seata.common.loader.EnhancedServiceLoader;
+import org.apache.seata.common.store.SessionMode;
 import org.apache.seata.common.util.CollectionUtils;
 import org.apache.seata.common.util.StringUtils;
 import org.apache.seata.config.Configuration;
@@ -42,7 +43,6 @@ import org.apache.seata.server.cluster.raft.RaftServerManager;
 import org.apache.seata.server.cluster.raft.context.SeataClusterContext;
 import org.apache.seata.server.lock.distributed.DistributedLockerFactory;
 import org.apache.seata.server.store.StoreConfig;
-import org.apache.seata.server.store.StoreConfig.SessionMode;
 import org.apache.seata.server.store.VGroupMappingStoreManager;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git 
a/server/src/main/java/org/apache/seata/server/store/StoreConfig.java 
b/server/src/main/java/org/apache/seata/server/store/StoreConfig.java
index adf949cf88..057753e21c 100644
--- a/server/src/main/java/org/apache/seata/server/store/StoreConfig.java
+++ b/server/src/main/java/org/apache/seata/server/store/StoreConfig.java
@@ -16,6 +16,9 @@
  */
 package org.apache.seata.server.store;
 
+import org.apache.seata.common.store.LockMode;
+import org.apache.seata.common.store.SessionMode;
+import org.apache.seata.common.store.StoreMode;
 import org.apache.seata.common.util.StringUtils;
 import org.apache.seata.config.Configuration;
 import org.apache.seata.config.ConfigurationFactory;
@@ -142,119 +145,4 @@ public class StoreConfig {
         // complication old config
         return LockMode.get(getStoreMode().name());
     }
-
-    public enum StoreMode {
-        /**
-         * The File store mode.
-         */
-        FILE("file"),
-        /**
-         * The Db store mode.
-         */
-        DB("db"),
-        /**
-         * The Redis store mode.
-         */
-        REDIS("redis"),
-        /**
-         * The Raft store mode.
-         */
-        RAFT("raft");
-
-        private String name;
-
-        StoreMode(String name) {
-            this.name = name;
-        }
-
-        public static StoreMode get(String name) {
-            for (StoreMode mode : StoreMode.values()) {
-                if (mode.getName().equalsIgnoreCase(name)) {
-                    return mode;
-                }
-            }
-            throw new IllegalArgumentException("unknown store mode:" + name);
-        }
-
-        public String getName() {
-            return name;
-        }
-    }
-
-    public enum SessionMode {
-        /**
-         * The File store mode.
-         */
-        FILE("file"),
-        /**
-         * The Db store mode.
-         */
-        DB("db"),
-        /**
-         * The Redis store mode.
-         */
-        REDIS("redis"),
-        /**
-         * raft store
-         */
-        RAFT("raft");
-
-        private String name;
-
-        SessionMode(String name) {
-            this.name = name;
-        }
-
-        public static SessionMode get(String name) {
-            for (SessionMode mode : SessionMode.values()) {
-                if (mode.getName().equalsIgnoreCase(name)) {
-                    return mode;
-                }
-            }
-            throw new IllegalArgumentException("unknown session mode:" + name);
-        }
-
-        public String getName() {
-            return name;
-        }
-    }
-
-    public enum LockMode {
-        /**
-         * The File store mode.
-         */
-        FILE("file"),
-        /**
-         * The Db store mode.
-         */
-        DB("db"),
-        /**
-         * The Redis store mode.
-         */
-        REDIS("redis"),
-        /**
-         * raft store
-         */
-        RAFT("raft");
-
-        private String name;
-
-        LockMode(String name) {
-            this.name = name;
-        }
-
-        public static LockMode get(String name) {
-            for (LockMode mode : LockMode.values()) {
-                if (mode.getName().equalsIgnoreCase(name)) {
-                    return mode;
-                }
-            }
-            throw new IllegalArgumentException("unknown lock mode:" + name);
-        }
-
-        public String getName() {
-            return name;
-        }
-    }
-
 }
diff --git a/server/src/main/resources/META-INF/spring.factories 
b/server/src/main/resources/META-INF/spring.factories
index 4b97deb210..649fa8a356 100644
--- a/server/src/main/resources/META-INF/spring.factories
+++ b/server/src/main/resources/META-INF/spring.factories
@@ -15,6 +15,4 @@
 # limitations under the License.
 #
 org.springframework.context.ApplicationListener=\
-org.apache.seata.server.spring.listener.ServerApplicationListener
-org.springframework.context.ApplicationContextInitializer=\
-org.apache.seata.server.spring.listener.SeataPropertiesLoader
\ No newline at end of file
+org.apache.seata.server.spring.listener.ServerApplicationListener
\ No newline at end of file
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 1de1f04c0c..02a31496a5 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
@@ -27,6 +27,7 @@ import io.netty.channel.Channel;
 import org.apache.seata.common.DefaultValues;
 import org.apache.seata.common.XID;
 import org.apache.seata.common.loader.EnhancedServiceLoader;
+import org.apache.seata.common.store.SessionMode;
 import org.apache.seata.common.util.NetUtil;
 import org.apache.seata.common.util.ReflectionUtil;
 import org.apache.seata.config.Configuration;
@@ -45,7 +46,6 @@ import org.apache.seata.core.rpc.processor.RemotingProcessor;
 import org.apache.seata.server.metrics.MetricsManager;
 import org.apache.seata.server.session.GlobalSession;
 import org.apache.seata.server.session.SessionHolder;
-import org.apache.seata.server.store.StoreConfig.SessionMode;
 import org.apache.seata.server.util.StoreUtil;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.AfterEach;
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 6db53df7db..93a5fbc054 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
@@ -19,6 +19,7 @@ package org.apache.seata.server.coordinator;
 import java.util.Collection;
 import java.util.stream.Stream;
 
+import org.apache.seata.common.store.SessionMode;
 import org.apache.seata.core.exception.TransactionException;
 import org.apache.seata.core.model.BranchStatus;
 import org.apache.seata.core.model.BranchType;
@@ -28,7 +29,6 @@ import org.apache.seata.server.session.BranchSession;
 import org.apache.seata.server.session.GlobalSession;
 import org.apache.seata.server.session.SessionHelper;
 import org.apache.seata.server.session.SessionHolder;
-import org.apache.seata.server.store.StoreConfig.SessionMode;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Assertions;
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 8b94efd10a..0569efe000 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
@@ -26,6 +26,7 @@ import java.util.concurrent.atomic.AtomicInteger;
 
 import com.google.common.eventbus.AllowConcurrentEvents;
 import com.google.common.eventbus.Subscribe;
+import org.apache.seata.common.store.SessionMode;
 import org.apache.seata.core.event.GlobalTransactionEvent;
 import org.apache.seata.core.exception.TransactionException;
 import org.apache.seata.core.model.GlobalStatus;
@@ -37,7 +38,6 @@ import org.apache.seata.server.coordinator.DefaultCore;
 import org.apache.seata.server.metrics.MetricsManager;
 import org.apache.seata.server.session.SessionHolder;
 import org.apache.seata.server.store.StoreConfig;
-import org.apache.seata.server.store.StoreConfig.SessionMode;
 import org.apache.seata.server.util.StoreUtil;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.Assertions;
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 6d6889c804..c96c002ee2 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
@@ -26,6 +26,7 @@ import java.util.stream.Stream;
 
 import javax.annotation.Resource;
 
+import org.apache.seata.common.store.SessionMode;
 import org.apache.seata.common.util.CollectionUtils;
 import org.apache.seata.common.result.PageResult;
 import org.apache.seata.core.exception.TransactionException;
@@ -39,7 +40,6 @@ import org.apache.seata.server.session.BranchSession;
 import org.apache.seata.server.session.GlobalSession;
 import org.apache.seata.server.session.SessionHolder;
 import org.apache.seata.server.session.SessionManager;
-import org.apache.seata.server.store.StoreConfig.SessionMode;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.params.ParameterizedTest;
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 187135108a..3e36d55a52 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
@@ -28,6 +28,7 @@ import java.util.Map;
 import org.apache.seata.common.exception.SeataRuntimeException;
 import org.apache.seata.common.metadata.ClusterRole;
 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.cluster.raft.snapshot.RaftSnapshot;
@@ -44,7 +45,6 @@ import 
org.apache.seata.server.cluster.raft.sync.msg.dto.RaftClusterMetadata;
 import org.apache.seata.server.session.GlobalSession;
 import org.apache.seata.server.session.SessionHelper;
 import org.apache.seata.server.session.SessionHolder;
-import org.apache.seata.server.store.StoreConfig;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeAll;
@@ -59,7 +59,7 @@ public class RaftSyncMessageTest {
 
     @BeforeAll
     public static void setUp(ApplicationContext context){
-        SessionHolder.init(StoreConfig.SessionMode.FILE);
+        SessionHolder.init(SessionMode.FILE);
     }
 
     @AfterAll
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 7c499f410c..df21b9216f 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
@@ -16,6 +16,8 @@
  */
 package org.apache.seata.server.raft.execute;
 
+import org.apache.seata.common.store.LockMode;
+import org.apache.seata.common.store.SessionMode;
 import java.util.ArrayList;
 import java.util.List;
 import org.apache.seata.common.XID;
@@ -35,7 +37,6 @@ import org.apache.seata.server.session.BranchSession;
 import org.apache.seata.server.session.GlobalSession;
 import org.apache.seata.server.session.SessionHolder;
 import org.apache.seata.server.storage.SessionConverter;
-import org.apache.seata.server.store.StoreConfig;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeAll;
@@ -58,9 +59,9 @@ class BranchSessionExecuteTest {
     @BeforeAll
     public static void setUp(ApplicationContext context) throws 
TransactionException {
         System.setProperty("server.raft.serverAddr", NetUtil.getLocalIp() + 
":9091");
-        SessionHolder.init(StoreConfig.SessionMode.RAFT);
+        SessionHolder.init(SessionMode.RAFT);
         LockerManagerFactory.destroy();
-        LockerManagerFactory.init(StoreConfig.LockMode.RAFT);
+        LockerManagerFactory.init(LockMode.RAFT);
         GLOBAL_SESSION = mockGlobalSession();
         SessionHolder.getRootSessionManager().addGlobalSession(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 9594eb7de5..45d191790e 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
@@ -16,6 +16,8 @@
  */
 package org.apache.seata.server.raft.execute;
 
+import org.apache.seata.common.store.LockMode;
+import org.apache.seata.common.store.SessionMode;
 import org.apache.seata.common.util.NetUtil;
 import org.apache.seata.config.ConfigurationCache;
 import org.apache.seata.core.exception.TransactionException;
@@ -30,7 +32,6 @@ import org.apache.seata.server.session.GlobalSession;
 import org.apache.seata.server.session.SessionHolder;
 import org.apache.seata.server.session.SessionManager;
 import org.apache.seata.server.storage.SessionConverter;
-import org.apache.seata.server.store.StoreConfig;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Assertions;
@@ -47,9 +48,9 @@ class GlobalSessionExecuteTest {
     @BeforeAll
     public static void setUp(ApplicationContext context){
         System.setProperty("server.raft.serverAddr", NetUtil.getLocalIp() + 
":9091");
-        SessionHolder.init(StoreConfig.SessionMode.RAFT);
+        SessionHolder.init(SessionMode.RAFT);
         LockerManagerFactory.destroy();
-        LockerManagerFactory.init(StoreConfig.LockMode.RAFT);
+        LockerManagerFactory.init(LockMode.RAFT);
     }
 
     @AfterAll
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 50aece2589..19c4c24f23 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
@@ -16,6 +16,8 @@
  */
 package org.apache.seata.server.raft.execute;
 
+import org.apache.seata.common.store.LockMode;
+import org.apache.seata.common.store.SessionMode;
 import java.util.ArrayList;
 import java.util.List;
 import org.apache.seata.common.util.NetUtil;
@@ -36,7 +38,6 @@ import org.apache.seata.server.session.BranchSession;
 import org.apache.seata.server.session.GlobalSession;
 import org.apache.seata.server.session.SessionHolder;
 import org.apache.seata.server.storage.SessionConverter;
-import org.apache.seata.server.store.StoreConfig;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Assertions;
@@ -63,9 +64,9 @@ class LockExecuteTest {
     @BeforeAll
     public static void setUp(ApplicationContext context) throws 
TransactionException {
         System.setProperty("server.raft.serverAddr", NetUtil.getLocalIp() + 
":9091");
-        SessionHolder.init(StoreConfig.SessionMode.RAFT);
+        SessionHolder.init(SessionMode.RAFT);
         LockerManagerFactory.destroy();
-        LockerManagerFactory.init(StoreConfig.LockMode.RAFT);
+        LockerManagerFactory.init(LockMode.RAFT);
     }
 
     @AfterAll
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 56ce51d343..478529866a 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
@@ -30,6 +30,7 @@ import javax.annotation.Resource;
 import org.apache.seata.common.XID;
 import org.apache.seata.common.loader.EnhancedServiceLoader;
 import org.apache.seata.common.result.PageResult;
+import org.apache.seata.common.store.SessionMode;
 import org.apache.seata.core.model.BranchStatus;
 import org.apache.seata.core.model.BranchType;
 import org.apache.seata.core.model.GlobalStatus;
@@ -38,10 +39,8 @@ import 
org.apache.seata.server.console.param.GlobalSessionParam;
 import org.apache.seata.server.console.service.GlobalSessionService;
 import org.apache.seata.server.console.vo.GlobalSessionVO;
 import org.apache.seata.server.storage.file.session.FileSessionManager;
-import org.apache.seata.server.store.StoreConfig.SessionMode;
 import org.apache.seata.server.util.StoreUtil;
 import org.apache.commons.lang.time.DateUtils;
-import org.apache.seata.server.session.SessionHolder;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.params.ParameterizedTest;
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 b9083874c1..08529720e2 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
@@ -19,11 +19,10 @@ package org.apache.seata.server.session;
 import java.io.IOException;
 import java.util.stream.Stream;
 
+import org.apache.seata.common.store.SessionMode;
 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.store.StoreConfig;
-import org.apache.seata.server.session.SessionHolder;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeAll;
@@ -47,7 +46,7 @@ public class GlobalSessionTest {
 
     @BeforeAll
     public static void init(ApplicationContext context){
-        SessionHolder.init(StoreConfig.SessionMode.FILE);
+        SessionHolder.init(SessionMode.FILE);
     }
     @AfterAll
     public static void destroy(){
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 9ac513731c..6e6fe855c6 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,9 +19,8 @@ package org.apache.seata.server.session;
 import java.io.File;
 import java.io.IOException;
 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.store.StoreConfig.SessionMode;
-import org.apache.seata.server.session.SessionHolder;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
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 d4f38a2bcc..215571d3eb 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
@@ -20,6 +20,8 @@ import java.io.IOException;
 
 import org.apache.seata.common.XID;
 import org.apache.seata.common.loader.EnhancedServiceLoader;
+import org.apache.seata.common.store.SessionMode;
+import org.apache.seata.common.store.StoreMode;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeAll;
@@ -33,8 +35,6 @@ import org.apache.seata.core.store.DistributedLocker;
 import org.apache.seata.server.lock.distributed.DistributedLockerFactory;
 import org.apache.seata.server.session.SessionHolder;
 import org.apache.seata.server.storage.redis.JedisPooledFactory;
-import org.apache.seata.server.store.StoreConfig.SessionMode;
-import static org.apache.seata.server.store.StoreConfig.StoreMode;
 
 /**
  * @description redis distributed lock test
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 50c677df21..23da64b729 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
@@ -19,6 +19,7 @@ package org.apache.seata.server.store;
 import java.io.File;
 
 import org.apache.seata.common.XID;
+import org.apache.seata.common.store.SessionMode;
 import org.apache.seata.config.Configuration;
 import org.apache.seata.config.ConfigurationFactory;
 import org.apache.seata.core.constants.ConfigurationKeys;
@@ -31,7 +32,6 @@ import org.apache.seata.server.session.BranchSession;
 import org.apache.seata.server.session.GlobalSession;
 import org.apache.seata.server.session.SessionHelper;
 import org.apache.seata.server.session.SessionHolder;
-import org.apache.seata.server.store.StoreConfig.SessionMode;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
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 d9c8ec0831..dca761e123 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
@@ -23,6 +23,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
+import org.apache.seata.common.store.SessionMode;
 import org.apache.seata.server.session.SessionHolder;
 import org.assertj.core.util.Files;
 import org.junit.jupiter.api.AfterAll;
@@ -51,7 +52,7 @@ public class FileTransactionStoreManagerTest {
 
     @BeforeAll
     public static void init(ApplicationContext context){
-        SessionHolder.init(StoreConfig.SessionMode.FILE);
+        SessionHolder.init(SessionMode.FILE);
     }
     @AfterAll
     public static void destroy(){


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscr...@seata.apache.org
For additional commands, e-mail: notifications-h...@seata.apache.org

Reply via email to