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

zhangjiawei 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 5bd43f3254 reactor: reactor extensions module (#7688)
5bd43f3254 is described below

commit 5bd43f32549c814d89d805e210fdfe63cc420f92
Author: jimin <[email protected]>
AuthorDate: Tue Nov 11 19:32:19 2025 +0800

    reactor: reactor extensions module (#7688)
---
 changes/en-us/2.x.md                               |  1 +
 changes/zh-cn/2.x.md                               |  1 +
 .../http/JakartaSeataWebMvcConfigurer.java         |  3 +-
 .../JakartaTransactionPropagationInterceptor.java  |  2 +-
 .../http/JakartaSeataWebMvcConfigurerTest.java     |  4 +-
 ...kartaTransactionPropagationInterceptorTest.java |  7 ++--
 .../config/agent.config                            |  0
 .../apm}/apm-seata-skywalking-plugin/pom.xml       |  6 +--
 .../DefaultCoreDoGlobalCommitInterceptor.java      |  0
 .../NettyRemotingClientSendSyncInterceptor.java    |  0
 .../RemotingProcessorProcessInterceptor.java       |  0
 .../skywalking/plugin/common/SWSeataConstants.java |  0
 .../apm/skywalking/plugin/common/SWSeataUtils.java |  0
 .../plugin/common/SeataPluginConfig.java           |  0
 .../AbstractNettyRemotingInstrumentation.java      |  0
 .../plugin/define/DefaultCoreInstrumentation.java  |  0
 .../define/RemotingProcessorInstrumentation.java   |  0
 .../src/main/resources/skywalking-plugin.def       |  0
 .../DefaultCoreDoGlobalCommitInterceptorTest.java  |  0
 ...NettyRemotingClientSendSyncInterceptorTest.java |  0
 .../RemotingProcessorProcessInterceptorTest.java   |  0
 .../skywalking/plugin/common/SWSeataUtilsTest.java |  0
 .../AbstractNettyRemotingInstrumentationTest.java  |  0
 .../define/DefaultCoreInstrumentationTest.java     |  0
 .../RemotingProcessorInstrumentationTest.java      |  0
 {integration/rpc-core => extensions/apm}/pom.xml   | 22 ++++------
 .../rpc-core => extensions/messaging}/pom.xml      | 22 ++++------
 .../messaging/seata-rocketmq}/pom.xml              |  9 ++--
 .../integration/rocketmq/SeataMQProducer.java      |  0
 .../rocketmq/SeataMQProducerFactory.java           |  0
 .../seata/integration/rocketmq/TCCRocketMQ.java    |  0
 .../integration/rocketmq/TCCRocketMQImpl.java      |  0
 .../rocketmq/SeataMQProducerFactoryTest.java       |  0
 .../integration/rocketmq/SeataMQProducerTest.java  |  0
 .../integration/rocketmq/TCCRocketMQImplTest.java  |  0
 .../seata-rocketmq}/src/test/resources/file.conf   |  0
 .../src/test/resources/registry.conf               |  0
 {integration/rpc-core => extensions}/pom.xml       | 22 +++++-----
 {integration/dubbo => extensions/rpc}/pom.xml      | 38 ++++++++---------
 .../brpc => extensions/rpc/seata-brpc}/pom.xml     | 10 ++---
 .../TransactionPropagationClientInterceptor.java   |  0
 .../TransactionPropagationServerInterceptor.java   |  0
 .../brpc/TransactionInterceptorTest.java           |  0
 .../apache/seata/integration/brpc/dto/Echo.java    |  0
 .../seata/integration/brpc/server/EchoService.java |  0
 .../brpc/server/impl/EchoServiceImpl.java          |  0
 .../rpc/seata-brpc}/src/test/proto/Echo.proto      |  0
 .../rpc/seata-dubbo-alibaba}/pom.xml               |  8 ++--
 .../AlibabaDubboTransactionConsumerFilter.java     |  0
 .../AlibabaDubboTransactionProviderFilter.java     |  0
 .../META-INF/services/com.alibaba.dubbo.rpc.Filter |  0
 ...ibabaDubboTransactionPropagationFilterTest.java |  0
 .../AlibabaDubboTransactionProviderFilterTest.java |  0
 .../dubbo/alibaba/mock/MockInvoker.java            |  0
 .../dubbo => extensions/rpc/seata-dubbo}/pom.xml   |  8 ++--
 .../grpc => extensions/rpc/seata-grpc}/pom.xml     |  6 +--
 .../grpc/interceptor/GrpcHeaderKey.java            |  0
 .../client/ClientTransactionInterceptor.java       |  0
 .../interceptor/server/ServerListenerProxy.java    |  0
 .../server/ServerTransactionInterceptor.java       |  0
 .../integration/grpc/interceptor/GrpcTest.java     |  0
 .../client/ClientTransactionInterceptorTest.java   |  0
 .../server/ServerListenerProxyTest.java            |  0
 .../server/ServerTransactionInterceptorTest.java   |  0
 .../seata-grpc}/src/test/proto/contextTest.proto   |  0
 .../hsf => extensions/rpc/seata-hsf}/pom.xml       | 10 ++---
 .../hsf/HsfTransactionConsumerFilter.java          |  0
 .../hsf/HsfTransactionProviderFilter.java          |  0
 .../com.taobao.hsf.invocation.filter.RPCFilter     |  0
 .../rpc/seata-http-jakarta}/pom.xml                |  8 ++--
 .../http/JakartaSeataWebMvcConfigurer.java         |  5 ++-
 .../JakartaTransactionPropagationInterceptor.java  | 27 ++++++------
 .../http => extensions/rpc/seata-http}/pom.xml     | 10 ++---
 .../integration/http/AbstractHttpExecutor.java     |  0
 .../integration/http/DefaultHttpExecutor.java      |  0
 .../http/HandlerInterceptorAdapter.java            |  0
 .../seata/integration/http/HttpExecutor.java       |  0
 .../integration/http/SeataWebMvcConfigurer.java    |  0
 .../http/TransactionPropagationInterceptor.java    |  0
 .../integration/http/WebMvcConfigurerAdapter.java  |  0
 .../apache/seata/integration/http/XidResource.java |  0
 .../apache/seata/integration/http/HttpTest.java    |  0
 .../seata/integration/http/MockController.java     |  0
 .../seata/integration/http/MockHttpExecuter.java   |  0
 .../integration/http/MockHttpServletRequest.java   |  0
 .../apache/seata/integration/http/MockRequest.java |  0
 .../seata/integration/http/MockResponse.java       |  0
 .../seata/integration/http/MockWebServer.java      |  0
 .../seata/integration/http/ServletMapping.java     |  0
 .../motan => extensions/rpc/seata-motan}/pom.xml   |  4 +-
 .../integration/motan/MotanTransactionFilter.java  |  0
 .../services/com.weibo.api.motan.filter.Filter     |  0
 .../motan/MotanTransactionFilterTest.java          |  0
 .../apache/seata/integration/motan/XIDService.java |  0
 .../seata/integration/motan/XIDServiceImpl.java    |  0
 .../rpc/seata-rpc-core}/pom.xml                    |  4 +-
 .../seata/integration/rpc/core/BaseRpcFilter.java  |  0
 .../integration/rpc/core/ConsumerRpcFilter.java    |  0
 .../integration/rpc/core/ProviderRpcFilter.java    |  0
 .../rpc/seata-sofa-rpc}/pom.xml                    |  7 ++--
 .../sofa/rpc/TransactionContextConsumerFilter.java |  0
 .../sofa/rpc/TransactionContextProviderFilter.java |  0
 .../services/com.alipay.sofa.rpc.filter.Filter     |  0
 .../seata/integration/sofa/rpc/HelloService.java   |  0
 .../integration/sofa/rpc/HelloServiceImpl.java     |  0
 .../integration/sofa/rpc/HelloServiceProxy.java    |  0
 .../sofa/rpc/TransactionContextFilterTest.java     |  0
 .../JakartaTransactionPropagationInterceptor.java  | 48 ----------------------
 pom.xml                                            | 41 ++++++++++++------
 .../autoconfigure/SeataHttpAutoConfiguration.java  |  2 +-
 .../SeataHttpAutoConfigurationTest.java            |  2 +-
 111 files changed, 145 insertions(+), 192 deletions(-)

