This is an automated email from the ASF dual-hosted git repository.
panjuan 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 4fd6850ae03 Add GraalVM Reachability Metadata and corresponding
nativeTest for Zookeeper integration (#29425)
4fd6850ae03 is described below
commit 4fd6850ae03520c774cc396320e4fe5e0827e5aa
Author: Ling Hengqian <[email protected]>
AuthorDate: Wed Dec 20 08:20:11 2023 +0800
Add GraalVM Reachability Metadata and corresponding nativeTest for
Zookeeper integration (#29425)
---
.../reflect-config.json | 429 ++++++++++++++-------
.../resource-config.json | 20 +-
test/native/native-image-filter/extra-filter.json | 6 +-
.../native-image-filter/user-code-filter.json | 3 +-
test/native/pom.xml | 7 +-
.../test/natived/jdbc/databases/MySQLTest.java | 55 ++-
.../test/natived/jdbc/databases/OpenGaussTest.java | 48 +--
.../natived/jdbc/mode/cluster/ZookeeperTest.java | 81 ++++
.../resource-config.json | 3 +
.../test-native/yaml/mode/cluster/zookeeper.yaml | 83 ++++
10 files changed, 526 insertions(+), 209 deletions(-)
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 851418370ec..dd7f0aed714 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
@@ -22,21 +22,39 @@
"condition":{"typeReachable":"org.apache.shardingsphere.broadcast.yaml.swapper.NewYamlBroadcastRuleConfigurationSwapper"},
"name":"org.apache.shardingsphere.broadcast.yaml.config.YamlBroadcastRuleConfiguration",
"allDeclaredFields":true,
+ "methods":[{"name":"getTables","parameterTypes":[] }]
+},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
+
"name":"org.apache.shardingsphere.broadcast.yaml.config.YamlBroadcastRuleConfiguration",
+ "allDeclaredFields":true,
"queryAllPublicMethods":true,
- "methods":[{"name":"<init>","parameterTypes":[] },
{"name":"getTables","parameterTypes":[] },
{"name":"setTables","parameterTypes":["java.util.Collection"] }]
+ "methods":[{"name":"<init>","parameterTypes":[] },
{"name":"setTables","parameterTypes":["java.util.Collection"] }]
+},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.yaml.config.shortcut.YamlRuleConfigurationShortcuts"},
+
"name":"org.apache.shardingsphere.broadcast.yaml.config.YamlBroadcastRuleConfiguration"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.broadcast.yaml.config.YamlBroadcastRuleConfigurationBeanInfo"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.broadcast.yaml.config.YamlBroadcastRuleConfigurationBeanInfo"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.broadcast.yaml.config.YamlBroadcastRuleConfigurationCustomizer"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.broadcast.yaml.config.YamlBroadcastRuleConfigurationCustomizer"
},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.database.DatabaseTypeEngine"},
+ "name":"org.apache.shardingsphere.driver.ShardingSphereDriver"
+},
{
"condition":{"typeReachable":"org.apache.shardingsphere.infra.state.datasource.DataSourceStateManager"},
"name":"org.apache.shardingsphere.driver.ShardingSphereDriver"
},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.standalone.jdbc.JDBCRepository"},
+ "name":"org.apache.shardingsphere.driver.ShardingSphereDriver"
+},
{
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.driver.api.yaml.YamlJDBCConfiguration",
@@ -45,11 +63,11 @@
"methods":[{"name":"<init>","parameterTypes":[] },
{"name":"setDataSources","parameterTypes":["java.util.Map"] },
{"name":"setMode","parameterTypes":["org.apache.shardingsphere.infra.yaml.config.pojo.mode.YamlModeConfiguration"]
}, {"name":"setProps","parameterTypes":["java.util.Properties"] },
{"name":"setRules","parameterTypes":["java.util.Collection"] },
{"name":"setSqlParser","parameterTypes":["org.apache.shardingsphere.parser.yaml.config.YamlSQLParserRuleConfiguration"]
}]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.driver.api.yaml.YamlJDBCConfigurationBeanInfo"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.driver.api.yaml.YamlJDBCConfigurationBeanInfo"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.driver.api.yaml.YamlJDBCConfigurationCustomizer"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.driver.api.yaml.YamlJDBCConfigurationCustomizer"
},
{
@@ -67,92 +85,135 @@
"name":"org.apache.shardingsphere.encrypt.yaml.config.YamlCompatibleEncryptRuleConfiguration"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.infra.yaml.config.shortcut.YamlRuleConfigurationShortcuts"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.encrypt.yaml.config.YamlEncryptRuleConfiguration",
"allDeclaredFields":true,
"queryAllPublicMethods":true,
"methods":[{"name":"<init>","parameterTypes":[] },
{"name":"setEncryptors","parameterTypes":["java.util.Map"] },
{"name":"setTables","parameterTypes":["java.util.Map"] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.encrypt.yaml.config.YamlEncryptRuleConfigurationBeanInfo"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.yaml.config.shortcut.YamlRuleConfigurationShortcuts"},
+
"name":"org.apache.shardingsphere.encrypt.yaml.config.YamlEncryptRuleConfiguration"
+},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.encrypt.yaml.config.YamlEncryptRuleConfigurationBeanInfo"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.encrypt.yaml.config.YamlEncryptRuleConfigurationCustomizer"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.encrypt.yaml.config.YamlEncryptRuleConfigurationCustomizer"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.encrypt.yaml.config.rule.YamlEncryptColumnItemRuleConfiguration"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.encrypt.yaml.config.rule.YamlEncryptColumnItemRuleConfiguration",
"allDeclaredFields":true,
"queryAllPublicMethods":true,
"methods":[{"name":"<init>","parameterTypes":[] },
{"name":"getEncryptorName","parameterTypes":[] },
{"name":"getName","parameterTypes":[] },
{"name":"setEncryptorName","parameterTypes":["java.lang.String"] },
{"name":"setName","parameterTypes":["java.lang.String"] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.encrypt.yaml.config.rule.YamlEncryptColumnItemRuleConfigurationBeanInfo"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.encrypt.yaml.config.rule.YamlEncryptColumnItemRuleConfigurationBeanInfo"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.encrypt.yaml.config.rule.YamlEncryptColumnItemRuleConfigurationCustomizer"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.encrypt.yaml.config.rule.YamlEncryptColumnItemRuleConfigurationCustomizer"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.encrypt.yaml.config.rule.YamlEncryptColumnRuleConfiguration"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.encrypt.yaml.config.rule.YamlEncryptColumnRuleConfiguration",
"allDeclaredFields":true,
"queryAllPublicMethods":true,
"methods":[{"name":"<init>","parameterTypes":[] },
{"name":"getAssistedQuery","parameterTypes":[] },
{"name":"getCipher","parameterTypes":[] },
{"name":"getLikeQuery","parameterTypes":[] },
{"name":"getName","parameterTypes":[] },
{"name":"setAssistedQuery","parameterTypes":["org.apache.shardingsphere.encrypt.yaml.config.rule.YamlEncryptColumnItemRuleConfiguration"]
},
{"name":"setCipher","parameterTypes":["org.apache.shardingsphere.encrypt.yaml.config.rule.YamlEncryptColumnItemRuleCon
[...]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.encrypt.yaml.config.rule.YamlEncryptColumnRuleConfigurationBeanInfo"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.encrypt.yaml.config.rule.YamlEncryptColumnRuleConfigurationBeanInfo"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.encrypt.yaml.config.rule.YamlEncryptColumnRuleConfigurationCustomizer"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.encrypt.yaml.config.rule.YamlEncryptColumnRuleConfigurationCustomizer"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.encrypt.yaml.config.rule.YamlEncryptTableRuleConfiguration"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.encrypt.yaml.swapper.NewYamlEncryptRuleConfigurationSwapper"},
"name":"org.apache.shardingsphere.encrypt.yaml.config.rule.YamlEncryptTableRuleConfiguration",
"allDeclaredFields":true,
- "queryAllPublicMethods":true,
- "methods":[{"name":"<init>","parameterTypes":[] },
{"name":"setColumns","parameterTypes":["java.util.Map"] }]
+ "methods":[{"name":"getColumns","parameterTypes":[] },
{"name":"getName","parameterTypes":[] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.encrypt.yaml.swapper.NewYamlEncryptRuleConfigurationSwapper"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.encrypt.yaml.config.rule.YamlEncryptTableRuleConfiguration",
"allDeclaredFields":true,
- "methods":[{"name":"getColumns","parameterTypes":[] },
{"name":"getName","parameterTypes":[] }]
+ "queryAllPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":[] },
{"name":"setColumns","parameterTypes":["java.util.Map"] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.encrypt.yaml.config.rule.YamlEncryptTableRuleConfigurationBeanInfo"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.encrypt.yaml.config.rule.YamlEncryptTableRuleConfigurationBeanInfo"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.encrypt.yaml.config.rule.YamlEncryptTableRuleConfigurationCustomizer"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.encrypt.yaml.config.rule.YamlEncryptTableRuleConfigurationCustomizer"
},
{
"condition":{"typeReachable":"org.apache.shardingsphere.infra.yaml.config.shortcut.YamlRuleConfigurationShortcuts"},
"name":"org.apache.shardingsphere.globalclock.core.yaml.config.YamlGlobalClockRuleConfiguration"
},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.status.compute.service.ComputeNodeStatusService"},
+ "name":"org.apache.shardingsphere.infra.instance.ComputeNodeData",
+ "allDeclaredFields":true,
+ "queryAllPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":[] },
{"name":"getAttribute","parameterTypes":[] },
{"name":"getVersion","parameterTypes":[] },
{"name":"setAttribute","parameterTypes":["java.lang.String"] },
{"name":"setVersion","parameterTypes":["java.lang.String"] }]
+},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.status.compute.service.ComputeNodeStatusService"},
+ "name":"org.apache.shardingsphere.infra.instance.ComputeNodeDataBeanInfo"
+},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.status.compute.service.ComputeNodeStatusService"},
+ "name":"org.apache.shardingsphere.infra.instance.ComputeNodeDataCustomizer"
+},
{
"condition":{"typeReachable":"org.apache.shardingsphere.infra.parser.cache.SQLStatementCacheBuilder"},
"name":"org.apache.shardingsphere.infra.parser.cache.SQLStatementCacheLoader"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.infra.yaml.config.pojo.algorithm.YamlAlgorithmConfiguration"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.encrypt.yaml.swapper.NewYamlEncryptRuleConfigurationSwapper"},
+
"name":"org.apache.shardingsphere.infra.yaml.config.pojo.algorithm.YamlAlgorithmConfiguration",
+ "allDeclaredFields":true,
+ "methods":[{"name":"getProps","parameterTypes":[] },
{"name":"getType","parameterTypes":[] }]
+},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.infra.yaml.config.pojo.algorithm.YamlAlgorithmConfiguration",
"allDeclaredFields":true,
"queryAllPublicMethods":true,
- "methods":[{"name":"<init>","parameterTypes":[] },
{"name":"getProps","parameterTypes":[] }, {"name":"getType","parameterTypes":[]
}, {"name":"setProps","parameterTypes":["java.util.Properties"] },
{"name":"setType","parameterTypes":["java.lang.String"] }]
+ "methods":[{"name":"<init>","parameterTypes":[] },
{"name":"setProps","parameterTypes":["java.util.Properties"] },
{"name":"setType","parameterTypes":["java.lang.String"] }]
+},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.mask.yaml.swapper.NewYamlMaskRuleConfigurationSwapper"},
+
"name":"org.apache.shardingsphere.infra.yaml.config.pojo.algorithm.YamlAlgorithmConfiguration",
+ "allDeclaredFields":true,
+ "methods":[{"name":"getProps","parameterTypes":[] },
{"name":"getType","parameterTypes":[] }]
+},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.shadow.yaml.swapper.NewYamlShadowRuleConfigurationSwapper"},
+
"name":"org.apache.shardingsphere.infra.yaml.config.pojo.algorithm.YamlAlgorithmConfiguration",
+ "allDeclaredFields":true,
+ "methods":[{"name":"getProps","parameterTypes":[] },
{"name":"getType","parameterTypes":[] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.infra.yaml.config.pojo.algorithm.YamlAlgorithmConfigurationBeanInfo"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.sharding.yaml.swapper.NewYamlShardingRuleConfigurationSwapper"},
+
"name":"org.apache.shardingsphere.infra.yaml.config.pojo.algorithm.YamlAlgorithmConfiguration",
+ "allDeclaredFields":true,
+ "methods":[{"name":"getProps","parameterTypes":[] },
{"name":"getType","parameterTypes":[] }]
+},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.infra.yaml.config.pojo.algorithm.YamlAlgorithmConfigurationBeanInfo"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.infra.yaml.config.pojo.algorithm.YamlAlgorithmConfigurationCustomizer"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.infra.yaml.config.pojo.algorithm.YamlAlgorithmConfigurationCustomizer"
},
{
@@ -163,30 +224,26 @@
"methods":[{"name":"<init>","parameterTypes":[] },
{"name":"setRepository","parameterTypes":["org.apache.shardingsphere.infra.yaml.config.pojo.mode.YamlPersistRepositoryConfiguration"]
}, {"name":"setType","parameterTypes":["java.lang.String"] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.infra.yaml.config.pojo.mode.YamlModeConfigurationBeanInfo"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.infra.yaml.config.pojo.mode.YamlModeConfigurationBeanInfo"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.infra.yaml.config.pojo.mode.YamlModeConfigurationCustomizer"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.infra.yaml.config.pojo.mode.YamlModeConfigurationCustomizer"
},
{
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.infra.yaml.config.pojo.mode.YamlPersistRepositoryConfiguration",
"allDeclaredFields":true,
- "methods":[{"name":"<init>","parameterTypes":[] },
{"name":"setType","parameterTypes":["java.lang.String"] }]
-},
-{
-
"condition":{"typeReachable":"org.apache.shardingsphere.infra.yaml.config.pojo.mode.YamlPersistRepositoryConfiguration"},
-
"name":"org.apache.shardingsphere.infra.yaml.config.pojo.mode.YamlPersistRepositoryConfiguration",
- "queryAllPublicMethods":true
+ "queryAllPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":[] },
{"name":"setProps","parameterTypes":["java.util.Properties"] },
{"name":"setType","parameterTypes":["java.lang.String"] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.infra.yaml.config.pojo.mode.YamlPersistRepositoryConfigurationBeanInfo"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.infra.yaml.config.pojo.mode.YamlPersistRepositoryConfigurationBeanInfo"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.infra.yaml.config.pojo.mode.YamlPersistRepositoryConfigurationCustomizer"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.infra.yaml.config.pojo.mode.YamlPersistRepositoryConfigurationCustomizer"
},
{
@@ -203,14 +260,29 @@
"condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.service.schema.ShardingSphereTableRowDataPersistService"},
"name":"org.apache.shardingsphere.infra.yaml.data.pojo.YamlShardingSphereRowData",
"allDeclaredFields":true,
+ "queryAllPublicMethods":true,
"methods":[{"name":"getRows","parameterTypes":[] },
{"name":"getUniqueKey","parameterTypes":[] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.service.schema.ShardingSphereTableRowDataPersistService"},
+
"name":"org.apache.shardingsphere.infra.yaml.data.pojo.YamlShardingSphereRowDataBeanInfo"
+},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.service.schema.ShardingSphereTableRowDataPersistService"},
+
"name":"org.apache.shardingsphere.infra.yaml.data.pojo.YamlShardingSphereRowDataCustomizer"
+},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.metadata.database.schema.builder.SystemSchemaBuilder"},
"name":"org.apache.shardingsphere.infra.yaml.schema.pojo.YamlShardingSphereColumn",
"allDeclaredFields":true,
"queryAllPublicMethods":true,
- "methods":[{"name":"<init>","parameterTypes":[] },
{"name":"getDataType","parameterTypes":[] },
{"name":"getName","parameterTypes":[] },
{"name":"isCaseSensitive","parameterTypes":[] },
{"name":"isGenerated","parameterTypes":[] },
{"name":"isNullable","parameterTypes":[] },
{"name":"isPrimaryKey","parameterTypes":[] },
{"name":"isUnsigned","parameterTypes":[] },
{"name":"isVisible","parameterTypes":[] },
{"name":"setCaseSensitive","parameterTypes":["boolean"] },
{"name":"setDataType"," [...]
+ "methods":[{"name":"<init>","parameterTypes":[] },
{"name":"getDataType","parameterTypes":[] },
{"name":"getName","parameterTypes":[] },
{"name":"isCaseSensitive","parameterTypes":[] },
{"name":"isGenerated","parameterTypes":[] },
{"name":"isNullable","parameterTypes":[] },
{"name":"isPrimaryKey","parameterTypes":[] },
{"name":"isUnsigned","parameterTypes":[] },
{"name":"isVisible","parameterTypes":[] },
{"name":"setCaseSensitive","parameterTypes":["boolean"] },
{"name":"setDataType"," [...]
+},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.service.schema.NewTableMetaDataPersistService"},
+
"name":"org.apache.shardingsphere.infra.yaml.schema.pojo.YamlShardingSphereColumn",
+ "allDeclaredFields":true,
+ "methods":[{"name":"<init>","parameterTypes":[] },
{"name":"setCaseSensitive","parameterTypes":["boolean"] },
{"name":"setDataType","parameterTypes":["int"] },
{"name":"setGenerated","parameterTypes":["boolean"] },
{"name":"setName","parameterTypes":["java.lang.String"] },
{"name":"setNullable","parameterTypes":["boolean"] },
{"name":"setPrimaryKey","parameterTypes":["boolean"] },
{"name":"setUnsigned","parameterTypes":["boolean"] },
{"name":"setVisible","parameterTypes":["boolean"] }]
},
{
"condition":{"typeReachable":"org.apache.shardingsphere.infra.yaml.schema.pojo.YamlShardingSphereColumnBeanInfo"},
@@ -225,15 +297,23 @@
"name":"org.apache.shardingsphere.infra.yaml.schema.pojo.YamlShardingSphereIndex",
"allDeclaredFields":true,
"queryAllPublicMethods":true,
- "methods":[{"name":"<init>","parameterTypes":[] },
{"name":"getColumns","parameterTypes":[] },
{"name":"getName","parameterTypes":[] }, {"name":"isUnique","parameterTypes":[]
}, {"name":"setName","parameterTypes":["java.lang.String"] }]
+ "methods":[{"name":"<init>","parameterTypes":[] },
{"name":"getColumns","parameterTypes":[] },
{"name":"getName","parameterTypes":[] }, {"name":"isUnique","parameterTypes":[]
}, {"name":"setName","parameterTypes":["java.lang.String"] },
{"name":"setUnique","parameterTypes":["boolean"] }]
+},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.service.schema.NewTableMetaDataPersistService"},
+
"name":"org.apache.shardingsphere.infra.yaml.schema.pojo.YamlShardingSphereIndex",
+ "allDeclaredFields":true,
+ "methods":[{"name":"<init>","parameterTypes":[] },
{"name":"setName","parameterTypes":["java.lang.String"] },
{"name":"setUnique","parameterTypes":["boolean"] }]
},
{
"condition":{"typeReachable":"org.apache.shardingsphere.infra.yaml.schema.pojo.YamlShardingSphereIndexBeanInfo"},
"name":"org.apache.shardingsphere.infra.yaml.schema.pojo.YamlShardingSphereIndexBeanInfo"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.infra.yaml.schema.pojo.YamlShardingSphereIndexCustomizer"},
-
"name":"org.apache.shardingsphere.infra.yaml.schema.pojo.YamlShardingSphereIndexCustomizer"
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.metadata.database.schema.builder.SystemSchemaBuilder"},
+
"name":"org.apache.shardingsphere.infra.yaml.schema.pojo.YamlShardingSphereTable",
+ "allDeclaredFields":true,
+ "methods":[{"name":"<init>","parameterTypes":[] },
{"name":"setColumns","parameterTypes":["java.util.Map"] },
{"name":"setIndexes","parameterTypes":["java.util.Map"] },
{"name":"setName","parameterTypes":["java.lang.String"] }]
},
{
"condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.service.schema.NewTableMetaDataPersistService"},
@@ -243,11 +323,11 @@
"methods":[{"name":"<init>","parameterTypes":[] },
{"name":"getColumns","parameterTypes":[] },
{"name":"getConstraints","parameterTypes":[] },
{"name":"getIndexes","parameterTypes":[] },
{"name":"getName","parameterTypes":[] },
{"name":"setColumns","parameterTypes":["java.util.Map"] },
{"name":"setIndexes","parameterTypes":["java.util.Map"] },
{"name":"setName","parameterTypes":["java.lang.String"] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.infra.yaml.schema.pojo.YamlShardingSphereTableBeanInfo"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.service.schema.NewTableMetaDataPersistService"},
"name":"org.apache.shardingsphere.infra.yaml.schema.pojo.YamlShardingSphereTableBeanInfo"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.infra.yaml.schema.pojo.YamlShardingSphereTableCustomizer"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.service.schema.NewTableMetaDataPersistService"},
"name":"org.apache.shardingsphere.infra.yaml.schema.pojo.YamlShardingSphereTableCustomizer"
},
{
@@ -305,41 +385,41 @@
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.infra.yaml.config.shortcut.YamlRuleConfigurationShortcuts"},
- "name":"org.apache.shardingsphere.mask.yaml.config.YamlMaskRuleConfiguration"
-},
-{
-
"condition":{"typeReachable":"org.apache.shardingsphere.mask.yaml.config.YamlMaskRuleConfiguration"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.mask.yaml.config.YamlMaskRuleConfiguration",
"allDeclaredFields":true,
"queryAllPublicMethods":true,
"methods":[{"name":"<init>","parameterTypes":[] },
{"name":"setMaskAlgorithms","parameterTypes":["java.util.Map"] },
{"name":"setTables","parameterTypes":["java.util.Map"] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.mask.yaml.config.YamlMaskRuleConfigurationBeanInfo"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.yaml.config.shortcut.YamlRuleConfigurationShortcuts"},
+ "name":"org.apache.shardingsphere.mask.yaml.config.YamlMaskRuleConfiguration"
+},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.mask.yaml.config.YamlMaskRuleConfigurationBeanInfo"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.mask.yaml.config.YamlMaskRuleConfigurationCustomizer"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.mask.yaml.config.YamlMaskRuleConfigurationCustomizer"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.mask.yaml.config.rule.YamlMaskColumnRuleConfiguration"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.mask.yaml.config.rule.YamlMaskColumnRuleConfiguration",
"allDeclaredFields":true,
"queryAllPublicMethods":true,
"methods":[{"name":"<init>","parameterTypes":[] },
{"name":"getLogicColumn","parameterTypes":[] },
{"name":"getMaskAlgorithm","parameterTypes":[] },
{"name":"setMaskAlgorithm","parameterTypes":["java.lang.String"] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.mask.yaml.config.rule.YamlMaskColumnRuleConfigurationBeanInfo"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.mask.yaml.config.rule.YamlMaskColumnRuleConfigurationBeanInfo"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.mask.yaml.config.rule.YamlMaskColumnRuleConfigurationCustomizer"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.mask.yaml.config.rule.YamlMaskColumnRuleConfigurationCustomizer"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.mask.yaml.config.rule.YamlMaskTableRuleConfiguration"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.mask.yaml.config.rule.YamlMaskTableRuleConfiguration",
"allDeclaredFields":true,
"queryAllPublicMethods":true,
@@ -352,23 +432,80 @@
"methods":[{"name":"getColumns","parameterTypes":[] },
{"name":"getName","parameterTypes":[] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.mask.yaml.config.rule.YamlMaskTableRuleConfigurationBeanInfo"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.mask.yaml.config.rule.YamlMaskTableRuleConfigurationBeanInfo"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.mask.yaml.config.rule.YamlMaskTableRuleConfigurationCustomizer"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.mask.yaml.config.rule.YamlMaskTableRuleConfigurationCustomizer"
},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.metadata.subscriber.ShardingSphereSchemaDataRegistrySubscriber"},
+
"name":"org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.metadata.subscriber.ShardingSphereSchemaDataRegistrySubscriber",
+ "queryAllDeclaredMethods":true
+},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.process.subscriber.ClusterProcessSubscriber"},
+
"name":"org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.process.subscriber.ClusterProcessSubscriber",
+ "queryAllDeclaredMethods":true
+},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.process.subscriber.NewProcessListChangedSubscriber"},
+
"name":"org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.process.subscriber.NewProcessListChangedSubscriber",
+ "queryAllDeclaredMethods":true
+},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.status.cluster.subscriber.ClusterStatusSubscriber"},
+
"name":"org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.status.cluster.subscriber.ClusterStatusSubscriber",
+ "queryAllDeclaredMethods":true
+},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.status.compute.subscriber.NewComputeNodeStatusSubscriber"},
+
"name":"org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.status.compute.subscriber.NewComputeNodeStatusSubscriber",
+ "queryAllDeclaredMethods":true
+},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.status.storage.subscriber.StorageNodeStatusSubscriber"},
+
"name":"org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.status.storage.subscriber.StorageNodeStatusSubscriber",
+ "queryAllDeclaredMethods":true
+},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.eventbus.EventBusContext"},
+
"name":"org.apache.shardingsphere.mode.manager.cluster.coordinator.subscriber.CacheEvictedSubscriber",
+ "queryAllDeclaredMethods":true,
+
"methods":[{"name":"onGovernanceEvent","parameterTypes":["org.apache.shardingsphere.infra.rule.event.GovernanceEvent"]
}]
+},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.coordinator.subscriber.DatabaseChangedSubscriber"},
+
"name":"org.apache.shardingsphere.mode.manager.cluster.coordinator.subscriber.DatabaseChangedSubscriber",
+ "queryAllDeclaredMethods":true
+},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.eventbus.EventBusContext"},
+
"name":"org.apache.shardingsphere.mode.manager.cluster.coordinator.subscriber.NewResourceMetaDataChangedSubscriber",
+ "queryAllDeclaredMethods":true,
+
"methods":[{"name":"renew","parameterTypes":["org.apache.shardingsphere.mode.event.schema.table.AlterTableEvent"]
},
{"name":"renew","parameterTypes":["org.apache.shardingsphere.mode.event.schema.table.DropTableEvent"]
}]
+},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.coordinator.subscriber.NewStateChangedSubscriber"},
+
"name":"org.apache.shardingsphere.mode.manager.cluster.coordinator.subscriber.NewStateChangedSubscriber",
+ "queryAllDeclaredMethods":true
+},
{
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.subscriber.StandaloneProcessSubscriber"},
"name":"org.apache.shardingsphere.mode.manager.standalone.subscriber.StandaloneProcessSubscriber",
"queryAllDeclaredMethods":true
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.subscriber.StandaloneProcessSubscriber"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.process.subscriber.ClusterProcessSubscriber"},
"name":"org.apache.shardingsphere.mode.process.ProcessSubscriber",
"queryAllDeclaredMethods":true
},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.NewClusterContextManagerBuilder"},
+
"name":"org.apache.shardingsphere.mode.repository.cluster.zookeeper.ZookeeperRepository",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
{
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.NewStandaloneContextManagerBuilder"},
"name":"org.apache.shardingsphere.mode.repository.standalone.jdbc.JDBCRepository",
@@ -378,6 +515,8 @@
"condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader$2"},
"name":"org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQL",
"allDeclaredFields":true,
+ "queryAllDeclaredMethods":true,
+ "queryAllDeclaredConstructors":true,
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
@@ -386,27 +525,27 @@
"queryAllDeclaredMethods":true
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.NewStandaloneContextManagerBuilder"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.NewClusterContextManagerBuilder"},
"name":"org.apache.shardingsphere.mode.subsciber.RuleItemChangedSubscriber",
"queryAllDeclaredMethods":true
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.parser.yaml.config.YamlSQLParserCacheOptionRuleConfiguration"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.parser.yaml.config.YamlSQLParserCacheOptionRuleConfiguration",
"allDeclaredFields":true,
"queryAllPublicMethods":true,
"methods":[{"name":"<init>","parameterTypes":[] },
{"name":"getInitialCapacity","parameterTypes":[] },
{"name":"getMaximumSize","parameterTypes":[] },
{"name":"setInitialCapacity","parameterTypes":["int"] },
{"name":"setMaximumSize","parameterTypes":["long"] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.parser.yaml.config.YamlSQLParserCacheOptionRuleConfigurationBeanInfo"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.parser.yaml.config.YamlSQLParserCacheOptionRuleConfigurationBeanInfo"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.parser.yaml.config.YamlSQLParserCacheOptionRuleConfigurationCustomizer"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.parser.yaml.config.YamlSQLParserCacheOptionRuleConfigurationCustomizer"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.infra.yaml.config.shortcut.YamlRuleConfigurationShortcuts"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.parser.yaml.config.YamlSQLParserRuleConfiguration",
"allDeclaredFields":true,
"queryAllPublicMethods":true,
@@ -419,11 +558,11 @@
"methods":[{"name":"getParseTreeCache","parameterTypes":[] },
{"name":"getSqlStatementCache","parameterTypes":[] },
{"name":"isSqlCommentParseEnabled","parameterTypes":[] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.parser.yaml.config.YamlSQLParserRuleConfigurationBeanInfo"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.parser.yaml.config.YamlSQLParserRuleConfigurationBeanInfo"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.parser.yaml.config.YamlSQLParserRuleConfigurationCustomizer"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.parser.yaml.config.YamlSQLParserRuleConfigurationCustomizer"
},
{
@@ -442,26 +581,22 @@
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.infra.yaml.config.shortcut.YamlRuleConfigurationShortcuts"},
-
"name":"org.apache.shardingsphere.readwritesplitting.yaml.config.YamlReadwriteSplittingRuleConfiguration"
-},
-{
-
"condition":{"typeReachable":"org.apache.shardingsphere.readwritesplitting.yaml.config.YamlReadwriteSplittingRuleConfiguration"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.readwritesplitting.yaml.config.YamlReadwriteSplittingRuleConfiguration",
"allDeclaredFields":true,
"queryAllPublicMethods":true,
"methods":[{"name":"<init>","parameterTypes":[] },
{"name":"setDataSources","parameterTypes":["java.util.Map"] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.readwritesplitting.yaml.config.YamlReadwriteSplittingRuleConfigurationBeanInfo"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.readwritesplitting.yaml.config.YamlReadwriteSplittingRuleConfigurationBeanInfo"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.readwritesplitting.yaml.config.YamlReadwriteSplittingRuleConfigurationCustomizer"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.readwritesplitting.yaml.config.YamlReadwriteSplittingRuleConfigurationCustomizer"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.readwritesplitting.yaml.config.rule.YamlReadwriteSplittingDataSourceRuleConfiguration"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.readwritesplitting.yaml.config.rule.YamlReadwriteSplittingDataSourceRuleConfiguration",
"allDeclaredFields":true,
"queryAllPublicMethods":true,
@@ -474,11 +609,11 @@
"methods":[{"name":"getLoadBalancerName","parameterTypes":[] },
{"name":"getReadDataSourceNames","parameterTypes":[] },
{"name":"getTransactionalReadQueryStrategy","parameterTypes":[] },
{"name":"getWriteDataSourceName","parameterTypes":[] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.readwritesplitting.yaml.config.rule.YamlReadwriteSplittingDataSourceRuleConfigurationBeanInfo"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.readwritesplitting.yaml.config.rule.YamlReadwriteSplittingDataSourceRuleConfigurationBeanInfo"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.readwritesplitting.yaml.config.rule.YamlReadwriteSplittingDataSourceRuleConfigurationCustomizer"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.readwritesplitting.yaml.config.rule.YamlReadwriteSplittingDataSourceRuleConfigurationCustomizer"
},
{
@@ -497,26 +632,22 @@
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.infra.yaml.config.shortcut.YamlRuleConfigurationShortcuts"},
-
"name":"org.apache.shardingsphere.shadow.yaml.config.YamlShadowRuleConfiguration"
-},
-{
-
"condition":{"typeReachable":"org.apache.shardingsphere.shadow.yaml.config.YamlShadowRuleConfiguration"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.shadow.yaml.config.YamlShadowRuleConfiguration",
"allDeclaredFields":true,
"queryAllPublicMethods":true,
"methods":[{"name":"<init>","parameterTypes":[] },
{"name":"setDataSources","parameterTypes":["java.util.Map"] },
{"name":"setDefaultShadowAlgorithmName","parameterTypes":["java.lang.String"]
}, {"name":"setShadowAlgorithms","parameterTypes":["java.util.Map"] },
{"name":"setTables","parameterTypes":["java.util.Map"] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.shadow.yaml.config.YamlShadowRuleConfigurationBeanInfo"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.shadow.yaml.config.YamlShadowRuleConfigurationBeanInfo"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.shadow.yaml.config.YamlShadowRuleConfigurationCustomizer"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.shadow.yaml.config.YamlShadowRuleConfigurationCustomizer"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.shadow.yaml.config.datasource.YamlShadowDataSourceConfiguration"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.shadow.yaml.config.datasource.YamlShadowDataSourceConfiguration",
"allDeclaredFields":true,
"queryAllPublicMethods":true,
@@ -529,15 +660,15 @@
"methods":[{"name":"getProductionDataSourceName","parameterTypes":[] },
{"name":"getShadowDataSourceName","parameterTypes":[] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.shadow.yaml.config.datasource.YamlShadowDataSourceConfigurationBeanInfo"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.shadow.yaml.config.datasource.YamlShadowDataSourceConfigurationBeanInfo"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.shadow.yaml.config.datasource.YamlShadowDataSourceConfigurationCustomizer"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.shadow.yaml.config.datasource.YamlShadowDataSourceConfigurationCustomizer"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.shadow.yaml.config.table.YamlShadowTableConfiguration"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.shadow.yaml.config.table.YamlShadowTableConfiguration",
"allDeclaredFields":true,
"queryAllPublicMethods":true,
@@ -550,11 +681,11 @@
"methods":[{"name":"getDataSourceNames","parameterTypes":[] },
{"name":"getShadowAlgorithmNames","parameterTypes":[] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.shadow.yaml.config.table.YamlShadowTableConfigurationBeanInfo"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.shadow.yaml.config.table.YamlShadowTableConfigurationBeanInfo"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.shadow.yaml.config.table.YamlShadowTableConfigurationCustomizer"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.shadow.yaml.config.table.YamlShadowTableConfigurationCustomizer"
},
{
@@ -613,97 +744,109 @@
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.infra.yaml.config.shortcut.YamlRuleConfigurationShortcuts"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.sharding.yaml.config.YamlShardingRuleConfiguration",
"allDeclaredFields":true,
"queryAllPublicMethods":true,
"methods":[{"name":"<init>","parameterTypes":[] },
{"name":"setAuditors","parameterTypes":["java.util.Map"] },
{"name":"setDefaultDatabaseStrategy","parameterTypes":["org.apache.shardingsphere.sharding.yaml.config.strategy.sharding.YamlShardingStrategyConfiguration"]
}, {"name":"setKeyGenerators","parameterTypes":["java.util.Map"] },
{"name":"setShardingAlgorithms","parameterTypes":["java.util.Map"] },
{"name":"setTables","parameterTypes":["java.util.Map"] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sharding.yaml.config.YamlShardingRuleConfigurationBeanInfo"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.yaml.config.shortcut.YamlRuleConfigurationShortcuts"},
+
"name":"org.apache.shardingsphere.sharding.yaml.config.YamlShardingRuleConfiguration"
+},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.sharding.yaml.config.YamlShardingRuleConfigurationBeanInfo"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sharding.yaml.config.YamlShardingRuleConfigurationCustomizer"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.sharding.yaml.config.YamlShardingRuleConfigurationCustomizer"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sharding.yaml.swapper.NewYamlShardingRuleConfigurationSwapper"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.sharding.yaml.config.rule.YamlTableRuleConfiguration",
"allDeclaredFields":true,
"queryAllPublicMethods":true,
- "methods":[{"name":"<init>","parameterTypes":[] },
{"name":"getActualDataNodes","parameterTypes":[] },
{"name":"getAuditStrategy","parameterTypes":[] },
{"name":"getDatabaseStrategy","parameterTypes":[] },
{"name":"getKeyGenerateStrategy","parameterTypes":[] },
{"name":"getLogicTable","parameterTypes":[] },
{"name":"getTableStrategy","parameterTypes":[] },
{"name":"setActualDataNodes","parameterTypes":["java.lang.String"] },
{"name":"setKeyGenerateStrategy","parameterTypes":["org.apach [...]
+ "methods":[{"name":"<init>","parameterTypes":[] },
{"name":"setActualDataNodes","parameterTypes":["java.lang.String"] },
{"name":"setKeyGenerateStrategy","parameterTypes":["org.apache.shardingsphere.sharding.yaml.config.strategy.keygen.YamlKeyGenerateStrategyConfiguration"]
}]
+},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.sharding.yaml.swapper.NewYamlShardingRuleConfigurationSwapper"},
+
"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":[] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sharding.yaml.config.rule.YamlTableRuleConfigurationBeanInfo"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.sharding.yaml.config.rule.YamlTableRuleConfigurationBeanInfo"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sharding.yaml.config.rule.YamlTableRuleConfigurationCustomizer"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.sharding.yaml.config.rule.YamlTableRuleConfigurationCustomizer"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sharding.yaml.config.strategy.keygen.YamlKeyGenerateStrategyConfiguration"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.sharding.yaml.config.strategy.keygen.YamlKeyGenerateStrategyConfiguration",
"allDeclaredFields":true,
"queryAllPublicMethods":true,
"methods":[{"name":"<init>","parameterTypes":[] },
{"name":"getColumn","parameterTypes":[] },
{"name":"getKeyGeneratorName","parameterTypes":[] },
{"name":"setColumn","parameterTypes":["java.lang.String"] },
{"name":"setKeyGeneratorName","parameterTypes":["java.lang.String"] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sharding.yaml.config.strategy.keygen.YamlKeyGenerateStrategyConfigurationBeanInfo"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.sharding.yaml.config.strategy.keygen.YamlKeyGenerateStrategyConfigurationBeanInfo"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sharding.yaml.config.strategy.keygen.YamlKeyGenerateStrategyConfigurationCustomizer"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.sharding.yaml.config.strategy.keygen.YamlKeyGenerateStrategyConfigurationCustomizer"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sharding.yaml.swapper.NewYamlShardingRuleConfigurationSwapper"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.sharding.yaml.config.strategy.sharding.YamlShardingStrategyConfiguration",
"allDeclaredFields":true,
"queryAllPublicMethods":true,
- "methods":[{"name":"<init>","parameterTypes":[] },
{"name":"getComplex","parameterTypes":[] },
{"name":"getHint","parameterTypes":[] }, {"name":"getNone","parameterTypes":[]
}, {"name":"getStandard","parameterTypes":[] },
{"name":"setStandard","parameterTypes":["org.apache.shardingsphere.sharding.yaml.config.strategy.sharding.YamlStandardShardingStrategyConfiguration"]
}]
+ "methods":[{"name":"<init>","parameterTypes":[] },
{"name":"setStandard","parameterTypes":["org.apache.shardingsphere.sharding.yaml.config.strategy.sharding.YamlStandardShardingStrategyConfiguration"]
}]
+},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.sharding.yaml.swapper.NewYamlShardingRuleConfigurationSwapper"},
+
"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":[] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sharding.yaml.config.strategy.sharding.YamlShardingStrategyConfigurationBeanInfo"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.sharding.yaml.config.strategy.sharding.YamlShardingStrategyConfigurationBeanInfo"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sharding.yaml.config.strategy.sharding.YamlShardingStrategyConfigurationCustomizer"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.sharding.yaml.config.strategy.sharding.YamlShardingStrategyConfigurationCustomizer"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sharding.yaml.config.strategy.sharding.YamlStandardShardingStrategyConfiguration"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.sharding.yaml.config.strategy.sharding.YamlStandardShardingStrategyConfiguration",
"allDeclaredFields":true,
"queryAllPublicMethods":true,
"methods":[{"name":"<init>","parameterTypes":[] },
{"name":"getShardingAlgorithmName","parameterTypes":[] },
{"name":"getShardingColumn","parameterTypes":[] },
{"name":"setShardingAlgorithmName","parameterTypes":["java.lang.String"] },
{"name":"setShardingColumn","parameterTypes":["java.lang.String"] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sharding.yaml.config.strategy.sharding.YamlStandardShardingStrategyConfigurationBeanInfo"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.sharding.yaml.config.strategy.sharding.YamlStandardShardingStrategyConfigurationBeanInfo"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sharding.yaml.config.strategy.sharding.YamlStandardShardingStrategyConfigurationCustomizer"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
"name":"org.apache.shardingsphere.sharding.yaml.config.strategy.sharding.YamlStandardShardingStrategyConfigurationCustomizer"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.single.yaml.config.pojo.YamlSingleRuleConfiguration"},
-
"name":"org.apache.shardingsphere.single.yaml.config.pojo.YamlSingleRuleConfiguration",
- "queryAllPublicMethods":true
-},
-{
-
"condition":{"typeReachable":"org.apache.shardingsphere.single.yaml.config.swapper.NewYamlSingleRuleConfigurationSwapper"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.yaml.config.shortcut.YamlRuleConfigurationShortcuts"},
"name":"org.apache.shardingsphere.single.yaml.config.pojo.YamlSingleRuleConfiguration",
+ "queryAllPublicMethods":true,
"allDeclaredFields":true,
"methods":[{"name":"getDefaultDataSource","parameterTypes":[] },
{"name":"getTables","parameterTypes":[] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.single.yaml.config.pojo.YamlSingleRuleConfigurationBeanInfo"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.NewClusterContextManagerBuilder"},
"name":"org.apache.shardingsphere.single.yaml.config.pojo.YamlSingleRuleConfigurationBeanInfo"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.single.yaml.config.pojo.YamlSingleRuleConfigurationCustomizer"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.NewClusterContextManagerBuilder"},
"name":"org.apache.shardingsphere.single.yaml.config.pojo.YamlSingleRuleConfigurationCustomizer"
},
{
@@ -711,12 +854,12 @@
"name":"org.apache.shardingsphere.sql.parser.core.database.cache.ParseTreeCacheLoader"
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.mysql.parser.MySQLLexer"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.core.SQLParserFactory"},
"name":"org.apache.shardingsphere.sql.parser.mysql.parser.MySQLLexer",
"methods":[{"name":"<init>","parameterTypes":["org.antlr.v4.runtime.CharStream"]
}]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.mysql.parser.MySQLParser"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.core.SQLParserFactory"},
"name":"org.apache.shardingsphere.sql.parser.mysql.parser.MySQLParser",
"methods":[{"name":"<init>","parameterTypes":["org.antlr.v4.runtime.TokenStream"]
}]
},
@@ -726,7 +869,7 @@
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.mysql.visitor.statement.type.MySQLDDLStatementVisitor"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"},
"name":"org.apache.shardingsphere.sql.parser.mysql.visitor.statement.type.MySQLDDLStatementVisitor",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
@@ -736,12 +879,12 @@
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.opengauss.parser.OpenGaussLexer"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.core.SQLParserFactory"},
"name":"org.apache.shardingsphere.sql.parser.opengauss.parser.OpenGaussLexer",
"methods":[{"name":"<init>","parameterTypes":["org.antlr.v4.runtime.CharStream"]
}]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.opengauss.parser.OpenGaussParser"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.core.SQLParserFactory"},
"name":"org.apache.shardingsphere.sql.parser.opengauss.parser.OpenGaussParser",
"methods":[{"name":"<init>","parameterTypes":["org.antlr.v4.runtime.TokenStream"]
}]
},
@@ -751,12 +894,12 @@
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.opengauss.visitor.statement.type.OpenGaussDDLStatementVisitor"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"},
"name":"org.apache.shardingsphere.sql.parser.opengauss.visitor.statement.type.OpenGaussDDLStatementVisitor",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.opengauss.visitor.statement.type.OpenGaussDMLStatementVisitor"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.parser.cache.SQLStatementCacheLoader"},
"name":"org.apache.shardingsphere.sql.parser.opengauss.visitor.statement.type.OpenGaussDMLStatementVisitor",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
@@ -766,12 +909,12 @@
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.postgresql.parser.PostgreSQLLexer"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.core.SQLParserFactory"},
"name":"org.apache.shardingsphere.sql.parser.postgresql.parser.PostgreSQLLexer",
"methods":[{"name":"<init>","parameterTypes":["org.antlr.v4.runtime.CharStream"]
}]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.postgresql.parser.PostgreSQLParser"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.core.SQLParserFactory"},
"name":"org.apache.shardingsphere.sql.parser.postgresql.parser.PostgreSQLParser",
"methods":[{"name":"<init>","parameterTypes":["org.antlr.v4.runtime.TokenStream"]
}]
},
@@ -781,72 +924,72 @@
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.postgresql.visitor.statement.type.PostgreSQLDDLStatementVisitor"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"},
"name":"org.apache.shardingsphere.sql.parser.postgresql.visitor.statement.type.PostgreSQLDDLStatementVisitor",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.core.database.visitor.SQLStatementVisitorFactory"},
+
"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.sql.dialect.statement.mysql.dml.MySQLDeleteStatement"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.binder.statement.dml.DeleteStatementBinder"},
"name":"org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dml.MySQLDeleteStatement",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dml.MySQLInsertStatement"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.binder.statement.dml.InsertStatementBinder"},
"name":"org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dml.MySQLInsertStatement",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dml.MySQLSelectStatement"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementBinder"},
"name":"org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dml.MySQLSelectStatement",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.sql.dialect.statement.opengauss.dml.OpenGaussDeleteStatement"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.binder.statement.dml.DeleteStatementBinder"},
"name":"org.apache.shardingsphere.sql.parser.sql.dialect.statement.opengauss.dml.OpenGaussDeleteStatement",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.sql.dialect.statement.opengauss.dml.OpenGaussInsertStatement"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.binder.statement.dml.InsertStatementBinder"},
"name":"org.apache.shardingsphere.sql.parser.sql.dialect.statement.opengauss.dml.OpenGaussInsertStatement",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.sql.dialect.statement.opengauss.dml.OpenGaussSelectStatement"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementBinder"},
"name":"org.apache.shardingsphere.sql.parser.sql.dialect.statement.opengauss.dml.OpenGaussSelectStatement",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.dml.PostgreSQLDeleteStatement"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.binder.statement.dml.DeleteStatementBinder"},
"name":"org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.dml.PostgreSQLDeleteStatement",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.dml.PostgreSQLInsertStatement"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.binder.statement.dml.InsertStatementBinder"},
"name":"org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.dml.PostgreSQLInsertStatement",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.dml.PostgreSQLSelectStatement"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementBinder"},
"name":"org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.dml.PostgreSQLSelectStatement",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.sql.dialect.statement.sqlserver.dml.SQLServerDeleteStatement"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.binder.statement.dml.DeleteStatementBinder"},
"name":"org.apache.shardingsphere.sql.parser.sql.dialect.statement.sqlserver.dml.SQLServerDeleteStatement",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.sql.dialect.statement.sqlserver.dml.SQLServerInsertStatement"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.binder.statement.dml.InsertStatementBinder"},
"name":"org.apache.shardingsphere.sql.parser.sql.dialect.statement.sqlserver.dml.SQLServerInsertStatement",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.sql.dialect.statement.sqlserver.dml.SQLServerSelectStatement"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementBinder"},
"name":"org.apache.shardingsphere.sql.parser.sql.dialect.statement.sqlserver.dml.SQLServerSelectStatement",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
@@ -856,12 +999,12 @@
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.sqlserver.parser.SQLServerLexer"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.core.SQLParserFactory"},
"name":"org.apache.shardingsphere.sql.parser.sqlserver.parser.SQLServerLexer",
"methods":[{"name":"<init>","parameterTypes":["org.antlr.v4.runtime.CharStream"]
}]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.sqlserver.parser.SQLServerParser"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.core.SQLParserFactory"},
"name":"org.apache.shardingsphere.sql.parser.sqlserver.parser.SQLServerParser",
"methods":[{"name":"<init>","parameterTypes":["org.antlr.v4.runtime.TokenStream"]
}]
},
@@ -871,12 +1014,17 @@
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.sqlserver.visitor.statement.type.SQLServerDDLStatementVisitor"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"},
"name":"org.apache.shardingsphere.sql.parser.sqlserver.visitor.statement.type.SQLServerDDLStatementVisitor",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sqlfederation.rule.SQLFederationRule"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.parser.cache.SQLStatementCacheLoader"},
+
"name":"org.apache.shardingsphere.sql.parser.sqlserver.visitor.statement.type.SQLServerDMLStatementVisitor",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.connection.refresher.type.table.CreateTableStatementSchemaRefresher"},
"name":"org.apache.shardingsphere.sqlfederation.optimizer.planner.util.SQLFederationFunctionUtils",
"queryAllPublicMethods":true
},
@@ -900,10 +1048,5 @@
{
"condition":{"typeReachable":"org.apache.shardingsphere.infra.yaml.config.shortcut.YamlRuleConfigurationShortcuts"},
"name":"org.apache.shardingsphere.transaction.yaml.config.YamlTransactionRuleConfiguration"
-},
-{
-
"condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.sqlserver.visitor.statement.type.SQLServerDMLStatementVisitor"},
-
"name":"org.apache.shardingsphere.sql.parser.sqlserver.visitor.statement.type.SQLServerDMLStatementVisitor",
- "methods":[{"name":"<init>","parameterTypes":[] }]
}
]
diff --git
a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/shardingsphere-infra-reachability-metadata/resource-config.json
b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/shardingsphere-infra-reachability-metadata/resource-config.json
index 64b7a2a13b1..04449f0e133 100644
---
a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/shardingsphere-infra-reachability-metadata/resource-config.json
+++
b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/shardingsphere-infra-reachability-metadata/resource-config.json
@@ -7,10 +7,10 @@
"condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader"},
"pattern":".*sql/.+\\.xml$"
}, {
-
"condition":{"typeReachable":"org.apache.shardingsphere.driver.ShardingSphereDriver"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.infra.state.datasource.DataSourceStateManager"},
"pattern":"\\QMETA-INF/services/java.sql.Driver\\E"
}, {
-
"condition":{"typeReachable":"org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.NewClusterContextManagerBuilder"},
"pattern":"\\QMETA-INF/services/org.apache.shardingsphere.authority.spi.AuthorityRegistryProvider\\E"
}, {
"condition":{"typeReachable":"org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader"},
@@ -64,7 +64,7 @@
"condition":{"typeReachable":"org.apache.shardingsphere.infra.metadata.database.schema.builder.GenericSchemaBuilder"},
"pattern":"\\QMETA-INF/services/org.apache.shardingsphere.infra.metadata.database.schema.reviser.MetaDataReviseEntry\\E"
}, {
-
"condition":{"typeReachable":"org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.NewClusterContextManagerBuilder"},
"pattern":"\\QMETA-INF/services/org.apache.shardingsphere.infra.metadata.statistics.builder.ShardingSphereStatisticsBuilder\\E"
}, {
"condition":{"typeReachable":"org.apache.shardingsphere.infra.rewrite.SQLRewriteEntry"},
@@ -102,9 +102,21 @@
}, {
"condition":{"typeReachable":"org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader"},
"pattern":"\\QMETA-INF/services/org.apache.shardingsphere.mode.manager.ContextManagerBuilder\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.NewGovernanceWatcherFactory"},
+
"pattern":"\\QMETA-INF/services/org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.NewGovernanceWatcher\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.NewClusterContextManagerBuilder"},
+
"pattern":"\\QMETA-INF/services/org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.cluster.lock.holder.DistributedLockHolder"},
+
"pattern":"\\QMETA-INF/services/org.apache.shardingsphere.mode.repository.cluster.lock.creator.DistributedLockCreator\\E"
}, {
"condition":{"typeReachable":"org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader"},
"pattern":"\\QMETA-INF/services/org.apache.shardingsphere.mode.repository.standalone.StandalonePersistRepository\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.builder.RuleConfigurationEventBuilder"},
+
"pattern":"\\QMETA-INF/services/org.apache.shardingsphere.mode.spi.RuleNodePathProvider\\E"
}, {
"condition":{"typeReachable":"org.apache.shardingsphere.readwritesplitting.route.standard.StandardReadwriteSplittingDataSourceRouter"},
"pattern":"\\QMETA-INF/services/org.apache.shardingsphere.readwritesplitting.route.standard.filter.ReadDataSourcesFilter\\E"
@@ -127,7 +139,7 @@
"condition":{"typeReachable":"org.apache.shardingsphere.sqltranslator.rule.SQLTranslatorRule"},
"pattern":"\\QMETA-INF/services/org.apache.shardingsphere.sqltranslator.spi.SQLTranslator\\E"
}, {
-
"condition":{"typeReachable":"org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader"},
+
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.NewClusterContextManagerBuilder"},
"pattern":"\\QMETA-INF/services/org.apache.shardingsphere.timeservice.spi.TimestampService\\E"
}, {
"condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader"},
diff --git a/test/native/native-image-filter/extra-filter.json
b/test/native/native-image-filter/extra-filter.json
index 327dcc4e9e3..ed118a9185c 100644
--- a/test/native/native-image-filter/extra-filter.json
+++ b/test/native/native-image-filter/extra-filter.json
@@ -18,20 +18,20 @@
{"excludeClasses": "com.github.dockerjava.api.**"},
{"excludeClasses": "com.google.common.util.concurrent.**"},
{"excludeClasses": "com.ibm.icu.text.**"},
+ {"excludeClasses": "com.microsoft.sqlserver.jdbc.**"},
{"excludeClasses": "com.mysql.cj.**"},
{"excludeClasses": "com.zaxxer.hikari.**"},
{"excludeClasses": "javax.xml.**"},
{"excludeClasses": "groovy.**"},
{"excludeClasses": "org.apache.calcite.**"},
+ {"excludeClasses": "org.apache.zookeeper.**"},
{"excludeClasses": "org.codehaus.groovy.**"},
{"excludeClasses": "org.h2.**"},
{"excludeClasses": "org.locationtech.jts.geom.**"},
{"excludeClasses": "org.opengauss.**"},
{"excludeClasses": "org.postgresql.**"},
{"excludeClasses": "org.slf4j.event.**"},
- {"excludeClasses": "org.testcontainers.**"},
-
- {"excludeClasses": "org.apache.shardingsphere.test.natived.**"}
+ {"excludeClasses": "org.testcontainers.**"}
],
"regexRules": [
]
diff --git a/test/native/native-image-filter/user-code-filter.json
b/test/native/native-image-filter/user-code-filter.json
index da55d54f771..61b0ffcec86 100644
--- a/test/native/native-image-filter/user-code-filter.json
+++ b/test/native/native-image-filter/user-code-filter.json
@@ -1,6 +1,7 @@
{
"rules": [
{"excludeClasses": "**"},
- {"includeClasses": "org.apache.shardingsphere.**"}
+ {"includeClasses": "org.apache.shardingsphere.**"},
+ {"excludeClasses": "org.apache.shardingsphere.test.natived.**"}
]
}
diff --git a/test/native/pom.xml b/test/native/pom.xml
index bafa5da53a9..96d87fb8d2b 100644
--- a/test/native/pom.xml
+++ b/test/native/pom.xml
@@ -39,12 +39,13 @@
<version>${project.version}</version>
<scope>test</scope>
</dependency>
-
<dependency>
- <groupId>org.hamcrest</groupId>
- <artifactId>hamcrest</artifactId>
+ <groupId>org.apache.shardingsphere</groupId>
+
<artifactId>shardingsphere-cluster-mode-repository-zookeeper</artifactId>
+ <version>${project.version}</version>
<scope>test</scope>
</dependency>
+
<dependency>
<groupId>org.awaitility</groupId>
<artifactId>awaitility</artifactId>
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 73d9053217a..0738291892a 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
@@ -17,16 +17,21 @@
package org.apache.shardingsphere.test.natived.jdbc.databases;
+import com.github.dockerjava.api.model.ExposedPort;
+import com.github.dockerjava.api.model.HostConfig;
+import com.github.dockerjava.api.model.PortBinding;
+import com.github.dockerjava.api.model.Ports;
import com.mysql.cj.jdbc.exceptions.CommunicationsException;
import
org.apache.shardingsphere.driver.api.yaml.YamlShardingSphereDataSourceFactory;
-import org.apache.shardingsphere.test.natived.jdbc.commons.TestShardingService;
import org.apache.shardingsphere.test.natived.jdbc.commons.FileTestUtils;
+import org.apache.shardingsphere.test.natived.jdbc.commons.TestShardingService;
import org.awaitility.Awaitility;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledInNativeImage;
+import org.testcontainers.containers.GenericContainer;
+import org.testcontainers.utility.DockerImageName;
import javax.sql.DataSource;
-import java.io.File;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
@@ -34,7 +39,11 @@ import java.sql.SQLException;
import java.time.Duration;
import java.util.Properties;
-class MySQLTest {
+/**
+ * Unable to use `org.testcontainers:mysql:1.19.3` under GraalVM Native Image.
+ * Background comes from <a
href="https://github.com/testcontainers/testcontainers-java/issues/7954">testcontainers/testcontainers-java#7954</a>.
+ */
+public class MySQLTest {
private static final String USERNAME = "root";
@@ -44,20 +53,25 @@ class MySQLTest {
private static final String JDBC_URL = "jdbc:mysql://localhost:65107/" +
DATABASE;
- private static Process process;
-
private TestShardingService testShardingService;
+ @SuppressWarnings("resource")
@Test
@EnabledInNativeImage
void assertShardingInLocalTransactions() throws SQLException, IOException {
- beforeAll();
- DataSource dataSource =
YamlShardingSphereDataSourceFactory.createDataSource(FileTestUtils.readFromFileURLString("test-native/yaml/databases/mysql.yaml"));
- testShardingService = new TestShardingService(dataSource);
- this.initEnvironment();
- testShardingService.processSuccess();
- testShardingService.cleanEnvironment();
- tearDown();
+ try (
+ GenericContainer<?> mySQLContainer = new
GenericContainer<>(DockerImageName.parse("mysql:8.2.0-oracle"))
+ .withEnv("MYSQL_DATABASE", DATABASE)
+ .withEnv("MYSQL_ROOT_PASSWORD", PASSWORD)
+ .withCreateContainerCmdModifier(cmd ->
cmd.withHostConfig(new HostConfig().withPortBindings(new
PortBinding(Ports.Binding.bindPort(65107), new ExposedPort(3306)))))) {
+ mySQLContainer.start();
+ beforeAll();
+ DataSource dataSource =
YamlShardingSphereDataSourceFactory.createDataSource(FileTestUtils.readFromFileURLString("test-native/yaml/databases/mysql.yaml"));
+ testShardingService = new TestShardingService(dataSource);
+ this.initEnvironment();
+ testShardingService.processSuccess();
+ testShardingService.cleanEnvironment();
+ }
}
private void initEnvironment() throws SQLException {
@@ -77,14 +91,7 @@ class MySQLTest {
}
@SuppressWarnings({"SqlDialectInspection", "SqlNoDataSourceInspection"})
- private static void beforeAll() throws IOException {
- System.out.println("Starting MySQL ...");
- process = new ProcessBuilder(
- "docker", "run", "--rm", "-p", "65107:3306", "-e",
"MYSQL_DATABASE=" + DATABASE,
- "-e", "MYSQL_ROOT_PASSWORD=" + PASSWORD, "mysql:8.2.0-oracle")
- .redirectOutput(new File("target/mysql-stdout.txt"))
- .redirectError(new File("target/mysql-stderr.txt"))
- .start();
+ private void beforeAll() {
Awaitility.await().atMost(Duration.ofMinutes(1)).ignoreExceptionsMatching(e ->
e instanceof CommunicationsException)
.until(() -> {
openConnection().close();
@@ -97,13 +104,5 @@ class MySQLTest {
} catch (SQLException e) {
throw new RuntimeException(e);
}
- System.out.println("MySQL started");
- }
-
- private static void tearDown() {
- if (null != process && process.isAlive()) {
- System.out.println("Shutting down MySQL");
- process.destroy();
- }
}
}
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 cb4d1778991..41428b819cc 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
@@ -17,15 +17,20 @@
package org.apache.shardingsphere.test.natived.jdbc.databases;
+import com.github.dockerjava.api.model.ExposedPort;
+import com.github.dockerjava.api.model.HostConfig;
+import com.github.dockerjava.api.model.PortBinding;
+import com.github.dockerjava.api.model.Ports;
import
org.apache.shardingsphere.driver.api.yaml.YamlShardingSphereDataSourceFactory;
-import org.apache.shardingsphere.test.natived.jdbc.commons.TestShardingService;
import org.apache.shardingsphere.test.natived.jdbc.commons.FileTestUtils;
+import org.apache.shardingsphere.test.natived.jdbc.commons.TestShardingService;
import org.awaitility.Awaitility;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledInNativeImage;
+import org.testcontainers.containers.GenericContainer;
+import org.testcontainers.utility.DockerImageName;
import javax.sql.DataSource;
-import java.io.File;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
@@ -43,20 +48,24 @@ class OpenGaussTest {
private static final String JDBC_URL = "jdbc:opengauss://localhost:62390/"
+ DATABASE;
- private static Process process;
-
private TestShardingService testShardingService;
+ @SuppressWarnings("resource")
@Test
@EnabledInNativeImage
void assertShardingInLocalTransactions() throws SQLException, IOException {
- beforeAll();
- DataSource dataSource =
YamlShardingSphereDataSourceFactory.createDataSource(FileTestUtils.readFromFileURLString("test-native/yaml/databases/opengauss.yaml"));
- testShardingService = new TestShardingService(dataSource);
- this.initEnvironment();
- testShardingService.processSuccess();
- testShardingService.cleanEnvironment();
- tearDown();
+ try (
+ GenericContainer<?> openGaussContainer = new
GenericContainer<>(DockerImageName.parse("opengauss/opengauss:5.0.0"))
+ .withEnv("GS_PASSWORD", PASSWORD)
+ .withCreateContainerCmdModifier(cmd ->
cmd.withHostConfig(new HostConfig().withPortBindings(new
PortBinding(Ports.Binding.bindPort(62390), new ExposedPort(5432)))))) {
+ openGaussContainer.start();
+ beforeAll();
+ DataSource dataSource =
YamlShardingSphereDataSourceFactory.createDataSource(FileTestUtils.readFromFileURLString("test-native/yaml/databases/opengauss.yaml"));
+ testShardingService = new TestShardingService(dataSource);
+ this.initEnvironment();
+ testShardingService.processSuccess();
+ testShardingService.cleanEnvironment();
+ }
}
private void initEnvironment() throws SQLException {
@@ -76,14 +85,7 @@ class OpenGaussTest {
}
@SuppressWarnings({"SqlDialectInspection", "SqlNoDataSourceInspection"})
- private static void beforeAll() throws IOException {
- System.out.println("Starting OpenGauss ...");
- process = new ProcessBuilder(
- "docker", "run", "--rm", "-p", "62390:5432", "-e",
"GS_PASSWORD=" + PASSWORD,
- "opengauss/opengauss:5.0.0")
- .redirectOutput(new
File("target/opengauss-stdout.txt"))
- .redirectError(new File("target/opengauss-stderr.txt"))
- .start();
+ private void beforeAll() {
Awaitility.await().atMost(Duration.ofMinutes(1)).ignoreExceptions().until(() ->
{
openConnection().close();
return true;
@@ -95,13 +97,5 @@ class OpenGaussTest {
} catch (SQLException e) {
throw new RuntimeException(e);
}
- System.out.println("OpenGauss started");
- }
-
- private static void tearDown() {
- if (null != process && process.isAlive()) {
- System.out.println("Shutting down OpenGauss");
- process.destroy();
- }
}
}
diff --git
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/mode/cluster/ZookeeperTest.java
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/mode/cluster/ZookeeperTest.java
new file mode 100644
index 00000000000..f0c7bf0eae3
--- /dev/null
+++
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/mode/cluster/ZookeeperTest.java
@@ -0,0 +1,81 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shardingsphere.test.natived.jdbc.mode.cluster;
+
+import com.github.dockerjava.api.model.ExposedPort;
+import com.github.dockerjava.api.model.HostConfig;
+import com.github.dockerjava.api.model.PortBinding;
+import com.github.dockerjava.api.model.Ports;
+import org.apache.curator.framework.CuratorFramework;
+import org.apache.curator.framework.CuratorFrameworkFactory;
+import org.apache.curator.retry.ExponentialBackoffRetry;
+import
org.apache.shardingsphere.driver.api.yaml.YamlShardingSphereDataSourceFactory;
+import org.apache.shardingsphere.test.natived.jdbc.commons.FileTestUtils;
+import org.apache.shardingsphere.test.natived.jdbc.commons.TestShardingService;
+import org.awaitility.Awaitility;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.condition.EnabledInNativeImage;
+import org.testcontainers.containers.GenericContainer;
+import org.testcontainers.utility.DockerImageName;
+
+import javax.sql.DataSource;
+import java.io.IOException;
+import java.sql.SQLException;
+import java.time.Duration;
+import java.util.concurrent.TimeUnit;
+
+public class ZookeeperTest {
+
+ private TestShardingService testShardingService;
+
+ @SuppressWarnings("resource")
+ @Test
+ @EnabledInNativeImage
+ void assertShardingInLocalTransactions() throws SQLException, IOException {
+ try (
+ GenericContainer<?> zookeeperContainer = new
GenericContainer<>(DockerImageName.parse("zookeeper:3.9.1-jre-17"))
+ .withCreateContainerCmdModifier(cmd ->
cmd.withHostConfig(new HostConfig().withPortBindings(new
PortBinding(Ports.Binding.bindPort(62372), new ExposedPort(2181)))))) {
+ zookeeperContainer.start();
+ this.beforeAll();
+ DataSource dataSource =
YamlShardingSphereDataSourceFactory.createDataSource(FileTestUtils.readFromFileURLString("test-native/yaml/mode/cluster/zookeeper.yaml"));
+ testShardingService = new TestShardingService(dataSource);
+ this.initEnvironment();
+ testShardingService.processSuccess();
+ testShardingService.cleanEnvironment();
+ }
+ }
+
+ private void initEnvironment() throws SQLException {
+
testShardingService.getOrderRepository().createTableIfNotExistsInMySQL();
+
testShardingService.getOrderItemRepository().createTableIfNotExistsInMySQL();
+ testShardingService.getAddressRepository().createTableIfNotExists();
+ testShardingService.getOrderRepository().truncateTable();
+ testShardingService.getOrderItemRepository().truncateTable();
+ testShardingService.getAddressRepository().truncateTable();
+ }
+
+ private void beforeAll() {
+
Awaitility.await().atMost(Duration.ofMinutes(1)).ignoreExceptions().until(() ->
{
+ CuratorFramework client =
CuratorFrameworkFactory.newClient("localhost:" + 62372, new
ExponentialBackoffRetry(1000, 3));
+ client.start();
+ boolean connected = client.blockUntilConnected(5,
TimeUnit.SECONDS);
+ client.close();
+ return connected;
+ });
+ }
+}
diff --git
a/test/native/src/test/resources/META-INF/native-image/shardingsphere-test-native-test-metadata/resource-config.json
b/test/native/src/test/resources/META-INF/native-image/shardingsphere-test-native-test-metadata/resource-config.json
index f299bfa6457..c904b01b547 100644
---
a/test/native/src/test/resources/META-INF/native-image/shardingsphere-test-native-test-metadata/resource-config.json
+++
b/test/native/src/test/resources/META-INF/native-image/shardingsphere-test-native-test-metadata/resource-config.json
@@ -30,6 +30,9 @@
}, {
"condition":{"typeReachable":"org.apache.shardingsphere.test.natived.jdbc.features.ShardingTest"},
"pattern":"\\Qtest-native/yaml/features/sharding.yaml\\E"
+ }, {
+
"condition":{"typeReachable":"org.apache.shardingsphere.test.natived.jdbc.mode.cluster.ZookeeperTest"},
+ "pattern":"\\Qtest-native/yaml/mode/cluster/zookeeper.yaml\\E"
}]},
"bundles":[]
}
diff --git
a/test/native/src/test/resources/test-native/yaml/mode/cluster/zookeeper.yaml
b/test/native/src/test/resources/test-native/yaml/mode/cluster/zookeeper.yaml
new file mode 100644
index 00000000000..e8f97657b98
--- /dev/null
+++
b/test/native/src/test/resources/test-native/yaml/mode/cluster/zookeeper.yaml
@@ -0,0 +1,83 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+mode:
+ type: Cluster
+ repository:
+ type: ZooKeeper
+ props:
+ namespace: governance
+ server-lists: localhost:62372
+ retryIntervalMilliseconds: 1000
+ timeToLiveSeconds: 1000
+
+dataSources:
+ ds_0:
+ dataSourceClassName: com.zaxxer.hikari.HikariDataSource
+ driverClassName: org.h2.Driver
+ jdbcUrl:
jdbc:h2:mem:cluster_zookeeper_ds_0;MODE=MYSQL;IGNORECASE=TRUE;CASE_INSENSITIVE_IDENTIFIERS=TRUE
+ username: root
+ password: 123456
+ ds_1:
+ dataSourceClassName: com.zaxxer.hikari.HikariDataSource
+ driverClassName: org.h2.Driver
+ jdbcUrl:
jdbc:h2:mem:cluster_zookeeper_ds_1;MODE=MYSQL;IGNORECASE=TRUE;CASE_INSENSITIVE_IDENTIFIERS=TRUE
+ username: root
+ password: 123456
+ ds_2:
+ dataSourceClassName: com.zaxxer.hikari.HikariDataSource
+ driverClassName: org.h2.Driver
+ jdbcUrl:
jdbc:h2:mem:cluster_zookeeper_ds_2;MODE=MYSQL;IGNORECASE=TRUE;CASE_INSENSITIVE_IDENTIFIERS=TRUE
+ username: root
+ password: 123456
+
+rules:
+ - !SHARDING
+ tables:
+ t_order:
+ actualDataNodes:
+ keyGenerateStrategy:
+ column: order_id
+ keyGeneratorName: snowflake
+ t_order_item:
+ actualDataNodes:
+ keyGenerateStrategy:
+ column: order_item_id
+ keyGeneratorName: snowflake
+ defaultDatabaseStrategy:
+ standard:
+ shardingColumn: user_id
+ shardingAlgorithmName: inline
+ shardingAlgorithms:
+ inline:
+ type: CLASS_BASED
+ props:
+ strategy: STANDARD
+ algorithmClassName:
org.apache.shardingsphere.test.natived.jdbc.commons.algorithm.ClassBasedInlineShardingAlgorithmFixture
+ keyGenerators:
+ snowflake:
+ type: SNOWFLAKE
+ auditors:
+ sharding_key_required_auditor:
+ type: DML_SHARDING_CONDITIONS
+
+ - !BROADCAST
+ tables:
+ - t_address
+
+props:
+ sql-show: false