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

zhangliang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new adcf8c130b2 Add optional module for Jakarta Transactions impl of 
Jakarta EE 9 Spec (#35810)
adcf8c130b2 is described below

commit adcf8c130b2a151b8ef2ec391bdea047d83924ad
Author: Ling Hengqian <[email protected]>
AuthorDate: Sun Aug 3 11:19:59 2025 +0800

    Add optional module for Jakarta Transactions impl of Jakarta EE 9 Spec 
(#35810)
---
 RELEASE-NOTES.md                                   |   1 +
 .../jakarta-transactions/_index.cn.md              | 292 ++++++++++++++++++++
 .../jakarta-transactions/_index.en.md              | 301 +++++++++++++++++++++
 .../jdbc-driver/spring-boot/_index.cn.md           |  15 +-
 .../jdbc-driver/spring-boot/_index.en.md           |  15 +-
 .../12.10.1.jre8/reachability-metadata.json        |  10 +
 kernel/transaction/type/pom.xml                    |   1 +
 kernel/transaction/type/xa-jakarta/core/pom.xml    | 103 +++++++
 kernel/transaction/type/{ => xa-jakarta}/pom.xml   |  19 +-
 .../type/xa-jakarta/provider/atomikos/pom.xml      | 111 ++++++++
 .../type/xa-jakarta/provider/narayana/pom.xml      | 117 ++++++++
 .../type/{ => xa-jakarta/provider}/pom.xml         |   9 +-
 kernel/transaction/type/xa-jakarta/spi/pom.xml     | 103 +++++++
 pom.xml                                            |  13 +-
 14 files changed, 1084 insertions(+), 26 deletions(-)

diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md
index 51f53c705e9..9e6736aa341 100644
--- a/RELEASE-NOTES.md
+++ b/RELEASE-NOTES.md
@@ -25,6 +25,7 @@
 1. Decouple features as pluggable 
[#36086](https://github.com/apache/shardingsphere/pull/36086)
 1. Decouple mode repositories as pluggable 
[#36087](https://github.com/apache/shardingsphere/pull/36087)
 1. Firebird: Support Firebird Proxy 
[#35937](https://github.com/apache/shardingsphere/pull/35937)
+1. Add optional module for Jakarta Transactions impl of Jakarta EE 9 Spec 
[#35810](https://github.com/apache/shardingsphere/pull/35810)
 
 ### Enhancements
 
diff --git 
a/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/jakarta-transactions/_index.cn.md
 
b/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/jakarta-transactions/_index.cn.md
new file mode 100644
index 00000000000..ca0726c8e55
--- /dev/null
+++ 
b/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/jakarta-transactions/_index.cn.md
@@ -0,0 +1,292 @@
++++
+title = "Jakarta EE 9 Spec 的 Jakarta Transactions"
+weight = 6
++++
+
+## 背景信息
+
+本页文档所涉及的可选模块均采用 Jakarta EE 9 Spec 的 Jakarta Transactions,兼容 Jakarta EE 
9,Jakarta EE 9.1 或 Jakarta EE 10。
+本页文档所涉及的可选模块,旨在解决可选模块 `shardingsphere-transaction-xa` 无法在 Spring Boot 
3,Quarkus 3,
+Micronaut Framework 4 或 Helidon 3 等其他基于 Jakarta EE 9+ 的 Web Framework 下使用的问题。
+
+本页文档所涉及的可选模块与 `shardingsphere-transaction-xa` 的约定配置基本一致。
+但相关可选模块无法与 `shardingsphere-transaction-xa` 在同一 classpath,或在同一 Maven 模块使用。
+Java EE 8 或 Jakarta EE 8 不属于本页文档所涉及的可选模块的支持范围,对于类似的情况应考虑使用 
`shardingsphere-transaction-xa`。
+
+## JDBC
+
+### Atomikos
+
+#### 前提条件
+
+要在 ShardingSphere 的配置文件中配置 Atomikos 作为 Jakarta EE 9 Spec 的 Jakarta 
Transactions 实现,
+可能的 Maven 依赖关系如下,
+
+```xml
+<dependencies>
+    <dependency>
+        <groupId>org.apache.shardingsphere</groupId>
+        <artifactId>shardingsphere-jdbc</artifactId>
+        <version>${shardingsphere.version}</version>
+        <exclusions>
+            <exclusion>
+                <groupId>jakarta.transaction</groupId>
+                <artifactId>jakarta.transaction-api</artifactId>
+            </exclusion>
+        </exclusions>
+    </dependency>
+    <dependency>
+        <groupId>org.apache.shardingsphere</groupId>
+        <artifactId>shardingsphere-transaction-xa-jakarta-core</artifactId>
+        <version>${shardingsphere.version}</version>
+    </dependency>
+    <dependency>
+        <groupId>jakarta.transaction</groupId>
+        <artifactId>jakarta.transaction-api</artifactId>
+        <version>2.0.0</version>
+    </dependency>
+</dependencies>
+```
+
+#### 配置
+
+与 `org.apache.shardingsphere:shardingsphere-transaction-xa-core` 一致,可以通过在项目的 
classpath 中添加 `jta.properties` 来定制化 Atomikos 配置项。
+
+在 ShardingSphere 的配置文件中,可能的配置项如下,
+
+```yaml
+transaction:
+  defaultType: XA
+  providerType: Atomikos
+```
+
+### Narayana
+
+要在 ShardingSphere 的配置文件中配置 Narayana 作为 Jakarta EE 9 Spec 的 Jakarta 
Transactions 实现,
+可能的 Maven 依赖关系如下,
+
+```xml
+<dependencies>
+    <dependency>
+        <groupId>org.apache.shardingsphere</groupId>
+        <artifactId>shardingsphere-jdbc</artifactId>
+        <version>${shardingsphere.version}</version>
+        <exclusions>
+            <exclusion>
+                <groupId>jakarta.transaction</groupId>
+                <artifactId>jakarta.transaction-api</artifactId>
+            </exclusion>
+        </exclusions>
+    </dependency>
+    <dependency>
+        <groupId>org.apache.shardingsphere</groupId>
+        <artifactId>shardingsphere-transaction-xa-jakarta-core</artifactId>
+        <version>${shardingsphere.version}</version>
+    </dependency>
+    <dependency>
+        <groupId>org.apache.shardingsphere</groupId>
+        <artifactId>shardingsphere-transaction-xa-jakarta-narayana</artifactId>
+        <version>${shardingsphere.version}</version>
+    </dependency>
+    <dependency>
+        <groupId>jakarta.transaction</groupId>
+        <artifactId>jakarta.transaction-api</artifactId>
+        <version>2.0.0</version>
+    </dependency>
+    <dependency>
+        <groupId>org.jboss.narayana.jta</groupId>
+        <artifactId>narayana-jta-jakarta</artifactId>
+        <version>5.12.7.Final</version>
+    </dependency>
+    <dependency>
+        <groupId>org.jboss.narayana.jts</groupId>
+        <artifactId>narayana-jts-integration-jakarta</artifactId>
+        <version>5.12.7.Final</version>
+    </dependency>
+    <dependency>
+        <groupId>org.jboss.logging</groupId>
+        <artifactId>jboss-logging</artifactId>
+        <version>3.4.3.Final</version>
+    </dependency>
+</dependencies>
+```
+
+#### 配置
+
+与 `org.apache.shardingsphere:shardingsphere-transaction-xa-narayana` 
一致,可以通过在项目的 classpath 中添加 `jbossts-properties.xml` 来定制化 Atomikos 配置项。
+
+对于 `jbossts-properties.xml` 的最小配置,ShardingSphere 要求定义 Narayana 的 
`CoreEnvironmentBean.nodeIdentifier` 属性。 
+如果 Narayana 的 object store 并非在不同的 Narayana 实例之间共享,你可以将此值设置为 `1`。一个可能的 
`jbossts-properties.xml` 配置如下,
+
+```xml
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd";>
+<properties>
+    <entry key="CoreEnvironmentBean.nodeIdentifier">1</entry>
+</properties>
+```
+
+在特定情况下,开发者可能不会希望使用 XML 文件,那开发者需要在自有 Java 项目的启动类手动设置 
`CoreEnvironmentBean.nodeIdentifier`。 可参考如下方法调用 Narayana Java API。
+
+```java
+import com.arjuna.ats.arjuna.common.CoreEnvironmentBeanException;
+import com.arjuna.ats.arjuna.common.arjPropertyManager;
+
+public class ExampleUtils {
+    public void initNarayanaInstance() {
+        try {
+            arjPropertyManager.getCoreEnvironmentBean().setNodeIdentifier("1");
+        } catch (CoreEnvironmentBeanException e) {
+            throw new RuntimeException(e);
+        }
+    }
+}
+```
+
+在 ShardingSphere 的配置文件中,可能的配置项如下,
+
+```yaml
+transaction:
+  defaultType: XA
+  providerType: Narayana
+```
+
+## Proxy
+
+注意:本小节内容可能在未来进行更改,以简化使用。以下内容仅作为 ShardingSphere 默认 Maven Profile 的构建配置的参考。
+
+引入前提,ShardingSphere Proxy 默认情况下使用 Jakarta EE 8 Spec 的 Jakarta Transactions 实现。
+
+### Atomikos
+
+如果需要使用 Jakarta EE 9 Spec 的 Jakarta Transactions 的 Atomikos 实现,
+需要更改源代码,并手动编译 binary 或 Linux Container。
+
+对于 `distribution/proxy/pom.xml` 文件的如下部分,
+
+```xml
+<dependencies>
+    <dependency>
+        <groupId>org.apache.shardingsphere</groupId>
+        <artifactId>shardingsphere-proxy-bootstrap</artifactId>
+        <version>${project.version}</version>
+    </dependency>
+</dependencies>
+```
+
+需更改为,
+
+```xml
+<properties>
+    <jakarta.jakartaee-bom.version>9.0.0</jakarta.jakartaee-bom.version>
+    <glassfish-jaxb.version>3.0.2</glassfish-jaxb.version>
+    <jboss-logging.version>3.4.3.Final</jboss-logging.version>
+</properties>
+
+<dependencies>
+    <dependency>
+        <groupId>org.apache.shardingsphere</groupId>
+        <artifactId>shardingsphere-proxy-bootstrap</artifactId>
+        <version>${project.version}</version>
+        <exclusions>
+            <exclusion>
+                <groupId>org.apache.shardingsphere</groupId>
+                <artifactId>shardingsphere-transaction-xa-core</artifactId>
+            </exclusion>
+        </exclusions>
+    </dependency>
+    <dependency>
+        <groupId>org.apache.shardingsphere</groupId>
+        <artifactId>shardingsphere-transaction-xa-jakarta-core</artifactId>
+        <version>${project.version}</version>
+    </dependency>
+</dependencies>
+```
+
+对于 Proxy 的 `global.yaml`, 可能的配置项如下,
+
+```yaml
+transaction:
+  defaultType: XA
+  providerType: Atomikos
+```
+
+### Narayana
+
+如果需要使用 Jakarta EE 9 Spec 的 Jakarta Transactions 的 Narayana 实现,需要更改源代码,并手动编译 
binary 或 Linux Container。
+
+对于 `distribution/proxy/pom.xml` 文件的如下部分,
+
+```xml
+<dependencies>
+    <dependency>
+        <groupId>org.apache.shardingsphere</groupId>
+        <artifactId>shardingsphere-proxy-bootstrap</artifactId>
+        <version>${project.version}</version>
+    </dependency>
+</dependencies>
+```
+
+需更改为,
+
+```xml
+<properties>
+    <jakarta.jakartaee-bom.version>9.0.0</jakarta.jakartaee-bom.version>
+    <glassfish-jaxb.version>3.0.2</glassfish-jaxb.version>
+    <jboss-logging.version>3.4.3.Final</jboss-logging.version>
+</properties>
+
+<dependencies>
+    <dependency>
+        <groupId>org.apache.shardingsphere</groupId>
+        <artifactId>shardingsphere-proxy-bootstrap</artifactId>
+        <version>${project.version}</version>
+        <exclusions>
+            <exclusion>
+                <groupId>org.apache.shardingsphere</groupId>
+                <artifactId>shardingsphere-transaction-xa-core</artifactId>
+            </exclusion>
+        </exclusions>
+    </dependency>
+    <dependency>
+        <groupId>org.apache.shardingsphere</groupId>
+        <artifactId>shardingsphere-transaction-xa-jakarta-core</artifactId>
+        <version>${project.version}</version>
+    </dependency>
+    <dependency>
+        <groupId>org.apache.shardingsphere</groupId>
+        <artifactId>shardingsphere-transaction-xa-jakarta-narayana</artifactId>
+        <version>${shardingsphere.version}</version>
+    </dependency>
+    <dependency>
+        <groupId>jakarta.transaction</groupId>
+        <artifactId>jakarta.transaction-api</artifactId>
+    </dependency>
+    <dependency>
+        <groupId>org.jboss.narayana.jta</groupId>
+        <artifactId>narayana-jta-jakarta</artifactId>
+    </dependency>
+    <dependency>
+        <groupId>org.jboss.narayana.jts</groupId>
+        <artifactId>narayana-jts-integration-jakarta</artifactId>
+    </dependency>
+    <dependency>
+        <groupId>org.jboss.logging</groupId>
+        <artifactId>jboss-logging</artifactId>
+    </dependency>
+</dependencies>
+```
+
+对于 Proxy 的 `global.yaml`, 可能的配置项如下,
+
+```yaml
+transaction:
+  defaultType: XA
+  providerType: Narayana
+```
+
+对于最小配置,仍需通过与 `global.yaml` 处于同一目录的 `jbossts-properties.xml` 配置 Narayana 的 
`CoreEnvironmentBean.nodeIdentifier` 属性。
+
+## Proxy Native
+
+处理方式与 ShardingSphere Proxy 一致。
diff --git 
a/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/jakarta-transactions/_index.en.md
 
b/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/jakarta-transactions/_index.en.md
new file mode 100644
index 00000000000..c8af97279a9
--- /dev/null
+++ 
b/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/jakarta-transactions/_index.en.md
@@ -0,0 +1,301 @@
++++
+title = "Jakarta Transactions of Jakarta EE 9 Spec"
+weight = 6
++++
+
+## Background Information
+
+The optional modules mentioned in this document all use Jakarta Transactions 
of Jakarta EE 9 Spec and are compatible with Jakarta EE 9, 
+Jakarta EE 9.1 or Jakarta EE 10.
+The optional modules mentioned in this document are designed to solve the 
problem that the optional module `shardingsphere-transaction-xa` cannot be used 
in other Web Frameworks based on Jakarta EE 9+, 
+such as Spring Boot 3, Quarkus 3, Micronaut Framework 4 or Helidon 3.
+
+The optional modules mentioned in this document are basically consistent with 
the agreed configuration of `shardingsphere-transaction-xa`.
+However, the relevant optional modules cannot be used in the same classpath or 
in the same Maven module as `shardingsphere-transaction-xa`.
+Java EE 8 or Jakarta EE 8 are not supported by the optional modules mentioned 
in this document. For similar situations, you should consider using 
`shardingsphere-transaction-xa`.
+
+## JDBC
+
+### Atomikos
+
+#### Prerequisites
+
+To configure Atomikos as the Jakarta Transactions implementation of the 
Jakarta EE 9 Spec in the ShardingSphere configuration file,
+the possible Maven dependencies are as follows,
+
+```xml
+<dependencies>
+    <dependency>
+        <groupId>org.apache.shardingsphere</groupId>
+        <artifactId>shardingsphere-jdbc</artifactId>
+        <version>${shardingsphere.version}</version>
+        <exclusions>
+            <exclusion>
+                <groupId>jakarta.transaction</groupId>
+                <artifactId>jakarta.transaction-api</artifactId>
+            </exclusion>
+        </exclusions>
+    </dependency>
+    <dependency>
+        <groupId>org.apache.shardingsphere</groupId>
+        <artifactId>shardingsphere-transaction-xa-jakarta-core</artifactId>
+        <version>${shardingsphere.version}</version>
+    </dependency>
+    <dependency>
+        <groupId>jakarta.transaction</groupId>
+        <artifactId>jakarta.transaction-api</artifactId>
+        <version>2.0.0</version>
+    </dependency>
+</dependencies>
+```
+
+#### Configuration
+
+As with `org.apache.shardingsphere:shardingsphere-transaction-xa-core`, 
+you can customize Atomikos configuration items by adding `jta.properties` to 
the project's classpath.
+
+In the ShardingSphere configuration file, possible configuration items are as 
follows,
+
+```yaml
+transaction:
+  defaultType: XA
+  providerType: Atomikos
+```
+
+### Narayana
+
+To configure Narayana as the Jakarta Transactions implementation of the 
Jakarta EE 9 Spec in ShardingSphere's configuration file,
+the possible Maven dependencies are as follows,
+
+```xml
+<dependencies>
+    <dependency>
+        <groupId>org.apache.shardingsphere</groupId>
+        <artifactId>shardingsphere-jdbc</artifactId>
+        <version>${shardingsphere.version}</version>
+        <exclusions>
+            <exclusion>
+                <groupId>jakarta.transaction</groupId>
+                <artifactId>jakarta.transaction-api</artifactId>
+            </exclusion>
+        </exclusions>
+    </dependency>
+    <dependency>
+        <groupId>org.apache.shardingsphere</groupId>
+        <artifactId>shardingsphere-transaction-xa-jakarta-core</artifactId>
+        <version>${shardingsphere.version}</version>
+    </dependency>
+    <dependency>
+        <groupId>org.apache.shardingsphere</groupId>
+        <artifactId>shardingsphere-transaction-xa-jakarta-narayana</artifactId>
+        <version>${shardingsphere.version}</version>
+    </dependency>
+    <dependency>
+        <groupId>jakarta.transaction</groupId>
+        <artifactId>jakarta.transaction-api</artifactId>
+        <version>2.0.0</version>
+    </dependency>
+    <dependency>
+        <groupId>org.jboss.narayana.jta</groupId>
+        <artifactId>narayana-jta-jakarta</artifactId>
+        <version>5.12.7.Final</version>
+    </dependency>
+    <dependency>
+        <groupId>org.jboss.narayana.jts</groupId>
+        <artifactId>narayana-jts-integration-jakarta</artifactId>
+        <version>5.12.7.Final</version>
+    </dependency>
+    <dependency>
+        <groupId>org.jboss.logging</groupId>
+        <artifactId>jboss-logging</artifactId>
+        <version>3.4.3.Final</version>
+    </dependency>
+</dependencies>
+```
+
+#### Configuration
+
+In line with 
`org.apache.shardingsphere:shardingsphere-transaction-xa-narayana`, 
+Atomikos configuration items can be customized by adding 
`jbossts-properties.xml` to the project's classpath.
+
+For the minimal configuration of `jbossts-properties.xml`, ShardingSphere 
requires the definition of Narayana's `CoreEnvironmentBean.nodeIdentifier` 
property.
+If Narayana's object store is not shared between different Narayana instances, 
you can set this value to `1`. 
+A possible `jbossts-properties.xml` configuration is as follows,
+
+```xml
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd";>
+<properties>
+    <entry key="CoreEnvironmentBean.nodeIdentifier">1</entry>
+</properties>
+```
+
+In certain cases, developers may not want to use XML files, 
+then developers need to manually set `CoreEnvironmentBean.nodeIdentifier` in 
the startup class of their own Java project. 
+You can refer to the following method to call the Narayana Java API.
+
+```java
+import com.arjuna.ats.arjuna.common.CoreEnvironmentBeanException;
+import com.arjuna.ats.arjuna.common.arjPropertyManager;
+
+public class ExampleUtils {
+    public void initNarayanaInstance() {
+        try {
+            arjPropertyManager.getCoreEnvironmentBean().setNodeIdentifier("1");
+        } catch (CoreEnvironmentBeanException e) {
+            throw new RuntimeException(e);
+        }
+    }
+}
+```
+
+In the ShardingSphere configuration file, possible configuration items are as 
follows:
+
+```yaml
+transaction:
+  defaultType: XA
+  providerType: Narayana
+```
+
+## Proxy
+
+Note: This section may be changed in the future to simplify usage. 
+The following content is only a reference for the build configuration of 
ShardingSphere's default Maven Profile.
+
+Introduction premise, ShardingSphere Proxy uses the Jakarta Transactions 
implementation of the Jakarta EE 8 Spec by default.
+
+### Atomikos
+
+If you need to use the Atomikos implementation of Jakarta Transactions of the 
Jakarta EE 9 Spec,
+you need to change the source code and manually compile the binary or Linux 
Container.
+
+For the following part of the `distribution/proxy/pom.xml` file,
+
+```xml
+<dependencies>
+    <dependency>
+        <groupId>org.apache.shardingsphere</groupId>
+        <artifactId>shardingsphere-proxy-bootstrap</artifactId>
+        <version>${project.version}</version>
+    </dependency>
+</dependencies>
+```
+
+Need to be changed to,
+
+```xml
+<properties>
+    <jakarta.jakartaee-bom.version>9.0.0</jakarta.jakartaee-bom.version>
+    <glassfish-jaxb.version>3.0.2</glassfish-jaxb.version>
+    <jboss-logging.version>3.4.3.Final</jboss-logging.version>
+</properties>
+
+<dependencies>
+    <dependency>
+        <groupId>org.apache.shardingsphere</groupId>
+        <artifactId>shardingsphere-proxy-bootstrap</artifactId>
+        <version>${project.version}</version>
+        <exclusions>
+            <exclusion>
+                <groupId>org.apache.shardingsphere</groupId>
+                <artifactId>shardingsphere-transaction-xa-core</artifactId>
+            </exclusion>
+        </exclusions>
+    </dependency>
+    <dependency>
+        <groupId>org.apache.shardingsphere</groupId>
+        <artifactId>shardingsphere-transaction-xa-jakarta-core</artifactId>
+        <version>${project.version}</version>
+    </dependency>
+</dependencies>
+```
+
+For Proxy's `global.yaml`, possible configuration items are as follows,
+
+```yaml
+transaction:
+  defaultType: XA
+  providerType: Atomikos
+```
+
+### Narayana
+
+If you need to use the Narayana implementation of Jakarta Transactions with 
the Jakarta EE 9 Spec, 
+you need to modify the source code and manually compile the binary or Linux 
Container.
+
+For the following part of the `distribution/proxy/pom.xml` file,
+
+```xml
+<dependencies>
+    <dependency>
+        <groupId>org.apache.shardingsphere</groupId>
+        <artifactId>shardingsphere-proxy-bootstrap</artifactId>
+        <version>${project.version}</version>
+    </dependency>
+</dependencies>
+```
+
+Need to be changed to,
+
+```xml
+<properties>
+    <jakarta.jakartaee-bom.version>9.0.0</jakarta.jakartaee-bom.version>
+    <glassfish-jaxb.version>3.0.2</glassfish-jaxb.version>
+    <jboss-logging.version>3.4.3.Final</jboss-logging.version>
+</properties>
+
+<dependencies>
+    <dependency>
+        <groupId>org.apache.shardingsphere</groupId>
+        <artifactId>shardingsphere-proxy-bootstrap</artifactId>
+        <version>${project.version}</version>
+        <exclusions>
+            <exclusion>
+                <groupId>org.apache.shardingsphere</groupId>
+                <artifactId>shardingsphere-transaction-xa-core</artifactId>
+            </exclusion>
+        </exclusions>
+    </dependency>
+    <dependency>
+        <groupId>org.apache.shardingsphere</groupId>
+        <artifactId>shardingsphere-transaction-xa-jakarta-core</artifactId>
+        <version>${project.version}</version>
+    </dependency>
+    <dependency>
+        <groupId>org.apache.shardingsphere</groupId>
+        <artifactId>shardingsphere-transaction-xa-jakarta-narayana</artifactId>
+        <version>${shardingsphere.version}</version>
+    </dependency>
+    <dependency>
+        <groupId>jakarta.transaction</groupId>
+        <artifactId>jakarta.transaction-api</artifactId>
+    </dependency>
+    <dependency>
+        <groupId>org.jboss.narayana.jta</groupId>
+        <artifactId>narayana-jta-jakarta</artifactId>
+    </dependency>
+    <dependency>
+        <groupId>org.jboss.narayana.jts</groupId>
+        <artifactId>narayana-jts-integration-jakarta</artifactId>
+    </dependency>
+    <dependency>
+        <groupId>org.jboss.logging</groupId>
+        <artifactId>jboss-logging</artifactId>
+    </dependency>
+</dependencies>
+```
+
+For Proxy's `global.yaml`, possible configuration items are as follows,
+
+```yaml
+transaction:
+  defaultType: XA
+  providerType: Narayana
+```
+
+For a minimal configuration, 
+you still need to configure Narayana's `CoreEnvironmentBean.nodeIdentifier` 
property via `jbossts-properties.xml` in the same directory as `global.yaml`.
+
+## Proxy Native
+
+The processing method is the same as ShardingSphere Proxy.
diff --git 
a/docs/document/content/user-manual/shardingsphere-jdbc/yaml-config/jdbc-driver/spring-boot/_index.cn.md
 
b/docs/document/content/user-manual/shardingsphere-jdbc/yaml-config/jdbc-driver/spring-boot/_index.cn.md
index da555007933..0013cbaa1ec 100644
--- 
a/docs/document/content/user-manual/shardingsphere-jdbc/yaml-config/jdbc-driver/spring-boot/_index.cn.md
+++ 
b/docs/document/content/user-manual/shardingsphere-jdbc/yaml-config/jdbc-driver/spring-boot/_index.cn.md
@@ -35,12 +35,7 @@ spring.datasource.url=jdbc:shardingsphere:classpath:xxx.yaml
 
 直接使用该数据源;或者将 ShardingSphereDataSource 配置在 JPA、Hibernate、MyBatis 等 ORM 框架中配合使用。
 
-## 针对 Spring Boot OSS 3 的处理
-
-Spring Boot OSS 3 对 Jakarta EE 和 Java 17 进行了 “大爆炸” 升级,涉及大量复杂情况。
-
-ShardingSphere 的 XA 分布式事务尚未在 Spring Boot OSS 3 上就绪,此限制同样适用于其他基于 Jakarta EE 9+ 
的 Web Framework,如
-Quarkus 3,Micronaut Framework 4 和 Helidon 3。
+## 针对 Spring Boot 3 的处理
 
 用户仅需要配置如下。
 
@@ -56,9 +51,13 @@ Quarkus 3,Micronaut Framework 4 和 Helidon 3。
 </project>
 ```
 
-## 针对低版本的 Spring Boot OSS 2 的特殊处理
+若需要在 Spring Boot 3 下使用 ShardingSphere 的 XA 分布式事务,
+需参考 [Jakarta EE 9 Spec 的 Jakarta 
Transactions](/cn/user-manual/shardingsphere-jdbc/optional-plugins/jakarta-transactions)。
+此要求同样适用于其他基于 Jakarta EE 9+ 的 Web Framework,如 Quarkus 3,Micronaut Framework 4 和 
Helidon 3。
+
+## 针对低版本的 Spring Boot 2 的特殊处理
 
-ShardingSphere 的所有特性均可在 Spring Boot OSS 2 上使用,但低版本的 Spring Boot OSS 可能需要手动指定 
SnakeYAML 的版本为 2.2 。 
+ShardingSphere 的所有特性均可在 Spring Boot 2 上使用,但低版本的 Spring Boot 可能需要手动指定 SnakeYAML 
的版本为 2.2 。 
 这在 Maven 的 `pom.xml` 体现为如下内容。
 
 ```xml
diff --git 
a/docs/document/content/user-manual/shardingsphere-jdbc/yaml-config/jdbc-driver/spring-boot/_index.en.md
 
b/docs/document/content/user-manual/shardingsphere-jdbc/yaml-config/jdbc-driver/spring-boot/_index.en.md
index f5ce4c440c2..0752a4f0138 100644
--- 
a/docs/document/content/user-manual/shardingsphere-jdbc/yaml-config/jdbc-driver/spring-boot/_index.en.md
+++ 
b/docs/document/content/user-manual/shardingsphere-jdbc/yaml-config/jdbc-driver/spring-boot/_index.en.md
@@ -35,12 +35,7 @@ The YAML configuration file in 'spring.datasource.url' 
currently support in mult
 
 Use this data source directly; or configure ShardingSphereDataSource to be 
used in conjunction with ORM frameworks such as JPA, Hibernate, and MyBatis.
 
-## Handling for Spring Boot OSS 3
-
-Spring Boot OSS 3 has made a "big bang" upgrade to Jakarta EE and Java 17, 
with all complications involved.
-
-ShardingSphere's XA distributed transactions are not yet ready on Spring Boot 
OSS 3. This limitation also applies to other 
-Jakarta EE 9+ based Web Frameworks, such as Quarkus 3, Micronaut Framework 4 
and Helidon 3.
+## Handling for Spring Boot 3
 
 Users only need to configure as follows.
 
@@ -56,9 +51,13 @@ Users only need to configure as follows.
 </project>
 ```
 
-## Special handling for earlier versions of Spring Boot OSS 2
+If you need to use ShardingSphere's XA distributed transactions under Spring 
Boot 3,
+please refer to [Jakarta Transactions of Jakarta EE 9 
Spec](/en/user-manual/shardingsphere-jdbc/optional-plugins/jakarta-transactions).
+This requirement also applies to other Web Frameworks based on Jakarta EE 9+, 
such as Quarkus 3, Micronaut Framework 4, and Helidon 3.
+
+## Special handling for earlier versions of Spring Boot 2
 
-All features of ShardingSphere are available on Spring Boot OSS 2, but earlier 
versions of Spring Boot OSS may require 
+All features of ShardingSphere are available on Spring Boot 2, but earlier 
versions of Spring Boot may require 
 manually specifying version 2.2 for SnakeYAML.
 This is reflected in Maven's `pom.xml` as follows.
 
diff --git 
a/infra/reachability-metadata/src/main/resources/META-INF/native-image/com.microsoft.sqlserver/mssql-jdbc/12.10.1.jre8/reachability-metadata.json
 
b/infra/reachability-metadata/src/main/resources/META-INF/native-image/com.microsoft.sqlserver/mssql-jdbc/12.10.1.jre8/reachability-metadata.json
new file mode 100644
index 00000000000..dfd45bb0c55
--- /dev/null
+++ 
b/infra/reachability-metadata/src/main/resources/META-INF/native-image/com.microsoft.sqlserver/mssql-jdbc/12.10.1.jre8/reachability-metadata.json
@@ -0,0 +1,10 @@
+{
+  "reflection": [
+    {
+      "condition": {
+        "typeReached": "com.microsoft.sqlserver.jdbc.ConfigurableRetryLogic"
+      },
+      "type": "com.microsoft.sqlserver.jdbc.ConfigurableRetryLogic"
+    }
+  ]
+}
diff --git a/kernel/transaction/type/pom.xml b/kernel/transaction/type/pom.xml
index a29837534f4..5ad55753363 100644
--- a/kernel/transaction/type/pom.xml
+++ b/kernel/transaction/type/pom.xml
@@ -29,6 +29,7 @@
     
     <modules>
         <module>xa</module>
+        <module>xa-jakarta</module>
         <module>base</module>
     </modules>
 </project>
diff --git a/kernel/transaction/type/xa-jakarta/core/pom.xml 
b/kernel/transaction/type/xa-jakarta/core/pom.xml
new file mode 100644
index 00000000000..60f4319d4cc
--- /dev/null
+++ b/kernel/transaction/type/xa-jakarta/core/pom.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ 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.
+  -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
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";>
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.shardingsphere</groupId>
+        <artifactId>shardingsphere-transaction-xa-jakarta</artifactId>
+        <version>5.5.3-SNAPSHOT</version>
+    </parent>
+    <artifactId>shardingsphere-transaction-xa-jakarta-core</artifactId>
+    <name>${project.artifactId}</name>
+    
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-transaction-xa-jakarta-spi</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            
<artifactId>shardingsphere-transaction-xa-jakarta-atomikos</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+    </dependencies>
+    
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.eclipse.transformer</groupId>
+                <artifactId>transformer-maven-plugin</artifactId>
+                <version>${transformer-maven-plugin.version}</version>
+                <extensions>true</extensions>
+                <configuration>
+                    <rules>
+                        <jakartaDefaults>true</jakartaDefaults>
+                    </rules>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>default-jar</id>
+                        <goals>
+                            <goal>jar</goal>
+                        </goals>
+                        <configuration>
+                            <artifact>
+                                <groupId>org.apache.shardingsphere</groupId>
+                                
<artifactId>shardingsphere-transaction-xa-core</artifactId>
+                                <version>${project.version}</version>
+                            </artifact>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>javadoc-jar</id>
+                        <goals>
+                            <goal>jar</goal>
+                        </goals>
+                        <phase>verify</phase>
+                        <configuration>
+                            <skip>${maven.javadoc.skip}</skip>
+                            <artifact>
+                                <groupId>org.apache.shardingsphere</groupId>
+                                
<artifactId>shardingsphere-transaction-xa-core</artifactId>
+                                <version>${project.version}</version>
+                                <classifier>javadoc</classifier>
+                            </artifact>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>source-jar</id>
+                        <goals>
+                            <goal>jar</goal>
+                        </goals>
+                        <phase>verify</phase>
+                        <configuration>
+                            <artifact>
+                                <groupId>org.apache.shardingsphere</groupId>
+                                
<artifactId>shardingsphere-transaction-xa-core</artifactId>
+                                <version>${project.version}</version>
+                                <classifier>sources</classifier>
+                            </artifact>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/kernel/transaction/type/pom.xml 
b/kernel/transaction/type/xa-jakarta/pom.xml
similarity index 65%
copy from kernel/transaction/type/pom.xml
copy to kernel/transaction/type/xa-jakarta/pom.xml
index a29837534f4..67393fc22ca 100644
--- a/kernel/transaction/type/pom.xml
+++ b/kernel/transaction/type/xa-jakarta/pom.xml
@@ -20,15 +20,26 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.shardingsphere</groupId>
-        <artifactId>shardingsphere-transaction</artifactId>
+        <artifactId>shardingsphere-transaction-type</artifactId>
         <version>5.5.3-SNAPSHOT</version>
     </parent>
-    <artifactId>shardingsphere-transaction-type</artifactId>
+    <artifactId>shardingsphere-transaction-xa-jakarta</artifactId>
     <packaging>pom</packaging>
     <name>${project.artifactId}</name>
     
     <modules>
-        <module>xa</module>
-        <module>base</module>
+        <module>spi</module>
+        <module>provider</module>
+        <module>core</module>
     </modules>
+    
+    <properties>
+        <!--
+        As a workaround for 
https://github.com/apache/shardingsphere/issues/26041 ,
+        versions of Jakarta EE Spec dependencies are maintained separately in 
this module and its submodules.
+        -->
+        <jakarta.jakartaee-bom.version>9.0.0</jakarta.jakartaee-bom.version>
+        <glassfish-jaxb.version>3.0.2</glassfish-jaxb.version>
+        <jboss-logging.version>3.4.3.Final</jboss-logging.version>
+    </properties>
 </project>
diff --git a/kernel/transaction/type/xa-jakarta/provider/atomikos/pom.xml 
b/kernel/transaction/type/xa-jakarta/provider/atomikos/pom.xml
new file mode 100644
index 00000000000..faa33482556
--- /dev/null
+++ b/kernel/transaction/type/xa-jakarta/provider/atomikos/pom.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ 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.
+  -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
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";>
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.shardingsphere</groupId>
+        <artifactId>shardingsphere-transaction-xa-jakarta-provider</artifactId>
+        <version>5.5.3-SNAPSHOT</version>
+    </parent>
+    <artifactId>shardingsphere-transaction-xa-jakarta-atomikos</artifactId>
+    <name>${project.artifactId}</name>
+    
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-transaction-xa-jakarta-spi</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        
+        <dependency>
+            <groupId>com.atomikos</groupId>
+            <artifactId>transactions-jta</artifactId>
+            <version>${atomikos.version}</version>
+            <classifier>jakarta</classifier>
+        </dependency>
+        <dependency>
+            <groupId>com.atomikos</groupId>
+            <artifactId>transactions-jdbc</artifactId>
+            <version>${atomikos.version}</version>
+            <classifier>jakarta</classifier>
+        </dependency>
+    </dependencies>
+    
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.eclipse.transformer</groupId>
+                <artifactId>transformer-maven-plugin</artifactId>
+                <version>${transformer-maven-plugin.version}</version>
+                <extensions>true</extensions>
+                <configuration>
+                    <rules>
+                        <jakartaDefaults>true</jakartaDefaults>
+                    </rules>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>default-jar</id>
+                        <goals>
+                            <goal>jar</goal>
+                        </goals>
+                        <configuration>
+                            <artifact>
+                                <groupId>org.apache.shardingsphere</groupId>
+                                
<artifactId>shardingsphere-transaction-xa-atomikos</artifactId>
+                                <version>${project.version}</version>
+                            </artifact>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>javadoc-jar</id>
+                        <goals>
+                            <goal>jar</goal>
+                        </goals>
+                        <phase>verify</phase>
+                        <configuration>
+                            <skip>${maven.javadoc.skip}</skip>
+                            <artifact>
+                                <groupId>org.apache.shardingsphere</groupId>
+                                
<artifactId>shardingsphere-transaction-xa-atomikos</artifactId>
+                                <version>${project.version}</version>
+                                <classifier>javadoc</classifier>
+                            </artifact>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>source-jar</id>
+                        <goals>
+                            <goal>jar</goal>
+                        </goals>
+                        <phase>verify</phase>
+                        <configuration>
+                            <artifact>
+                                <groupId>org.apache.shardingsphere</groupId>
+                                
<artifactId>shardingsphere-transaction-xa-atomikos</artifactId>
+                                <version>${project.version}</version>
+                                <classifier>sources</classifier>
+                            </artifact>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/kernel/transaction/type/xa-jakarta/provider/narayana/pom.xml 
b/kernel/transaction/type/xa-jakarta/provider/narayana/pom.xml
new file mode 100644
index 00000000000..033f1b18068
--- /dev/null
+++ b/kernel/transaction/type/xa-jakarta/provider/narayana/pom.xml
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ 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.
+  -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
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";>
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.shardingsphere</groupId>
+        <artifactId>shardingsphere-transaction-xa-jakarta-provider</artifactId>
+        <version>5.5.3-SNAPSHOT</version>
+    </parent>
+    <artifactId>shardingsphere-transaction-xa-jakarta-narayana</artifactId>
+    <name>${project.artifactId}</name>
+    
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-transaction-xa-jakarta-spi</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        
+        <dependency>
+            <groupId>org.jboss.narayana.jta</groupId>
+            <artifactId>narayana-jta-jakarta</artifactId>
+            <version>${narayana.version}</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.jboss.narayana.jts</groupId>
+            <artifactId>narayana-jts-integration-jakarta</artifactId>
+            <version>${narayana.version}</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.jboss.logging</groupId>
+            <artifactId>jboss-logging</artifactId>
+            <version>${jboss-logging.version}</version>
+            <scope>provided</scope>
+        </dependency>
+    </dependencies>
+    
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.eclipse.transformer</groupId>
+                <artifactId>transformer-maven-plugin</artifactId>
+                <version>${transformer-maven-plugin.version}</version>
+                <extensions>true</extensions>
+                <configuration>
+                    <rules>
+                        <jakartaDefaults>true</jakartaDefaults>
+                    </rules>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>default-jar</id>
+                        <goals>
+                            <goal>jar</goal>
+                        </goals>
+                        <configuration>
+                            <artifact>
+                                <groupId>org.apache.shardingsphere</groupId>
+                                
<artifactId>shardingsphere-transaction-xa-narayana</artifactId>
+                                <version>${project.version}</version>
+                            </artifact>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>javadoc-jar</id>
+                        <goals>
+                            <goal>jar</goal>
+                        </goals>
+                        <phase>verify</phase>
+                        <configuration>
+                            <skip>${maven.javadoc.skip}</skip>
+                            <artifact>
+                                <groupId>org.apache.shardingsphere</groupId>
+                                
<artifactId>shardingsphere-transaction-xa-narayana</artifactId>
+                                <version>${project.version}</version>
+                                <classifier>javadoc</classifier>
+                            </artifact>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>source-jar</id>
+                        <goals>
+                            <goal>jar</goal>
+                        </goals>
+                        <phase>verify</phase>
+                        <configuration>
+                            <artifact>
+                                <groupId>org.apache.shardingsphere</groupId>
+                                
<artifactId>shardingsphere-transaction-xa-narayana</artifactId>
+                                <version>${project.version}</version>
+                                <classifier>sources</classifier>
+                            </artifact>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/kernel/transaction/type/pom.xml 
b/kernel/transaction/type/xa-jakarta/provider/pom.xml
similarity index 86%
copy from kernel/transaction/type/pom.xml
copy to kernel/transaction/type/xa-jakarta/provider/pom.xml
index a29837534f4..d151e27c3cc 100644
--- a/kernel/transaction/type/pom.xml
+++ b/kernel/transaction/type/xa-jakarta/provider/pom.xml
@@ -20,15 +20,14 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.shardingsphere</groupId>
-        <artifactId>shardingsphere-transaction</artifactId>
+        <artifactId>shardingsphere-transaction-xa-jakarta</artifactId>
         <version>5.5.3-SNAPSHOT</version>
     </parent>
-    <artifactId>shardingsphere-transaction-type</artifactId>
+    <artifactId>shardingsphere-transaction-xa-jakarta-provider</artifactId>
     <packaging>pom</packaging>
     <name>${project.artifactId}</name>
-    
     <modules>
-        <module>xa</module>
-        <module>base</module>
+        <module>atomikos</module>
+        <module>narayana</module>
     </modules>
 </project>
diff --git a/kernel/transaction/type/xa-jakarta/spi/pom.xml 
b/kernel/transaction/type/xa-jakarta/spi/pom.xml
new file mode 100644
index 00000000000..cb5f2796775
--- /dev/null
+++ b/kernel/transaction/type/xa-jakarta/spi/pom.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ 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.
+  -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
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";>
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.shardingsphere</groupId>
+        <artifactId>shardingsphere-transaction-xa-jakarta</artifactId>
+        <version>5.5.3-SNAPSHOT</version>
+    </parent>
+    <artifactId>shardingsphere-transaction-xa-jakarta-spi</artifactId>
+    <name>${project.artifactId}</name>
+    
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-transaction-core</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        
+        <dependency>
+            <groupId>jakarta.transaction</groupId>
+            <artifactId>jakarta.transaction-api</artifactId>
+        </dependency>
+    </dependencies>
+    
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.eclipse.transformer</groupId>
+                <artifactId>transformer-maven-plugin</artifactId>
+                <version>${transformer-maven-plugin.version}</version>
+                <extensions>true</extensions>
+                <configuration>
+                    <rules>
+                        <jakartaDefaults>true</jakartaDefaults>
+                    </rules>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>default-jar</id>
+                        <goals>
+                            <goal>jar</goal>
+                        </goals>
+                        <configuration>
+                            <artifact>
+                                <groupId>org.apache.shardingsphere</groupId>
+                                
<artifactId>shardingsphere-transaction-xa-spi</artifactId>
+                                <version>${project.version}</version>
+                            </artifact>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>javadoc-jar</id>
+                        <goals>
+                            <goal>jar</goal>
+                        </goals>
+                        <phase>verify</phase>
+                        <configuration>
+                            <skip>${maven.javadoc.skip}</skip>
+                            <artifact>
+                                <groupId>org.apache.shardingsphere</groupId>
+                                
<artifactId>shardingsphere-transaction-xa-spi</artifactId>
+                                <version>${project.version}</version>
+                                <classifier>javadoc</classifier>
+                            </artifact>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>source-jar</id>
+                        <goals>
+                            <goal>jar</goal>
+                        </goals>
+                        <phase>verify</phase>
+                        <configuration>
+                            <artifact>
+                                <groupId>org.apache.shardingsphere</groupId>
+                                
<artifactId>shardingsphere-transaction-xa-spi</artifactId>
+                                <version>${project.version}</version>
+                                <classifier>sources</classifier>
+                            </artifact>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/pom.xml b/pom.xml
index 618473d1459..321d64ac2f0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -127,7 +127,7 @@
         
         <postgresql.version>42.7.5</postgresql.version>
         <mysql-connector-java.version>8.3.0</mysql-connector-java.version>
-        <mssql.version>6.1.7.jre8-preview</mssql.version>
+        <mssql.version>12.10.1.jre8</mssql.version>
         <h2.version>2.2.224</h2.version>
         <opengauss.version>3.1.0-og</opengauss.version>
         <mariadb-java-client.version>2.4.2</mariadb-java-client.version>
@@ -160,6 +160,7 @@
         <dockerfile-maven.version>1.4.13</dockerfile-maven.version>
         
<os-detector-maven-plugin.version>0.3.1</os-detector-maven-plugin.version>
         <native-maven-plugin.version>0.11.0</native-maven-plugin.version>
+        
<transformer-maven-plugin.version>0.5.0</transformer-maven-plugin.version>
         
         <!-- Compile plugin versions -->
         
<templating-maven-plugin.version>1.0.0</templating-maven-plugin.version>
@@ -1076,6 +1077,16 @@
                 </pluginManagement>
             </build>
         </profile>
+        <profile>
+            <id>jdk17+</id>
+            <activation>
+                <jdk>[17,)</jdk>
+            </activation>
+            <properties>
+                <!--TODO See 
https://github.com/eclipse-transformer/transformer/issues/475 -->
+                
<transformer-maven-plugin.version>1.0.0</transformer-maven-plugin.version>
+            </properties>
+        </profile>
         <profile>
             <id>generateMetadata</id>
             <build>

Reply via email to