diff --git a/changes/en-us/2.x.md b/changes/en-us/2.x.md
index b7bb0669d0..f964705dae 100644
--- a/changes/en-us/2.x.md
+++ b/changes/en-us/2.x.md
@@ -109,6 +109,7 @@ Add changes here for all PR submitted to the 2.x branch.
 
 - [[#7615](https://github.com/seata/seata/pull/7615)] Refactor DataSourceProxy
 - [[#7617](https://github.com/seata/seata/pull/7617)] Refactor Alibaba Dubbo 
and HSF
+- [[#7688](https://github.com/seata/seata/pull/7688)] Reactor extensions module
 - [[#7719](https://github.com/apache/incubator-seata/pull/7719)] Replace 
synchronized with ReentrantLock in AbstractNettyRemotingClient to support 
virtual threads
 
 
diff --git a/changes/zh-cn/2.x.md b/changes/zh-cn/2.x.md
index 35927bdbd6..93b13cbfe0 100644
--- a/changes/zh-cn/2.x.md
+++ b/changes/zh-cn/2.x.md
@@ -108,6 +108,7 @@
 - [[#7615](https://github.com/seata/seata/pull/7615)] 重构 DataSourceProxy
 - [[#7617](https://github.com/seata/seata/pull/7617)] 重构 Alibaba Dubbo 和 HSF 模块
 - [[#7719](https://github.com/apache/incubator-seata/pull/7719)] 替换 
AbstractNettyRemotingClient 中的 synchronized 为 ReentrantLock,以支持虚拟线程
+- [[#7688](https://github.com/seata/seata/pull/7688)] 增加 extensions 模块
 
 
 ### doc:
diff --git 
a/compatible/src/main/java/io/seata/integration/http/JakartaSeataWebMvcConfigurer.java
 
b/compatible/src/main/java/io/seata/integration/http/JakartaSeataWebMvcConfigurer.java
index 41dda54cb2..2a0f5a0302 100644
--- 
a/compatible/src/main/java/io/seata/integration/http/JakartaSeataWebMvcConfigurer.java
+++ 
b/compatible/src/main/java/io/seata/integration/http/JakartaSeataWebMvcConfigurer.java
@@ -20,4 +20,5 @@ package io.seata.integration.http;
  * The type Jakarta seata web mvc configurer.
  */
 @Deprecated
-public class JakartaSeataWebMvcConfigurer extends 
org.apache.seata.integration.http.JakartaSeataWebMvcConfigurer {}
+public class JakartaSeataWebMvcConfigurer
+        extends 
org.apache.seata.integration.http.jakarta.JakartaSeataWebMvcConfigurer {}
diff --git 
a/compatible/src/main/java/io/seata/integration/http/JakartaTransactionPropagationInterceptor.java
 
b/compatible/src/main/java/io/seata/integration/http/JakartaTransactionPropagationInterceptor.java
index b5a6fcd33f..889cb38aaf 100644
--- 
a/compatible/src/main/java/io/seata/integration/http/JakartaTransactionPropagationInterceptor.java
+++ 
b/compatible/src/main/java/io/seata/integration/http/JakartaTransactionPropagationInterceptor.java
@@ -21,4 +21,4 @@ package io.seata.integration.http;
  */
 @Deprecated
 public class JakartaTransactionPropagationInterceptor
-        extends 
org.apache.seata.integration.http.JakartaTransactionPropagationInterceptor {}
+        extends 
org.apache.seata.integration.http.jakarta.JakartaTransactionPropagationInterceptor
 {}
diff --git 
a/compatible/src/test/java/io/seata/integration/http/JakartaSeataWebMvcConfigurerTest.java
 
b/compatible/src/test/java/io/seata/integration/http/JakartaSeataWebMvcConfigurerTest.java
index 695b84b438..f4dcbc703d 100644
--- 
a/compatible/src/test/java/io/seata/integration/http/JakartaSeataWebMvcConfigurerTest.java
+++ 
b/compatible/src/test/java/io/seata/integration/http/JakartaSeataWebMvcConfigurerTest.java
@@ -36,7 +36,7 @@ public class JakartaSeataWebMvcConfigurerTest {
     @Test
     public void testExtendsApacheSeataClass() {
         assertTrue(
-                
org.apache.seata.integration.http.JakartaSeataWebMvcConfigurer.class.isAssignableFrom(
+                
org.apache.seata.integration.http.jakarta.JakartaSeataWebMvcConfigurer.class.isAssignableFrom(
                         JakartaSeataWebMvcConfigurer.class),
                 "JakartaSeataWebMvcConfigurer should extend Apache Seata 
JakartaSeataWebMvcConfigurer");
     }
@@ -51,7 +51,7 @@ public class JakartaSeataWebMvcConfigurerTest {
     public void testInstanceOfApacheSeataClass() {
         JakartaSeataWebMvcConfigurer configurer = new 
JakartaSeataWebMvcConfigurer();
         assertTrue(
-                configurer instanceof 
org.apache.seata.integration.http.JakartaSeataWebMvcConfigurer,
+                configurer instanceof 
org.apache.seata.integration.http.jakarta.JakartaSeataWebMvcConfigurer,
                 "Instance should be of Apache Seata 
JakartaSeataWebMvcConfigurer type");
     }
 }
diff --git 
a/compatible/src/test/java/io/seata/integration/http/JakartaTransactionPropagationInterceptorTest.java
 
b/compatible/src/test/java/io/seata/integration/http/JakartaTransactionPropagationInterceptorTest.java
index 66b135b90c..c7d78abe3a 100644
--- 
a/compatible/src/test/java/io/seata/integration/http/JakartaTransactionPropagationInterceptorTest.java
+++ 
b/compatible/src/test/java/io/seata/integration/http/JakartaTransactionPropagationInterceptorTest.java
@@ -36,8 +36,8 @@ public class JakartaTransactionPropagationInterceptorTest {
     @Test
     public void testExtendsApacheSeataClass() {
         assertTrue(
-                
org.apache.seata.integration.http.JakartaTransactionPropagationInterceptor.class.isAssignableFrom(
-                        JakartaTransactionPropagationInterceptor.class),
+                
org.apache.seata.integration.http.jakarta.JakartaTransactionPropagationInterceptor.class
+                        
.isAssignableFrom(JakartaTransactionPropagationInterceptor.class),
                 "JakartaTransactionPropagationInterceptor should extend Apache 
Seata JakartaTransactionPropagationInterceptor");
     }
 
@@ -51,7 +51,8 @@ public class JakartaTransactionPropagationInterceptorTest {
     public void testInstanceOfApacheSeataClass() {
         JakartaTransactionPropagationInterceptor interceptor = new 
JakartaTransactionPropagationInterceptor();
         assertTrue(
-                interceptor instanceof 
org.apache.seata.integration.http.JakartaTransactionPropagationInterceptor,
+                interceptor
+                        instanceof 
org.apache.seata.integration.http.jakarta.JakartaTransactionPropagationInterceptor,
                 "Instance should be of Apache Seata 
JakartaTransactionPropagationInterceptor type");
     }
 }
diff --git a/ext/apm-seata-skywalking-plugin/config/agent.config 
b/extensions/apm/apm-seata-skywalking-plugin/config/agent.config
similarity index 100%
rename from ext/apm-seata-skywalking-plugin/config/agent.config
rename to extensions/apm/apm-seata-skywalking-plugin/config/agent.config
diff --git a/ext/apm-seata-skywalking-plugin/pom.xml 
b/extensions/apm/apm-seata-skywalking-plugin/pom.xml
similarity index 98%
rename from ext/apm-seata-skywalking-plugin/pom.xml
rename to extensions/apm/apm-seata-skywalking-plugin/pom.xml
index 3aacdb60e9..e34d49d2ce 100644
--- a/ext/apm-seata-skywalking-plugin/pom.xml
+++ b/extensions/apm/apm-seata-skywalking-plugin/pom.xml
@@ -22,9 +22,9 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
     <parent>
         <groupId>org.apache.seata</groupId>
-        <artifactId>seata-parent</artifactId>
+        <artifactId>seata-apm</artifactId>
         <version>${revision}</version>
-        <relativePath>../../pom.xml</relativePath>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <artifactId>apm-seata-skywalking-plugin</artifactId>
@@ -225,4 +225,4 @@
             </properties>
         </profile>
     </profiles>
-</project>
+</project>
\ No newline at end of file
diff --git 
a/ext/apm-seata-skywalking-plugin/src/main/java/org/apache/seata/apm/skywalking/plugin/DefaultCoreDoGlobalCommitInterceptor.java
 
b/extensions/apm/apm-seata-skywalking-plugin/src/main/java/org/apache/seata/apm/skywalking/plugin/DefaultCoreDoGlobalCommitInterceptor.java
similarity index 100%
rename from 
ext/apm-seata-skywalking-plugin/src/main/java/org/apache/seata/apm/skywalking/plugin/DefaultCoreDoGlobalCommitInterceptor.java
rename to 
extensions/apm/apm-seata-skywalking-plugin/src/main/java/org/apache/seata/apm/skywalking/plugin/DefaultCoreDoGlobalCommitInterceptor.java
diff --git 
a/ext/apm-seata-skywalking-plugin/src/main/java/org/apache/seata/apm/skywalking/plugin/NettyRemotingClientSendSyncInterceptor.java
 
b/extensions/apm/apm-seata-skywalking-plugin/src/main/java/org/apache/seata/apm/skywalking/plugin/NettyRemotingClientSendSyncInterceptor.java
similarity index 100%
rename from 
ext/apm-seata-skywalking-plugin/src/main/java/org/apache/seata/apm/skywalking/plugin/NettyRemotingClientSendSyncInterceptor.java
rename to 
extensions/apm/apm-seata-skywalking-plugin/src/main/java/org/apache/seata/apm/skywalking/plugin/NettyRemotingClientSendSyncInterceptor.java
diff --git 
a/ext/apm-seata-skywalking-plugin/src/main/java/org/apache/seata/apm/skywalking/plugin/RemotingProcessorProcessInterceptor.java
 
b/extensions/apm/apm-seata-skywalking-plugin/src/main/java/org/apache/seata/apm/skywalking/plugin/RemotingProcessorProcessInterceptor.java
similarity index 100%
rename from 
ext/apm-seata-skywalking-plugin/src/main/java/org/apache/seata/apm/skywalking/plugin/RemotingProcessorProcessInterceptor.java
rename to 
extensions/apm/apm-seata-skywalking-plugin/src/main/java/org/apache/seata/apm/skywalking/plugin/RemotingProcessorProcessInterceptor.java
diff --git 
a/ext/apm-seata-skywalking-plugin/src/main/java/org/apache/seata/apm/skywalking/plugin/common/SWSeataConstants.java
 
b/extensions/apm/apm-seata-skywalking-plugin/src/main/java/org/apache/seata/apm/skywalking/plugin/common/SWSeataConstants.java
similarity index 100%
rename from 
ext/apm-seata-skywalking-plugin/src/main/java/org/apache/seata/apm/skywalking/plugin/common/SWSeataConstants.java
rename to 
extensions/apm/apm-seata-skywalking-plugin/src/main/java/org/apache/seata/apm/skywalking/plugin/common/SWSeataConstants.java
diff --git 
a/ext/apm-seata-skywalking-plugin/src/main/java/org/apache/seata/apm/skywalking/plugin/common/SWSeataUtils.java
 
b/extensions/apm/apm-seata-skywalking-plugin/src/main/java/org/apache/seata/apm/skywalking/plugin/common/SWSeataUtils.java
similarity index 100%
rename from 
ext/apm-seata-skywalking-plugin/src/main/java/org/apache/seata/apm/skywalking/plugin/common/SWSeataUtils.java
rename to 
extensions/apm/apm-seata-skywalking-plugin/src/main/java/org/apache/seata/apm/skywalking/plugin/common/SWSeataUtils.java
diff --git 
a/ext/apm-seata-skywalking-plugin/src/main/java/org/apache/seata/apm/skywalking/plugin/common/SeataPluginConfig.java
 
b/extensions/apm/apm-seata-skywalking-plugin/src/main/java/org/apache/seata/apm/skywalking/plugin/common/SeataPluginConfig.java
similarity index 100%
rename from 
ext/apm-seata-skywalking-plugin/src/main/java/org/apache/seata/apm/skywalking/plugin/common/SeataPluginConfig.java
rename to 
extensions/apm/apm-seata-skywalking-plugin/src/main/java/org/apache/seata/apm/skywalking/plugin/common/SeataPluginConfig.java
diff --git 
a/ext/apm-seata-skywalking-plugin/src/main/java/org/apache/seata/apm/skywalking/plugin/define/AbstractNettyRemotingInstrumentation.java
 
b/extensions/apm/apm-seata-skywalking-plugin/src/main/java/org/apache/seata/apm/skywalking/plugin/define/AbstractNettyRemotingInstrumentation.java
similarity index 100%
rename from 
ext/apm-seata-skywalking-plugin/src/main/java/org/apache/seata/apm/skywalking/plugin/define/AbstractNettyRemotingInstrumentation.java
rename to 
extensions/apm/apm-seata-skywalking-plugin/src/main/java/org/apache/seata/apm/skywalking/plugin/define/AbstractNettyRemotingInstrumentation.java
diff --git 
a/ext/apm-seata-skywalking-plugin/src/main/java/org/apache/seata/apm/skywalking/plugin/define/DefaultCoreInstrumentation.java
 
b/extensions/apm/apm-seata-skywalking-plugin/src/main/java/org/apache/seata/apm/skywalking/plugin/define/DefaultCoreInstrumentation.java
similarity index 100%
rename from 
ext/apm-seata-skywalking-plugin/src/main/java/org/apache/seata/apm/skywalking/plugin/define/DefaultCoreInstrumentation.java
rename to 
extensions/apm/apm-seata-skywalking-plugin/src/main/java/org/apache/seata/apm/skywalking/plugin/define/DefaultCoreInstrumentation.java
diff --git 
a/ext/apm-seata-skywalking-plugin/src/main/java/org/apache/seata/apm/skywalking/plugin/define/RemotingProcessorInstrumentation.java
 
b/extensions/apm/apm-seata-skywalking-plugin/src/main/java/org/apache/seata/apm/skywalking/plugin/define/RemotingProcessorInstrumentation.java
similarity index 100%
rename from 
ext/apm-seata-skywalking-plugin/src/main/java/org/apache/seata/apm/skywalking/plugin/define/RemotingProcessorInstrumentation.java
rename to 
extensions/apm/apm-seata-skywalking-plugin/src/main/java/org/apache/seata/apm/skywalking/plugin/define/RemotingProcessorInstrumentation.java
diff --git 
a/ext/apm-seata-skywalking-plugin/src/main/resources/skywalking-plugin.def 
b/extensions/apm/apm-seata-skywalking-plugin/src/main/resources/skywalking-plugin.def
similarity index 100%
rename from 
ext/apm-seata-skywalking-plugin/src/main/resources/skywalking-plugin.def
rename to 
extensions/apm/apm-seata-skywalking-plugin/src/main/resources/skywalking-plugin.def
diff --git 
a/ext/apm-seata-skywalking-plugin/src/test/java/org/apache/seata/apm/skywalking/plugin/DefaultCoreDoGlobalCommitInterceptorTest.java
 
b/extensions/apm/apm-seata-skywalking-plugin/src/test/java/org/apache/seata/apm/skywalking/plugin/DefaultCoreDoGlobalCommitInterceptorTest.java
similarity index 100%
rename from 
ext/apm-seata-skywalking-plugin/src/test/java/org/apache/seata/apm/skywalking/plugin/DefaultCoreDoGlobalCommitInterceptorTest.java
rename to 
extensions/apm/apm-seata-skywalking-plugin/src/test/java/org/apache/seata/apm/skywalking/plugin/DefaultCoreDoGlobalCommitInterceptorTest.java
diff --git 
a/ext/apm-seata-skywalking-plugin/src/test/java/org/apache/seata/apm/skywalking/plugin/NettyRemotingClientSendSyncInterceptorTest.java
 
b/extensions/apm/apm-seata-skywalking-plugin/src/test/java/org/apache/seata/apm/skywalking/plugin/NettyRemotingClientSendSyncInterceptorTest.java
similarity index 100%
rename from 
ext/apm-seata-skywalking-plugin/src/test/java/org/apache/seata/apm/skywalking/plugin/NettyRemotingClientSendSyncInterceptorTest.java
rename to 
extensions/apm/apm-seata-skywalking-plugin/src/test/java/org/apache/seata/apm/skywalking/plugin/NettyRemotingClientSendSyncInterceptorTest.java
diff --git 
a/ext/apm-seata-skywalking-plugin/src/test/java/org/apache/seata/apm/skywalking/plugin/RemotingProcessorProcessInterceptorTest.java
 
b/extensions/apm/apm-seata-skywalking-plugin/src/test/java/org/apache/seata/apm/skywalking/plugin/RemotingProcessorProcessInterceptorTest.java
similarity index 100%
rename from 
ext/apm-seata-skywalking-plugin/src/test/java/org/apache/seata/apm/skywalking/plugin/RemotingProcessorProcessInterceptorTest.java
rename to 
extensions/apm/apm-seata-skywalking-plugin/src/test/java/org/apache/seata/apm/skywalking/plugin/RemotingProcessorProcessInterceptorTest.java
diff --git 
a/ext/apm-seata-skywalking-plugin/src/test/java/org/apache/seata/apm/skywalking/plugin/common/SWSeataUtilsTest.java
 
b/extensions/apm/apm-seata-skywalking-plugin/src/test/java/org/apache/seata/apm/skywalking/plugin/common/SWSeataUtilsTest.java
similarity index 100%
rename from 
ext/apm-seata-skywalking-plugin/src/test/java/org/apache/seata/apm/skywalking/plugin/common/SWSeataUtilsTest.java
rename to 
extensions/apm/apm-seata-skywalking-plugin/src/test/java/org/apache/seata/apm/skywalking/plugin/common/SWSeataUtilsTest.java
diff --git 
a/ext/apm-seata-skywalking-plugin/src/test/java/org/apache/seata/apm/skywalking/plugin/define/AbstractNettyRemotingInstrumentationTest.java
 
b/extensions/apm/apm-seata-skywalking-plugin/src/test/java/org/apache/seata/apm/skywalking/plugin/define/AbstractNettyRemotingInstrumentationTest.java
similarity index 100%
rename from 
ext/apm-seata-skywalking-plugin/src/test/java/org/apache/seata/apm/skywalking/plugin/define/AbstractNettyRemotingInstrumentationTest.java
rename to 
extensions/apm/apm-seata-skywalking-plugin/src/test/java/org/apache/seata/apm/skywalking/plugin/define/AbstractNettyRemotingInstrumentationTest.java
diff --git 
a/ext/apm-seata-skywalking-plugin/src/test/java/org/apache/seata/apm/skywalking/plugin/define/DefaultCoreInstrumentationTest.java
 
b/extensions/apm/apm-seata-skywalking-plugin/src/test/java/org/apache/seata/apm/skywalking/plugin/define/DefaultCoreInstrumentationTest.java
similarity index 100%
rename from 
ext/apm-seata-skywalking-plugin/src/test/java/org/apache/seata/apm/skywalking/plugin/define/DefaultCoreInstrumentationTest.java
rename to 
extensions/apm/apm-seata-skywalking-plugin/src/test/java/org/apache/seata/apm/skywalking/plugin/define/DefaultCoreInstrumentationTest.java
diff --git 
a/ext/apm-seata-skywalking-plugin/src/test/java/org/apache/seata/apm/skywalking/plugin/define/RemotingProcessorInstrumentationTest.java
 
b/extensions/apm/apm-seata-skywalking-plugin/src/test/java/org/apache/seata/apm/skywalking/plugin/define/RemotingProcessorInstrumentationTest.java
similarity index 100%
rename from 
ext/apm-seata-skywalking-plugin/src/test/java/org/apache/seata/apm/skywalking/plugin/define/RemotingProcessorInstrumentationTest.java
rename to 
extensions/apm/apm-seata-skywalking-plugin/src/test/java/org/apache/seata/apm/skywalking/plugin/define/RemotingProcessorInstrumentationTest.java
diff --git a/integration/rpc-core/pom.xml b/extensions/apm/pom.xml
similarity index 69%
copy from integration/rpc-core/pom.xml
copy to extensions/apm/pom.xml
index 9386b453e7..8778b913ad 100644
--- a/integration/rpc-core/pom.xml
+++ b/extensions/apm/pom.xml
@@ -22,21 +22,17 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
     <parent>
         <groupId>org.apache.seata</groupId>
-        <artifactId>seata-parent</artifactId>
+        <artifactId>seata-extensions</artifactId>
         <version>${revision}</version>
-        <relativePath>../../pom.xml</relativePath>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
-    <artifactId>seata-rpc-core</artifactId>
-    <packaging>jar</packaging>
-    <name>seata-rpc-core ${project.version}</name>
-    <description>RPC Core integration for Seata built with Maven</description>
+    <artifactId>seata-apm</artifactId>
+    <packaging>pom</packaging>
+    <name>seata-apm ${project.version}</name>
+    <description>APM extensions for Seata built with Maven</description>
 
-    <dependencies>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>seata-tm</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-    </dependencies>
+    <modules>
+        <module>apm-seata-skywalking-plugin</module>
+    </modules>
 </project>
\ No newline at end of file
diff --git a/integration/rpc-core/pom.xml b/extensions/messaging/pom.xml
similarity index 70%
copy from integration/rpc-core/pom.xml
copy to extensions/messaging/pom.xml
index 9386b453e7..e15dcc790d 100644
--- a/integration/rpc-core/pom.xml
+++ b/extensions/messaging/pom.xml
@@ -22,21 +22,17 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
     <parent>
         <groupId>org.apache.seata</groupId>
-        <artifactId>seata-parent</artifactId>
+        <artifactId>seata-extensions</artifactId>
         <version>${revision}</version>
-        <relativePath>../../pom.xml</relativePath>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
-    <artifactId>seata-rpc-core</artifactId>
-    <packaging>jar</packaging>
-    <name>seata-rpc-core ${project.version}</name>
-    <description>RPC Core integration for Seata built with Maven</description>
+    <artifactId>seata-messaging</artifactId>
+    <packaging>pom</packaging>
+    <name>seata-messaging ${project.version}</name>
+    <description>Messaging extensions for Seata built with Maven</description>
 
-    <dependencies>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>seata-tm</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-    </dependencies>
+    <modules>
+        <module>seata-rocketmq</module>
+    </modules>
 </project>
\ No newline at end of file
diff --git a/rocketmq/pom.xml b/extensions/messaging/seata-rocketmq/pom.xml
similarity index 91%
rename from rocketmq/pom.xml
rename to extensions/messaging/seata-rocketmq/pom.xml
index b62f82428f..6b8a4bf5e2 100644
--- a/rocketmq/pom.xml
+++ b/extensions/messaging/seata-rocketmq/pom.xml
@@ -22,14 +22,15 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
     <parent>
         <groupId>org.apache.seata</groupId>
-        <artifactId>seata-parent</artifactId>
+        <artifactId>seata-messaging</artifactId>
         <version>${revision}</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <artifactId>seata-rocketmq</artifactId>
     <packaging>jar</packaging>
     <name>seata-rocketmq ${project.version}</name>
-    <description>rocketmq integration for Seata built with Maven</description>
+    <description>RocketMQ integration for Seata built with Maven</description>
 
     <dependencies>
         <dependency>
@@ -43,6 +44,4 @@
             <scope>provided</scope>
         </dependency>
     </dependencies>
-
-
-</project>
+</project>
\ No newline at end of file
diff --git 
a/rocketmq/src/main/java/org/apache/seata/integration/rocketmq/SeataMQProducer.java
 
b/extensions/messaging/seata-rocketmq/src/main/java/org/apache/seata/integration/rocketmq/SeataMQProducer.java
similarity index 100%
rename from 
rocketmq/src/main/java/org/apache/seata/integration/rocketmq/SeataMQProducer.java
rename to 
extensions/messaging/seata-rocketmq/src/main/java/org/apache/seata/integration/rocketmq/SeataMQProducer.java
diff --git 
a/rocketmq/src/main/java/org/apache/seata/integration/rocketmq/SeataMQProducerFactory.java
 
b/extensions/messaging/seata-rocketmq/src/main/java/org/apache/seata/integration/rocketmq/SeataMQProducerFactory.java
similarity index 100%
rename from 
rocketmq/src/main/java/org/apache/seata/integration/rocketmq/SeataMQProducerFactory.java
rename to 
extensions/messaging/seata-rocketmq/src/main/java/org/apache/seata/integration/rocketmq/SeataMQProducerFactory.java
diff --git 
a/rocketmq/src/main/java/org/apache/seata/integration/rocketmq/TCCRocketMQ.java 
b/extensions/messaging/seata-rocketmq/src/main/java/org/apache/seata/integration/rocketmq/TCCRocketMQ.java
similarity index 100%
rename from 
rocketmq/src/main/java/org/apache/seata/integration/rocketmq/TCCRocketMQ.java
rename to 
extensions/messaging/seata-rocketmq/src/main/java/org/apache/seata/integration/rocketmq/TCCRocketMQ.java
diff --git 
a/rocketmq/src/main/java/org/apache/seata/integration/rocketmq/TCCRocketMQImpl.java
 
b/extensions/messaging/seata-rocketmq/src/main/java/org/apache/seata/integration/rocketmq/TCCRocketMQImpl.java
similarity index 100%
rename from 
rocketmq/src/main/java/org/apache/seata/integration/rocketmq/TCCRocketMQImpl.java
rename to 
extensions/messaging/seata-rocketmq/src/main/java/org/apache/seata/integration/rocketmq/TCCRocketMQImpl.java
diff --git 
a/rocketmq/src/test/java/org/apache/seata/integration/rocketmq/SeataMQProducerFactoryTest.java
 
b/extensions/messaging/seata-rocketmq/src/test/java/org/apache/seata/integration/rocketmq/SeataMQProducerFactoryTest.java
similarity index 100%
rename from 
rocketmq/src/test/java/org/apache/seata/integration/rocketmq/SeataMQProducerFactoryTest.java
rename to 
extensions/messaging/seata-rocketmq/src/test/java/org/apache/seata/integration/rocketmq/SeataMQProducerFactoryTest.java
diff --git 
a/rocketmq/src/test/java/org/apache/seata/integration/rocketmq/SeataMQProducerTest.java
 
b/extensions/messaging/seata-rocketmq/src/test/java/org/apache/seata/integration/rocketmq/SeataMQProducerTest.java
similarity index 100%
rename from 
rocketmq/src/test/java/org/apache/seata/integration/rocketmq/SeataMQProducerTest.java
rename to 
extensions/messaging/seata-rocketmq/src/test/java/org/apache/seata/integration/rocketmq/SeataMQProducerTest.java
diff --git 
a/rocketmq/src/test/java/org/apache/seata/integration/rocketmq/TCCRocketMQImplTest.java
 
b/extensions/messaging/seata-rocketmq/src/test/java/org/apache/seata/integration/rocketmq/TCCRocketMQImplTest.java
similarity index 100%
rename from 
rocketmq/src/test/java/org/apache/seata/integration/rocketmq/TCCRocketMQImplTest.java
rename to 
extensions/messaging/seata-rocketmq/src/test/java/org/apache/seata/integration/rocketmq/TCCRocketMQImplTest.java
diff --git a/rocketmq/src/test/resources/file.conf 
b/extensions/messaging/seata-rocketmq/src/test/resources/file.conf
similarity index 100%
rename from rocketmq/src/test/resources/file.conf
rename to extensions/messaging/seata-rocketmq/src/test/resources/file.conf
diff --git a/rocketmq/src/test/resources/registry.conf 
b/extensions/messaging/seata-rocketmq/src/test/resources/registry.conf
similarity index 100%
rename from rocketmq/src/test/resources/registry.conf
rename to extensions/messaging/seata-rocketmq/src/test/resources/registry.conf
diff --git a/integration/rpc-core/pom.xml b/extensions/pom.xml
similarity index 72%
copy from integration/rpc-core/pom.xml
copy to extensions/pom.xml
index 9386b453e7..46a96ad47b 100644
--- a/integration/rpc-core/pom.xml
+++ b/extensions/pom.xml
@@ -24,19 +24,17 @@
         <groupId>org.apache.seata</groupId>
         <artifactId>seata-parent</artifactId>
         <version>${revision}</version>
-        <relativePath>../../pom.xml</relativePath>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
-    <artifactId>seata-rpc-core</artifactId>
-    <packaging>jar</packaging>
-    <name>seata-rpc-core ${project.version}</name>
-    <description>RPC Core integration for Seata built with Maven</description>
+    <artifactId>seata-extensions</artifactId>
+    <packaging>pom</packaging>
+    <name>seata-extensions ${project.version}</name>
+    <description>extensions parent for Seata built with Maven</description>
 
-    <dependencies>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>seata-tm</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-    </dependencies>
+    <modules>
+        <module>rpc</module>
+        <module>apm</module>
+        <module>messaging</module>
+    </modules>
 </project>
\ No newline at end of file
diff --git a/integration/dubbo/pom.xml b/extensions/rpc/pom.xml
similarity index 64%
copy from integration/dubbo/pom.xml
copy to extensions/rpc/pom.xml
index b61e8307e9..b3b8df97cb 100644
--- a/integration/dubbo/pom.xml
+++ b/extensions/rpc/pom.xml
@@ -22,28 +22,26 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
     <parent>
         <groupId>org.apache.seata</groupId>
-        <artifactId>seata-parent</artifactId>
+        <artifactId>seata-extensions</artifactId>
         <version>${revision}</version>
-        <relativePath>../../pom.xml</relativePath>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
-    <artifactId>seata-dubbo</artifactId>
+    <artifactId>seata-rpc</artifactId>
     <packaging>pom</packaging>
-    <name>seata-dubbo ${project.version}</name>
-    <description>apache dubbo integration for Seata built with 
Maven</description>
+    <name>seata-rpc ${project.version}</name>
+    <description>RPC extensions for Seata built with Maven</description>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.dubbo.extensions</groupId>
-            <artifactId>dubbo-filter-seata</artifactId>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.apache.seata</groupId>
-                    <artifactId>seata-core</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-    </dependencies>
-
-
-</project>
+    <modules>
+        <module>seata-rpc-core</module>
+        <module>seata-brpc</module>
+        <module>seata-dubbo</module>
+        <module>seata-dubbo-alibaba</module>
+        <module>seata-grpc</module>
+        <module>seata-hsf</module>
+        <module>seata-http</module>
+        <module>seata-http-jakarta</module>
+        <module>seata-motan</module>
+        <module>seata-sofa-rpc</module>
+    </modules>
+</project>
\ No newline at end of file
diff --git a/integration/brpc/pom.xml b/extensions/rpc/seata-brpc/pom.xml
similarity index 92%
rename from integration/brpc/pom.xml
rename to extensions/rpc/seata-brpc/pom.xml
index 21cacfe936..fbb8bb9254 100644
--- a/integration/brpc/pom.xml
+++ b/extensions/rpc/seata-brpc/pom.xml
@@ -22,15 +22,15 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
     <parent>
         <groupId>org.apache.seata</groupId>
-        <artifactId>seata-parent</artifactId>
+        <artifactId>seata-rpc</artifactId>
         <version>${revision}</version>
-        <relativePath>../../pom.xml</relativePath>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <artifactId>seata-brpc</artifactId>
     <packaging>jar</packaging>
     <name>seata-brpc ${project.version}</name>
-    <description>brpc integration for Seata built with Maven</description>
+    <description>bRPC integration for Seata built with Maven</description>
 
     <dependencies>
         <dependency>
@@ -57,6 +57,4 @@
         </dependency>
 
     </dependencies>
-
-
-</project>
+</project>
\ No newline at end of file
diff --git 
a/integration/brpc/src/main/java/org/apache/seata/integration/brpc/TransactionPropagationClientInterceptor.java
 
b/extensions/rpc/seata-brpc/src/main/java/org/apache/seata/integration/brpc/TransactionPropagationClientInterceptor.java
similarity index 100%
rename from 
integration/brpc/src/main/java/org/apache/seata/integration/brpc/TransactionPropagationClientInterceptor.java
rename to 
extensions/rpc/seata-brpc/src/main/java/org/apache/seata/integration/brpc/TransactionPropagationClientInterceptor.java
diff --git 
a/integration/brpc/src/main/java/org/apache/seata/integration/brpc/TransactionPropagationServerInterceptor.java
 
b/extensions/rpc/seata-brpc/src/main/java/org/apache/seata/integration/brpc/TransactionPropagationServerInterceptor.java
similarity index 100%
rename from 
integration/brpc/src/main/java/org/apache/seata/integration/brpc/TransactionPropagationServerInterceptor.java
rename to 
extensions/rpc/seata-brpc/src/main/java/org/apache/seata/integration/brpc/TransactionPropagationServerInterceptor.java
diff --git 
a/integration/brpc/src/test/java/org/apache/seata/integration/brpc/TransactionInterceptorTest.java
 
b/extensions/rpc/seata-brpc/src/test/java/org/apache/seata/integration/brpc/TransactionInterceptorTest.java
similarity index 100%
rename from 
integration/brpc/src/test/java/org/apache/seata/integration/brpc/TransactionInterceptorTest.java
rename to 
extensions/rpc/seata-brpc/src/test/java/org/apache/seata/integration/brpc/TransactionInterceptorTest.java
diff --git 
a/integration/brpc/src/test/java/org/apache/seata/integration/brpc/dto/Echo.java
 
b/extensions/rpc/seata-brpc/src/test/java/org/apache/seata/integration/brpc/dto/Echo.java
similarity index 100%
rename from 
integration/brpc/src/test/java/org/apache/seata/integration/brpc/dto/Echo.java
rename to 
extensions/rpc/seata-brpc/src/test/java/org/apache/seata/integration/brpc/dto/Echo.java
diff --git 
a/integration/brpc/src/test/java/org/apache/seata/integration/brpc/server/EchoService.java
 
b/extensions/rpc/seata-brpc/src/test/java/org/apache/seata/integration/brpc/server/EchoService.java
similarity index 100%
rename from 
integration/brpc/src/test/java/org/apache/seata/integration/brpc/server/EchoService.java
rename to 
extensions/rpc/seata-brpc/src/test/java/org/apache/seata/integration/brpc/server/EchoService.java
diff --git 
a/integration/brpc/src/test/java/org/apache/seata/integration/brpc/server/impl/EchoServiceImpl.java
 
b/extensions/rpc/seata-brpc/src/test/java/org/apache/seata/integration/brpc/server/impl/EchoServiceImpl.java
similarity index 100%
rename from 
integration/brpc/src/test/java/org/apache/seata/integration/brpc/server/impl/EchoServiceImpl.java
rename to 
extensions/rpc/seata-brpc/src/test/java/org/apache/seata/integration/brpc/server/impl/EchoServiceImpl.java
diff --git a/integration/brpc/src/test/proto/Echo.proto 
b/extensions/rpc/seata-brpc/src/test/proto/Echo.proto
similarity index 100%
rename from integration/brpc/src/test/proto/Echo.proto
rename to extensions/rpc/seata-brpc/src/test/proto/Echo.proto
diff --git a/integration/dubbo-alibaba/pom.xml 
b/extensions/rpc/seata-dubbo-alibaba/pom.xml
similarity index 93%
rename from integration/dubbo-alibaba/pom.xml
rename to extensions/rpc/seata-dubbo-alibaba/pom.xml
index 2887e3f61a..17bbec54ea 100644
--- a/integration/dubbo-alibaba/pom.xml
+++ b/extensions/rpc/seata-dubbo-alibaba/pom.xml
@@ -22,13 +22,13 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
     <parent>
         <groupId>org.apache.seata</groupId>
-        <artifactId>seata-parent</artifactId>
+        <artifactId>seata-rpc</artifactId>
         <version>${revision}</version>
-        <relativePath>../../pom.xml</relativePath>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
-
     <artifactId>seata-dubbo-alibaba</artifactId>
+    <packaging>jar</packaging>
     <name>seata-dubbo-alibaba ${project.version}</name>
     <description>alibaba dubbo integration for Seata built with 
Maven</description>
 
@@ -44,4 +44,4 @@
             <scope>provided</scope>
         </dependency>
     </dependencies>
-</project>
+</project>
\ No newline at end of file
diff --git 
a/integration/dubbo-alibaba/src/main/java/org/apache/seata/integration/dubbo/alibaba/AlibabaDubboTransactionConsumerFilter.java
 
b/extensions/rpc/seata-dubbo-alibaba/src/main/java/org/apache/seata/integration/dubbo/alibaba/AlibabaDubboTransactionConsumerFilter.java
similarity index 100%
rename from 
integration/dubbo-alibaba/src/main/java/org/apache/seata/integration/dubbo/alibaba/AlibabaDubboTransactionConsumerFilter.java
rename to 
extensions/rpc/seata-dubbo-alibaba/src/main/java/org/apache/seata/integration/dubbo/alibaba/AlibabaDubboTransactionConsumerFilter.java
diff --git 
a/integration/dubbo-alibaba/src/main/java/org/apache/seata/integration/dubbo/alibaba/AlibabaDubboTransactionProviderFilter.java
 
b/extensions/rpc/seata-dubbo-alibaba/src/main/java/org/apache/seata/integration/dubbo/alibaba/AlibabaDubboTransactionProviderFilter.java
similarity index 100%
rename from 
integration/dubbo-alibaba/src/main/java/org/apache/seata/integration/dubbo/alibaba/AlibabaDubboTransactionProviderFilter.java
rename to 
extensions/rpc/seata-dubbo-alibaba/src/main/java/org/apache/seata/integration/dubbo/alibaba/AlibabaDubboTransactionProviderFilter.java
diff --git 
a/integration/dubbo-alibaba/src/main/resources/META-INF/services/com.alibaba.dubbo.rpc.Filter
 
b/extensions/rpc/seata-dubbo-alibaba/src/main/resources/META-INF/services/com.alibaba.dubbo.rpc.Filter
similarity index 100%
rename from 
integration/dubbo-alibaba/src/main/resources/META-INF/services/com.alibaba.dubbo.rpc.Filter
rename to 
extensions/rpc/seata-dubbo-alibaba/src/main/resources/META-INF/services/com.alibaba.dubbo.rpc.Filter
diff --git 
a/integration/dubbo-alibaba/src/test/java/org/apache/seata/integration/dubbo/alibaba/AlibabaDubboTransactionPropagationFilterTest.java
 
b/extensions/rpc/seata-dubbo-alibaba/src/test/java/org/apache/seata/integration/dubbo/alibaba/AlibabaDubboTransactionPropagationFilterTest.java
similarity index 100%
rename from 
integration/dubbo-alibaba/src/test/java/org/apache/seata/integration/dubbo/alibaba/AlibabaDubboTransactionPropagationFilterTest.java
rename to 
extensions/rpc/seata-dubbo-alibaba/src/test/java/org/apache/seata/integration/dubbo/alibaba/AlibabaDubboTransactionPropagationFilterTest.java
diff --git 
a/integration/dubbo-alibaba/src/test/java/org/apache/seata/integration/dubbo/alibaba/AlibabaDubboTransactionProviderFilterTest.java
 
b/extensions/rpc/seata-dubbo-alibaba/src/test/java/org/apache/seata/integration/dubbo/alibaba/AlibabaDubboTransactionProviderFilterTest.java
similarity index 100%
rename from 
integration/dubbo-alibaba/src/test/java/org/apache/seata/integration/dubbo/alibaba/AlibabaDubboTransactionProviderFilterTest.java
rename to 
extensions/rpc/seata-dubbo-alibaba/src/test/java/org/apache/seata/integration/dubbo/alibaba/AlibabaDubboTransactionProviderFilterTest.java
diff --git 
a/integration/dubbo-alibaba/src/test/java/org/apache/seata/integration/dubbo/alibaba/mock/MockInvoker.java
 
b/extensions/rpc/seata-dubbo-alibaba/src/test/java/org/apache/seata/integration/dubbo/alibaba/mock/MockInvoker.java
similarity index 100%
rename from 
integration/dubbo-alibaba/src/test/java/org/apache/seata/integration/dubbo/alibaba/mock/MockInvoker.java
rename to 
extensions/rpc/seata-dubbo-alibaba/src/test/java/org/apache/seata/integration/dubbo/alibaba/mock/MockInvoker.java
diff --git a/integration/dubbo/pom.xml b/extensions/rpc/seata-dubbo/pom.xml
similarity index 94%
rename from integration/dubbo/pom.xml
rename to extensions/rpc/seata-dubbo/pom.xml
index b61e8307e9..461f6f2779 100644
--- a/integration/dubbo/pom.xml
+++ b/extensions/rpc/seata-dubbo/pom.xml
@@ -22,9 +22,9 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
     <parent>
         <groupId>org.apache.seata</groupId>
-        <artifactId>seata-parent</artifactId>
+        <artifactId>seata-rpc</artifactId>
         <version>${revision}</version>
-        <relativePath>../../pom.xml</relativePath>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <artifactId>seata-dubbo</artifactId>
@@ -44,6 +44,4 @@
             </exclusions>
         </dependency>
     </dependencies>
-
-
-</project>
+</project>
\ No newline at end of file
diff --git a/integration/grpc/pom.xml b/extensions/rpc/seata-grpc/pom.xml
similarity index 97%
rename from integration/grpc/pom.xml
rename to extensions/rpc/seata-grpc/pom.xml
index f3b6101fc7..072f64afb4 100644
--- a/integration/grpc/pom.xml
+++ b/extensions/rpc/seata-grpc/pom.xml
@@ -21,10 +21,10 @@
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
     <parent>
-        <artifactId>seata-parent</artifactId>
+        <artifactId>seata-rpc</artifactId>
         <groupId>org.apache.seata</groupId>
         <version>${revision}</version>
-        <relativePath>../../pom.xml</relativePath>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <artifactId>seata-grpc</artifactId>
@@ -98,4 +98,4 @@
         </plugins>
     </build>
     
-</project>
+</project>
\ No newline at end of file
diff --git 
a/integration/grpc/src/main/java/org/apache/seata/integration/grpc/interceptor/GrpcHeaderKey.java
 
b/extensions/rpc/seata-grpc/src/main/java/org/apache/seata/integration/grpc/interceptor/GrpcHeaderKey.java
similarity index 100%
rename from 
integration/grpc/src/main/java/org/apache/seata/integration/grpc/interceptor/GrpcHeaderKey.java
rename to 
extensions/rpc/seata-grpc/src/main/java/org/apache/seata/integration/grpc/interceptor/GrpcHeaderKey.java
diff --git 
a/integration/grpc/src/main/java/org/apache/seata/integration/grpc/interceptor/client/ClientTransactionInterceptor.java
 
b/extensions/rpc/seata-grpc/src/main/java/org/apache/seata/integration/grpc/interceptor/client/ClientTransactionInterceptor.java
similarity index 100%
rename from 
integration/grpc/src/main/java/org/apache/seata/integration/grpc/interceptor/client/ClientTransactionInterceptor.java
rename to 
extensions/rpc/seata-grpc/src/main/java/org/apache/seata/integration/grpc/interceptor/client/ClientTransactionInterceptor.java
diff --git 
a/integration/grpc/src/main/java/org/apache/seata/integration/grpc/interceptor/server/ServerListenerProxy.java
 
b/extensions/rpc/seata-grpc/src/main/java/org/apache/seata/integration/grpc/interceptor/server/ServerListenerProxy.java
similarity index 100%
rename from 
integration/grpc/src/main/java/org/apache/seata/integration/grpc/interceptor/server/ServerListenerProxy.java
rename to 
extensions/rpc/seata-grpc/src/main/java/org/apache/seata/integration/grpc/interceptor/server/ServerListenerProxy.java
diff --git 
a/integration/grpc/src/main/java/org/apache/seata/integration/grpc/interceptor/server/ServerTransactionInterceptor.java
 
b/extensions/rpc/seata-grpc/src/main/java/org/apache/seata/integration/grpc/interceptor/server/ServerTransactionInterceptor.java
similarity index 100%
rename from 
integration/grpc/src/main/java/org/apache/seata/integration/grpc/interceptor/server/ServerTransactionInterceptor.java
rename to 
extensions/rpc/seata-grpc/src/main/java/org/apache/seata/integration/grpc/interceptor/server/ServerTransactionInterceptor.java
diff --git 
a/integration/grpc/src/test/java/org/apache/seata/integration/grpc/interceptor/GrpcTest.java
 
b/extensions/rpc/seata-grpc/src/test/java/org/apache/seata/integration/grpc/interceptor/GrpcTest.java
similarity index 100%
rename from 
integration/grpc/src/test/java/org/apache/seata/integration/grpc/interceptor/GrpcTest.java
rename to 
extensions/rpc/seata-grpc/src/test/java/org/apache/seata/integration/grpc/interceptor/GrpcTest.java
diff --git 
a/integration/grpc/src/test/java/org/apache/seata/integration/grpc/interceptor/client/ClientTransactionInterceptorTest.java
 
b/extensions/rpc/seata-grpc/src/test/java/org/apache/seata/integration/grpc/interceptor/client/ClientTransactionInterceptorTest.java
similarity index 100%
rename from 
integration/grpc/src/test/java/org/apache/seata/integration/grpc/interceptor/client/ClientTransactionInterceptorTest.java
rename to 
extensions/rpc/seata-grpc/src/test/java/org/apache/seata/integration/grpc/interceptor/client/ClientTransactionInterceptorTest.java
diff --git 
a/integration/grpc/src/test/java/org/apache/seata/integration/grpc/interceptor/server/ServerListenerProxyTest.java
 
b/extensions/rpc/seata-grpc/src/test/java/org/apache/seata/integration/grpc/interceptor/server/ServerListenerProxyTest.java
similarity index 100%
rename from 
integration/grpc/src/test/java/org/apache/seata/integration/grpc/interceptor/server/ServerListenerProxyTest.java
rename to 
extensions/rpc/seata-grpc/src/test/java/org/apache/seata/integration/grpc/interceptor/server/ServerListenerProxyTest.java
diff --git 
a/integration/grpc/src/test/java/org/apache/seata/integration/grpc/interceptor/server/ServerTransactionInterceptorTest.java
 
b/extensions/rpc/seata-grpc/src/test/java/org/apache/seata/integration/grpc/interceptor/server/ServerTransactionInterceptorTest.java
similarity index 100%
rename from 
integration/grpc/src/test/java/org/apache/seata/integration/grpc/interceptor/server/ServerTransactionInterceptorTest.java
rename to 
extensions/rpc/seata-grpc/src/test/java/org/apache/seata/integration/grpc/interceptor/server/ServerTransactionInterceptorTest.java
diff --git a/integration/grpc/src/test/proto/contextTest.proto 
b/extensions/rpc/seata-grpc/src/test/proto/contextTest.proto
similarity index 100%
rename from integration/grpc/src/test/proto/contextTest.proto
rename to extensions/rpc/seata-grpc/src/test/proto/contextTest.proto
diff --git a/integration/hsf/pom.xml b/extensions/rpc/seata-hsf/pom.xml
similarity index 90%
rename from integration/hsf/pom.xml
rename to extensions/rpc/seata-hsf/pom.xml
index a8361456fd..95d4aa6940 100644
--- a/integration/hsf/pom.xml
+++ b/extensions/rpc/seata-hsf/pom.xml
@@ -22,15 +22,15 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
     <parent>
         <groupId>org.apache.seata</groupId>
-        <artifactId>seata-parent</artifactId>
+        <artifactId>seata-rpc</artifactId>
         <version>${revision}</version>
-        <relativePath>../../pom.xml</relativePath>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <artifactId>seata-hsf</artifactId>
     <packaging>jar</packaging>
     <name>seata-hsf ${project.version}</name>
-    <description>EDAS hsf integration for Seata built with Maven</description>
+    <description>HSF integration for Seata built with Maven</description>
 
     <dependencies>
         <dependency>
@@ -44,6 +44,4 @@
             <scope>provided</scope>
         </dependency>
     </dependencies>
-
-
-</project>
+</project>
\ No newline at end of file
diff --git 
a/integration/hsf/src/main/java/org/apache/seata/integration/hsf/HsfTransactionConsumerFilter.java
 
b/extensions/rpc/seata-hsf/src/main/java/org/apache/seata/integration/hsf/HsfTransactionConsumerFilter.java
similarity index 100%
rename from 
integration/hsf/src/main/java/org/apache/seata/integration/hsf/HsfTransactionConsumerFilter.java
rename to 
extensions/rpc/seata-hsf/src/main/java/org/apache/seata/integration/hsf/HsfTransactionConsumerFilter.java
diff --git 
a/integration/hsf/src/main/java/org/apache/seata/integration/hsf/HsfTransactionProviderFilter.java
 
b/extensions/rpc/seata-hsf/src/main/java/org/apache/seata/integration/hsf/HsfTransactionProviderFilter.java
similarity index 100%
rename from 
integration/hsf/src/main/java/org/apache/seata/integration/hsf/HsfTransactionProviderFilter.java
rename to 
extensions/rpc/seata-hsf/src/main/java/org/apache/seata/integration/hsf/HsfTransactionProviderFilter.java
diff --git 
a/integration/hsf/src/main/resources/META-INF/services/com.taobao.hsf.invocation.filter.RPCFilter
 
b/extensions/rpc/seata-hsf/src/main/resources/META-INF/services/com.taobao.hsf.invocation.filter.RPCFilter
similarity index 100%
rename from 
integration/hsf/src/main/resources/META-INF/services/com.taobao.hsf.invocation.filter.RPCFilter
rename to 
extensions/rpc/seata-hsf/src/main/resources/META-INF/services/com.taobao.hsf.invocation.filter.RPCFilter
diff --git a/integration/http-jakarta/pom.xml 
b/extensions/rpc/seata-http-jakarta/pom.xml
similarity index 90%
rename from integration/http-jakarta/pom.xml
rename to extensions/rpc/seata-http-jakarta/pom.xml
index e458d8af1d..1b9fb5abc3 100644
--- a/integration/http-jakarta/pom.xml
+++ b/extensions/rpc/seata-http-jakarta/pom.xml
@@ -22,15 +22,15 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
     <parent>
         <groupId>org.apache.seata</groupId>
-        <artifactId>seata-parent</artifactId>
+        <artifactId>seata-rpc</artifactId>
         <version>${revision}</version>
-        <relativePath>../../pom.xml</relativePath>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <artifactId>seata-http-jakarta</artifactId>
     <packaging>jar</packaging>
     <name>seata-http-jakarta ${project.version}</name>
-    <description>http-jakarta-client integration for Seata built with 
Maven</description>
+    <description>http-jakarta integration for Seata built with 
Maven</description>
 
     <dependencies>
         <dependency>
@@ -51,4 +51,4 @@
             <scope>provided</scope>
         </dependency>
     </dependencies>
-</project>
+</project>
\ No newline at end of file
diff --git 
a/integration/http-jakarta/src/main/java/org/apache/seata/integration/http/JakartaSeataWebMvcConfigurer.java
 
b/extensions/rpc/seata-http-jakarta/src/main/java/org/apache/seata/integration/http/JakartaSeataWebMvcConfigurer.java
similarity index 84%
rename from 
integration/http-jakarta/src/main/java/org/apache/seata/integration/http/JakartaSeataWebMvcConfigurer.java
rename to 
extensions/rpc/seata-http-jakarta/src/main/java/org/apache/seata/integration/http/JakartaSeataWebMvcConfigurer.java
index 64d9cdce38..fc9f127105 100644
--- 
a/integration/http-jakarta/src/main/java/org/apache/seata/integration/http/JakartaSeataWebMvcConfigurer.java
+++ 
b/extensions/rpc/seata-http-jakarta/src/main/java/org/apache/seata/integration/http/JakartaSeataWebMvcConfigurer.java
@@ -14,15 +14,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.seata.integration.http;
+package org.apache.seata.integration.http.jakarta;
 
 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
 /**
  * The Jakarta Seata Web Mvc Configurer
  *
  */
-public class JakartaSeataWebMvcConfigurer extends SeataWebMvcConfigurer {
+public class JakartaSeataWebMvcConfigurer implements WebMvcConfigurer {
 
     @Override
     public void addInterceptors(InterceptorRegistry registry) {
diff --git 
a/integration/http/src/main/java/org/apache/seata/integration/http/TransactionPropagationInterceptor.java
 
b/extensions/rpc/seata-http-jakarta/src/main/java/org/apache/seata/integration/http/jakarta/JakartaTransactionPropagationInterceptor.java
similarity index 76%
copy from 
integration/http/src/main/java/org/apache/seata/integration/http/TransactionPropagationInterceptor.java
copy to 
extensions/rpc/seata-http-jakarta/src/main/java/org/apache/seata/integration/http/jakarta/JakartaTransactionPropagationInterceptor.java
index 7fb5168e6a..467ddbc086 100644
--- 
a/integration/http/src/main/java/org/apache/seata/integration/http/TransactionPropagationInterceptor.java
+++ 
b/extensions/rpc/seata-http-jakarta/src/main/java/org/apache/seata/integration/http/jakarta/JakartaTransactionPropagationInterceptor.java
@@ -14,36 +14,35 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.seata.integration.http;
+package org.apache.seata.integration.http.jakarta;
 
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 import org.apache.seata.common.util.StringUtils;
 import org.apache.seata.core.context.RootContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import org.springframework.web.servlet.HandlerInterceptor;
 
 /**
- * The SpringMVC Interceptor.
+ * The Jakarta SpringMVC Interceptor.
  *
  */
-public class TransactionPropagationInterceptor implements 
HandlerInterceptorAdapter {
+public class JakartaTransactionPropagationInterceptor implements 
HandlerInterceptor {
 
-    private static final Logger LOGGER = 
LoggerFactory.getLogger(TransactionPropagationInterceptor.class);
+    private static final Logger LOGGER = 
LoggerFactory.getLogger(JakartaTransactionPropagationInterceptor.class);
 
-    @Override
-    public boolean preHandle(HttpServletRequest request, HttpServletResponse 
response, Object handler) {
+    public boolean preHandle(HttpServletRequest request, HttpServletResponse 
response, Object handler)
+            throws Exception {
         String rpcXid = request.getHeader(RootContext.KEY_XID);
-        return this.bindXid(rpcXid);
+        return bindXid(rpcXid);
     }
 
-    @Override
     public void afterCompletion(HttpServletRequest request, 
HttpServletResponse response, Object handler, Exception ex)
             throws Exception {
         if (RootContext.inGlobalTransaction()) {
             String rpcXid = request.getHeader(RootContext.KEY_XID);
-            this.cleanXid(rpcXid);
+            cleanXid(rpcXid);
         }
     }
 
@@ -64,6 +63,8 @@ public class TransactionPropagationInterceptor implements 
HandlerInterceptorAdap
     }
 
     protected void cleanXid(String rpcXid) {
-        XidResource.cleanXid(rpcXid);
+        if (StringUtils.isNotBlank(rpcXid)) {
+            RootContext.unbind();
+        }
     }
 }
diff --git a/integration/http/pom.xml b/extensions/rpc/seata-http/pom.xml
similarity index 92%
rename from integration/http/pom.xml
rename to extensions/rpc/seata-http/pom.xml
index f3bb6c2874..6a78367b36 100644
--- a/integration/http/pom.xml
+++ b/extensions/rpc/seata-http/pom.xml
@@ -22,15 +22,15 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
     <parent>
         <groupId>org.apache.seata</groupId>
-        <artifactId>seata-parent</artifactId>
+        <artifactId>seata-rpc</artifactId>
         <version>${revision}</version>
-        <relativePath>../../pom.xml</relativePath>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <artifactId>seata-http</artifactId>
     <packaging>jar</packaging>
     <name>seata-http ${project.version}</name>
-    <description>http-client integration for Seata built with 
Maven</description>
+    <description>http integration for Seata built with Maven</description>
 
     <dependencies>
         <dependency>
@@ -67,6 +67,4 @@
         </dependency>
 
     </dependencies>
-
-
-</project>
+</project>
\ No newline at end of file
diff --git 
a/integration/http/src/main/java/org/apache/seata/integration/http/AbstractHttpExecutor.java
 
b/extensions/rpc/seata-http/src/main/java/org/apache/seata/integration/http/AbstractHttpExecutor.java
similarity index 100%
rename from 
integration/http/src/main/java/org/apache/seata/integration/http/AbstractHttpExecutor.java
rename to 
extensions/rpc/seata-http/src/main/java/org/apache/seata/integration/http/AbstractHttpExecutor.java
diff --git 
a/integration/http/src/main/java/org/apache/seata/integration/http/DefaultHttpExecutor.java
 
b/extensions/rpc/seata-http/src/main/java/org/apache/seata/integration/http/DefaultHttpExecutor.java
similarity index 100%
rename from 
integration/http/src/main/java/org/apache/seata/integration/http/DefaultHttpExecutor.java
rename to 
extensions/rpc/seata-http/src/main/java/org/apache/seata/integration/http/DefaultHttpExecutor.java
diff --git 
a/integration/http/src/main/java/org/apache/seata/integration/http/HandlerInterceptorAdapter.java
 
b/extensions/rpc/seata-http/src/main/java/org/apache/seata/integration/http/HandlerInterceptorAdapter.java
similarity index 100%
rename from 
integration/http/src/main/java/org/apache/seata/integration/http/HandlerInterceptorAdapter.java
rename to 
extensions/rpc/seata-http/src/main/java/org/apache/seata/integration/http/HandlerInterceptorAdapter.java
diff --git 
a/integration/http/src/main/java/org/apache/seata/integration/http/HttpExecutor.java
 
b/extensions/rpc/seata-http/src/main/java/org/apache/seata/integration/http/HttpExecutor.java
similarity index 100%
rename from 
integration/http/src/main/java/org/apache/seata/integration/http/HttpExecutor.java
rename to 
extensions/rpc/seata-http/src/main/java/org/apache/seata/integration/http/HttpExecutor.java
diff --git 
a/integration/http/src/main/java/org/apache/seata/integration/http/SeataWebMvcConfigurer.java
 
b/extensions/rpc/seata-http/src/main/java/org/apache/seata/integration/http/SeataWebMvcConfigurer.java
similarity index 100%
rename from 
integration/http/src/main/java/org/apache/seata/integration/http/SeataWebMvcConfigurer.java
rename to 
extensions/rpc/seata-http/src/main/java/org/apache/seata/integration/http/SeataWebMvcConfigurer.java
diff --git 
a/integration/http/src/main/java/org/apache/seata/integration/http/TransactionPropagationInterceptor.java
 
b/extensions/rpc/seata-http/src/main/java/org/apache/seata/integration/http/TransactionPropagationInterceptor.java
similarity index 100%
rename from 
integration/http/src/main/java/org/apache/seata/integration/http/TransactionPropagationInterceptor.java
rename to 
extensions/rpc/seata-http/src/main/java/org/apache/seata/integration/http/TransactionPropagationInterceptor.java
diff --git 
a/integration/http/src/main/java/org/apache/seata/integration/http/WebMvcConfigurerAdapter.java
 
b/extensions/rpc/seata-http/src/main/java/org/apache/seata/integration/http/WebMvcConfigurerAdapter.java
similarity index 100%
rename from 
integration/http/src/main/java/org/apache/seata/integration/http/WebMvcConfigurerAdapter.java
rename to 
extensions/rpc/seata-http/src/main/java/org/apache/seata/integration/http/WebMvcConfigurerAdapter.java
diff --git 
a/integration/http/src/main/java/org/apache/seata/integration/http/XidResource.java
 
b/extensions/rpc/seata-http/src/main/java/org/apache/seata/integration/http/XidResource.java
similarity index 100%
rename from 
integration/http/src/main/java/org/apache/seata/integration/http/XidResource.java
rename to 
extensions/rpc/seata-http/src/main/java/org/apache/seata/integration/http/XidResource.java
diff --git 
a/integration/http/src/test/java/org/apache/seata/integration/http/HttpTest.java
 
b/extensions/rpc/seata-http/src/test/java/org/apache/seata/integration/http/HttpTest.java
similarity index 100%
rename from 
integration/http/src/test/java/org/apache/seata/integration/http/HttpTest.java
rename to 
extensions/rpc/seata-http/src/test/java/org/apache/seata/integration/http/HttpTest.java
diff --git 
a/integration/http/src/test/java/org/apache/seata/integration/http/MockController.java
 
b/extensions/rpc/seata-http/src/test/java/org/apache/seata/integration/http/MockController.java
similarity index 100%
rename from 
integration/http/src/test/java/org/apache/seata/integration/http/MockController.java
rename to 
extensions/rpc/seata-http/src/test/java/org/apache/seata/integration/http/MockController.java
diff --git 
a/integration/http/src/test/java/org/apache/seata/integration/http/MockHttpExecuter.java
 
b/extensions/rpc/seata-http/src/test/java/org/apache/seata/integration/http/MockHttpExecuter.java
similarity index 100%
rename from 
integration/http/src/test/java/org/apache/seata/integration/http/MockHttpExecuter.java
rename to 
extensions/rpc/seata-http/src/test/java/org/apache/seata/integration/http/MockHttpExecuter.java
diff --git 
a/integration/http/src/test/java/org/apache/seata/integration/http/MockHttpServletRequest.java
 
b/extensions/rpc/seata-http/src/test/java/org/apache/seata/integration/http/MockHttpServletRequest.java
similarity index 100%
rename from 
integration/http/src/test/java/org/apache/seata/integration/http/MockHttpServletRequest.java
rename to 
extensions/rpc/seata-http/src/test/java/org/apache/seata/integration/http/MockHttpServletRequest.java
diff --git 
a/integration/http/src/test/java/org/apache/seata/integration/http/MockRequest.java
 
b/extensions/rpc/seata-http/src/test/java/org/apache/seata/integration/http/MockRequest.java
similarity index 100%
rename from 
integration/http/src/test/java/org/apache/seata/integration/http/MockRequest.java
rename to 
extensions/rpc/seata-http/src/test/java/org/apache/seata/integration/http/MockRequest.java
diff --git 
a/integration/http/src/test/java/org/apache/seata/integration/http/MockResponse.java
 
b/extensions/rpc/seata-http/src/test/java/org/apache/seata/integration/http/MockResponse.java
similarity index 100%
rename from 
integration/http/src/test/java/org/apache/seata/integration/http/MockResponse.java
rename to 
extensions/rpc/seata-http/src/test/java/org/apache/seata/integration/http/MockResponse.java
diff --git 
a/integration/http/src/test/java/org/apache/seata/integration/http/MockWebServer.java
 
b/extensions/rpc/seata-http/src/test/java/org/apache/seata/integration/http/MockWebServer.java
similarity index 100%
rename from 
integration/http/src/test/java/org/apache/seata/integration/http/MockWebServer.java
rename to 
extensions/rpc/seata-http/src/test/java/org/apache/seata/integration/http/MockWebServer.java
diff --git 
a/integration/http/src/test/java/org/apache/seata/integration/http/ServletMapping.java
 
b/extensions/rpc/seata-http/src/test/java/org/apache/seata/integration/http/ServletMapping.java
similarity index 100%
rename from 
integration/http/src/test/java/org/apache/seata/integration/http/ServletMapping.java
rename to 
extensions/rpc/seata-http/src/test/java/org/apache/seata/integration/http/ServletMapping.java
diff --git a/integration/motan/pom.xml b/extensions/rpc/seata-motan/pom.xml
similarity index 94%
rename from integration/motan/pom.xml
rename to extensions/rpc/seata-motan/pom.xml
index 46b6b4008a..b9a50146c8 100644
--- a/integration/motan/pom.xml
+++ b/extensions/rpc/seata-motan/pom.xml
@@ -22,9 +22,9 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
     <parent>
         <groupId>org.apache.seata</groupId>
-        <artifactId>seata-parent</artifactId>
+        <artifactId>seata-rpc</artifactId>
         <version>${revision}</version>
-        <relativePath>../../pom.xml</relativePath>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <artifactId>seata-motan</artifactId>
diff --git 
a/integration/motan/src/main/java/org/apache/seata/integration/motan/MotanTransactionFilter.java
 
b/extensions/rpc/seata-motan/src/main/java/org/apache/seata/integration/motan/MotanTransactionFilter.java
similarity index 100%
rename from 
integration/motan/src/main/java/org/apache/seata/integration/motan/MotanTransactionFilter.java
rename to 
extensions/rpc/seata-motan/src/main/java/org/apache/seata/integration/motan/MotanTransactionFilter.java
diff --git 
a/integration/motan/src/main/resources/META-INF/services/com.weibo.api.motan.filter.Filter
 
b/extensions/rpc/seata-motan/src/main/resources/META-INF/services/com.weibo.api.motan.filter.Filter
similarity index 100%
rename from 
integration/motan/src/main/resources/META-INF/services/com.weibo.api.motan.filter.Filter
rename to 
extensions/rpc/seata-motan/src/main/resources/META-INF/services/com.weibo.api.motan.filter.Filter
diff --git 
a/integration/motan/src/test/java/org/apache/seata/integration/motan/MotanTransactionFilterTest.java
 
b/extensions/rpc/seata-motan/src/test/java/org/apache/seata/integration/motan/MotanTransactionFilterTest.java
similarity index 100%
rename from 
integration/motan/src/test/java/org/apache/seata/integration/motan/MotanTransactionFilterTest.java
rename to 
extensions/rpc/seata-motan/src/test/java/org/apache/seata/integration/motan/MotanTransactionFilterTest.java
diff --git 
a/integration/motan/src/test/java/org/apache/seata/integration/motan/XIDService.java
 
b/extensions/rpc/seata-motan/src/test/java/org/apache/seata/integration/motan/XIDService.java
similarity index 100%
rename from 
integration/motan/src/test/java/org/apache/seata/integration/motan/XIDService.java
rename to 
extensions/rpc/seata-motan/src/test/java/org/apache/seata/integration/motan/XIDService.java
diff --git 
a/integration/motan/src/test/java/org/apache/seata/integration/motan/XIDServiceImpl.java
 
b/extensions/rpc/seata-motan/src/test/java/org/apache/seata/integration/motan/XIDServiceImpl.java
similarity index 100%
rename from 
integration/motan/src/test/java/org/apache/seata/integration/motan/XIDServiceImpl.java
rename to 
extensions/rpc/seata-motan/src/test/java/org/apache/seata/integration/motan/XIDServiceImpl.java
diff --git a/integration/rpc-core/pom.xml 
b/extensions/rpc/seata-rpc-core/pom.xml
similarity index 93%
rename from integration/rpc-core/pom.xml
rename to extensions/rpc/seata-rpc-core/pom.xml
index 9386b453e7..ba46385fe6 100644
--- a/integration/rpc-core/pom.xml
+++ b/extensions/rpc/seata-rpc-core/pom.xml
@@ -22,9 +22,9 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
     <parent>
         <groupId>org.apache.seata</groupId>
-        <artifactId>seata-parent</artifactId>
+        <artifactId>seata-rpc</artifactId>
         <version>${revision}</version>
-        <relativePath>../../pom.xml</relativePath>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <artifactId>seata-rpc-core</artifactId>
diff --git 
a/integration/rpc-core/src/main/java/org/apache/seata/integration/rpc/core/BaseRpcFilter.java
 
b/extensions/rpc/seata-rpc-core/src/main/java/org/apache/seata/integration/rpc/core/BaseRpcFilter.java
similarity index 100%
rename from 
integration/rpc-core/src/main/java/org/apache/seata/integration/rpc/core/BaseRpcFilter.java
rename to 
extensions/rpc/seata-rpc-core/src/main/java/org/apache/seata/integration/rpc/core/BaseRpcFilter.java
diff --git 
a/integration/rpc-core/src/main/java/org/apache/seata/integration/rpc/core/ConsumerRpcFilter.java
 
b/extensions/rpc/seata-rpc-core/src/main/java/org/apache/seata/integration/rpc/core/ConsumerRpcFilter.java
similarity index 100%
rename from 
integration/rpc-core/src/main/java/org/apache/seata/integration/rpc/core/ConsumerRpcFilter.java
rename to 
extensions/rpc/seata-rpc-core/src/main/java/org/apache/seata/integration/rpc/core/ConsumerRpcFilter.java
diff --git 
a/integration/rpc-core/src/main/java/org/apache/seata/integration/rpc/core/ProviderRpcFilter.java
 
b/extensions/rpc/seata-rpc-core/src/main/java/org/apache/seata/integration/rpc/core/ProviderRpcFilter.java
similarity index 100%
rename from 
integration/rpc-core/src/main/java/org/apache/seata/integration/rpc/core/ProviderRpcFilter.java
rename to 
extensions/rpc/seata-rpc-core/src/main/java/org/apache/seata/integration/rpc/core/ProviderRpcFilter.java
diff --git a/integration/sofa-rpc/pom.xml 
b/extensions/rpc/seata-sofa-rpc/pom.xml
similarity index 95%
rename from integration/sofa-rpc/pom.xml
rename to extensions/rpc/seata-sofa-rpc/pom.xml
index 041f73d5a3..c51492f760 100644
--- a/integration/sofa-rpc/pom.xml
+++ b/extensions/rpc/seata-sofa-rpc/pom.xml
@@ -22,9 +22,9 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
     <parent>
         <groupId>org.apache.seata</groupId>
-        <artifactId>seata-parent</artifactId>
+        <artifactId>seata-rpc</artifactId>
         <version>${revision}</version>
-        <relativePath>../../pom.xml</relativePath>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <artifactId>seata-sofa-rpc</artifactId>
@@ -54,5 +54,4 @@
             <scope>test</scope>
         </dependency>
     </dependencies>
-
-</project>
+</project>
\ No newline at end of file
diff --git 
a/integration/sofa-rpc/src/main/java/org/apache/seata/integration/sofa/rpc/TransactionContextConsumerFilter.java
 
b/extensions/rpc/seata-sofa-rpc/src/main/java/org/apache/seata/integration/sofa/rpc/TransactionContextConsumerFilter.java
similarity index 100%
rename from 
integration/sofa-rpc/src/main/java/org/apache/seata/integration/sofa/rpc/TransactionContextConsumerFilter.java
rename to 
extensions/rpc/seata-sofa-rpc/src/main/java/org/apache/seata/integration/sofa/rpc/TransactionContextConsumerFilter.java
diff --git 
a/integration/sofa-rpc/src/main/java/org/apache/seata/integration/sofa/rpc/TransactionContextProviderFilter.java
 
b/extensions/rpc/seata-sofa-rpc/src/main/java/org/apache/seata/integration/sofa/rpc/TransactionContextProviderFilter.java
similarity index 100%
rename from 
integration/sofa-rpc/src/main/java/org/apache/seata/integration/sofa/rpc/TransactionContextProviderFilter.java
rename to 
extensions/rpc/seata-sofa-rpc/src/main/java/org/apache/seata/integration/sofa/rpc/TransactionContextProviderFilter.java
diff --git 
a/integration/sofa-rpc/src/main/resources/META-INF/services/com.alipay.sofa.rpc.filter.Filter
 
b/extensions/rpc/seata-sofa-rpc/src/main/resources/META-INF/services/com.alipay.sofa.rpc.filter.Filter
similarity index 100%
rename from 
integration/sofa-rpc/src/main/resources/META-INF/services/com.alipay.sofa.rpc.filter.Filter
rename to 
extensions/rpc/seata-sofa-rpc/src/main/resources/META-INF/services/com.alipay.sofa.rpc.filter.Filter
diff --git 
a/integration/sofa-rpc/src/test/java/org/apache/seata/integration/sofa/rpc/HelloService.java
 
b/extensions/rpc/seata-sofa-rpc/src/test/java/org/apache/seata/integration/sofa/rpc/HelloService.java
similarity index 100%
rename from 
integration/sofa-rpc/src/test/java/org/apache/seata/integration/sofa/rpc/HelloService.java
rename to 
extensions/rpc/seata-sofa-rpc/src/test/java/org/apache/seata/integration/sofa/rpc/HelloService.java
diff --git 
a/integration/sofa-rpc/src/test/java/org/apache/seata/integration/sofa/rpc/HelloServiceImpl.java
 
b/extensions/rpc/seata-sofa-rpc/src/test/java/org/apache/seata/integration/sofa/rpc/HelloServiceImpl.java
similarity index 100%
rename from 
integration/sofa-rpc/src/test/java/org/apache/seata/integration/sofa/rpc/HelloServiceImpl.java
rename to 
extensions/rpc/seata-sofa-rpc/src/test/java/org/apache/seata/integration/sofa/rpc/HelloServiceImpl.java
diff --git 
a/integration/sofa-rpc/src/test/java/org/apache/seata/integration/sofa/rpc/HelloServiceProxy.java
 
b/extensions/rpc/seata-sofa-rpc/src/test/java/org/apache/seata/integration/sofa/rpc/HelloServiceProxy.java
similarity index 100%
rename from 
integration/sofa-rpc/src/test/java/org/apache/seata/integration/sofa/rpc/HelloServiceProxy.java
rename to 
extensions/rpc/seata-sofa-rpc/src/test/java/org/apache/seata/integration/sofa/rpc/HelloServiceProxy.java
diff --git 
a/integration/sofa-rpc/src/test/java/org/apache/seata/integration/sofa/rpc/TransactionContextFilterTest.java
 
b/extensions/rpc/seata-sofa-rpc/src/test/java/org/apache/seata/integration/sofa/rpc/TransactionContextFilterTest.java
similarity index 100%
rename from 
integration/sofa-rpc/src/test/java/org/apache/seata/integration/sofa/rpc/TransactionContextFilterTest.java
rename to 
extensions/rpc/seata-sofa-rpc/src/test/java/org/apache/seata/integration/sofa/rpc/TransactionContextFilterTest.java
diff --git 
a/integration/http-jakarta/src/main/java/org/apache/seata/integration/http/JakartaTransactionPropagationInterceptor.java
 
b/integration/http-jakarta/src/main/java/org/apache/seata/integration/http/JakartaTransactionPropagationInterceptor.java
deleted file mode 100644
index 4058202763..0000000000
--- 
a/integration/http-jakarta/src/main/java/org/apache/seata/integration/http/JakartaTransactionPropagationInterceptor.java
+++ /dev/null
@@ -1,48 +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.integration.http;
-
-import org.apache.seata.core.context.RootContext;
-
-/**
- * The Jakarta SpringMVC Interceptor.
- *
- */
-public class JakartaTransactionPropagationInterceptor extends 
TransactionPropagationInterceptor {
-
-    // @Override
-    public boolean preHandle(
-            jakarta.servlet.http.HttpServletRequest request,
-            jakarta.servlet.http.HttpServletResponse response,
-            Object handler) {
-        String rpcXid = request.getHeader(RootContext.KEY_XID);
-        return this.bindXid(rpcXid);
-    }
-
-    // @Override
-    public void afterCompletion(
-            jakarta.servlet.http.HttpServletRequest request,
-            jakarta.servlet.http.HttpServletResponse response,
-            Object handler,
-            Exception ex)
-            throws Exception {
-        if (RootContext.inGlobalTransaction()) {
-            String rpcXid = request.getHeader(RootContext.KEY_XID);
-            this.cleanXid(rpcXid);
-        }
-    }
-}
diff --git a/pom.xml b/pom.xml
index be6566bea4..0d8e7c08f7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -44,19 +44,9 @@
         <module>compatible</module>
         <module>dependencies</module>
         <module>discovery</module>
-        <module>integration/rpc-core</module>
-        <module>integration/dubbo</module>
-        <module>integration/dubbo-alibaba</module>
-        <module>integration/sofa-rpc</module>
-        <module>integration/motan</module>
-        <module>integration/grpc</module>
-        <module>integration/http</module>
-        <module>integration/http-jakarta</module>
-        <module>integration/hsf</module>
-        <module>integration/brpc</module>
+        <module>extensions</module>
         <module>rm</module>
         <module>rm-datasource</module>
-        <module>rocketmq</module>
         <module>spring</module>
         <module>tcc</module>
         <module>mock-server</module>
@@ -69,7 +59,6 @@
         <module>saga</module>
         <module>sqlparser</module>
         <module>server</module>
-        <module>ext/apm-seata-skywalking-plugin</module>
         <module>integration-tx-api</module>
         <module>namingserver</module>
         <!--<module>seata-plugin</module>-->
@@ -297,6 +286,34 @@
         <!-- profile: source-release -->
         <profile>
             <id>source-release</id>
+            <modules>
+                <module>build</module>
+                <module>all</module>
+                <module>bom</module>
+                <module>common</module>
+                <module>config</module>
+                <module>console</module>
+                <module>core</module>
+                <module>compatible</module>
+                <module>dependencies</module>
+                <module>discovery</module>
+                <module>rm</module>
+                <module>rm-datasource</module>
+                <module>spring</module>
+                <module>tcc</module>
+                <module>mock-server</module>
+                <module>tm</module>
+                <module>metrics</module>
+                <module>serializer</module>
+                <module>seata-spring-boot-starter</module>
+                <module>seata-spring-autoconfigure</module>
+                <module>compressor</module>
+                <module>saga</module>
+                <module>sqlparser</module>
+                <module>server</module>
+                <module>integration-tx-api</module>
+                <module>namingserver</module>
+            </modules>
             <build>
                 <plugins>
                     <plugin>
diff --git 
a/seata-spring-boot-starter/src/main/java/org/apache/seata/spring/boot/autoconfigure/SeataHttpAutoConfiguration.java
 
b/seata-spring-boot-starter/src/main/java/org/apache/seata/spring/boot/autoconfigure/SeataHttpAutoConfiguration.java
index 393be677e9..f8b8789320 100644
--- 
a/seata-spring-boot-starter/src/main/java/org/apache/seata/spring/boot/autoconfigure/SeataHttpAutoConfiguration.java
+++ 
b/seata-spring-boot-starter/src/main/java/org/apache/seata/spring/boot/autoconfigure/SeataHttpAutoConfiguration.java
@@ -16,8 +16,8 @@
  */
 package org.apache.seata.spring.boot.autoconfigure;
 
-import org.apache.seata.integration.http.JakartaSeataWebMvcConfigurer;
 import org.apache.seata.integration.http.SeataWebMvcConfigurer;
+import org.apache.seata.integration.http.jakarta.JakartaSeataWebMvcConfigurer;
 import org.springframework.boot.autoconfigure.AutoConfigureOrder;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
 import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
diff --git 
a/seata-spring-boot-starter/src/test/java/org/apache/seata/spring/boot/autoconfigure/SeataHttpAutoConfigurationTest.java
 
b/seata-spring-boot-starter/src/test/java/org/apache/seata/spring/boot/autoconfigure/SeataHttpAutoConfigurationTest.java
index cce2d0786e..0bbb48322c 100644
--- 
a/seata-spring-boot-starter/src/test/java/org/apache/seata/spring/boot/autoconfigure/SeataHttpAutoConfigurationTest.java
+++ 
b/seata-spring-boot-starter/src/test/java/org/apache/seata/spring/boot/autoconfigure/SeataHttpAutoConfigurationTest.java
@@ -16,8 +16,8 @@
  */
 package org.apache.seata.spring.boot.autoconfigure;
 
-import org.apache.seata.integration.http.JakartaSeataWebMvcConfigurer;
 import org.apache.seata.integration.http.SeataWebMvcConfigurer;
+import org.apache.seata.integration.http.jakarta.JakartaSeataWebMvcConfigurer;
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.autoconfigure.AutoConfigurations;
 import org.springframework.boot.test.context.FilteredClassLoader;


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

Reply via email to