From f8295e8abe000cd408daa4ed82238d6a7b5da51a Mon Sep 17 00:00:00 2001 From: linghengqian Date: Sat, 14 Dec 2024 19:58:48 +0800 Subject: [PATCH] Add documentation for P6Spy support --- .../graalvm-native-image/_index.cn.md | 6 +- .../graalvm-native-image/_index.en.md | 6 +- .../optional-plugins/clickhouse/_index.cn.md | 12 ++ .../optional-plugins/clickhouse/_index.en.md | 12 ++ .../optional-plugins/hiveserver2/_index.cn.md | 4 +- .../optional-plugins/hiveserver2/_index.en.md | 4 +- .../_index.cn.md} | 0 .../_index.en.md} | 0 .../unsupported/p6spy/_index.cn.md | 154 +++++++++++++++++ .../unsupported/p6spy/_index.en.md | 156 ++++++++++++++++++ .../optional-plugins/seata-at/_index.cn.md | 33 +--- .../optional-plugins/seata-at/_index.en.md | 2 +- .../startup/graalvm-native-image.cn.md | 29 ++++ .../startup/graalvm-native-image.en.md | 29 ++++ .../reflect-config.json | 155 +++++++++++------ .../resource-config.json | 40 +---- .../reflect-config.json | 4 +- pom.xml | 2 +- test/native/pom.xml | 5 - .../jdbc/databases/ClickHouseTest.java | 12 +- .../natived/jdbc/databases/MySQLTest.java | 11 +- .../natived/jdbc/databases/OpenGaussTest.java | 12 +- .../hive/ZookeeperServiceDiscoveryTest.java | 12 +- .../yaml/jdbc/databases/mysql.yaml | 6 +- .../yaml/jdbc/databases/opengauss.yaml | 6 +- 25 files changed, 539 insertions(+), 173 deletions(-) rename docs/document/content/user-manual/shardingsphere-jdbc/{unsupported.cn.md => unsupported/_index.cn.md} (100%) rename docs/document/content/user-manual/shardingsphere-jdbc/{unsupported.en.md => unsupported/_index.en.md} (100%) create mode 100644 docs/document/content/user-manual/shardingsphere-jdbc/unsupported/p6spy/_index.cn.md create mode 100644 docs/document/content/user-manual/shardingsphere-jdbc/unsupported/p6spy/_index.en.md diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/graalvm-native-image/_index.cn.md b/docs/document/content/user-manual/shardingsphere-jdbc/graalvm-native-image/_index.cn.md index ac678804be491..ed2a75dbc6937 100644 --- a/docs/document/content/user-manual/shardingsphere-jdbc/graalvm-native-image/_index.cn.md +++ b/docs/document/content/user-manual/shardingsphere-jdbc/graalvm-native-image/_index.cn.md @@ -47,7 +47,7 @@ java.beans.Introspector was unintentionally initialized at build time. To see wh org.graalvm.buildtools native-maven-plugin - 0.10.3 + 0.10.4 true @@ -85,12 +85,12 @@ java.beans.Introspector was unintentionally initialized at build time. To see wh ```groovy plugins { - id 'org.graalvm.buildtools.native' version '0.10.3' + id 'org.graalvm.buildtools.native' version '0.10.4' } dependencies { implementation 'org.apache.shardingsphere:shardingsphere-jdbc:${shardingsphere.version}' - implementation(group: 'org.graalvm.buildtools', name: 'graalvm-reachability-metadata', version: '0.10.3', classifier: 'repository', ext: 'zip') + implementation(group: 'org.graalvm.buildtools', name: 'graalvm-reachability-metadata', version: '0.10.4', classifier: 'repository', ext: 'zip') } graalvmNative { diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/graalvm-native-image/_index.en.md b/docs/document/content/user-manual/shardingsphere-jdbc/graalvm-native-image/_index.en.md index 680f492bd3fa3..e0bd4a94c10a3 100644 --- a/docs/document/content/user-manual/shardingsphere-jdbc/graalvm-native-image/_index.en.md +++ b/docs/document/content/user-manual/shardingsphere-jdbc/graalvm-native-image/_index.en.md @@ -49,7 +49,7 @@ and the documentation of GraalVM Native Build Tools shall prevail. org.graalvm.buildtools native-maven-plugin - 0.10.3 + 0.10.4 true @@ -89,12 +89,12 @@ Reference https://github.com/graalvm/native-build-tools/issues/572 . ```groovy plugins { - id 'org.graalvm.buildtools.native' version '0.10.3' + id 'org.graalvm.buildtools.native' version '0.10.4' } dependencies { implementation 'org.apache.shardingsphere:shardingsphere-jdbc:${shardingsphere.version}' - implementation(group: 'org.graalvm.buildtools', name: 'graalvm-reachability-metadata', version: '0.10.3', classifier: 'repository', ext: 'zip') + implementation(group: 'org.graalvm.buildtools', name: 'graalvm-reachability-metadata', version: '0.10.4', classifier: 'repository', ext: 'zip') } graalvmNative { 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 4c92ac01f1975..9e12705225b84 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 @@ -98,14 +98,20 @@ dataSources: dataSourceClassName: com.zaxxer.hikari.HikariDataSource driverClassName: com.clickhouse.jdbc.ClickHouseDriver jdbcUrl: jdbc:ch://localhost:8123/demo_ds_0 + username: default + password: ds_1: dataSourceClassName: com.zaxxer.hikari.HikariDataSource driverClassName: com.clickhouse.jdbc.ClickHouseDriver jdbcUrl: jdbc:ch://localhost:8123/demo_ds_1 + username: default + password: ds_2: dataSourceClassName: com.zaxxer.hikari.HikariDataSource driverClassName: com.clickhouse.jdbc.ClickHouseDriver jdbcUrl: jdbc:ch://localhost:8123/demo_ds_2 + username: default + password: rules: - !SHARDING tables: @@ -305,14 +311,20 @@ dataSources: dataSourceClassName: com.zaxxer.hikari.HikariDataSource driverClassName: com.clickhouse.jdbc.ClickHouseDriver jdbcUrl: jdbc:ch://localhost:8123/demo_ds_0?transactionSupport=true + username: default + password: ds_1: dataSourceClassName: com.zaxxer.hikari.HikariDataSource driverClassName: com.clickhouse.jdbc.ClickHouseDriver jdbcUrl: jdbc:ch://localhost:8123/demo_ds_1?transactionSupport=true + username: default + password: ds_2: dataSourceClassName: com.zaxxer.hikari.HikariDataSource driverClassName: com.clickhouse.jdbc.ClickHouseDriver jdbcUrl: jdbc:ch://localhost:8123/demo_ds_2?transactionSupport=true + username: default + password: rules: - !SHARDING tables: 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 9b46f250e9b8d..0e81b12074829 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 @@ -100,14 +100,20 @@ dataSources: dataSourceClassName: com.zaxxer.hikari.HikariDataSource driverClassName: com.clickhouse.jdbc.ClickHouseDriver jdbcUrl: jdbc:ch://localhost:8123/demo_ds_0 + username: default + password: ds_1: dataSourceClassName: com.zaxxer.hikari.HikariDataSource driverClassName: com.clickhouse.jdbc.ClickHouseDriver jdbcUrl: jdbc:ch://localhost:8123/demo_ds_1 + username: default + password: ds_2: dataSourceClassName: com.zaxxer.hikari.HikariDataSource driverClassName: com.clickhouse.jdbc.ClickHouseDriver jdbcUrl: jdbc:ch://localhost:8123/demo_ds_2 + username: default + password: rules: - !SHARDING tables: @@ -311,14 +317,20 @@ dataSources: dataSourceClassName: com.zaxxer.hikari.HikariDataSource driverClassName: com.clickhouse.jdbc.ClickHouseDriver jdbcUrl: jdbc:ch://localhost:8123/demo_ds_0?transactionSupport=true + username: default + password: ds_1: dataSourceClassName: com.zaxxer.hikari.HikariDataSource driverClassName: com.clickhouse.jdbc.ClickHouseDriver jdbcUrl: jdbc:ch://localhost:8123/demo_ds_1?transactionSupport=true + username: default + password: ds_2: dataSourceClassName: com.zaxxer.hikari.HikariDataSource driverClassName: com.clickhouse.jdbc.ClickHouseDriver jdbcUrl: jdbc:ch://localhost:8123/demo_ds_2?transactionSupport=true + username: default + password: rules: - !SHARDING tables: 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 808b529cb5090..28637148be326 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 @@ -554,8 +554,8 @@ public class ExampleUtils { assert null == System.getProperty("fixture.hive.ds2.jdbc-url"); String absolutePath = Paths.get("src/test/resources/init.sql").toAbsolutePath().toString(); System.setProperty("fixture.hive.ds0.jdbc-url", "jdbc:hive2://localhost:10000/demo_ds_0;initFile=" + absolutePath); - System.setProperty("fixture.hive.ds0.jdbc-url", "jdbc:hive2://localhost:10000/demo_ds_1;initFile=" + absolutePath); - System.setProperty("fixture.hive.ds0.jdbc-url", "jdbc:hive2://localhost:10000/demo_ds_2;initFile=" + absolutePath); + System.setProperty("fixture.hive.ds1.jdbc-url", "jdbc:hive2://localhost:10000/demo_ds_1;initFile=" + absolutePath); + System.setProperty("fixture.hive.ds2.jdbc-url", "jdbc:hive2://localhost:10000/demo_ds_2;initFile=" + absolutePath); return new HikariDataSource(config); } finally { System.clearProperty("fixture.hive.ds0.jdbc-url"); 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 6f1dd74cd3964..4bc6a90939d63 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 @@ -562,8 +562,8 @@ public class ExampleUtils { assert null == System.getProperty("fixture.hive.ds2.jdbc-url"); String absolutePath = Paths.get("src/test/resources/init.sql").toAbsolutePath().toString(); System.setProperty("fixture.hive.ds0.jdbc-url", "jdbc:hive2://localhost:10000/demo_ds_0;initFile=" + absolutePath); - System.setProperty("fixture.hive.ds0.jdbc-url", "jdbc:hive2://localhost:10000/demo_ds_1;initFile=" + absolutePath); - System.setProperty("fixture.hive.ds0.jdbc-url", "jdbc:hive2://localhost:10000/demo_ds_2;initFile=" + absolutePath); + System.setProperty("fixture.hive.ds1.jdbc-url", "jdbc:hive2://localhost:10000/demo_ds_1;initFile=" + absolutePath); + System.setProperty("fixture.hive.ds2.jdbc-url", "jdbc:hive2://localhost:10000/demo_ds_2;initFile=" + absolutePath); return new HikariDataSource(config); } finally { System.clearProperty("fixture.hive.ds0.jdbc-url"); diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/unsupported.cn.md b/docs/document/content/user-manual/shardingsphere-jdbc/unsupported/_index.cn.md similarity index 100% rename from docs/document/content/user-manual/shardingsphere-jdbc/unsupported.cn.md rename to docs/document/content/user-manual/shardingsphere-jdbc/unsupported/_index.cn.md diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/unsupported.en.md b/docs/document/content/user-manual/shardingsphere-jdbc/unsupported/_index.en.md similarity index 100% rename from docs/document/content/user-manual/shardingsphere-jdbc/unsupported.en.md rename to docs/document/content/user-manual/shardingsphere-jdbc/unsupported/_index.en.md diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/unsupported/p6spy/_index.cn.md b/docs/document/content/user-manual/shardingsphere-jdbc/unsupported/p6spy/_index.cn.md new file mode 100644 index 0000000000000..dd5418d15faee --- /dev/null +++ b/docs/document/content/user-manual/shardingsphere-jdbc/unsupported/p6spy/_index.cn.md @@ -0,0 +1,154 @@ ++++ +title = "P6Spy" +weight = 6 ++++ + +## 背景信息 + +ShardingSphere 通过 `org.apache.shardingsphere:shardingsphere-infra-database-p6spy` 模块, +对 `com.p6spy.engine.spy.P6SpyDriver` 提供部分支持。 + +## 前提条件 + +要在 ShardingSphere 的配置文件为 MySQL Server 数据节点使用 P6Spy, 可能的 Maven 依赖关系如下, + +```xml + + + org.apache.shardingsphere + shardingsphere-jdbc + ${shardingsphere.version} + + + p6spy + p6spy + 3.9.1 + + + com.mysql + mysql-connector-j + 9.1.0 + + +``` + +## 配置示例 + +### 启动 MySQL Server + +编写 Docker Compose 文件来启动 MySQL Server。 + +```yaml +services: + mysql: + image: mysql:9.1.0 + environment: + MYSQL_ROOT_PASSWORD: example + volumes: + - ./mysql/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d + ports: + - "3306:3306" +``` + +`./docker-entrypoint-initdb.d` 文件夹包含文件为 `init.sh`,内容如下, + +```shell +#!/bin/bash +set -e + +mysql -uroot -p"$MYSQL_ROOT_PASSWORD" < + + org.apache.shardingsphere + shardingsphere-jdbc + ${shardingsphere.version} + + + p6spy + p6spy + 3.9.1 + + + com.mysql + mysql-connector-j + 9.1.0 + + +``` + +## Configuration Example + +### Start MySQL Server + +Write a Docker Compose file to start MySQL Server. + +```yaml +services: + mysql: + image: mysql:9.1.0 + environment: + MYSQL_ROOT_PASSWORD: example + volumes: + - ./mysql/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d + ports: + - "3306:3306" +``` + +The `./docker-entrypoint-initdb.d` folder contains the file `init.sh`, the content is as follows, + +```shell +#!/bin/bash +set -e + +mysql -uroot -p"$MYSQL_ROOT_PASSWORD" < - - - org.apache.shardingsphere - shardingsphere-transaction-base-seata-at - ${shardingsphere.version} - - - org.apache.seata - seata-all - 2.2.0 - - - org.antlr - antlr4-runtime - - - - - -``` diff --git a/docs/document/content/user-manual/shardingsphere-proxy/optional-plugins/seata-at/_index.en.md b/docs/document/content/user-manual/shardingsphere-proxy/optional-plugins/seata-at/_index.en.md index 9876c84742da6..cac93bf05dc93 100644 --- a/docs/document/content/user-manual/shardingsphere-proxy/optional-plugins/seata-at/_index.en.md +++ b/docs/document/content/user-manual/shardingsphere-proxy/optional-plugins/seata-at/_index.en.md @@ -14,7 +14,7 @@ but there are some differences, 1. If the user uses ShardingSphere JDBC in a hybrid deployment architecture, this scenario does not directly interact with ShardingSphere Proxy and is therefore not relevant to this article. This article only discusses the scenario where the business project does not use ShardingSphere JDBC 2. Seata Client only exists in ShardingSphere Proxy, and the business project does not need to rely on Seata Client -3. The R2BDC DataSource of the business project can be normally connected to the ShardingSphere Proxy with Seata integration turned on +3. The R2DBC DataSource of the business project can be normally connected to the ShardingSphere Proxy with Seata integration turned on 4. For ShardingSphere Proxy with Seata integration turned on, it is not possible to establish a `transaction propagation across services` operation to propagate transactions to other ShardingSphere Proxy instances using Seata integration or other microservices using Seata integration. If users have such needs, they should consider submitting a PR for ShardingSphere 5. The assumptions made by ShardingSphere JDBC on Seata's TCC mode are invalid on ShardingSphere Proxy diff --git a/docs/document/content/user-manual/shardingsphere-proxy/startup/graalvm-native-image.cn.md b/docs/document/content/user-manual/shardingsphere-proxy/startup/graalvm-native-image.cn.md index 3b1a0f5267e94..272a3b41fece0 100644 --- a/docs/document/content/user-manual/shardingsphere-proxy/startup/graalvm-native-image.cn.md +++ b/docs/document/content/user-manual/shardingsphere-proxy/startup/graalvm-native-image.cn.md @@ -178,3 +178,32 @@ services: 用户需要关注尚未关闭的 https://github.com/oracle/graal/issues/8177 。 若用户期望在 ShardingSphere Proxy Native 下使用这类 Java Agent,则需要关注 https://github.com/oracle/graal/pull/8077 涉及的变动。 + +## Seata AT 模式集成 + +对于 GraalVM Native Image 形态的 ShardingSphere Proxy Native, +用户始终需要修改 ShardingSphere 源代码以添加 Seata Client 和 Seata 集成的 Maven 模块,并编译为 GraalVM Native Image。 +GraalVM Native Image 形态的 ShardingSphere Proxy Native 无法识别额外添加的 JAR 文件。 + +```xml + + + + org.apache.shardingsphere + shardingsphere-transaction-base-seata-at + ${shardingsphere.version} + + + org.apache.seata + seata-all + 2.2.0 + + + org.antlr + antlr4-runtime + + + + + +``` diff --git a/docs/document/content/user-manual/shardingsphere-proxy/startup/graalvm-native-image.en.md b/docs/document/content/user-manual/shardingsphere-proxy/startup/graalvm-native-image.en.md index 392407cf5f658..f03450ba001e7 100644 --- a/docs/document/content/user-manual/shardingsphere-proxy/startup/graalvm-native-image.en.md +++ b/docs/document/content/user-manual/shardingsphere-proxy/startup/graalvm-native-image.en.md @@ -185,3 +185,32 @@ For Java Agents such as `ShardingSphere Agent`, the `native-image` component of Users need to pay attention to https://github.com/oracle/graal/issues/8177 which has not been closed. If users expect to use such Java Agents under ShardingSphere Proxy Native, they need to pay attention to the changes involved in https://github.com/oracle/graal/pull/8077 . + +## Seata AT mode integration + +For ShardingSphere Proxy Native in GraalVM Native Image, +Users always need to modify the ShardingSphere source code to add the Seata Client and Seata integrated Maven modules and compile them into GraalVM Native Image. +ShardingSphere Proxy Native in GraalVM Native Image cannot recognize the additional JAR files. + +```xml + + + + org.apache.shardingsphere + shardingsphere-transaction-base-seata-at + ${shardingsphere.version} + + + org.apache.seata + seata-all + 2.2.0 + + + org.antlr + antlr4-runtime + + + + + +``` 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 dfa0c21e71fb5..036dd6309c894 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 @@ -3,6 +3,10 @@ "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource"}, "name":"JdkLogger" }, +{ + "condition":{"typeReachable":"org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine"}, + "name":"JdkLogger" +}, { "condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader"}, "name":"[Lcom.fasterxml.jackson.databind.deser.BeanDeserializerModifier;" @@ -24,7 +28,7 @@ "name":"[Lcom.github.dockerjava.api.model.VolumesFrom;" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.connection.DriverDatabaseConnectionManager$$Lambda/0x00007faf37e08000"}, + "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.connection.DriverDatabaseConnectionManager$$Lambda/0x00007ff6b3e12630"}, "name":"[Lcom.zaxxer.hikari.util.ConcurrentBag$IConcurrentBagEntry;" }, { @@ -68,11 +72,11 @@ "name":"[Lcom.zaxxer.hikari.util.ConcurrentBag$IConcurrentBagEntry;" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.service.version.MetaDataVersionPersistService"}, "name":"[Lcom.zaxxer.hikari.util.ConcurrentBag$IConcurrentBagEntry;" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.service.version.MetaDataVersionPersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder"}, "name":"[Lcom.zaxxer.hikari.util.ConcurrentBag$IConcurrentBagEntry;" }, { @@ -87,6 +91,10 @@ "condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.Portal"}, "name":"[Lcom.zaxxer.hikari.util.ConcurrentBag$IConcurrentBagEntry;" }, +{ + "condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"}, + "name":"[Lcom.zaxxer.hikari.util.ConcurrentBag$IConcurrentBagEntry;" +}, { "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource"}, "name":"[Ljava.lang.String;" @@ -95,6 +103,10 @@ "condition":{"typeReachable":"org.apache.shardingsphere.infra.database.DatabaseTypeEngine"}, "name":"[Ljava.sql.Statement;" }, +{ + "condition":{"typeReachable":"org.apache.shardingsphere.infra.database.core.metadata.database.datatype.DataTypeRegistry"}, + "name":"[Ljava.sql.Statement;" +}, { "condition":{"typeReachable":"org.apache.shardingsphere.infra.database.mysql.checker.MySQLDatabasePrivilegeChecker"}, "name":"[Ljava.sql.Statement;" @@ -103,6 +115,14 @@ "condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.standalone.jdbc.JDBCRepository"}, "name":"[Ljava.sql.Statement;" }, +{ + "condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.Portal"}, + "name":"[Ljava.sql.Statement;" +}, +{ + "condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"}, + "name":"[Ljava.sql.Statement;" +}, { "condition":{"typeReachable":"org.apache.shardingsphere.infra.database.hive.metadata.data.loader.HiveMetaDataLoader"}, "name":"com.sun.security.auth.UnixPrincipal" @@ -253,10 +273,6 @@ "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", @@ -300,6 +316,11 @@ "condition":{"typeReachable":"org.apache.shardingsphere.infra.expr.groovy.GroovyInlineExpressionParser"}, "name":"java.lang.Number" }, +{ + "condition":{"typeReachable":"org.apache.shardingsphere.infra.algorithm.core.processor.AlgorithmChangedProcessor"}, + "name":"java.lang.Object", + "allDeclaredFields":true +}, { "condition":{"typeReachable":"org.apache.shardingsphere.infra.database.hive.metadata.data.loader.HiveMetaDataLoader"}, "name":"java.lang.Object", @@ -356,7 +377,7 @@ "allDeclaredFields":true }, { - "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.persist.StandaloneMetaDataManagerPersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneMetaDataManagerPersistService"}, "name":"java.lang.Object", "allDeclaredFields":true }, @@ -365,11 +386,6 @@ "name":"java.lang.Object", "allDeclaredFields":true }, -{ - "condition":{"typeReachable":"org.apache.shardingsphere.mode.processor.AlgorithmChangedProcessor"}, - "name":"java.lang.Object", - "allDeclaredFields":true -}, { "condition":{"typeReachable":"org.apache.shardingsphere.sharding.rule.changed.DefaultDatabaseShardingStrategyChangedProcessor"}, "name":"java.lang.Object", @@ -671,12 +687,12 @@ "name":"java.util.OptionalLong" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"}, + "condition":{"typeReachable":"org.apache.shardingsphere.infra.algorithm.core.processor.AlgorithmChangedProcessor"}, "name":"java.util.Properties", "methods":[{"name":"","parameterTypes":[] }] }, { - "condition":{"typeReachable":"org.apache.shardingsphere.mode.processor.AlgorithmChangedProcessor"}, + "condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"}, "name":"java.util.Properties", "methods":[{"name":"","parameterTypes":[] }] }, @@ -788,10 +804,6 @@ "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" @@ -946,7 +958,7 @@ "allDeclaredFields":true }, { - "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.persist.StandaloneMetaDataManagerPersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneMetaDataManagerPersistService"}, "name":"org.apache.shardingsphere.broadcast.yaml.config.YamlBroadcastRuleConfiguration", "allDeclaredFields":true }, @@ -1087,6 +1099,10 @@ "condition":{"typeReachable":"org.apache.shardingsphere.infra.database.DatabaseTypeEngine"}, "name":"org.apache.shardingsphere.driver.ShardingSphereDriver" }, +{ + "condition":{"typeReachable":"org.apache.shardingsphere.infra.database.core.metadata.database.datatype.DataTypeRegistry"}, + "name":"org.apache.shardingsphere.driver.ShardingSphereDriver" +}, { "condition":{"typeReachable":"org.apache.shardingsphere.infra.database.mysql.checker.MySQLDatabasePrivilegeChecker"}, "name":"org.apache.shardingsphere.driver.ShardingSphereDriver" @@ -1096,8 +1112,12 @@ "name":"org.apache.shardingsphere.driver.ShardingSphereDriver" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"}, - "name":"org.apache.shardingsphere.driver.executor.engine.facade.standard.StandardDriverExecutorFacadeFactory" + "condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.Portal"}, + "name":"org.apache.shardingsphere.driver.ShardingSphereDriver" +}, +{ + "condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"}, + "name":"org.apache.shardingsphere.driver.ShardingSphereDriver" }, { "condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"}, @@ -1307,29 +1327,29 @@ "name":"org.apache.shardingsphere.globalclock.yaml.config.YamlGlobalClockRuleConfigurationCustomizer" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"}, + "condition":{"typeReachable":"org.apache.shardingsphere.infra.algorithm.core.processor.AlgorithmChangedProcessor"}, "name":"org.apache.shardingsphere.infra.algorithm.core.yaml.YamlAlgorithmConfiguration", "allDeclaredFields":true, - "queryAllPublicMethods":true, "methods":[{"name":"","parameterTypes":[] }, {"name":"setProps","parameterTypes":["java.util.Properties"] }, {"name":"setType","parameterTypes":["java.lang.String"] }] }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.MetaDataPersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"}, "name":"org.apache.shardingsphere.infra.algorithm.core.yaml.YamlAlgorithmConfiguration", "allDeclaredFields":true, - "methods":[{"name":"getProps","parameterTypes":[] }, {"name":"getType","parameterTypes":[] }] + "queryAllPublicMethods":true, + "methods":[{"name":"","parameterTypes":[] }, {"name":"setProps","parameterTypes":["java.util.Properties"] }, {"name":"setType","parameterTypes":["java.lang.String"] }] }, { - "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.persist.StandaloneMetaDataManagerPersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.MetaDataPersistService"}, "name":"org.apache.shardingsphere.infra.algorithm.core.yaml.YamlAlgorithmConfiguration", "allDeclaredFields":true, "methods":[{"name":"getProps","parameterTypes":[] }, {"name":"getType","parameterTypes":[] }] }, { - "condition":{"typeReachable":"org.apache.shardingsphere.mode.processor.AlgorithmChangedProcessor"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneMetaDataManagerPersistService"}, "name":"org.apache.shardingsphere.infra.algorithm.core.yaml.YamlAlgorithmConfiguration", "allDeclaredFields":true, - "methods":[{"name":"","parameterTypes":[] }, {"name":"setProps","parameterTypes":["java.util.Properties"] }, {"name":"setType","parameterTypes":["java.lang.String"] }] + "methods":[{"name":"getProps","parameterTypes":[] }, {"name":"getType","parameterTypes":[] }] }, { "condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"}, @@ -1401,6 +1421,18 @@ "condition":{"typeReachable":"org.apache.shardingsphere.infra.props.TypedPropertyValue"}, "name":"org.apache.shardingsphere.infra.database.clickhouse.type.ClickHouseDatabaseType" }, +{ + "condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.Portal"}, + "name":"org.apache.shardingsphere.infra.database.firebird.connector.FirebirdConnectionPropertiesParser" +}, +{ + "condition":{"typeReachable":"org.apache.shardingsphere.infra.database.core.type.DatabaseTypeRegistry"}, + "name":"org.apache.shardingsphere.infra.database.firebird.metadata.database.FirebirdDatabaseMetaData" +}, +{ + "condition":{"typeReachable":"org.apache.shardingsphere.infra.props.TypedPropertyValue"}, + "name":"org.apache.shardingsphere.infra.database.firebird.type.FirebirdDatabaseType" +}, { "condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.Portal"}, "name":"org.apache.shardingsphere.infra.database.h2.checker.H2DatabasePrivilegeChecker" @@ -1573,6 +1605,10 @@ "condition":{"typeReachable":"org.apache.shardingsphere.infra.props.TypedPropertyValue"}, "name":"org.apache.shardingsphere.infra.database.testcontainers.type.TcClickHouseDatabaseType" }, +{ + "condition":{"typeReachable":"org.apache.shardingsphere.infra.props.TypedPropertyValue"}, + "name":"org.apache.shardingsphere.infra.database.testcontainers.type.TcFirebirdDatabaseType" +}, { "condition":{"typeReachable":"org.apache.shardingsphere.infra.props.TypedPropertyValue"}, "name":"org.apache.shardingsphere.infra.database.testcontainers.type.TcMariaDBDatabaseType" @@ -2066,83 +2102,88 @@ "condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"}, "name":"org.apache.shardingsphere.mask.yaml.config.rule.YamlMaskTableRuleConfigurationCustomizer" }, +{ + "condition":{"typeReachable":"org.apache.shardingsphere.infra.util.eventbus.EventBusContext"}, + "name":"org.apache.shardingsphere.mode.event.deliver.DeliverEventSubscriber", + "queryAllDeclaredMethods":true +}, { "condition":{"typeReachable":"org.apache.shardingsphere.proxy.initializer.BootstrapInitializer"}, "name":"org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder" }, { "condition":{"typeReachable":"org.apache.shardingsphere.infra.util.eventbus.EventBusContext"}, - "name":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.deliver.DeliverQualifiedDataSourceSubscriber", + "name":"org.apache.shardingsphere.mode.manager.cluster.event.dispatch.subscriber.DispatchEventSubscriber", "queryAllDeclaredMethods":true }, { "condition":{"typeReachable":"org.apache.shardingsphere.infra.util.eventbus.EventBusContext"}, - "name":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch.CacheEvictedSubscriber", + "name":"org.apache.shardingsphere.mode.manager.cluster.event.dispatch.subscriber.type.CacheEvictedSubscriber", "queryAllDeclaredMethods":true, "methods":[{"name":"cleanCache","parameterTypes":["org.apache.shardingsphere.mode.event.dispatch.DispatchEvent"] }] }, { "condition":{"typeReachable":"org.apache.shardingsphere.infra.util.eventbus.EventBusContext"}, - "name":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch.ComputeNodeStateSubscriber", + "name":"org.apache.shardingsphere.mode.manager.cluster.event.dispatch.subscriber.type.ComputeNodeStateSubscriber", "queryAllDeclaredMethods":true }, { "condition":{"typeReachable":"org.apache.shardingsphere.infra.util.eventbus.EventBusContext"}, - "name":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch.DatabaseDataChangedSubscriber", + "name":"org.apache.shardingsphere.mode.manager.cluster.event.dispatch.subscriber.type.DatabaseDataChangedSubscriber", "queryAllDeclaredMethods":true }, { "condition":{"typeReachable":"org.apache.shardingsphere.infra.util.eventbus.EventBusContext"}, - "name":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch.GlobalRuleConfigurationEventSubscriber", + "name":"org.apache.shardingsphere.mode.manager.cluster.event.dispatch.subscriber.type.GlobalRuleConfigurationEventSubscriber", "queryAllDeclaredMethods":true }, { "condition":{"typeReachable":"org.apache.shardingsphere.infra.util.eventbus.EventBusContext"}, - "name":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch.ListenerAssistedSubscriber", + "name":"org.apache.shardingsphere.mode.manager.cluster.event.dispatch.subscriber.type.ListenerAssistedSubscriber", "queryAllDeclaredMethods":true }, { "condition":{"typeReachable":"org.apache.shardingsphere.infra.util.eventbus.EventBusContext"}, - "name":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch.MetaDataChangedSubscriber", + "name":"org.apache.shardingsphere.mode.manager.cluster.event.dispatch.subscriber.type.MetaDataChangedSubscriber", "queryAllDeclaredMethods":true }, { - "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.listener.DatabaseMetaDataChangedListener$$Lambda/0x00007faf37cad3a8"}, - "name":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch.MetaDataChangedSubscriber" + "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.event.dispatch.listener.type.DatabaseMetaDataChangedListener$$Lambda/0x00007ff6b3cb7798"}, + "name":"org.apache.shardingsphere.mode.manager.cluster.event.dispatch.subscriber.type.MetaDataChangedSubscriber" }, { "condition":{"typeReachable":"org.apache.shardingsphere.infra.util.eventbus.EventBusContext"}, - "name":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch.ProcessListChangedSubscriber", + "name":"org.apache.shardingsphere.mode.manager.cluster.event.dispatch.subscriber.type.ProcessListChangedSubscriber", "queryAllDeclaredMethods":true }, { "condition":{"typeReachable":"org.apache.shardingsphere.infra.util.eventbus.EventBusContext"}, - "name":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch.PropertiesEventSubscriber", + "name":"org.apache.shardingsphere.mode.manager.cluster.event.dispatch.subscriber.type.PropertiesEventSubscriber", "queryAllDeclaredMethods":true }, { "condition":{"typeReachable":"org.apache.shardingsphere.infra.util.eventbus.EventBusContext"}, - "name":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch.QualifiedDataSourceSubscriber", + "name":"org.apache.shardingsphere.mode.manager.cluster.event.dispatch.subscriber.type.QualifiedDataSourceSubscriber", "queryAllDeclaredMethods":true }, { "condition":{"typeReachable":"org.apache.shardingsphere.infra.util.eventbus.EventBusContext"}, - "name":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch.RuleItemChangedSubscriber", + "name":"org.apache.shardingsphere.mode.manager.cluster.event.dispatch.subscriber.type.RuleItemChangedSubscriber", "queryAllDeclaredMethods":true }, { "condition":{"typeReachable":"org.apache.shardingsphere.infra.util.eventbus.EventBusContext"}, - "name":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch.StateChangedSubscriber", + "name":"org.apache.shardingsphere.mode.manager.cluster.event.dispatch.subscriber.type.StateChangedSubscriber", "queryAllDeclaredMethods":true }, { "condition":{"typeReachable":"org.apache.shardingsphere.infra.util.eventbus.EventBusContext"}, - "name":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch.StorageUnitEventSubscriber", + "name":"org.apache.shardingsphere.mode.manager.cluster.event.dispatch.subscriber.type.StorageUnitEventSubscriber", "queryAllDeclaredMethods":true }, { "condition":{"typeReachable":"org.apache.shardingsphere.mode.persist.PersistServiceFacade"}, - "name":"org.apache.shardingsphere.mode.manager.cluster.persist.ClusterPersistServiceBuilder", + "name":"org.apache.shardingsphere.mode.manager.cluster.persist.builder.ClusterPersistServiceBuilder", "methods":[{"name":"","parameterTypes":[] }] }, { @@ -2155,7 +2196,7 @@ }, { "condition":{"typeReachable":"org.apache.shardingsphere.mode.persist.PersistServiceFacade"}, - "name":"org.apache.shardingsphere.mode.manager.standalone.persist.StandalonePersistServiceBuilder", + "name":"org.apache.shardingsphere.mode.manager.standalone.persist.builder.StandalonePersistServiceBuilder", "methods":[{"name":"","parameterTypes":[] }] }, { @@ -2454,6 +2495,15 @@ "condition":{"typeReachable":"org.apache.shardingsphere.infra.spi.type.ordered.OrderedSPILoader"}, "name":"org.apache.shardingsphere.readwritesplitting.checker.ReadwriteSplittingRuleConfigurationChecker" }, +{ + "condition":{"typeReachable":"org.apache.shardingsphere.infra.util.eventbus.EventBusContext"}, + "name":"org.apache.shardingsphere.readwritesplitting.cluster.ReadwriteSplittingQualifiedDataSourceDeletedSubscriber", + "queryAllDeclaredMethods":true +}, +{ + "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder"}, + "name":"org.apache.shardingsphere.readwritesplitting.cluster.ReadwriteSplittingQualifiedDataSourceDeletedSubscriber" +}, { "condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.Portal"}, "name":"org.apache.shardingsphere.readwritesplitting.distsql.handler.update.AlterReadwriteSplittingRuleExecutor" @@ -2990,7 +3040,7 @@ "allDeclaredFields":true }, { - "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.persist.StandaloneMetaDataManagerPersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneMetaDataManagerPersistService"}, "name":"org.apache.shardingsphere.sharding.yaml.config.YamlShardingRuleConfiguration", "allDeclaredFields":true }, @@ -3027,7 +3077,7 @@ "methods":[{"name":"getActualDataNodes","parameterTypes":[] }, {"name":"getAuditStrategy","parameterTypes":[] }, {"name":"getDatabaseStrategy","parameterTypes":[] }, {"name":"getKeyGenerateStrategy","parameterTypes":[] }, {"name":"getLogicTable","parameterTypes":[] }, {"name":"getTableStrategy","parameterTypes":[] }] }, { - "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.persist.StandaloneMetaDataManagerPersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneMetaDataManagerPersistService"}, "name":"org.apache.shardingsphere.sharding.yaml.config.rule.YamlTableRuleConfiguration", "allDeclaredFields":true, "methods":[{"name":"getActualDataNodes","parameterTypes":[] }, {"name":"getAuditStrategy","parameterTypes":[] }, {"name":"getDatabaseStrategy","parameterTypes":[] }, {"name":"getKeyGenerateStrategy","parameterTypes":[] }, {"name":"getLogicTable","parameterTypes":[] }, {"name":"getTableStrategy","parameterTypes":[] }] @@ -3097,7 +3147,7 @@ "methods":[{"name":"getComplex","parameterTypes":[] }, {"name":"getHint","parameterTypes":[] }, {"name":"getNone","parameterTypes":[] }, {"name":"getStandard","parameterTypes":[] }] }, { - "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.persist.StandaloneMetaDataManagerPersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneMetaDataManagerPersistService"}, "name":"org.apache.shardingsphere.sharding.yaml.config.strategy.sharding.YamlShardingStrategyConfiguration", "allDeclaredFields":true, "methods":[{"name":"getComplex","parameterTypes":[] }, {"name":"getHint","parameterTypes":[] }, {"name":"getNone","parameterTypes":[] }, {"name":"getStandard","parameterTypes":[] }] @@ -3218,7 +3268,7 @@ "allDeclaredFields":true }, { - "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.persist.StandaloneMetaDataManagerPersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneMetaDataManagerPersistService"}, "name":"org.apache.shardingsphere.single.yaml.config.YamlSingleRuleConfiguration", "allDeclaredFields":true }, @@ -3246,6 +3296,11 @@ "condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.core.database.cache.ParseTreeCacheBuilder"}, "name":"org.apache.shardingsphere.sql.parser.core.database.cache.ParseTreeCacheLoader" }, +{ + "condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.core.database.visitor.SQLStatementVisitorFactory"}, + "name":"org.apache.shardingsphere.sql.parser.firebird.visitor.statement.FirebirdStatementVisitorFacade", + "methods":[{"name":"","parameterTypes":[] }] +}, { "condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.core.database.visitor.SQLStatementVisitorFactory"}, "name":"org.apache.shardingsphere.sql.parser.hive.visitor.statement.HiveStatementVisitorFacade", 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 ea846a4d3982c..8e1df367e07b9 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,9 +3,6 @@ "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" @@ -21,9 +18,6 @@ }, { "condition":{"typeReachable":"org.apache.shardingsphere.proxy.initializer.BootstrapInitializer"}, "pattern":"\\QMETA-INF/seata/io.seata.core.auth.AuthSigner\\E" - }, { - "condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"}, - "pattern":"\\QMETA-INF/seata/io.seata.core.context.ContextCore\\E" }, { "condition":{"typeReachable":"org.apache.shardingsphere.proxy.initializer.BootstrapInitializer"}, "pattern":"\\QMETA-INF/seata/io.seata.core.model.ResourceManager\\E" @@ -45,9 +39,6 @@ }, { "condition":{"typeReachable":"org.apache.shardingsphere.proxy.initializer.BootstrapInitializer"}, "pattern":"\\QMETA-INF/seata/org.apache.seata.core.auth.AuthSigner\\E" - }, { - "condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"}, - "pattern":"\\QMETA-INF/seata/org.apache.seata.core.context.ContextCore\\E" }, { "condition":{"typeReachable":"org.apache.shardingsphere.proxy.initializer.BootstrapInitializer"}, "pattern":"\\QMETA-INF/seata/org.apache.seata.core.model.ResourceManager\\E" @@ -66,9 +57,6 @@ }, { "condition":{"typeReachable":"org.apache.shardingsphere.proxy.backend.connector.StandardDatabaseConnector"}, "pattern":"\\QMETA-INF/seata/org.apache.seata.rm.datasource.exec.InsertExecutor\\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.proxy.backend.connector.StandardDatabaseConnector"}, "pattern":"\\QMETA-INF/seata/org.apache.seata.rm.datasource.undo.UndoLogParser\\E" @@ -87,9 +75,6 @@ }, { "condition":{"typeReachable":"org.apache.shardingsphere.proxy.backend.connector.StandardDatabaseConnector"}, "pattern":"\\QMETA-INF/seata/org.apache.seata.sqlparser.struct.TableMetaCache\\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" @@ -106,7 +91,7 @@ "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.connection.DriverDatabaseConnectionManager"}, "pattern":"\\QMETA-INF/services/com.clickhouse.client.ClickHouseClient\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.connection.DriverDatabaseConnectionManager$$Lambda/0x00007faf37cb8640"}, + "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.connection.DriverDatabaseConnectionManager$$Lambda/0x00007ff6b3cc4b38"}, "pattern":"\\QMETA-INF/services/com.clickhouse.client.ClickHouseClient\\E" }, { "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource"}, @@ -123,9 +108,6 @@ }, { "condition":{"typeReachable":"org.apache.shardingsphere.proxy.initializer.BootstrapInitializer"}, "pattern":"\\QMETA-INF/services/io.seata.core.auth.AuthSigner\\E" - }, { - "condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"}, - "pattern":"\\QMETA-INF/services/io.seata.core.context.ContextCore\\E" }, { "condition":{"typeReachable":"org.apache.shardingsphere.proxy.initializer.BootstrapInitializer"}, "pattern":"\\QMETA-INF/services/io.seata.core.model.ResourceManager\\E" @@ -180,9 +162,6 @@ }, { "condition":{"typeReachable":"org.apache.shardingsphere.proxy.initializer.BootstrapInitializer"}, "pattern":"\\QMETA-INF/services/org.apache.seata.core.auth.AuthSigner\\E" - }, { - "condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"}, - "pattern":"\\QMETA-INF/services/org.apache.seata.core.context.ContextCore\\E" }, { "condition":{"typeReachable":"org.apache.shardingsphere.proxy.initializer.BootstrapInitializer"}, "pattern":"\\QMETA-INF/services/org.apache.seata.core.model.ResourceManager\\E" @@ -201,9 +180,6 @@ }, { "condition":{"typeReachable":"org.apache.shardingsphere.proxy.backend.connector.StandardDatabaseConnector"}, "pattern":"\\QMETA-INF/services/org.apache.seata.rm.datasource.exec.InsertExecutor\\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.proxy.backend.connector.StandardDatabaseConnector"}, "pattern":"\\QMETA-INF/services/org.apache.seata.rm.datasource.undo.UndoLogParser\\E" @@ -222,9 +198,6 @@ }, { "condition":{"typeReachable":"org.apache.shardingsphere.proxy.backend.connector.StandardDatabaseConnector"}, "pattern":"\\QMETA-INF/services/org.apache.seata.sqlparser.struct.TableMetaCache\\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" @@ -246,9 +219,6 @@ }, { "condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.parse.PostgreSQLComParseExecutor"}, "pattern":"\\QMETA-INF/services/org.apache.shardingsphere.distsql.parser.engine.spi.DistSQLParserFacade\\E" - }, { - "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"}, - "pattern":"\\QMETA-INF/services/org.apache.shardingsphere.driver.executor.engine.facade.DriverExecutorFacadeFactory\\E" }, { "condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.Portal"}, "pattern":"\\QMETA-INF/services/org.apache.shardingsphere.infra.algorithm.keygen.core.KeyGenerateAlgorithm\\E" @@ -298,7 +268,7 @@ "condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.Portal"}, "pattern":"\\QMETA-INF/services/org.apache.shardingsphere.infra.executor.checker.SQLExecutionChecker\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.Portal"}, + "condition":{"typeReachable":"org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine"}, "pattern":"\\QMETA-INF/services/org.apache.shardingsphere.infra.executor.sql.hook.SQLExecutionHook\\E" }, { "condition":{"typeReachable":"org.apache.shardingsphere.infra.executor.sql.prepare.AbstractExecutionPrepareEngine"}, @@ -351,6 +321,9 @@ }, { "condition":{"typeReachable":"org.apache.shardingsphere.proxy.initializer.BootstrapInitializer"}, "pattern":"\\QMETA-INF/services/org.apache.shardingsphere.logging.spi.ShardingSphereLogBuilder\\E" + }, { + "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder"}, + "pattern":"\\QMETA-INF/services/org.apache.shardingsphere.mode.event.deliver.DeliverEventSubscriber\\E" }, { "condition":{"typeReachable":"org.apache.shardingsphere.proxy.initializer.BootstrapInitializer"}, "pattern":"\\QMETA-INF/services/org.apache.shardingsphere.mode.manager.ContextManagerBuilder\\E" @@ -474,9 +447,6 @@ }, { "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" 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 4597bf4a5967c..f6b28429413e3 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 @@ -239,8 +239,8 @@ "allPublicMethods":true }, { - "condition":{"typeReachable":"org.apache.shardingsphere.infra.util.eventbus.EventBusContext"}, - "name":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch.MetaDataChangedSubscriber", + "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.event.dispatch.listener.type.DatabaseMetaDataChangedListener"}, + "name":"org.apache.shardingsphere.mode.manager.cluster.event.dispatch.subscriber.type.MetaDataChangedSubscriber", "allPublicMethods":true }, { diff --git a/pom.xml b/pom.xml index cb4f22033b576..c22fa61b267b0 100644 --- a/pom.xml +++ b/pom.xml @@ -154,7 +154,7 @@ 0.6.1 1.4.13 0.3.1 - 0.10.3 + 0.10.4 1.0.0 diff --git a/test/native/pom.xml b/test/native/pom.xml index 61b583aabeb56..ae1954a51d30a 100644 --- a/test/native/pom.xml +++ b/test/native/pom.xml @@ -216,11 +216,6 @@ mssqlserver test - - org.testcontainers - clickhouse - test - org.apache.curator curator-test diff --git a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/ClickHouseTest.java b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/ClickHouseTest.java index f54f3db5c5a9f..1b4863d203624 100644 --- a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/ClickHouseTest.java +++ b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/ClickHouseTest.java @@ -25,7 +25,6 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.EnabledInNativeImage; -import org.testcontainers.clickhouse.ClickHouseContainer; import org.testcontainers.containers.GenericContainer; import org.testcontainers.containers.Network; import org.testcontainers.junit.jupiter.Container; @@ -66,11 +65,12 @@ class ClickHouseTest { .withNetworkAliases("clickhouse-keeper-01"); @Container - public static final ClickHouseContainer CONTAINER = new ClickHouseContainer("clickhouse/clickhouse-server:24.11.1.2557") + public static final GenericContainer CONTAINER = new GenericContainer<>("clickhouse/clickhouse-server:24.11.1.2557") .withCopyFileToContainer( MountableFile.forHostPath(Paths.get("src/test/resources/test-native/xml/transactions.xml").toAbsolutePath()), "/etc/clickhouse-server/config.d/transactions.xml") .withNetwork(NETWORK) + .withExposedPorts(8123) .dependsOn(CLICKHOUSE_KEEPER_CONTAINER); private static final String SYSTEM_PROP_KEY_PREFIX = "fixture.test-native.yaml.database.clickhouse."; @@ -102,18 +102,18 @@ void assertShardingInLocalTransactions() throws SQLException { private Connection openConnection(final String databaseName) throws SQLException { Properties props = new Properties(); - props.setProperty("user", CONTAINER.getUsername()); - props.setProperty("password", CONTAINER.getPassword()); + props.setProperty("user", "default"); + props.setProperty("password", ""); return DriverManager.getConnection(jdbcUrlPrefix + databaseName, props); } private DataSource createDataSource() throws SQLException { Awaitility.await().atMost(Duration.ofMinutes(1L)).ignoreExceptions().until(() -> { - openConnection(CONTAINER.getDatabaseName()).close(); + openConnection("default").close(); return true; }); try ( - Connection connection = openConnection(CONTAINER.getDatabaseName()); + Connection connection = openConnection("default"); Statement statement = connection.createStatement()) { statement.executeUpdate("CREATE DATABASE demo_ds_0"); statement.executeUpdate("CREATE DATABASE demo_ds_1"); diff --git a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/MySQLTest.java b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/MySQLTest.java index 876c2659d2fd9..55e49ad0cebe7 100644 --- a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/MySQLTest.java +++ b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/MySQLTest.java @@ -52,16 +52,11 @@ class MySQLTest { private static final String SYSTEM_PROP_KEY_PREFIX = "fixture.test-native.yaml.database.mysql."; - private static final String USERNAME = "root"; - - private static final String PASSWORD = "123456"; - - private static final String DATABASE = "test"; + private static final String PASSWORD = "example"; @SuppressWarnings("resource") @Container public static final GenericContainer CONTAINER = new GenericContainer<>("mysql:9.1.0-oraclelinux9") - .withEnv("MYSQL_DATABASE", DATABASE) .withEnv("MYSQL_ROOT_PASSWORD", PASSWORD) .withExposedPorts(3306); @@ -104,9 +99,9 @@ private void initEnvironment() throws SQLException { private Connection openConnection() throws SQLException { Properties props = new Properties(); - props.setProperty("user", USERNAME); + props.setProperty("user", "root"); props.setProperty("password", PASSWORD); - return DriverManager.getConnection(jdbcUrlPrefix + DATABASE, props); + return DriverManager.getConnection(jdbcUrlPrefix, props); } @SuppressWarnings({"SqlDialectInspection", "SqlNoDataSourceInspection"}) diff --git a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/OpenGaussTest.java b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/OpenGaussTest.java index cd818a9014551..81e0396a8932f 100644 --- a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/OpenGaussTest.java +++ b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/OpenGaussTest.java @@ -47,15 +47,11 @@ class OpenGaussTest { private static final String SYSTEM_PROP_KEY_PREFIX = "fixture.test-native.yaml.database.opengauss."; - private static final String USERNAME = "gaussdb"; - - private static final String PASSWORD = "openGauss@123"; - - private static final String DATABASE = "postgres"; + private static final String PASSWORD = "Enmo@123"; @SuppressWarnings("resource") @Container - public static final GenericContainer CONTAINER = new GenericContainer<>("opengauss/opengauss:5.0.0") + public static final GenericContainer CONTAINER = new GenericContainer<>("enmotech/opengauss-lite:5.1.0") .withEnv("GS_PASSWORD", PASSWORD) .withExposedPorts(5432); @@ -98,9 +94,9 @@ private void initEnvironment() throws SQLException { private Connection openConnection() throws SQLException { Properties props = new Properties(); - props.setProperty("user", USERNAME); + props.setProperty("user", "gaussdb"); props.setProperty("password", PASSWORD); - return DriverManager.getConnection(jdbcUrlPrefix + DATABASE, props); + return DriverManager.getConnection(jdbcUrlPrefix + "postgres", props); } @SuppressWarnings({"SqlDialectInspection", "SqlNoDataSourceInspection"}) diff --git a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/hive/ZookeeperServiceDiscoveryTest.java b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/hive/ZookeeperServiceDiscoveryTest.java index 9bcaf48dc3a16..8123ef8a8a0c3 100644 --- a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/hive/ZookeeperServiceDiscoveryTest.java +++ b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/hive/ZookeeperServiceDiscoveryTest.java @@ -65,11 +65,10 @@ class ZookeeperServiceDiscoveryTest { .withExposedPorts(2181); /** - * TODO Maybe we should be able to find a better solution than {@link InstanceSpec#getRandomPort()} to use a random available port on the host. - * It is not a good practice to use {@link FixedHostPortGenericContainer}. - * See testcontainers/testcontainers-java#9553 . + * Due to the design flaw of testcontainers-java, + * starting HiveServer2 using Zookeeper service discovery can only be done through the deprecated {@link FixedHostPortGenericContainer}. + * See testcontainers/testcontainers-java#9553. */ - @SuppressWarnings("unused") @Container private static final GenericContainer HS2_1_CONTAINER = new FixedHostPortGenericContainer<>("apache/hive:4.0.1") .withNetwork(NETWORK) @@ -105,11 +104,6 @@ static void afterAll() { System.clearProperty(SYSTEM_PROP_KEY_PREFIX + "ds2.jdbc-url"); } - /** - * TODO Same problem {@link InstanceSpec#getRandomPort()} as {@code HIVE_SERVER2_1_CONTAINER}. - * - * @throws SQLException SQL exception. - */ @Test void assertShardingInLocalTransactions() throws SQLException { jdbcUrlPrefix = "jdbc:hive2://" + ZOOKEEPER_CONTAINER.getHost() + ":" + ZOOKEEPER_CONTAINER.getMappedPort(2181) + "/"; diff --git a/test/native/src/test/resources/test-native/yaml/jdbc/databases/mysql.yaml b/test/native/src/test/resources/test-native/yaml/jdbc/databases/mysql.yaml index 78a812a4f06c3..dfe0be5515778 100644 --- a/test/native/src/test/resources/test-native/yaml/jdbc/databases/mysql.yaml +++ b/test/native/src/test/resources/test-native/yaml/jdbc/databases/mysql.yaml @@ -21,19 +21,19 @@ dataSources: driverClassName: com.mysql.cj.jdbc.Driver jdbcUrl: $${fixture.test-native.yaml.database.mysql.ds0.jdbc-url::} username: root - password: 123456 + password: example ds_1: dataSourceClassName: com.zaxxer.hikari.HikariDataSource driverClassName: com.mysql.cj.jdbc.Driver jdbcUrl: $${fixture.test-native.yaml.database.mysql.ds1.jdbc-url::} username: root - password: 123456 + password: example ds_2: dataSourceClassName: com.zaxxer.hikari.HikariDataSource driverClassName: com.mysql.cj.jdbc.Driver jdbcUrl: $${fixture.test-native.yaml.database.mysql.ds2.jdbc-url::} username: root - password: 123456 + password: example rules: - !SHARDING diff --git a/test/native/src/test/resources/test-native/yaml/jdbc/databases/opengauss.yaml b/test/native/src/test/resources/test-native/yaml/jdbc/databases/opengauss.yaml index 38f5051da17cb..96290024a73c5 100644 --- a/test/native/src/test/resources/test-native/yaml/jdbc/databases/opengauss.yaml +++ b/test/native/src/test/resources/test-native/yaml/jdbc/databases/opengauss.yaml @@ -21,19 +21,19 @@ dataSources: driverClassName: org.opengauss.Driver jdbcUrl: $${fixture.test-native.yaml.database.opengauss.ds0.jdbc-url::} username: gaussdb - password: openGauss@123 + password: Enmo@123 ds_1: dataSourceClassName: com.zaxxer.hikari.HikariDataSource driverClassName: org.opengauss.Driver jdbcUrl: $${fixture.test-native.yaml.database.opengauss.ds1.jdbc-url::} username: gaussdb - password: openGauss@123 + password: Enmo@123 ds_2: dataSourceClassName: com.zaxxer.hikari.HikariDataSource driverClassName: org.opengauss.Driver jdbcUrl: $${fixture.test-native.yaml.database.opengauss.ds2.jdbc-url::} username: gaussdb - password: openGauss@123 + password: Enmo@123 rules: - !SHARDING