This is an automated email from the ASF dual-hosted git repository.
zhaojinchao 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 77a8c4cbcb7 Refactor ReadwriteSplittingRule and ShardingRule (#23734)
77a8c4cbcb7 is described below
commit 77a8c4cbcb72b659c4aac61fbd45fcab14b481fc
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Jan 27 04:04:51 2023 +0800
Refactor ReadwriteSplittingRule and ShardingRule (#23734)
---
.../readwritesplitting/rule/ReadwriteSplittingRule.java | 5 +++--
.../java/org/apache/shardingsphere/sharding/rule/ShardingRule.java | 5 +++--
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingRule.java
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingRule.java
index c425c6106d1..7fdb8a9b748 100644
---
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingRule.java
+++
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingRule.java
@@ -33,7 +33,7 @@ import
org.apache.shardingsphere.infra.rule.identifier.type.exportable.constant.
import
org.apache.shardingsphere.infra.rule.identifier.type.exportable.constant.ExportableItemConstants;
import
org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
import org.apache.shardingsphere.infra.util.expr.InlineExpressionParser;
-import
org.apache.shardingsphere.infra.util.spi.type.required.RequiredSPIRegistry;
+import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPIRegistry;
import org.apache.shardingsphere.mode.metadata.storage.StorageNodeStatus;
import
org.apache.shardingsphere.mode.metadata.storage.event.StorageNodeDataSourceChangedEvent;
import
org.apache.shardingsphere.readwritesplitting.api.ReadwriteSplittingRuleConfiguration;
@@ -52,6 +52,7 @@ import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Optional;
+import java.util.Properties;
import java.util.stream.Collectors;
/**
@@ -80,7 +81,7 @@ public final class ReadwriteSplittingRule implements
DatabaseRule, DataSourceCon
private Map<String, ReadwriteSplittingDataSourceRule>
createReadwriteSplittingDataSourceRules(final
ReadwriteSplittingDataSourceRuleConfiguration config,
final Collection<ShardingSphereRule> builtRules) {
ReadQueryLoadBalanceAlgorithm loadBalanceAlgorithm =
loadBalancers.getOrDefault(
- config.getName() + "." + config.getLoadBalancerName(),
RequiredSPIRegistry.getService(ReadQueryLoadBalanceAlgorithm.class));
+ config.getName() + "." + config.getLoadBalancerName(),
TypedSPIRegistry.getService(ReadQueryLoadBalanceAlgorithm.class, null, new
Properties()));
return null == config.getStaticStrategy()
? createDynamicReadwriteSplittingDataSourceRules(config,
builtRules, loadBalanceAlgorithm)
: createStaticReadwriteSplittingDataSourceRules(config,
builtRules, loadBalanceAlgorithm);
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java
index 0b529dfe2d2..f915add7df9 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java
@@ -35,7 +35,7 @@ import
org.apache.shardingsphere.infra.rule.identifier.type.DataNodeContainedRul
import org.apache.shardingsphere.infra.rule.identifier.type.TableContainedRule;
import
org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
import org.apache.shardingsphere.infra.util.expr.InlineExpressionParser;
-import
org.apache.shardingsphere.infra.util.spi.type.required.RequiredSPIRegistry;
+import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPIRegistry;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import
org.apache.shardingsphere.sharding.api.config.rule.ShardingAutoTableRuleConfiguration;
import
org.apache.shardingsphere.sharding.api.config.rule.ShardingTableReferenceRuleConfiguration;
@@ -75,6 +75,7 @@ import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
+import java.util.Properties;
import java.util.TreeSet;
import java.util.function.Function;
import java.util.stream.Collectors;
@@ -129,7 +130,7 @@ public final class ShardingRule implements DatabaseRule,
DataNodeContainedRule,
defaultTableShardingStrategyConfig = null ==
ruleConfig.getDefaultTableShardingStrategy() ? new
NoneShardingStrategyConfiguration() :
ruleConfig.getDefaultTableShardingStrategy();
defaultAuditStrategy = null == ruleConfig.getDefaultAuditStrategy() ?
new ShardingAuditStrategyConfiguration(Collections.emptyList(), true) :
ruleConfig.getDefaultAuditStrategy();
defaultKeyGenerateAlgorithm = null ==
ruleConfig.getDefaultKeyGenerateStrategy()
- ? RequiredSPIRegistry.getService(KeyGenerateAlgorithm.class)
+ ? TypedSPIRegistry.getService(KeyGenerateAlgorithm.class,
null, new Properties())
:
keyGenerators.get(ruleConfig.getDefaultKeyGenerateStrategy().getKeyGeneratorName());
defaultShardingColumn = ruleConfig.getDefaultShardingColumn();
shardingTableDataNodes = createShardingTableDataNodes(tableRules);