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 3ae8427e446 Fix nativeTest for Firebird optional module (#35427)
3ae8427e446 is described below
commit 3ae8427e446afe8d8aa6e8ae3fd77373cb31c89b
Author: Ling Hengqian <[email protected]>
AuthorDate: Mon May 19 17:19:14 2025 +0800
Fix nativeTest for Firebird optional module (#35427)
---
.../optional-plugins/clickhouse/_index.cn.md | 4 +-
.../optional-plugins/clickhouse/_index.en.md | 6 +-
.../optional-plugins/firebird/_index.cn.md | 167 ++++++++++++++++++++
.../optional-plugins/firebird/_index.en.md | 168 +++++++++++++++++++++
.../optional-plugins/hiveserver2/_index.cn.md | 6 +-
.../optional-plugins/hiveserver2/_index.en.md | 8 +-
.../calcite-core/1.38.0/reflect-config.json | 5 +
.../hadoop-common/3.3.6/reflect-config.json | 4 +
.../seata-all/2.2.0/reflect-config.json | 8 +
.../reflect-config.json | 130 +++++++++-------
.../resource-config.json | 102 ++++++++++++-
.../reflect-config.json | 15 ++
.../junit-jupiter/5.11.1/reflect-config.json | 5 +
test/native/pom.xml | 6 +
.../testcontainers/TcPostgreSQLDatabaseType.java | 2 +-
.../testcontainers/TcSQLServerDatabaseType.java | 2 +-
.../testcontainers/TestcontainersDatabaseType.java | 2 +-
.../natived/commons/proxy/ProxyTestingServer.java | 2 +-
.../natived/jdbc/transactions/base/SeataTest.java | 2 +-
.../natived/proxy/transactions/base/SeataTest.java | 6 +-
...ingsphere.infra.database.core.type.DatabaseType | 4 +-
21 files changed, 571 insertions(+), 83 deletions(-)
diff --git
a/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/clickhouse/_index.cn.md
b/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/clickhouse/_index.cn.md
index a9594b8f1fc..fc097a8bbcb 100644
---
a/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/clickhouse/_index.cn.md
+++
b/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/clickhouse/_index.cn.md
@@ -116,7 +116,7 @@ rules:
- !SHARDING
tables:
t_order:
- actualDataNodes:
+ actualDataNodes: <LITERAL>ds_0.t_order, ds_1.t_order, ds_2.t_order
keyGenerateStrategy:
column: order_id
keyGeneratorName: snowflake
@@ -154,7 +154,7 @@ public class ExampleUtils {
Statement statement = connection.createStatement()) {
statement.execute("INSERT INTO t_order (user_id, order_type,
address_id, status) VALUES (1, 1, 1, 'INSERT_TEST')");
statement.executeQuery("SELECT * FROM t_order");
- statement.execute("alter table t_order delete where order_id=1");
+ statement.execute("alter table t_order delete where user_id=1");
}
}
}
diff --git
a/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/clickhouse/_index.en.md
b/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/clickhouse/_index.en.md
index d2a08b8ce26..e6dc45e38d4 100644
---
a/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/clickhouse/_index.en.md
+++
b/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/clickhouse/_index.en.md
@@ -50,7 +50,7 @@ services:
### Create business tables
-Use a third-party tool to create a business database and business table in
ClickHouse.
+Use a third-party tool to create some business databases and business tables
in ClickHouse.
Taking DBeaver Community as an example, if you use Ubuntu 22.04.4, you can
quickly install it through Snapcraft.
```shell
@@ -118,7 +118,7 @@ rules:
- !SHARDING
tables:
t_order:
- actualDataNodes:
+ actualDataNodes: <LITERAL>ds_0.t_order, ds_1.t_order, ds_2.t_order
keyGenerateStrategy:
column: order_id
keyGeneratorName: snowflake
@@ -156,7 +156,7 @@ public class ExampleUtils {
Statement statement = connection.createStatement()) {
statement.execute("INSERT INTO t_order (user_id, order_type,
address_id, status) VALUES (1, 1, 1, 'INSERT_TEST')");
statement.executeQuery("SELECT * FROM t_order");
- statement.execute("alter table t_order delete where order_id=1");
+ statement.execute("alter table t_order delete where user_id=1");
}
}
}
diff --git
a/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/firebird/_index.cn.md
b/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/firebird/_index.cn.md
new file mode 100644
index 00000000000..faab8e0c4d9
--- /dev/null
+++
b/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/firebird/_index.cn.md
@@ -0,0 +1,167 @@
++++
+title = "Firebird"
+weight = 6
++++
+
+## 背景信息
+
+ShardingSphere 默认情况下不提供对 `org.firebirdsql.jdbc.FBDriver` 的 `driverClassName`
的支持。
+ShardingSphere 对 Firebird JDBC Driver 的支持位于可选模块中。
+
+## 前提条件
+
+要在 ShardingSphere 的配置文件为数据节点使用类似
`jdbc:firebird://localhost:3050//var/lib/firebird/data/demo_ds_0.fdb` 的
`jdbcUrl`,
+可能的 Maven 依赖关系如下,
+
+```xml
+<dependencies>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-jdbc</artifactId>
+ <version>${shardingsphere.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-parser-sql-firebird</artifactId>
+ <version>${shardingsphere.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.firebirdsql.jdbc</groupId>
+ <artifactId>jaybird</artifactId>
+ <version>5.0.6.java8</version>
+ </dependency>
+</dependencies>
+```
+
+## 配置示例
+
+### 启动 Firebird
+
+编写 Docker Compose 文件来启动 Firebird。
+
+```yaml
+services:
+ firebird:
+ image: firebirdsql/firebird:5.0.1
+ environment:
+ FIREBIRD_ROOT_PASSWORD: masterkey
+ FIREBIRD_USER: alice
+ FIREBIRD_PASSWORD: masterkey
+ FIREBIRD_DATABASE: mirror.fdb
+ FIREBIRD_DATABASE_DEFAULT_CHARSET: UTF8
+ ports:
+ - "3050:3050"
+```
+
+### 创建业务库
+
+通过第三方工具在 Firebird 内创建业务库。
+
+包括 DBeaver Community 在内的第三方工具无法为 Firebird 创建 databases,
+下以 Maven 模块 `org.firebirdsql.jdbc:jaybird:5.0.6.java8` 的 Java API 为例,
+
+```java
+import org.firebirdsql.management.FBManager;
+import org.firebirdsql.management.PageSizeConstants;
+class Solution {
+ void test() throws Exception {
+ try (FBManager fbManager = new FBManager()) {
+ fbManager.setServer("localhost");
+ fbManager.setUserName("alice");
+ fbManager.setPassword("masterkey");
+ fbManager.setFileName("/var/lib/firebird/data/mirror.fdb");
+ fbManager.setPageSize(PageSizeConstants.SIZE_16K);
+ fbManager.setDefaultCharacterSet("UTF8");
+ fbManager.setPort(3050);
+ fbManager.start();
+ fbManager.createDatabase("/var/lib/firebird/data/demo_ds_0.fdb",
"alice", "masterkey");
+ fbManager.createDatabase("/var/lib/firebird/data/demo_ds_1.fdb",
"alice", "masterkey");
+ fbManager.createDatabase("/var/lib/firebird/data/demo_ds_2.fdb",
"alice", "masterkey");
+ }
+ }
+}
+```
+
+### 在业务项目创建 ShardingSphere 数据源
+
+在业务项目引入`前提条件`涉及的依赖后,在业务项目的 classpath 上编写 ShardingSphere 数据源的配置文件`demo.yaml`,
+
+```yaml
+dataSources:
+ ds_0:
+ dataSourceClassName: com.zaxxer.hikari.HikariDataSource
+ driverClassName: org.firebirdsql.jdbc.FBDriver
+ jdbcUrl:
jdbc:firebird://localhost:3050//var/lib/firebird/data/demo_ds_0.fdb
+ username: alice
+ password: masterkey
+ ds_1:
+ dataSourceClassName: com.zaxxer.hikari.HikariDataSource
+ driverClassName: org.firebirdsql.jdbc.FBDriver
+ jdbcUrl:
jdbc:firebird://localhost:3050//var/lib/firebird/data/demo_ds_1.fdb
+ username: alice
+ password: masterkey
+ ds_2:
+ dataSourceClassName: com.zaxxer.hikari.HikariDataSource
+ driverClassName: org.firebirdsql.jdbc.FBDriver
+ jdbcUrl:
jdbc:firebird://localhost:3050//var/lib/firebird/data/demo_ds_2.fdb
+ username: alice
+ password: masterkey
+rules:
+- !SHARDING
+ tables:
+ t_order:
+ actualDataNodes: <LITERAL>ds_0.t_order, ds_1.t_order, ds_2.t_order
+ keyGenerateStrategy:
+ column: order_id
+ keyGeneratorName: snowflake
+ defaultDatabaseStrategy:
+ standard:
+ shardingColumn: user_id
+ shardingAlgorithmName: inline
+ shardingAlgorithms:
+ inline:
+ type: INLINE
+ props:
+ algorithm-expression: ds_${user_id % 2}
+ keyGenerators:
+ snowflake:
+ type: SNOWFLAKE
+```
+
+### 享受集成
+
+创建 ShardingSphere 的数据源以享受集成,
+
+```java
+import com.zaxxer.hikari.HikariConfig;
+import com.zaxxer.hikari.HikariDataSource;
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.sql.Statement;
+class Solution {
+ void test() throws SQLException {
+ HikariConfig config = new HikariConfig();
+ config.setJdbcUrl("jdbc:shardingsphere:classpath:demo.yaml");
+
config.setDriverClassName("org.apache.shardingsphere.driver.ShardingSphereDriver");
+ try (HikariDataSource dataSource = new HikariDataSource(config);
+ Connection connection = dataSource.getConnection();
+ Statement statement = connection.createStatement()) {
+ statement.execute("CREATE TABLE t_order (order_id BIGINT generated
by default as identity PRIMARY KEY, order_type INT, user_id INT NOT NULL,
address_id BIGINT NOT NULL, status VARCHAR(50))");
+ statement.execute("INSERT INTO t_order (user_id, order_type,
address_id, status) VALUES (1, 1, 1, 'INSERT_TEST')");
+ statement.executeQuery("SELECT * FROM t_order");
+ statement.execute("DELETE FROM t_order WHERE user_id=1");
+ statement.execute("DROP TABLE t_order");
+ }
+ }
+}
+```
+
+## 使用限制
+
+### 事务限制
+
+Firebird 支持 ShardingSphere 集成级别的本地事务,但不支持 XA 事务或 Seata 的 AT 模式事务。
+
+对 XA 事务的讨论位于 https://github.com/apache/shardingsphere/issues/34973 。
+
+对 Seata 的 AT 模式事务的处理,则应在 https://github.com/apache/incubator-seata 提交包含对应实现的
PR。
diff --git
a/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/firebird/_index.en.md
b/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/firebird/_index.en.md
new file mode 100644
index 00000000000..2b522837c55
--- /dev/null
+++
b/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/firebird/_index.en.md
@@ -0,0 +1,168 @@
++++
+title = "Firebird"
+weight = 6
++++
+
+## Background Information
+
+ShardingSphere does not provide support for `driverClassName` of
`org.firebirdsql.jdbc.FBDriver` by default.
+ShardingSphere's support for Firebird JDBC Driver is in an optional module.
+
+## Prerequisites
+
+To use a `jdbcUrl` like
`jdbc:firebird://localhost:3050//var/lib/firebird/data/demo_ds_0.fdb` for the
data node 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>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-parser-sql-firebird</artifactId>
+ <version>${shardingsphere.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.firebirdsql.jdbc</groupId>
+ <artifactId>jaybird</artifactId>
+ <version>5.0.6.java8</version>
+ </dependency>
+</dependencies>
+```
+
+## Configuration example
+
+### Start Firebird
+
+Write a Docker Compose file to start Firebird.
+
+```yaml
+services:
+ firebird:
+ image: firebirdsql/firebird:5.0.1
+ environment:
+ FIREBIRD_ROOT_PASSWORD: masterkey
+ FIREBIRD_USER: alice
+ FIREBIRD_PASSWORD: masterkey
+ FIREBIRD_DATABASE: mirror.fdb
+ FIREBIRD_DATABASE_DEFAULT_CHARSET: UTF8
+ ports:
+ - "3050:3050"
+```
+
+### Create business databases
+
+Create some business databases in Firebird through third-party tools.
+
+Third-party tools including DBeaver Community cannot create databases for
Firebird.
+Below is the Java API of the Maven module
`org.firebirdsql.jdbc:jaybird:5.0.6.java8` as an example.
+
+```java
+import org.firebirdsql.management.FBManager;
+import org.firebirdsql.management.PageSizeConstants;
+class Solution {
+ void test() throws Exception {
+ try (FBManager fbManager = new FBManager()) {
+ fbManager.setServer("localhost");
+ fbManager.setUserName("alice");
+ fbManager.setPassword("masterkey");
+ fbManager.setFileName("/var/lib/firebird/data/mirror.fdb");
+ fbManager.setPageSize(PageSizeConstants.SIZE_16K);
+ fbManager.setDefaultCharacterSet("UTF8");
+ fbManager.setPort(3050);
+ fbManager.start();
+ fbManager.createDatabase("/var/lib/firebird/data/demo_ds_0.fdb",
"alice", "masterkey");
+ fbManager.createDatabase("/var/lib/firebird/data/demo_ds_1.fdb",
"alice", "masterkey");
+ fbManager.createDatabase("/var/lib/firebird/data/demo_ds_2.fdb",
"alice", "masterkey");
+ }
+ }
+}
+```
+
+### Create ShardingSphere data source in business project
+
+After the business project introduces the dependencies involved in the
`prerequisites`,
+write the ShardingSphere data source configuration file `demo.yaml` on the
classpath of the business project.
+
+```yaml
+dataSources:
+ ds_0:
+ dataSourceClassName: com.zaxxer.hikari.HikariDataSource
+ driverClassName: org.firebirdsql.jdbc.FBDriver
+ jdbcUrl:
jdbc:firebird://localhost:3050//var/lib/firebird/data/demo_ds_0.fdb
+ username: alice
+ password: masterkey
+ ds_1:
+ dataSourceClassName: com.zaxxer.hikari.HikariDataSource
+ driverClassName: org.firebirdsql.jdbc.FBDriver
+ jdbcUrl:
jdbc:firebird://localhost:3050//var/lib/firebird/data/demo_ds_1.fdb
+ username: alice
+ password: masterkey
+ ds_2:
+ dataSourceClassName: com.zaxxer.hikari.HikariDataSource
+ driverClassName: org.firebirdsql.jdbc.FBDriver
+ jdbcUrl:
jdbc:firebird://localhost:3050//var/lib/firebird/data/demo_ds_2.fdb
+ username: alice
+ password: masterkey
+rules:
+- !SHARDING
+ tables:
+ t_order:
+ actualDataNodes: <LITERAL>ds_0.t_order, ds_1.t_order, ds_2.t_order
+ keyGenerateStrategy:
+ column: order_id
+ keyGeneratorName: snowflake
+ defaultDatabaseStrategy:
+ standard:
+ shardingColumn: user_id
+ shardingAlgorithmName: inline
+ shardingAlgorithms:
+ inline:
+ type: INLINE
+ props:
+ algorithm-expression: ds_${user_id % 2}
+ keyGenerators:
+ snowflake:
+ type: SNOWFLAKE
+```
+
+### Enjoy integration
+
+Create a ShardingSphere data source to enjoy the integration,
+
+```java
+import com.zaxxer.hikari.HikariConfig;
+import com.zaxxer.hikari.HikariDataSource;
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.sql.Statement;
+class Solution {
+ void test() throws SQLException {
+ HikariConfig config = new HikariConfig();
+ config.setJdbcUrl("jdbc:shardingsphere:classpath:demo.yaml");
+
config.setDriverClassName("org.apache.shardingsphere.driver.ShardingSphereDriver");
+ try (HikariDataSource dataSource = new HikariDataSource(config);
+ Connection connection = dataSource.getConnection();
+ Statement statement = connection.createStatement()) {
+ statement.execute("CREATE TABLE t_order (order_id BIGINT generated
by default as identity PRIMARY KEY, order_type INT, user_id INT NOT NULL,
address_id BIGINT NOT NULL, status VARCHAR(50))");
+ statement.execute("INSERT INTO t_order (user_id, order_type,
address_id, status) VALUES (1, 1, 1, 'INSERT_TEST')");
+ statement.executeQuery("SELECT * FROM t_order");
+ statement.execute("DELETE FROM t_order WHERE user_id=1");
+ statement.execute("DROP TABLE t_order");
+ }
+ }
+}
+```
+
+## Usage Limitations
+
+### Transaction Limitations
+
+Firebird supports local transactions at the ShardingSphere integration level,
but does not support XA transactions or Seata's AT mode transactions.
+
+Discussions on XA transactions are at
https://github.com/apache/shardingsphere/issues/34973 .
+
+For Seata's AT mode transactions, a PR containing the corresponding
implementation should be submitted at https://github.com/apache/incubator-seata
.
diff --git
a/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/hiveserver2/_index.cn.md
b/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/hiveserver2/_index.cn.md
index 40f88bd9ae5..f4d891933bb 100644
---
a/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/hiveserver2/_index.cn.md
+++
b/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/hiveserver2/_index.cn.md
@@ -183,7 +183,7 @@ rules:
- !SHARDING
tables:
t_order:
- actualDataNodes:
+ actualDataNodes: <LITERAL>ds_0.t_order, ds_1.t_order, ds_2.t_order
keyGenerateStrategy:
column: order_id
keyGeneratorName: snowflake
@@ -221,7 +221,7 @@ public class ExampleUtils {
Statement statement = connection.createStatement()) {
statement.execute("INSERT INTO t_order (user_id, order_type,
address_id, status) VALUES (1, 1, 1, 'INSERT_TEST')");
statement.executeQuery("SELECT * FROM t_order");
- statement.execute("DELETE FROM t_order WHERE order_id=1");
+ statement.execute("DELETE FROM t_order WHERE user_id=1");
}
}
}
@@ -309,7 +309,7 @@ rules:
- !SHARDING
tables:
t_order:
- actualDataNodes:
+ actualDataNodes: <LITERAL>ds_0.t_order, ds_1.t_order, ds_2.t_order
keyGenerateStrategy:
column: order_id
keyGeneratorName: snowflake
diff --git
a/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/hiveserver2/_index.en.md
b/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/hiveserver2/_index.en.md
index 0e8c562079c..4e188e525fa 100644
---
a/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/hiveserver2/_index.en.md
+++
b/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/hiveserver2/_index.en.md
@@ -126,7 +126,7 @@ services:
### Create business tables
-Use a third-party tool to create a business database and business table in
HiveServer2.
+Use a third-party tool to create some business databases and business tables
in HiveServer2.
Taking DBeaver Community as an example, if you use Ubuntu 22.04.4, you can
quickly install it through Snapcraft.
```shell
@@ -187,7 +187,7 @@ rules:
- !SHARDING
tables:
t_order:
- actualDataNodes:
+ actualDataNodes: <LITERAL>ds_0.t_order, ds_1.t_order, ds_2.t_order
keyGenerateStrategy:
column: order_id
keyGeneratorName: snowflake
@@ -225,7 +225,7 @@ public class ExampleUtils {
Statement statement = connection.createStatement()) {
statement.execute("INSERT INTO t_order (user_id, order_type,
address_id, status) VALUES (1, 1, 1, 'INSERT_TEST')");
statement.executeQuery("SELECT * FROM t_order");
- statement.execute("DELETE FROM t_order WHERE order_id=1");
+ statement.execute("DELETE FROM t_order WHERE user_id=1");
}
}
}
@@ -314,7 +314,7 @@ rules:
- !SHARDING
tables:
t_order:
- actualDataNodes:
+ actualDataNodes: <LITERAL>ds_0.t_order, ds_1.t_order, ds_2.t_order
keyGenerateStrategy:
column: order_id
keyGeneratorName: snowflake
diff --git
a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.calcite/calcite-core/1.38.0/reflect-config.json
b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.calcite/calcite-core/1.38.0/reflect-config.json
index 4fcab4ec256..a2ff15e8090 100644
---
a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.calcite/calcite-core/1.38.0/reflect-config.json
+++
b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.calcite/calcite-core/1.38.0/reflect-config.json
@@ -1351,5 +1351,10 @@
"condition":{"typeReachable":"org.apache.calcite.rel.metadata.ReflectiveRelMetadataProvider"},
"name":"org.apache.calcite.rel.metadata.RelMdPercentageOriginalRows",
"allPublicMethods":true
+},
+{
+ "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
+ "name":"org.apache.calcite.runtime.variant.VariantValue",
+ "allPublicMethods":true
}
]
diff --git
a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.hadoop/hadoop-common/3.3.6/reflect-config.json
b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.hadoop/hadoop-common/3.3.6/reflect-config.json
index 8a2b659fc73..0b809c17c88 100644
---
a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.hadoop/hadoop-common/3.3.6/reflect-config.json
+++
b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.hadoop/hadoop-common/3.3.6/reflect-config.json
@@ -8,5 +8,9 @@
{
"condition":{"typeReachable":"org.apache.hadoop.security.UserGroupInformation"},
"name":"com.sun.security.auth.NTUserPrincipal"
+},
+{
+
"condition":{"typeReachable":"org.apache.hadoop.security.UserGroupInformation"},
+ "name":"com.sun.security.auth.UnixPrincipal"
}
]
diff --git
a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.seata/seata-all/2.2.0/reflect-config.json
b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.seata/seata-all/2.2.0/reflect-config.json
index 32508ed4a02..a7b63967b52 100644
---
a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.seata/seata-all/2.2.0/reflect-config.json
+++
b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.seata/seata-all/2.2.0/reflect-config.json
@@ -834,5 +834,13 @@
{
"condition":{"typeReachable":"org.apache.seata.common.loader.EnhancedServiceLoader"},
"name":"io.seata.config.file.FileConfig"
+},
+{
+
"condition":{"typeReachable":"org.apache.seata.common.loader.EnhancedServiceLoader"},
+ "name":"org.apache.seata.rm.datasource.exec.oscar.OscarInsertExecutor"
+},
+{
+
"condition":{"typeReachable":"org.apache.seata.common.loader.EnhancedServiceLoader"},
+ "name":"org.apache.seata.rm.datasource.exec.kingbase.KingbaseInsertExecutor"
}
]
diff --git
a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/reflect-config.json
b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/reflect-config.json
index 0b3874188e2..30db81f547e 100644
---
a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/reflect-config.json
+++
b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/reflect-config.json
@@ -15,6 +15,10 @@
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource"},
"name":"[Lcom.github.dockerjava.api.model.VolumesFrom;"
},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+ "name":"[Lcom.github.dockerjava.api.model.VolumesFrom;"
+},
{
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.connection.DriverDatabaseConnectionManager$$Lambda/0x0000027a3d907cd8"},
"name":"[Lcom.zaxxer.hikari.util.ConcurrentBag$IConcurrentBagEntry;"
@@ -75,10 +79,6 @@
"condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.standalone.jdbc.JDBCRepository"},
"name":"[Lcom.zaxxer.hikari.util.ConcurrentBag$IConcurrentBagEntry;"
},
-{
-
"condition":{"typeReachable":"org.apache.shardingsphere.proxy.backend.connector.jdbc.datasource.JDBCBackendDataSource"},
- "name":"[Lcom.zaxxer.hikari.util.ConcurrentBag$IConcurrentBagEntry;"
-},
{
"condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.ShardingSphereProxy"},
"name":"[Lcom.zaxxer.hikari.util.ConcurrentBag$IConcurrentBagEntry;"
@@ -95,6 +95,10 @@
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource"},
"name":"[Ljava.lang.String;"
},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+ "name":"[Ljava.lang.String;"
+},
{
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement"},
"name":"[Ljava.sql.Statement;"
@@ -116,7 +120,7 @@
"name":"[Ljava.sql.Statement;"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.proxy.backend.connector.jdbc.datasource.JDBCBackendDataSource"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.Portal"},
"name":"[Ljava.sql.Statement;"
},
{
@@ -227,6 +231,10 @@
"queryAllDeclaredMethods":true,
"queryAllPublicMethods":true
},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.cluster.etcd.EtcdRepository"},
+ "name":"java.lang.BaseVirtualThread"
+},
{
"condition":{"typeReachable":"org.apache.shardingsphere.infra.expr.groovy.GroovyInlineExpressionParser"},
"name":"java.lang.Boolean"
@@ -251,6 +259,10 @@
"name":"java.lang.ClassLoader",
"queryAllDeclaredMethods":true
},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+ "name":"java.lang.ClassLoader"
+},
{
"condition":{"typeReachable":"org.apache.shardingsphere.infra.expr.groovy.GroovyInlineExpressionParser"},
"name":"java.lang.Cloneable",
@@ -430,7 +442,7 @@
{
"condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.cluster.etcd.EtcdRepository"},
"name":"java.lang.Thread",
- "methods":[{"name":"ofVirtual","parameterTypes":[] }]
+ "methods":[{"name":"isVirtual","parameterTypes":[] },
{"name":"ofVirtual","parameterTypes":[] }]
},
{
"condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.cluster.etcd.EtcdRepository"},
@@ -535,6 +547,11 @@
"name":"java.security.AccessController",
"methods":[{"name":"doPrivileged","parameterTypes":["java.security.PrivilegedExceptionAction"]
}]
},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+ "name":"java.security.AccessController",
+
"methods":[{"name":"doPrivileged","parameterTypes":["java.security.PrivilegedExceptionAction"]
}]
+},
{
"condition":{"typeReachable":"org.apache.shardingsphere.infra.expr.groovy.GroovyInlineExpressionParser"},
"name":"java.security.PrivilegedAction",
@@ -762,6 +779,10 @@
"name":"java.util.function.ToLongFunction",
"queryAllPublicMethods":true
},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+ "name":"java.util.logging.Logger"
+},
{
"condition":{"typeReachable":"org.apache.shardingsphere.infra.expr.groovy.GroovyInlineExpressionParser"},
"name":"java.util.regex.Matcher"
@@ -1096,7 +1117,7 @@
"name":"org.apache.shardingsphere.driver.ShardingSphereDriver"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.proxy.backend.connector.jdbc.datasource.JDBCBackendDataSource"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.Portal"},
"name":"org.apache.shardingsphere.driver.ShardingSphereDriver"
},
{
@@ -1465,10 +1486,6 @@
"condition":{"typeReachable":"org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory"},
"name":"org.apache.shardingsphere.infra.database.hive.type.HiveDatabaseType"
},
-{
-
"condition":{"typeReachable":"org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory"},
-
"name":"org.apache.shardingsphere.infra.database.mariadb.type.MariaDBDatabaseType"
-},
{
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.xa.XAShardingSphereTransactionManager"},
"name":"org.apache.shardingsphere.infra.database.mysql.checker.MySQLDatabasePrivilegeChecker"
@@ -1565,38 +1582,6 @@
"condition":{"typeReachable":"org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory"},
"name":"org.apache.shardingsphere.infra.database.sqlserver.type.SQLServerDatabaseType"
},
-{
-
"condition":{"typeReachable":"org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory"},
-
"name":"org.apache.shardingsphere.infra.database.testcontainers.type.TcClickHouseDatabaseType"
-},
-{
-
"condition":{"typeReachable":"org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory"},
-
"name":"org.apache.shardingsphere.infra.database.testcontainers.type.TcFirebirdDatabaseType"
-},
-{
-
"condition":{"typeReachable":"org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory"},
-
"name":"org.apache.shardingsphere.infra.database.testcontainers.type.TcMariaDBDatabaseType"
-},
-{
-
"condition":{"typeReachable":"org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory"},
-
"name":"org.apache.shardingsphere.infra.database.testcontainers.type.TcMySQLDatabaseType"
-},
-{
-
"condition":{"typeReachable":"org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory"},
-
"name":"org.apache.shardingsphere.infra.database.testcontainers.type.TcOracleDatabaseType"
-},
-{
-
"condition":{"typeReachable":"org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory"},
-
"name":"org.apache.shardingsphere.infra.database.testcontainers.type.TcPostgreSQLDatabaseType"
-},
-{
-
"condition":{"typeReachable":"org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory"},
-
"name":"org.apache.shardingsphere.infra.database.testcontainers.type.TcSQLServerDatabaseType"
-},
-{
-
"condition":{"typeReachable":"org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory"},
-
"name":"org.apache.shardingsphere.infra.database.testcontainers.type.TcTiDBDatabaseType"
-},
{
"condition":{"typeReachable":"org.apache.shardingsphere.infra.datasource.pool.destroyer.DataSourcePoolDestroyer"},
"name":"org.apache.shardingsphere.infra.datasource.pool.hikari.detector.HikariDataSourcePoolActiveDetector"
@@ -2584,7 +2569,7 @@
"name":"org.apache.shardingsphere.proxy.backend.config.yaml.YamlProxyServerConfiguration",
"allDeclaredFields":true,
"queryAllPublicMethods":true,
- "methods":[{"name":"<init>","parameterTypes":[] },
{"name":"setAuthority","parameterTypes":["org.apache.shardingsphere.authority.yaml.config.YamlAuthorityRuleConfiguration"]
},
{"name":"setMode","parameterTypes":["org.apache.shardingsphere.infra.yaml.config.pojo.mode.YamlModeConfiguration"]
}, {"name":"setProps","parameterTypes":["java.util.Properties"] },
{"name":"setTransaction","parameterTypes":["org.apache.shardingsphere.transaction.yaml.config.YamlTransactionRuleConfiguration"]
}]
+ "methods":[{"name":"<init>","parameterTypes":[] },
{"name":"setAuthority","parameterTypes":["org.apache.shardingsphere.authority.yaml.config.YamlAuthorityRuleConfiguration"]
},
{"name":"setMode","parameterTypes":["org.apache.shardingsphere.infra.yaml.config.pojo.mode.YamlModeConfiguration"]
}, {"name":"setProps","parameterTypes":["java.util.Properties"] }]
},
{
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
@@ -3611,6 +3596,11 @@
"name":"org.apache.shardingsphere.sql.parser.postgresql.visitor.statement.type.PostgreSQLDMLStatementVisitor",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.parser.cache.SQLStatementCacheLoader"},
+
"name":"org.apache.shardingsphere.sql.parser.postgresql.visitor.statement.type.PostgreSQLDMLStatementVisitor",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
{
"condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.core.database.visitor.SQLStatementVisitorFactory"},
"name":"org.apache.shardingsphere.sql.parser.sql92.visitor.statement.SQL92StatementVisitorFacade",
@@ -3791,32 +3781,56 @@
"name":"org.apache.shardingsphere.sqlfederation.distsql.parser.facade.SQLFederationDistSQLParserFacade"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sqlfederation.optimizer.context.parser.dialect.OptimizerSQLPropertiesBuilder"},
-
"name":"org.apache.shardingsphere.sqlfederation.optimizer.context.parser.dialect.impl.H2OptimizerBuilder"
+
"condition":{"typeReachable":"org.apache.shardingsphere.sqlfederation.optimizer.context.connection.config.ConnectionConfigBuilderFactory"},
+
"name":"org.apache.shardingsphere.sqlfederation.optimizer.context.connection.config.impl.H2ConnectionConfigBuilder"
+},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.sqlfederation.optimizer.context.connection.config.ConnectionConfigBuilderFactory"},
+
"name":"org.apache.shardingsphere.sqlfederation.optimizer.context.connection.config.impl.MySQLConnectionConfigBuilder"
+},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.sqlfederation.optimizer.context.connection.config.ConnectionConfigBuilderFactory"},
+
"name":"org.apache.shardingsphere.sqlfederation.optimizer.context.connection.config.impl.OpenGaussConnectionConfigBuilder"
+},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.sqlfederation.optimizer.context.connection.config.ConnectionConfigBuilderFactory"},
+
"name":"org.apache.shardingsphere.sqlfederation.optimizer.context.connection.config.impl.OracleConnectionConfigBuilder"
+},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.sqlfederation.optimizer.context.connection.config.ConnectionConfigBuilderFactory"},
+
"name":"org.apache.shardingsphere.sqlfederation.optimizer.context.connection.config.impl.PostgreSQLConnectionConfigBuilder"
+},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.sqlfederation.optimizer.context.connection.config.ConnectionConfigBuilderFactory"},
+
"name":"org.apache.shardingsphere.sqlfederation.optimizer.context.connection.config.impl.SQL92ConnectionConfigBuilder"
+},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.sqlfederation.optimizer.context.connection.config.ConnectionConfigBuilderFactory"},
+
"name":"org.apache.shardingsphere.sqlfederation.optimizer.context.connection.config.impl.SQLServerConnectionConfigBuilder"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sqlfederation.optimizer.context.parser.dialect.OptimizerSQLPropertiesBuilder"},
-
"name":"org.apache.shardingsphere.sqlfederation.optimizer.context.parser.dialect.impl.MySQLOptimizerBuilder"
+
"condition":{"typeReachable":"org.apache.shardingsphere.sqlfederation.optimizer.context.schema.CalciteSchemaBuilder"},
+
"name":"org.apache.shardingsphere.sqlfederation.optimizer.function.mysql.impl.MySQLBinFunction"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sqlfederation.optimizer.context.parser.dialect.OptimizerSQLPropertiesBuilder"},
-
"name":"org.apache.shardingsphere.sqlfederation.optimizer.context.parser.dialect.impl.OpenGaussOptimizerBuilder"
+
"condition":{"typeReachable":"org.apache.shardingsphere.sqlfederation.optimizer.context.schema.CalciteSchemaBuilder$$Lambda/0x0000027d0c57d148"},
+
"name":"org.apache.shardingsphere.sqlfederation.optimizer.function.mysql.impl.MySQLBinFunction"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sqlfederation.optimizer.context.parser.dialect.OptimizerSQLPropertiesBuilder"},
-
"name":"org.apache.shardingsphere.sqlfederation.optimizer.context.parser.dialect.impl.OracleOptimizerBuilder"
+
"condition":{"typeReachable":"org.apache.shardingsphere.sqlfederation.optimizer.function.mysql.MySQLFunctionRegister"},
+
"name":"org.apache.shardingsphere.sqlfederation.optimizer.function.mysql.impl.MySQLBinFunction"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sqlfederation.optimizer.context.parser.dialect.OptimizerSQLPropertiesBuilder"},
-
"name":"org.apache.shardingsphere.sqlfederation.optimizer.context.parser.dialect.impl.PostgreSQLOptimizerBuilder"
+
"condition":{"typeReachable":"org.apache.shardingsphere.sqlfederation.optimizer.function.opengauss.OpenGaussFunctionRegister"},
+
"name":"org.apache.shardingsphere.sqlfederation.optimizer.function.opengauss.impl.OpenGaussSystemFunction"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sqlfederation.optimizer.context.parser.dialect.OptimizerSQLPropertiesBuilder"},
-
"name":"org.apache.shardingsphere.sqlfederation.optimizer.context.parser.dialect.impl.SQL92OptimizerBuilder"
+
"condition":{"typeReachable":"org.apache.shardingsphere.sqlfederation.optimizer.function.opengauss.OpenGaussFunctionRegister"},
+
"name":"org.apache.shardingsphere.sqlfederation.optimizer.function.postgresql.impl.PostgreSQLSystemFunction"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sqlfederation.optimizer.context.parser.dialect.OptimizerSQLPropertiesBuilder"},
-
"name":"org.apache.shardingsphere.sqlfederation.optimizer.context.parser.dialect.impl.SQLServerOptimizerBuilder"
+
"condition":{"typeReachable":"org.apache.shardingsphere.sqlfederation.optimizer.function.postgresql.PostgreSQLFunctionRegister"},
+
"name":"org.apache.shardingsphere.sqlfederation.optimizer.function.postgresql.impl.PostgreSQLSystemFunction"
},
{
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource"},
diff --git
a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/resource-config.json
b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/resource-config.json
index f220d211116..8fa5a0d0f6d 100644
---
a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/resource-config.json
+++
b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/resource-config.json
@@ -3,21 +3,63 @@
"includes":[{
"condition":{"typeReachable":"org.apache.shardingsphere.infra.expr.groovy.GroovyInlineExpressionParser"},
"pattern":"\\QMETA-INF/dgminfo\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+ "pattern":"\\QMETA-INF/druid-driver.properties\\E"
}, {
"condition":{"typeReachable":"org.apache.shardingsphere.infra.expr.groovy.GroovyInlineExpressionParser"},
"pattern":"\\QMETA-INF/groovy/org.codehaus.groovy.runtime.ExtensionModule\\E"
}, {
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.xa.atomikos.manager.AtomikosTransactionManagerProvider"},
"pattern":"\\QMETA-INF/maven/com.atomikos/atomikos-util/pom.properties\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+ "pattern":"\\QMETA-INF/seata/io.seata.config.ConfigurationProvider\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+ "pattern":"\\QMETA-INF/seata/io.seata.core.auth.AuthSigner\\E"
}, {
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataTransactionalSQLExecutionHook"},
"pattern":"\\QMETA-INF/seata/io.seata.core.context.ContextCore\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+ "pattern":"\\QMETA-INF/seata/io.seata.core.model.ResourceManager\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+
"pattern":"\\QMETA-INF/seata/io.seata.discovery.registry.RegistryProvider\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+
"pattern":"\\QMETA-INF/seata/org.apache.seata.config.ConfigurationProvider\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+
"pattern":"\\QMETA-INF/seata/org.apache.seata.config.ExtConfigurationProvider\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+ "pattern":"\\QMETA-INF/seata/org.apache.seata.core.auth.AuthSigner\\E"
}, {
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataTransactionalSQLExecutionHook"},
"pattern":"\\QMETA-INF/seata/org.apache.seata.core.context.ContextCore\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+
"pattern":"\\QMETA-INF/seata/org.apache.seata.core.model.ResourceManager\\E"
}, {
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
"pattern":"\\QMETA-INF/seata/org.apache.seata.core.model.TransactionManager\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+ "pattern":"\\QMETA-INF/seata/org.apache.seata.core.rpc.hook.RpcHook\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+
"pattern":"\\QMETA-INF/seata/org.apache.seata.discovery.registry.RegistryProvider\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+ "pattern":"\\QMETA-INF/seata/org.apache.seata.rm.AbstractRMHandler\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+
"pattern":"\\QMETA-INF/seata/org.apache.seata.rm.datasource.undo.UndoLogManager\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+
"pattern":"\\QMETA-INF/seata/org.apache.seata.sqlparser.util.DbTypeParser\\E"
}, {
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.xa.atomikos.manager.AtomikosTransactionManagerProvider"},
"pattern":"\\QMETA-INF/services/com.atomikos.icatch.TransactionServicePlugin\\E"
@@ -42,9 +84,21 @@
}, {
"condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.cluster.etcd.EtcdRepository"},
"pattern":"\\QMETA-INF/services/io.grpc.NameResolverProvider\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+ "pattern":"\\QMETA-INF/services/io.seata.config.ConfigurationProvider\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+ "pattern":"\\QMETA-INF/services/io.seata.core.auth.AuthSigner\\E"
}, {
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataTransactionalSQLExecutionHook"},
"pattern":"\\QMETA-INF/services/io.seata.core.context.ContextCore\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+ "pattern":"\\QMETA-INF/services/io.seata.core.model.ResourceManager\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+
"pattern":"\\QMETA-INF/services/io.seata.discovery.registry.RegistryProvider\\E"
}, {
"condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.cluster.etcd.EtcdRepository"},
"pattern":"\\QMETA-INF/services/io.vertx.core.spi.VerticleFactory\\E"
@@ -78,12 +132,39 @@
}, {
"condition":{"typeReachable":"org.apache.shardingsphere.infra.database.hive.metadata.data.loader.HiveMetaDataLoader"},
"pattern":"\\QMETA-INF/services/javax.xml.transform.TransformerFactory\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+
"pattern":"\\QMETA-INF/services/org.apache.seata.config.ConfigurationProvider\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+
"pattern":"\\QMETA-INF/services/org.apache.seata.config.ExtConfigurationProvider\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+ "pattern":"\\QMETA-INF/services/org.apache.seata.core.auth.AuthSigner\\E"
}, {
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataTransactionalSQLExecutionHook"},
"pattern":"\\QMETA-INF/services/org.apache.seata.core.context.ContextCore\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+
"pattern":"\\QMETA-INF/services/org.apache.seata.core.model.ResourceManager\\E"
}, {
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
"pattern":"\\QMETA-INF/services/org.apache.seata.core.model.TransactionManager\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+ "pattern":"\\QMETA-INF/services/org.apache.seata.core.rpc.hook.RpcHook\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+
"pattern":"\\QMETA-INF/services/org.apache.seata.discovery.registry.RegistryProvider\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+ "pattern":"\\QMETA-INF/services/org.apache.seata.rm.AbstractRMHandler\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+
"pattern":"\\QMETA-INF/services/org.apache.seata.rm.datasource.undo.UndoLogManager\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+
"pattern":"\\QMETA-INF/services/org.apache.seata.sqlparser.util.DbTypeParser\\E"
}, {
"condition":{"typeReachable":"org.apache.shardingsphere.authority.rule.AuthorityRule"},
"pattern":"\\QMETA-INF/services/org.apache.shardingsphere.authority.spi.PrivilegeProvider\\E"
@@ -229,8 +310,8 @@
"condition":{"typeReachable":"org.apache.shardingsphere.readwritesplitting.route.standard.StandardReadwriteSplittingDataSourceRouter"},
"pattern":"\\QMETA-INF/services/org.apache.shardingsphere.readwritesplitting.route.standard.filter.ReadDataSourcesFilter\\E"
}, {
-
"condition":{"typeReachable":"org.apache.shardingsphere.sqlfederation.optimizer.context.parser.dialect.OptimizerSQLPropertiesBuilder"},
-
"pattern":"\\QMETA-INF/services/org.apache.shardingsphere.sqlfederation.optimizer.context.parser.dialect.OptimizerSQLDialectBuilder\\E"
+
"condition":{"typeReachable":"org.apache.shardingsphere.sqlfederation.optimizer.context.connection.config.ConnectionConfigBuilderFactory"},
+
"pattern":"\\QMETA-INF/services/org.apache.shardingsphere.sqlfederation.optimizer.context.connection.config.ConnectionConfigBuilder\\E"
}, {
"condition":{"typeReachable":"org.apache.shardingsphere.sqlfederation.engine.SQLFederationEngine"},
"pattern":"\\QMETA-INF/services/org.apache.shardingsphere.sqlfederation.spi.SQLFederationDecider\\E"
@@ -255,9 +336,15 @@
}, {
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource"},
"pattern":"\\QMETA-INF/services/org.testcontainers.containers.JdbcDatabaseContainerProvider\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+
"pattern":"\\QMETA-INF/services/org.testcontainers.containers.JdbcDatabaseContainerProvider\\E"
}, {
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource"},
"pattern":"\\QMETA-INF/services/org.testcontainers.core.CreateContainerCmdModifier\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+
"pattern":"\\QMETA-INF/services/org.testcontainers.core.CreateContainerCmdModifier\\E"
}, {
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
"pattern":"\\Q\\E"
@@ -300,6 +387,9 @@
}, {
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.xa.atomikos.manager.AtomikosTransactionManagerProvider"},
"pattern":"\\Qjta.properties\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+ "pattern":"\\Qlib/sqlparser/druid.jar\\E"
}, {
"condition":{"typeReachable":"org.apache.shardingsphere.infra.database.hive.metadata.data.loader.HiveMetaDataLoader"},
"pattern":"\\Qmapred-default.xml\\E"
@@ -315,11 +405,14 @@
}, {
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource"},
"pattern":"\\Qorg/postgresql/driverconfig.properties\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+ "pattern":"\\Qorg/postgresql/driverconfig.properties\\E"
}, {
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
"pattern":"\\Qregistry.conf\\E"
}, {
-
"condition":{"typeReachable":"org.apache.shardingsphere.sqlfederation.optimizer.context.parser.dialect.OptimizerSQLPropertiesBuilder"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.sqlfederation.optimizer.context.connection.config.ConnectionConfigBuilderFactory"},
"pattern":"\\Qsaffron.properties\\E"
}, {
"condition":{"typeReachable":"org.apache.shardingsphere.infra.metadata.database.schema.manager.SystemSchemaManager"},
@@ -1866,6 +1959,9 @@
}, {
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource"},
"pattern":"\\Qtest-native/sql/seata-script-client-at-postgresql.sql\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
+ "pattern":"\\Qtest-native/sql/seata-script-client-at-postgresql.sql\\E"
}, {
"condition":{"typeReachable":"org.apache.shardingsphere.infra.url.classpath.ClassPathURLLoader"},
"pattern":"\\Qtest-native/yaml/jdbc/databases/clickhouse.yaml\\E"
diff --git
a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/shardingsphere-infra-reachability-metadata/reflect-config.json
b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/shardingsphere-infra-reachability-metadata/reflect-config.json
index 23d508f0a84..92ea88c5ac7 100644
---
a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/shardingsphere-infra-reachability-metadata/reflect-config.json
+++
b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/shardingsphere-infra-reachability-metadata/reflect-config.json
@@ -427,6 +427,21 @@
"name":"org.apache.shardingsphere.sql.parser.statement.hive.dml.HiveSelectStatement",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.sqlfederation.optimizer.function.mysql.MySQLFunctionRegister"},
+
"name":"org.apache.shardingsphere.sqlfederation.optimizer.function.mysql.impl.MySQLBinFunction",
+ "allPublicMethods": true
+},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.sqlfederation.optimizer.function.postgresql.PostgreSQLFunctionRegister"},
+
"name":"org.apache.shardingsphere.sqlfederation.optimizer.function.postgresql.impl.PostgreSQLSystemFunction",
+ "allPublicMethods": true
+},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.sqlfederation.optimizer.function.opengauss.OpenGaussFunctionRegister"},
+
"name":"org.apache.shardingsphere.sqlfederation.optimizer.function.opengauss.impl.OpenGaussSystemFunction",
+ "allPublicMethods": true
+},
{
"condition":{"typeReachable":"javax.security.auth.login.Configuration"},
"name":"sun.security.provider.ConfigFile",
diff --git
a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.junit.jupiter/junit-jupiter/5.11.1/reflect-config.json
b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.junit.jupiter/junit-jupiter/5.11.1/reflect-config.json
index 4acfe31d5f9..3e5dc7835e6 100644
---
a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.junit.jupiter/junit-jupiter/5.11.1/reflect-config.json
+++
b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.junit.jupiter/junit-jupiter/5.11.1/reflect-config.json
@@ -33,5 +33,10 @@
"condition":{"typeReachable":"org.junit.platform.commons.util.ReflectionUtils"},
"name":"org.junit.internal.AssumptionViolatedException",
"allPublicMethods": true
+},
+{
+
"condition":{"typeReachable":"org.junit.platform.commons.util.AnnotationUtils"},
+ "name":"org.junit.jupiter.api.condition.DisabledOnOs",
+ "allPublicMethods": true
}
]
diff --git a/test/native/pom.xml b/test/native/pom.xml
index a9fd7e0a3f8..796f6267c59 100644
--- a/test/native/pom.xml
+++ b/test/native/pom.xml
@@ -232,6 +232,12 @@
<version>${project.version}</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-parser-sql-firebird</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>org.awaitility</groupId>
diff --git
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/testcontainers/TcPostgreSQLDatabaseType.java
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/commons/algorithm/testcontainers/TcPostgreSQLDatabaseType.java
similarity index 95%
rename from
test/native/src/test/java/org/apache/shardingsphere/test/natived/testcontainers/TcPostgreSQLDatabaseType.java
rename to
test/native/src/test/java/org/apache/shardingsphere/test/natived/commons/algorithm/testcontainers/TcPostgreSQLDatabaseType.java
index 2d189569e7f..caa2d085142 100644
---
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/testcontainers/TcPostgreSQLDatabaseType.java
+++
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/commons/algorithm/testcontainers/TcPostgreSQLDatabaseType.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.test.natived.testcontainers;
+package
org.apache.shardingsphere.test.natived.commons.algorithm.testcontainers;
import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
diff --git
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/testcontainers/TcSQLServerDatabaseType.java
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/commons/algorithm/testcontainers/TcSQLServerDatabaseType.java
similarity index 95%
rename from
test/native/src/test/java/org/apache/shardingsphere/test/natived/testcontainers/TcSQLServerDatabaseType.java
rename to
test/native/src/test/java/org/apache/shardingsphere/test/natived/commons/algorithm/testcontainers/TcSQLServerDatabaseType.java
index a84cecce789..f6606473f7c 100644
---
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/testcontainers/TcSQLServerDatabaseType.java
+++
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/commons/algorithm/testcontainers/TcSQLServerDatabaseType.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.test.natived.testcontainers;
+package
org.apache.shardingsphere.test.natived.commons.algorithm.testcontainers;
import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
diff --git
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/testcontainers/TestcontainersDatabaseType.java
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/commons/algorithm/testcontainers/TestcontainersDatabaseType.java
similarity index 92%
rename from
test/native/src/test/java/org/apache/shardingsphere/test/natived/testcontainers/TestcontainersDatabaseType.java
rename to
test/native/src/test/java/org/apache/shardingsphere/test/natived/commons/algorithm/testcontainers/TestcontainersDatabaseType.java
index 600baed4f0a..e95a99db3d3 100644
---
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/testcontainers/TestcontainersDatabaseType.java
+++
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/commons/algorithm/testcontainers/TestcontainersDatabaseType.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.test.natived.testcontainers;
+package
org.apache.shardingsphere.test.natived.commons.algorithm.testcontainers;
import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
diff --git
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/commons/proxy/ProxyTestingServer.java
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/commons/proxy/ProxyTestingServer.java
index bda3b2e4519..ac52e6a9c78 100644
---
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/commons/proxy/ProxyTestingServer.java
+++
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/commons/proxy/ProxyTestingServer.java
@@ -34,9 +34,9 @@ import java.util.concurrent.TimeUnit;
* It is necessary to avoid creating multiple ShardingSphere Proxy instances
in parallel in Junit5 unit tests.
* Currently, Junit5 unit tests are all executed serially.
*/
-@Getter
public final class ProxyTestingServer {
+ @Getter
private final int proxyPort;
private final CompletableFuture<Void> completableFuture;
diff --git
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/transactions/base/SeataTest.java
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/transactions/base/SeataTest.java
index f5c0f1ba290..2b4bcba07b7 100644
---
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/transactions/base/SeataTest.java
+++
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/transactions/base/SeataTest.java
@@ -77,6 +77,7 @@ class SeataTest {
@AfterEach
void afterEach() throws SQLException {
Awaitility.await().pollDelay(5L, TimeUnit.SECONDS).until(() -> true);
+ System.clearProperty(serviceDefaultGroupListKey);
try (Connection connection = logicDataSource.getConnection()) {
ContextManager contextManager =
connection.unwrap(ShardingSphereConnection.class).getContextManager();
for (StorageUnit each :
contextManager.getStorageUnits(DefaultDatabase.LOGIC_NAME).values()) {
@@ -85,7 +86,6 @@ class SeataTest {
contextManager.close();
}
ContainerDatabaseDriver.killContainers();
- System.clearProperty(serviceDefaultGroupListKey);
}
@Test
diff --git
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/proxy/transactions/base/SeataTest.java
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/proxy/transactions/base/SeataTest.java
index 05da553e4ec..4ba3f454f1a 100644
---
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/proxy/transactions/base/SeataTest.java
+++
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/proxy/transactions/base/SeataTest.java
@@ -28,8 +28,8 @@ import
org.apache.shardingsphere.test.natived.commons.proxy.ProxyTestingServer;
import org.awaitility.Awaitility;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.condition.EnabledInNativeImage;
import org.testcontainers.containers.GenericContainer;
import org.testcontainers.containers.PostgreSQLContainer;
import org.testcontainers.containers.wait.strategy.Wait;
@@ -52,7 +52,7 @@ import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.nullValue;
@SuppressWarnings({"SqlNoDataSourceInspection", "resource"})
-@EnabledInNativeImage
+@Disabled("TODO Executing this unit test in Github Actions Runner may cause
connection leaks in other unit tests. Pending investigation.")
@Testcontainers
class SeataTest {
@@ -96,11 +96,11 @@ class SeataTest {
@AfterEach
void afterEach() {
Awaitility.await().pollDelay(5L, TimeUnit.SECONDS).until(() -> true);
+ System.clearProperty(serviceDefaultGroupListKey);
proxyTestingServer.close();
TmNettyRemotingClient.getInstance().destroy();
RmNettyRemotingClient.getInstance().destroy();
ConfigurationFactory.reload();
- System.clearProperty(serviceDefaultGroupListKey);
}
/**
diff --git
a/test/native/src/test/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.type.DatabaseType
b/test/native/src/test/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.type.DatabaseType
index 40a36b6b1b2..684b775f5ce 100644
---
a/test/native/src/test/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.type.DatabaseType
+++
b/test/native/src/test/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.type.DatabaseType
@@ -15,5 +15,5 @@
# limitations under the License.
#
-org.apache.shardingsphere.test.natived.testcontainers.TcPostgreSQLDatabaseType
-org.apache.shardingsphere.test.natived.testcontainers.TcSQLServerDatabaseType
+org.apache.shardingsphere.test.natived.commons.algorithm.testcontainers.TcPostgreSQLDatabaseType
+org.apache.shardingsphere.test.natived.commons.algorithm.testcontainers.TcSQLServerDatabaseType