This is an automated email from the ASF dual-hosted git repository.
duanzhengqiang 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 dca5b8cbe70 Refactor TypedSPIRegistry (#23740)
dca5b8cbe70 is described below
commit dca5b8cbe70e7469bd8a6906c8611c9ca63b4900
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Jan 27 16:53:12 2023 +0800
Refactor TypedSPIRegistry (#23740)
* Refactor TypedSPIRegistry
* Refactor TypedSPIRegistry
* Refactor TypedSPIRegistry
* Refactor TypedSPIRegistry
* Refactor TypedSPIRegistry
* Refactor TypedSPIRegistry
* Refactor TypedSPIRegistry
---
...AlterDatabaseDiscoveryRuleStatementUpdater.java | 2 +-
...reateDatabaseDiscoveryRuleStatementUpdater.java | 2 +-
.../algorithm/encrypt/AESEncryptAlgorithm.java | 2 +-
.../update/AlterEncryptRuleStatementUpdater.java | 4 +--
.../update/CreateEncryptRuleStatementUpdater.java | 2 +-
.../encrypt/sm/algorithm/SM4EncryptAlgorithm.java | 16 ++++-----
.../mask/algorithm/MaskAlgorithmUtil.java | 18 +++++-----
.../update/CreateMaskRuleStatementUpdater.java | 2 +-
.../update/CreateMaskRuleStatementUpdaterTest.java | 2 +-
.../rule/ReadwriteSplittingRule.java | 3 +-
.../shadow/hint/SimpleHintShadowAlgorithm.java | 36 +++----------------
...lterDefaultShadowAlgorithmStatementUpdater.java | 3 +-
.../update/AlterShadowRuleStatementUpdater.java | 2 +-
...eateDefaultShadowAlgorithmStatementUpdater.java | 3 +-
.../update/CreateShadowRuleStatementUpdater.java | 2 +-
.../sharding/inline/InlineShardingAlgorithm.java | 2 +-
.../shardingsphere/sharding/rule/ShardingRule.java | 3 +-
.../checker/ShardingTableRuleStatementChecker.java | 5 +--
.../util/spi/type/typed/TypedSPIRegistry.java | 41 ++++++++++------------
.../util/spi/type/typed/TypedSPIRegistryTest.java | 15 ++------
.../pipeline/api/config/ImporterConfiguration.java | 4 +--
.../data/pipeline/cdc/api/impl/CDCJobAPI.java | 3 +-
...RC32MatchDataConsistencyCalculateAlgorithm.java | 2 +-
...DataMatchDataConsistencyCalculateAlgorithm.java | 2 +-
.../datasource/AbstractDataSourceChecker.java | 2 +-
.../pipeline/core/importer/DataSourceImporter.java | 2 +-
.../core/ingest/dumper/InventoryDumper.java | 2 +-
.../core/prepare/InventoryTaskSplitter.java | 4 +--
.../core/prepare/PipelineJobPreparerUtils.java | 2 +-
.../datasource/AbstractDataSourcePreparer.java | 2 +-
.../migration/api/impl/MigrationJobAPI.java | 5 ++-
.../update/AlterTrafficRuleStatementUpdater.java | 4 +--
.../update/CreateTrafficRuleStatementUpdater.java | 4 +--
.../xa/XAShardingSphereTransactionManager.java | 5 ++-
.../distsql/ral/RALBackendHandlerFactory.java | 8 ++---
...aseDiscoveryRuleConfigurationImportChecker.java | 2 +-
.../EncryptRuleConfigurationImportChecker.java | 2 +-
.../MaskRuleConfigurationImportChecker.java | 2 +-
.../ShadowRuleConfigurationImportChecker.java | 2 +-
.../distsql/rql/RQLBackendHandlerFactory.java | 4 +--
.../proxy/version/ShardingSphereProxyVersion.java | 3 +-
.../frontend/netty/ServerHandlerInitializer.java | 4 +--
42 files changed, 88 insertions(+), 147 deletions(-)
diff --git
a/features/db-discovery/distsql/handler/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/AlterDatabaseDiscoveryRuleStatementUpdater.java
b/features/db-discovery/distsql/handler/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/AlterDatabaseDiscoveryRuleStatementUpdater.java
index 97fa160e172..9396ae7d689 100644
---
a/features/db-discovery/distsql/handler/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/AlterDatabaseDiscoveryRuleStatementUpdater.java
+++
b/features/db-discovery/distsql/handler/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/AlterDatabaseDiscoveryRuleStatementUpdater.java
@@ -87,7 +87,7 @@ public final class AlterDatabaseDiscoveryRuleStatementUpdater
implements RuleDef
Map<String, List<DatabaseDiscoveryRuleSegment>> segmentMap =
sqlStatement.getRules().stream().collect(Collectors.groupingBy(each ->
each.getClass().getSimpleName()));
Collection<String> invalidInput =
segmentMap.getOrDefault(DatabaseDiscoveryRuleSegment.class.getSimpleName(),
Collections.emptyList()).stream()
.map(each -> each.getDiscoveryType().getName()).distinct()
- .filter(each ->
!TypedSPIRegistry.findService(DatabaseDiscoveryProviderAlgorithm.class,
each).isPresent()).collect(Collectors.toList());
+ .filter(each ->
!TypedSPIRegistry.contains(DatabaseDiscoveryProviderAlgorithm.class,
each)).collect(Collectors.toList());
ShardingSpherePreconditions.checkState(invalidInput.isEmpty(), () ->
new InvalidAlgorithmConfigurationException("database discovery", invalidInput));
}
diff --git
a/features/db-discovery/distsql/handler/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryRuleStatementUpdater.java
b/features/db-discovery/distsql/handler/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryRuleStatementUpdater.java
index 63b4d2ff766..d096f136c2a 100644
---
a/features/db-discovery/distsql/handler/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryRuleStatementUpdater.java
+++
b/features/db-discovery/distsql/handler/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryRuleStatementUpdater.java
@@ -108,7 +108,7 @@ public final class
CreateDatabaseDiscoveryRuleStatementUpdater implements RuleDe
Map<String, List<DatabaseDiscoveryRuleSegment>> segmentMap =
sqlStatement.getRules().stream().collect(Collectors.groupingBy(each ->
each.getClass().getSimpleName()));
Collection<String> invalidInput =
segmentMap.getOrDefault(DatabaseDiscoveryRuleSegment.class.getSimpleName(),
Collections.emptyList()).stream()
.map(each -> each.getDiscoveryType().getName()).distinct()
- .filter(each ->
!TypedSPIRegistry.findService(DatabaseDiscoveryProviderAlgorithm.class,
each).isPresent()).collect(Collectors.toList());
+ .filter(each ->
!TypedSPIRegistry.contains(DatabaseDiscoveryProviderAlgorithm.class,
each)).collect(Collectors.toList());
ShardingSpherePreconditions.checkState(invalidInput.isEmpty(), () ->
new InvalidAlgorithmConfigurationException("database discovery", invalidInput));
}
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/algorithm/encrypt/AESEncryptAlgorithm.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/algorithm/encrypt/AESEncryptAlgorithm.java
index 379e9768db2..be21ed70348 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/algorithm/encrypt/AESEncryptAlgorithm.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/algorithm/encrypt/AESEncryptAlgorithm.java
@@ -55,7 +55,7 @@ public final class AESEncryptAlgorithm implements
StandardEncryptAlgorithm<Objec
}
private byte[] createSecretKey(final Properties props) {
- ShardingSpherePreconditions.checkState(props.containsKey(AES_KEY), ()
-> new EncryptAlgorithmInitializationException("AES", String.format("%s can not
be null.", AES_KEY)));
+ ShardingSpherePreconditions.checkState(props.containsKey(AES_KEY), ()
-> new EncryptAlgorithmInitializationException("AES", String.format("%s can not
be null", AES_KEY)));
return Arrays.copyOf(DigestUtils.sha1(props.getProperty(AES_KEY)), 16);
}
diff --git
a/features/encrypt/distsql/handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/update/AlterEncryptRuleStatementUpdater.java
b/features/encrypt/distsql/handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/update/AlterEncryptRuleStatementUpdater.java
index 3c0522dadad..c39f0bafeab 100644
---
a/features/encrypt/distsql/handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/update/AlterEncryptRuleStatementUpdater.java
+++
b/features/encrypt/distsql/handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/update/AlterEncryptRuleStatementUpdater.java
@@ -86,8 +86,8 @@ public final class AlterEncryptRuleStatementUpdater
implements RuleDefinitionAlt
for (EncryptRuleSegment each : sqlStatement.getRules()) {
encryptors.addAll(each.getColumns().stream().map(column ->
column.getEncryptor().getName()).collect(Collectors.toSet()));
}
- Collection<String> invalidEncryptors = encryptors.stream().filter(each
-> !TypedSPIRegistry.findService(EncryptAlgorithm.class,
each).isPresent()).collect(Collectors.toList());
- ShardingSpherePreconditions.checkState(invalidEncryptors.isEmpty(), ()
-> new InvalidAlgorithmConfigurationException("encryptor", invalidEncryptors));
+ Collection<String> notExistedEncryptors =
encryptors.stream().filter(each ->
!TypedSPIRegistry.contains(EncryptAlgorithm.class,
each)).collect(Collectors.toList());
+ ShardingSpherePreconditions.checkState(notExistedEncryptors.isEmpty(),
() -> new InvalidAlgorithmConfigurationException("encryptor",
notExistedEncryptors));
}
@Override
diff --git
a/features/encrypt/distsql/handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/update/CreateEncryptRuleStatementUpdater.java
b/features/encrypt/distsql/handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/update/CreateEncryptRuleStatementUpdater.java
index b6df34745ec..cf70f310165 100644
---
a/features/encrypt/distsql/handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/update/CreateEncryptRuleStatementUpdater.java
+++
b/features/encrypt/distsql/handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/update/CreateEncryptRuleStatementUpdater.java
@@ -95,7 +95,7 @@ public final class CreateEncryptRuleStatementUpdater
implements RuleDefinitionCr
private void checkToBeCreatedEncryptors(final CreateEncryptRuleStatement
sqlStatement) {
Collection<String> encryptors = new LinkedHashSet<>();
sqlStatement.getRules().forEach(each ->
encryptors.addAll(each.getColumns().stream().map(column ->
column.getEncryptor().getName()).collect(Collectors.toSet())));
- Collection<String> notExistedEncryptors =
encryptors.stream().filter(each ->
!TypedSPIRegistry.findService(EncryptAlgorithm.class,
each).isPresent()).collect(Collectors.toList());
+ Collection<String> notExistedEncryptors =
encryptors.stream().filter(each ->
!TypedSPIRegistry.contains(EncryptAlgorithm.class,
each)).collect(Collectors.toList());
ShardingSpherePreconditions.checkState(notExistedEncryptors.isEmpty(),
() -> new InvalidAlgorithmConfigurationException("encryptor",
notExistedEncryptors));
}
diff --git
a/features/encrypt/plugin/sm/src/main/java/org/apache/shardingsphere/encrypt/sm/algorithm/SM4EncryptAlgorithm.java
b/features/encrypt/plugin/sm/src/main/java/org/apache/shardingsphere/encrypt/sm/algorithm/SM4EncryptAlgorithm.java
index 3ef4e32a58b..c89ff2302f5 100644
---
a/features/encrypt/plugin/sm/src/main/java/org/apache/shardingsphere/encrypt/sm/algorithm/SM4EncryptAlgorithm.java
+++
b/features/encrypt/plugin/sm/src/main/java/org/apache/shardingsphere/encrypt/sm/algorithm/SM4EncryptAlgorithm.java
@@ -83,17 +83,17 @@ public final class SM4EncryptAlgorithm implements
StandardEncryptAlgorithm<Objec
}
private String createSm4Mode(final Properties props) {
- ShardingSpherePreconditions.checkState(props.containsKey(SM4_MODE), ()
-> new EncryptAlgorithmInitializationException("SM4", String.format("%s can not
be null.", SM4_MODE)));
+ ShardingSpherePreconditions.checkState(props.containsKey(SM4_MODE), ()
-> new EncryptAlgorithmInitializationException("SM4", String.format("%s can not
be null", SM4_MODE)));
String result =
String.valueOf(props.getProperty(SM4_MODE)).toUpperCase();
- ShardingSpherePreconditions.checkState(MODES.contains(result), () ->
new EncryptAlgorithmInitializationException("SM4", "Mode must be either CBC or
ECB."));
+ ShardingSpherePreconditions.checkState(MODES.contains(result), () ->
new EncryptAlgorithmInitializationException("SM4", "Mode must be either CBC or
ECB"));
return result;
}
private byte[] createSm4Key(final Properties props) {
- ShardingSpherePreconditions.checkState(props.containsKey(SM4_KEY), ()
-> new EncryptAlgorithmInitializationException("SM4", String.format("%s can not
be null.", SM4_KEY)));
+ ShardingSpherePreconditions.checkState(props.containsKey(SM4_KEY), ()
-> new EncryptAlgorithmInitializationException("SM4", String.format("%s can not
be null", SM4_KEY)));
byte[] result =
ByteUtils.fromHexString(String.valueOf(props.getProperty(SM4_KEY)));
ShardingSpherePreconditions.checkState(KEY_LENGTH == result.length,
- () -> new EncryptAlgorithmInitializationException("SM4", "Key
length must be " + KEY_LENGTH + " bytes long."));
+ () -> new EncryptAlgorithmInitializationException("SM4", "Key
length must be " + KEY_LENGTH + " bytes long"));
return result;
}
@@ -101,17 +101,17 @@ public final class SM4EncryptAlgorithm implements
StandardEncryptAlgorithm<Objec
if (!"CBC".equalsIgnoreCase(sm4Mode)) {
return null;
}
- ShardingSpherePreconditions.checkState(props.containsKey(SM4_IV), ()
-> new EncryptAlgorithmInitializationException("SM4", String.format("%s can not
be null.", SM4_IV)));
+ ShardingSpherePreconditions.checkState(props.containsKey(SM4_IV), ()
-> new EncryptAlgorithmInitializationException("SM4", String.format("%s can not
be null", SM4_IV)));
String sm4IvValue = String.valueOf(props.getProperty(SM4_IV));
byte[] result = ByteUtils.fromHexString(sm4IvValue);
- ShardingSpherePreconditions.checkState(IV_LENGTH == result.length, ()
-> new EncryptAlgorithmInitializationException("SM4", "Iv length must be " +
IV_LENGTH + " bytes long."));
+ ShardingSpherePreconditions.checkState(IV_LENGTH == result.length, ()
-> new EncryptAlgorithmInitializationException("SM4", "Iv length must be " +
IV_LENGTH + " bytes long"));
return result;
}
private String createSm4Padding(final Properties props) {
- ShardingSpherePreconditions.checkState(props.containsKey(SM4_PADDING),
() -> new EncryptAlgorithmInitializationException("SM4", String.format("%s can
not be null.", SM4_PADDING)));
+ ShardingSpherePreconditions.checkState(props.containsKey(SM4_PADDING),
() -> new EncryptAlgorithmInitializationException("SM4", String.format("%s can
not be null", SM4_PADDING)));
String result =
String.valueOf(props.getProperty(SM4_PADDING)).toUpperCase().replace("PADDING",
"Padding");
- ShardingSpherePreconditions.checkState(PADDINGS.contains(result), ()
-> new EncryptAlgorithmInitializationException("SM4", "Padding must be either
PKCS5Padding or PKCS7Padding."));
+ ShardingSpherePreconditions.checkState(PADDINGS.contains(result), ()
-> new EncryptAlgorithmInitializationException("SM4", "Padding must be either
PKCS5Padding or PKCS7Padding"));
return result;
}
diff --git
a/features/mask/core/src/main/java/org/apache/shardingsphere/mask/algorithm/MaskAlgorithmUtil.java
b/features/mask/core/src/main/java/org/apache/shardingsphere/mask/algorithm/MaskAlgorithmUtil.java
index 8964a6e993f..6a00f280d42 100644
---
a/features/mask/core/src/main/java/org/apache/shardingsphere/mask/algorithm/MaskAlgorithmUtil.java
+++
b/features/mask/core/src/main/java/org/apache/shardingsphere/mask/algorithm/MaskAlgorithmUtil.java
@@ -17,7 +17,6 @@
package org.apache.shardingsphere.mask.algorithm;
-import com.google.common.primitives.Ints;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import
org.apache.shardingsphere.mask.exception.algorithm.MaskAlgorithmInitializationException;
@@ -28,7 +27,6 @@ import java.util.Properties;
* Mask algorithm util.
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
-@SuppressWarnings("UnstableApiUsage")
public final class MaskAlgorithmUtil {
/**
@@ -40,10 +38,10 @@ public final class MaskAlgorithmUtil {
*/
public static void checkSingleCharConfig(final Properties props, final
String singleCharConfigKey, final String maskType) {
if (!props.containsKey(singleCharConfigKey)) {
- throw new MaskAlgorithmInitializationException(maskType,
String.format("%s can not be null.", singleCharConfigKey));
+ throw new MaskAlgorithmInitializationException(maskType,
String.format("%s can not be null", singleCharConfigKey));
}
if (1 != props.getProperty(singleCharConfigKey).length()) {
- throw new MaskAlgorithmInitializationException(maskType,
String.format("%s's length must be one.", singleCharConfigKey));
+ throw new MaskAlgorithmInitializationException(maskType,
String.format("%s's length must be one", singleCharConfigKey));
}
}
@@ -56,10 +54,10 @@ public final class MaskAlgorithmUtil {
*/
public static void checkAtLeastOneCharConfig(final Properties props, final
String atLeastOneCharConfigKey, final String maskType) {
if (!props.containsKey(atLeastOneCharConfigKey)) {
- throw new MaskAlgorithmInitializationException(maskType,
String.format("%s can not be null.", atLeastOneCharConfigKey));
+ throw new MaskAlgorithmInitializationException(maskType,
String.format("%s can not be null", atLeastOneCharConfigKey));
}
if (0 == props.getProperty(atLeastOneCharConfigKey).length()) {
- throw new MaskAlgorithmInitializationException(maskType,
String.format("%s's length must be at least one.", atLeastOneCharConfigKey));
+ throw new MaskAlgorithmInitializationException(maskType,
String.format("%s's length must be at least one", atLeastOneCharConfigKey));
}
}
@@ -72,10 +70,12 @@ public final class MaskAlgorithmUtil {
*/
public static void checkIntegerTypeConfig(final Properties props, final
String integerTypeConfigKey, final String maskType) {
if (!props.containsKey(integerTypeConfigKey)) {
- throw new MaskAlgorithmInitializationException(maskType,
String.format("%s can not be null.", integerTypeConfigKey));
+ throw new MaskAlgorithmInitializationException(maskType,
String.format("%s can not be null", integerTypeConfigKey));
}
- if (null == Ints.tryParse(props.getProperty(integerTypeConfigKey))) {
- throw new MaskAlgorithmInitializationException(maskType,
String.format("%s must be a valid integer number.", integerTypeConfigKey));
+ try {
+ Integer.parseInt(props.getProperty(integerTypeConfigKey));
+ } catch (final NumberFormatException ex) {
+ throw new MaskAlgorithmInitializationException(maskType,
String.format("%s must be a valid integer number", integerTypeConfigKey));
}
}
}
diff --git
a/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/update/CreateMaskRuleStatementUpdater.java
b/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/update/CreateMaskRuleStatementUpdater.java
index 74daf41be58..bffa82660d9 100644
---
a/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/update/CreateMaskRuleStatementUpdater.java
+++
b/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/update/CreateMaskRuleStatementUpdater.java
@@ -63,7 +63,7 @@ public final class CreateMaskRuleStatementUpdater implements
RuleDefinitionCreat
private void checkAlgorithms(final CreateMaskRuleStatement sqlStatement) {
Collection<MaskColumnSegment> columns = new LinkedList<>();
sqlStatement.getRules().forEach(each ->
columns.addAll(each.getColumns()));
- columns.forEach(each ->
ShardingSpherePreconditions.checkState(TypedSPIRegistry.findService(MaskAlgorithm.class,
each.getAlgorithm().getName()).isPresent(),
+ columns.forEach(each ->
ShardingSpherePreconditions.checkState(TypedSPIRegistry.contains(MaskAlgorithm.class,
each.getAlgorithm().getName()),
() -> new InvalidAlgorithmConfigurationException("mask",
each.getAlgorithm().getName())));
}
diff --git
a/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/CreateMaskRuleStatementUpdaterTest.java
b/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/CreateMaskRuleStatementUpdaterTest.java
index 6a152f1294f..87859dea2e5 100644
---
a/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/CreateMaskRuleStatementUpdaterTest.java
+++
b/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/CreateMaskRuleStatementUpdaterTest.java
@@ -79,7 +79,7 @@ public final class CreateMaskRuleStatementUpdaterTest {
updater.checkSQLStatement(database, sqlStatement, currentRuleConfig);
MaskRuleConfiguration toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(currentRuleConfig, sqlStatement);
updater.updateCurrentRuleConfiguration(currentRuleConfig,
toBeCreatedRuleConfig);
- sqlStatement = createSQLStatement(true, "MASK_FROM_X_TO_Y");
+ sqlStatement = createSQLStatement(true, "MD5");
updater.checkSQLStatement(database, sqlStatement, currentRuleConfig);
toBeCreatedRuleConfig =
updater.buildToBeCreatedRuleConfiguration(currentRuleConfig, sqlStatement);
updater.updateCurrentRuleConfiguration(currentRuleConfig,
toBeCreatedRuleConfig);
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 7fdb8a9b748..a92216b19d3 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
@@ -52,7 +52,6 @@ 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;
/**
@@ -81,7 +80,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(),
TypedSPIRegistry.getService(ReadQueryLoadBalanceAlgorithm.class, null, new
Properties()));
+ config.getName() + "." + config.getLoadBalancerName(),
TypedSPIRegistry.getService(ReadQueryLoadBalanceAlgorithm.class, null));
return null == config.getStaticStrategy()
? createDynamicReadwriteSplittingDataSourceRules(config,
builtRules, loadBalanceAlgorithm)
: createStaticReadwriteSplittingDataSourceRules(config,
builtRules, loadBalanceAlgorithm);
diff --git
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/algorithm/shadow/hint/SimpleHintShadowAlgorithm.java
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/algorithm/shadow/hint/SimpleHintShadowAlgorithm.java
index 3691ebac04d..b3045938d03 100644
---
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/algorithm/shadow/hint/SimpleHintShadowAlgorithm.java
+++
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/algorithm/shadow/hint/SimpleHintShadowAlgorithm.java
@@ -19,17 +19,12 @@ package
org.apache.shardingsphere.shadow.algorithm.shadow.hint;
import lombok.Getter;
import org.apache.shardingsphere.infra.hint.SQLHintExtractor;
-import
org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
import org.apache.shardingsphere.shadow.api.shadow.ShadowOperationType;
import org.apache.shardingsphere.shadow.api.shadow.hint.HintShadowAlgorithm;
import org.apache.shardingsphere.shadow.api.shadow.hint.PreciseHintShadowValue;
-import
org.apache.shardingsphere.shadow.exception.algorithm.ShadowAlgorithmInitializationException;
import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
import java.util.Properties;
-import java.util.Set;
/**
* Simple hint shadow algorithm.
@@ -37,37 +32,14 @@ import java.util.Set;
public final class SimpleHintShadowAlgorithm implements
HintShadowAlgorithm<String> {
@Getter
- private Properties props;
-
- private Map<String, String> simpleHint;
-
- @Override
- public void init(final Properties props) {
- this.props = props;
- checkPropsSize(props);
- simpleHint = initSimpleHint(props);
- }
-
- private Map<String, String> initSimpleHint(final Properties props) {
- Map<String, String> result = new HashMap<>(props.size(), 1.0f);
- Set<String> strings = props.stringPropertyNames();
- for (String each : strings) {
- result.put(each, props.getProperty(each));
- }
- return result;
- }
-
- private void checkPropsSize(final Properties props) {
- ShardingSpherePreconditions.checkState(!props.isEmpty(), () -> new
ShadowAlgorithmInitializationException(getType(), "Simple hint shadow algorithm
props cannot be empty."));
- }
+ private final Properties props = new Properties();
@Override
public boolean isShadow(final Collection<String> shadowTableNames, final
PreciseHintShadowValue<String> noteShadowValue) {
- if (ShadowOperationType.HINT_MATCH !=
noteShadowValue.getShadowOperationType() &&
!shadowTableNames.contains(noteShadowValue.getLogicTableName())) {
- return false;
+ if (ShadowOperationType.HINT_MATCH ==
noteShadowValue.getShadowOperationType() ||
shadowTableNames.contains(noteShadowValue.getLogicTableName())) {
+ return new SQLHintExtractor(noteShadowValue.getValue()).isShadow();
}
- SQLHintExtractor sqlHintExtractor = new
SQLHintExtractor(noteShadowValue.getValue());
- return sqlHintExtractor.isShadow();
+ return false;
}
@Override
diff --git
a/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/update/AlterDefaultShadowAlgorithmStatementUpdater.java
b/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/update/AlterDefaultShadowAlgorithmStatementUpdater.java
index 19dcf04b5cf..f7d7e563717 100644
---
a/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/update/AlterDefaultShadowAlgorithmStatementUpdater.java
+++
b/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/update/AlterDefaultShadowAlgorithmStatementUpdater.java
@@ -83,8 +83,7 @@ public final class
AlterDefaultShadowAlgorithmStatementUpdater implements RuleDe
private void checkAlgorithmType(final AlgorithmSegment algorithmSegment) {
String shadowAlgorithmType = algorithmSegment.getName();
- ShardingSpherePreconditions.checkState(
- TypedSPIRegistry.findService(ShadowAlgorithm.class,
shadowAlgorithmType).isPresent(), () -> new
InvalidAlgorithmConfigurationException("shadow", shadowAlgorithmType));
+
ShardingSpherePreconditions.checkState(TypedSPIRegistry.contains(ShadowAlgorithm.class,
shadowAlgorithmType), () -> new
InvalidAlgorithmConfigurationException("shadow", shadowAlgorithmType));
}
@Override
diff --git
a/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/update/AlterShadowRuleStatementUpdater.java
b/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/update/AlterShadowRuleStatementUpdater.java
index 81dfcdd187e..1fa2f49387d 100644
---
a/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/update/AlterShadowRuleStatementUpdater.java
+++
b/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/update/AlterShadowRuleStatementUpdater.java
@@ -90,7 +90,7 @@ public final class AlterShadowRuleStatementUpdater implements
RuleDefinitionAlte
private void checkAlgorithmType(final AlterShadowRuleStatement
sqlStatement) {
Collection<String> invalidAlgorithmTypes =
sqlStatement.getRules().stream().flatMap(each ->
each.getShadowTableRules().values().stream()).flatMap(Collection::stream)
.map(each ->
each.getAlgorithmSegment().getName()).collect(Collectors.toSet()).stream()
- .filter(each ->
!TypedSPIRegistry.findService(ShadowAlgorithm.class,
each).isPresent()).collect(Collectors.toSet());
+ .filter(each ->
!TypedSPIRegistry.contains(ShadowAlgorithm.class,
each)).collect(Collectors.toSet());
ShardingSpherePreconditions.checkState(invalidAlgorithmTypes.isEmpty(), () ->
new InvalidAlgorithmConfigurationException("shadow", invalidAlgorithmTypes));
}
diff --git
a/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/update/CreateDefaultShadowAlgorithmStatementUpdater.java
b/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/update/CreateDefaultShadowAlgorithmStatementUpdater.java
index 7a63d054f7e..1c630dcf63e 100644
---
a/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/update/CreateDefaultShadowAlgorithmStatementUpdater.java
+++
b/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/update/CreateDefaultShadowAlgorithmStatementUpdater.java
@@ -87,8 +87,7 @@ public final class
CreateDefaultShadowAlgorithmStatementUpdater implements RuleD
private void checkAlgorithmType(final
CreateDefaultShadowAlgorithmStatement sqlStatement) {
String shadowAlgorithmType =
sqlStatement.getShadowAlgorithmSegment().getAlgorithmSegment().getName();
- ShardingSpherePreconditions.checkState(
- TypedSPIRegistry.findService(ShadowAlgorithm.class,
shadowAlgorithmType).isPresent(), () -> new
InvalidAlgorithmConfigurationException("shadow", shadowAlgorithmType));
+
ShardingSpherePreconditions.checkState(TypedSPIRegistry.contains(ShadowAlgorithm.class,
shadowAlgorithmType), () -> new
InvalidAlgorithmConfigurationException("shadow", shadowAlgorithmType));
}
private void checkAlgorithmCompleteness(final Collection<AlgorithmSegment>
algorithmSegments) {
diff --git
a/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/update/CreateShadowRuleStatementUpdater.java
b/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/update/CreateShadowRuleStatementUpdater.java
index 55c5e1c5dd6..adde839ed73 100644
---
a/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/update/CreateShadowRuleStatementUpdater.java
+++
b/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/update/CreateShadowRuleStatementUpdater.java
@@ -94,7 +94,7 @@ public final class CreateShadowRuleStatementUpdater
implements RuleDefinitionCre
private void checkAlgorithmType(final Collection<ShadowRuleSegment>
segments) {
Collection<String> invalidAlgorithmTypes =
segments.stream().flatMap(each ->
each.getShadowTableRules().values().stream()).flatMap(Collection::stream)
.map(each ->
each.getAlgorithmSegment().getName()).collect(Collectors.toSet())
- .stream().filter(each ->
!TypedSPIRegistry.findService(ShadowAlgorithm.class,
each).isPresent()).collect(Collectors.toSet());
+ .stream().filter(each ->
!TypedSPIRegistry.contains(ShadowAlgorithm.class,
each)).collect(Collectors.toSet());
ShardingSpherePreconditions.checkState(invalidAlgorithmTypes.isEmpty(), () ->
new InvalidAlgorithmConfigurationException("shadow", invalidAlgorithmTypes));
}
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/algorithm/sharding/inline/InlineShardingAlgorithm.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/algorithm/sharding/inline/InlineShardingAlgorithm.java
index a8baa828d78..08f4f7cb6b7 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/algorithm/sharding/inline/InlineShardingAlgorithm.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/algorithm/sharding/inline/InlineShardingAlgorithm.java
@@ -59,7 +59,7 @@ public final class InlineShardingAlgorithm implements
StandardShardingAlgorithm<
private String getAlgorithmExpression(final Properties props) {
String expression = props.getProperty(ALGORITHM_EXPRESSION_KEY);
ShardingSpherePreconditions.checkState(null != expression &&
!expression.isEmpty(),
- () -> new ShardingAlgorithmInitializationException(getType(),
"Inline sharding algorithm expression cannot be null or empty."));
+ () -> new ShardingAlgorithmInitializationException(getType(),
"Inline sharding algorithm expression cannot be null or empty"));
return InlineExpressionParser.handlePlaceHolder(expression.trim());
}
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 f915add7df9..7984b89115c 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
@@ -75,7 +75,6 @@ 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;
@@ -130,7 +129,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()
- ? TypedSPIRegistry.getService(KeyGenerateAlgorithm.class,
null, new Properties())
+ ? TypedSPIRegistry.getService(KeyGenerateAlgorithm.class, null)
:
keyGenerators.get(ruleConfig.getDefaultKeyGenerateStrategy().getKeyGeneratorName());
defaultShardingColumn = ruleConfig.getDefaultShardingColumn();
shardingTableDataNodes = createShardingTableDataNodes(tableRules);
diff --git
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/checker/ShardingTableRuleStatementChecker.java
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/checker/ShardingTableRuleStatementChecker.java
index becf65f980b..ffd0a980982 100644
---
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/checker/ShardingTableRuleStatementChecker.java
+++
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/checker/ShardingTableRuleStatementChecker.java
@@ -272,7 +272,7 @@ public final class ShardingTableRuleStatementChecker {
.map(ShardingAuditorSegment::getAlgorithmSegment).collect(Collectors.toList()).stream().map(AlgorithmSegment::getName).collect(Collectors.toList()));
}
Collection<String> invalidAuditors = requiredAuditors.stream()
- .distinct().filter(each ->
!TypedSPIRegistry.findService(ShardingAuditAlgorithm.class,
each).isPresent()).collect(Collectors.toList());
+ .distinct().filter(each ->
!TypedSPIRegistry.contains(ShardingAuditAlgorithm.class,
each)).collect(Collectors.toList());
ShardingSpherePreconditions.checkState(invalidAuditors.isEmpty(), ()
-> new InvalidAlgorithmConfigurationException("auditor", invalidAuditors));
}
@@ -286,7 +286,8 @@ public final class ShardingTableRuleStatementChecker {
private static void checkAutoTableShardingAlgorithms(final
Collection<AutoTableRuleSegment> rules) {
rules.forEach(each -> {
-
ShardingSpherePreconditions.checkState(TypedSPIRegistry.findService(ShardingAlgorithm.class,
each.getShardingAlgorithmSegment().getName()).isPresent(),
+
ShardingSpherePreconditions.checkState(TypedSPIRegistry.findService(
+ ShardingAlgorithm.class,
each.getShardingAlgorithmSegment().getName(),
each.getShardingAlgorithmSegment().getProps()).isPresent(),
() -> new
InvalidAlgorithmConfigurationException("sharding",
each.getShardingAlgorithmSegment().getName()));
ShardingAlgorithm shardingAlgorithm =
ShardingSphereAlgorithmFactory.createAlgorithm(
new
AlgorithmConfiguration(each.getShardingAlgorithmSegment().getName(),
each.getShardingAlgorithmSegment().getProps()), ShardingAlgorithm.class);
diff --git
a/infra/util/src/main/java/org/apache/shardingsphere/infra/util/spi/type/typed/TypedSPIRegistry.java
b/infra/util/src/main/java/org/apache/shardingsphere/infra/util/spi/type/typed/TypedSPIRegistry.java
index 6f8c18099b4..33719f5337d 100644
---
a/infra/util/src/main/java/org/apache/shardingsphere/infra/util/spi/type/typed/TypedSPIRegistry.java
+++
b/infra/util/src/main/java/org/apache/shardingsphere/infra/util/spi/type/typed/TypedSPIRegistry.java
@@ -52,12 +52,7 @@ public final class TypedSPIRegistry {
* @return service
*/
public static <T extends TypedSPI> Optional<T> findService(final Class<T>
spiClass, final String type) {
- for (T each :
ShardingSphereServiceLoader.getServiceInstances(spiClass)) {
- if (matchesType(type, each)) {
- return Optional.of(each);
- }
- }
- return getService(spiClass);
+ return findService(spiClass, type, new Properties());
}
/**
@@ -72,11 +67,22 @@ public final class TypedSPIRegistry {
public static <T extends TypedSPI> Optional<T> findService(final Class<T>
spiClass, final String type, final Properties props) {
for (T each :
ShardingSphereServiceLoader.getServiceInstances(spiClass)) {
if (matchesType(type, each)) {
- each.init(convertToStringTypedProperties(props));
+ each.init(null == props ? new Properties() :
convertToStringTypedProperties(props));
return Optional.of(each);
}
}
- return getService(spiClass);
+ return findService(spiClass);
+ }
+
+ private static <T extends TypedSPI> Optional<T> findService(final Class<T>
spiClass) {
+ for (T each :
ShardingSphereServiceLoader.getServiceInstances(spiClass)) {
+ if (!each.isDefault()) {
+ continue;
+ }
+ each.init(new Properties());
+ return Optional.of(each);
+ }
+ return Optional.empty();
}
private static boolean matchesType(final String type, final TypedSPI
instance) {
@@ -84,8 +90,8 @@ public final class TypedSPIRegistry {
}
private static Properties convertToStringTypedProperties(final Properties
props) {
- if (null == props) {
- return new Properties();
+ if (props.isEmpty()) {
+ return props;
}
Properties result = new Properties();
props.forEach((key, value) -> result.setProperty(key.toString(), null
== value ? null : value.toString()));
@@ -101,7 +107,7 @@ public final class TypedSPIRegistry {
* @return service
*/
public static <T extends TypedSPI> T getService(final Class<T> spiClass,
final String type) {
- return findService(spiClass, type).orElseGet(() ->
getService(spiClass).orElseThrow(() -> new
ServiceProviderNotFoundServerException(spiClass)));
+ return getService(spiClass, type, new Properties());
}
/**
@@ -114,17 +120,6 @@ public final class TypedSPIRegistry {
* @return service
*/
public static <T extends TypedSPI> T getService(final Class<T> spiClass,
final String type, final Properties props) {
- return findService(spiClass, type, props).orElseGet(() ->
getService(spiClass).orElseThrow(() -> new
ServiceProviderNotFoundServerException(spiClass)));
- }
-
- private static <T extends TypedSPI> Optional<T> getService(final Class<T>
spiClass) {
- for (T each :
ShardingSphereServiceLoader.getServiceInstances(spiClass)) {
- if (!each.isDefault()) {
- continue;
- }
- each.init(new Properties());
- return Optional.of(each);
- }
- return Optional.empty();
+ return findService(spiClass, type, props).orElseGet(() ->
findService(spiClass).orElseThrow(() -> new
ServiceProviderNotFoundServerException(spiClass)));
}
}
diff --git
a/infra/util/src/test/java/org/apache/shardingsphere/infra/util/spi/type/typed/TypedSPIRegistryTest.java
b/infra/util/src/test/java/org/apache/shardingsphere/infra/util/spi/type/typed/TypedSPIRegistryTest.java
index dafa3600775..9769d6128ab 100644
---
a/infra/util/src/test/java/org/apache/shardingsphere/infra/util/spi/type/typed/TypedSPIRegistryTest.java
+++
b/infra/util/src/test/java/org/apache/shardingsphere/infra/util/spi/type/typed/TypedSPIRegistryTest.java
@@ -30,7 +30,6 @@ import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
public final class TypedSPIRegistryTest {
@@ -55,23 +54,13 @@ public final class TypedSPIRegistryTest {
assertThat(((TypedSPIFixtureImpl)
TypedSPIRegistry.getService(TypedSPIFixture.class, "TYPED.FIXTURE",
PropertiesBuilder.build(new Property("key", "1")))).getValue(), is("1"));
}
- @Test
- public void assertGetServiceWithNullProperties() {
- assertNull(((TypedSPIFixtureImpl)
TypedSPIRegistry.getService(TypedSPIFixture.class, "TYPED.FIXTURE",
null)).getValue());
- }
-
@Test
public void assertGetServiceWithAlias() {
- assertNotNull(TypedSPIRegistry.getService(TypedSPIFixture.class,
"TYPED.ALIAS", new Properties()));
+ assertNotNull(TypedSPIRegistry.getService(TypedSPIFixture.class,
"TYPED.ALIAS"));
}
@Test(expected = ServiceProviderNotFoundServerException.class)
- public void assertGetServiceWithoutPropertiesWhenTypeIsNotExist() {
+ public void assertGetServiceWhenTypeIsNotExist() {
TypedSPIRegistry.getService(TypedSPIFixture.class, "NOT_EXISTED");
}
-
- @Test(expected = ServiceProviderNotFoundServerException.class)
- public void assertGetServiceWithPropertiesWhenTypeIsNotExist() {
- TypedSPIRegistry.getService(TypedSPIFixture.class, "NOT_EXISTED", new
Properties());
- }
}
diff --git
a/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/api/config/ImporterConfiguration.java
b/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/api/config/ImporterConfiguration.java
index f7a33a66ec4..32bf83b5050 100644
---
a/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/api/config/ImporterConfiguration.java
+++
b/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/api/config/ImporterConfiguration.java
@@ -81,8 +81,6 @@ public final class ImporterConfiguration {
* @return schema name. nullable
*/
public String getSchemaName(final LogicTableName logicTableName) {
- return TypedSPIRegistry.getService(DatabaseType.class,
dataSourceConfig.getDatabaseType().getType()).isSchemaAvailable()
- ? tableNameSchemaNameMapping.getSchemaName(logicTableName)
- : null;
+ return TypedSPIRegistry.getService(DatabaseType.class,
dataSourceConfig.getDatabaseType().getType()).isSchemaAvailable() ?
tableNameSchemaNameMapping.getSchemaName(logicTableName) : null;
}
}
diff --git
a/kernel/data-pipeline/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/api/impl/CDCJobAPI.java
b/kernel/data-pipeline/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/api/impl/CDCJobAPI.java
index 09e8aac196e..c9f7c81fd6c 100644
---
a/kernel/data-pipeline/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/api/impl/CDCJobAPI.java
+++
b/kernel/data-pipeline/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/api/impl/CDCJobAPI.java
@@ -81,7 +81,6 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
-import java.util.Properties;
import java.util.Set;
import java.util.stream.Collectors;
@@ -206,7 +205,7 @@ public final class CDCJobAPI extends
AbstractInventoryIncrementalJobAPIImpl {
CDCProcessContext processContext = new
CDCProcessContext(jobConfig.getJobId(), pipelineProcessConfig);
JobRateLimitAlgorithm writeRateLimitAlgorithm =
processContext.getWriteRateLimitAlgorithm();
int batchSize = pipelineProcessConfig.getWrite().getBatchSize();
- Map<LogicTableName, Set<String>> shardingColumnsMap =
TypedSPIRegistry.getService(ShardingColumnsExtractor.class, "Sharding", new
Properties())
+ Map<LogicTableName, Set<String>> shardingColumnsMap =
TypedSPIRegistry.getService(ShardingColumnsExtractor.class, "Sharding")
.getShardingColumnsMap(jobConfig.getDataSourceConfig().getRootConfig().getRules(),
logicalTableNames.stream().map(LogicTableName::new).collect(Collectors.toSet()));
return new ImporterConfiguration(dataSourceConfig, shardingColumnsMap,
tableNameSchemaNameMapping, batchSize, writeRateLimitAlgorithm, 0, 1);
}
diff --git
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/CRC32MatchDataConsistencyCalculateAlgorithm.java
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/CRC32MatchDataConsistencyCalculateAlgorithm.java
index 36860e88bfe..ebed28663f9 100644
---
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/CRC32MatchDataConsistencyCalculateAlgorithm.java
+++
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/CRC32MatchDataConsistencyCalculateAlgorithm.java
@@ -60,7 +60,7 @@ public final class
CRC32MatchDataConsistencyCalculateAlgorithm extends AbstractD
@Override
public Iterable<DataConsistencyCalculatedResult> calculate(final
DataConsistencyCalculateParameter param) {
- PipelineSQLBuilder sqlBuilder =
TypedSPIRegistry.getService(PipelineSQLBuilder.class, param.getDatabaseType(),
null);
+ PipelineSQLBuilder sqlBuilder =
TypedSPIRegistry.getService(PipelineSQLBuilder.class, param.getDatabaseType());
List<CalculatedItem> calculatedItems =
param.getColumnNames().stream().map(each -> calculateCRC32(sqlBuilder, param,
each)).collect(Collectors.toList());
return Collections.singletonList(new
CalculatedResult(calculatedItems.get(0).getRecordsCount(),
calculatedItems.stream().map(CalculatedItem::getCrc32).collect(Collectors.toList())));
}
diff --git
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/DataMatchDataConsistencyCalculateAlgorithm.java
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/DataMatchDataConsistencyCalculateAlgorithm.java
index 8949ddc70ac..20f7256bf15 100644
---
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/DataMatchDataConsistencyCalculateAlgorithm.java
+++
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/DataMatchDataConsistencyCalculateAlgorithm.java
@@ -135,7 +135,7 @@ public final class
DataMatchDataConsistencyCalculateAlgorithm extends AbstractSt
}
private String getQuerySQL(final DataConsistencyCalculateParameter param) {
- PipelineSQLBuilder sqlBuilder =
TypedSPIRegistry.getService(PipelineSQLBuilder.class, param.getDatabaseType(),
null);
+ PipelineSQLBuilder sqlBuilder =
TypedSPIRegistry.getService(PipelineSQLBuilder.class, param.getDatabaseType());
String logicTableName = param.getLogicTableName();
String schemaName = param.getSchemaName();
String uniqueKey = param.getUniqueKey().getName();
diff --git
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/datasource/AbstractDataSourceChecker.java
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/datasource/AbstractDataSourceChecker.java
index d8ddadae9dd..1f7b036d610 100644
---
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/datasource/AbstractDataSourceChecker.java
+++
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/datasource/AbstractDataSourceChecker.java
@@ -65,7 +65,7 @@ public abstract class AbstractDataSourceChecker implements
DataSourceChecker {
}
private boolean checkEmpty(final DataSource dataSource, final String
schemaName, final String tableName) throws SQLException {
- String sql = TypedSPIRegistry.getService(PipelineSQLBuilder.class,
getDatabaseType(), null).buildCheckEmptySQL(schemaName, tableName);
+ String sql = TypedSPIRegistry.getService(PipelineSQLBuilder.class,
getDatabaseType()).buildCheckEmptySQL(schemaName, tableName);
try (
Connection connection = dataSource.getConnection();
PreparedStatement preparedStatement =
connection.prepareStatement(sql);
diff --git
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/importer/DataSourceImporter.java
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/importer/DataSourceImporter.java
index 234981f576a..d1e4fc31d93 100644
---
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/importer/DataSourceImporter.java
+++
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/importer/DataSourceImporter.java
@@ -86,7 +86,7 @@ public final class DataSourceImporter extends
AbstractLifecycleExecutor implemen
rateLimitAlgorithm = importerConfig.getRateLimitAlgorithm();
this.dataSourceManager = (PipelineDataSourceManager)
importerConnector.getConnector();
this.channel = channel;
- pipelineSqlBuilder =
TypedSPIRegistry.getService(PipelineSQLBuilder.class,
importerConfig.getDataSourceConfig().getDatabaseType().getType(), null);
+ pipelineSqlBuilder =
TypedSPIRegistry.getService(PipelineSQLBuilder.class,
importerConfig.getDataSourceConfig().getDatabaseType().getType());
this.jobProgressListener = jobProgressListener;
}
diff --git
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/ingest/dumper/InventoryDumper.java
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/ingest/dumper/InventoryDumper.java
index 8f9bcab169b..366bd2b64f9 100644
---
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/ingest/dumper/InventoryDumper.java
+++
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/ingest/dumper/InventoryDumper.java
@@ -83,7 +83,7 @@ public final class InventoryDumper extends
AbstractLifecycleExecutor implements
this.dumperConfig = dumperConfig;
this.channel = channel;
this.dataSource = dataSource;
- sqlBuilder = TypedSPIRegistry.getService(PipelineSQLBuilder.class,
dumperConfig.getDataSourceConfig().getDatabaseType().getType(), null);
+ sqlBuilder = TypedSPIRegistry.getService(PipelineSQLBuilder.class,
dumperConfig.getDataSourceConfig().getDatabaseType().getType());
columnValueReader =
TypedSPIRegistry.getService(ColumnValueReader.class,
dumperConfig.getDataSourceConfig().getDatabaseType().getType());
this.metaDataLoader = metaDataLoader;
}
diff --git
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/prepare/InventoryTaskSplitter.java
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/prepare/InventoryTaskSplitter.java
index aa2c502722f..761a5809327 100644
---
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/prepare/InventoryTaskSplitter.java
+++
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/prepare/InventoryTaskSplitter.java
@@ -159,7 +159,7 @@ public final class InventoryTaskSplitter {
final InventoryDumperConfiguration dumperConfig) {
Collection<IngestPosition<?>> result = new LinkedList<>();
PipelineJobConfiguration jobConfig = jobItemContext.getJobConfig();
- String sql = TypedSPIRegistry.getService(PipelineSQLBuilder.class,
jobConfig.getSourceDatabaseType(), null)
+ String sql = TypedSPIRegistry.getService(PipelineSQLBuilder.class,
jobConfig.getSourceDatabaseType())
.buildSplitByPrimaryKeyRangeSQL(dumperConfig.getSchemaName(new
LogicTableName(dumperConfig.getLogicTableName())),
dumperConfig.getActualTableName(), dumperConfig.getUniqueKey());
int shardingSize =
jobItemContext.getJobProcessContext().getPipelineProcessConfig().getRead().getShardingSize();
try (
@@ -200,7 +200,7 @@ public final class InventoryTaskSplitter {
PipelineJobConfiguration jobConfig = jobItemContext.getJobConfig();
String schemaName = dumperConfig.getSchemaName(new
LogicTableName(dumperConfig.getLogicTableName()));
String actualTableName = dumperConfig.getActualTableName();
- String sql = TypedSPIRegistry.getService(PipelineSQLBuilder.class,
jobConfig.getSourceDatabaseType(), null).buildCountSQL(schemaName,
actualTableName);
+ String sql = TypedSPIRegistry.getService(PipelineSQLBuilder.class,
jobConfig.getSourceDatabaseType()).buildCountSQL(schemaName, actualTableName);
try (
Connection connection = dataSource.getConnection();
PreparedStatement preparedStatement =
connection.prepareStatement(sql)) {
diff --git
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/prepare/PipelineJobPreparerUtils.java
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/prepare/PipelineJobPreparerUtils.java
index 669c31659ef..0355d795d54 100644
---
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/prepare/PipelineJobPreparerUtils.java
+++
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/prepare/PipelineJobPreparerUtils.java
@@ -63,7 +63,7 @@ public final class PipelineJobPreparerUtils {
* @return true if supported, otherwise false
*/
public static boolean isIncrementalSupported(final String databaseType) {
- return TypedSPIRegistry.findService(IncrementalDumperCreator.class,
databaseType).isPresent();
+ return TypedSPIRegistry.contains(IncrementalDumperCreator.class,
databaseType);
}
/**
diff --git
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/prepare/datasource/AbstractDataSourcePreparer.java
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/prepare/datasource/AbstractDataSourcePreparer.java
index 5cd0044e2cc..51612a9ff67 100644
---
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/prepare/datasource/AbstractDataSourcePreparer.java
+++
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/prepare/datasource/AbstractDataSourcePreparer.java
@@ -60,7 +60,7 @@ public abstract class AbstractDataSourcePreparer implements
DataSourcePreparer {
}
CreateTableConfiguration createTableConfig =
param.getCreateTableConfig();
String defaultSchema =
DatabaseTypeEngine.getDefaultSchemaName(targetDatabaseType).orElse(null);
- PipelineSQLBuilder sqlBuilder =
TypedSPIRegistry.getService(PipelineSQLBuilder.class,
targetDatabaseType.getType(), null);
+ PipelineSQLBuilder sqlBuilder =
TypedSPIRegistry.getService(PipelineSQLBuilder.class,
targetDatabaseType.getType());
Collection<String> createdSchemaNames = new HashSet<>();
for (CreateTableEntry each :
createTableConfig.getCreateTableEntries()) {
String targetSchemaName =
each.getTargetName().getSchemaName().getOriginal();
diff --git
a/kernel/data-pipeline/scenario/migration/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/api/impl/MigrationJobAPI.java
b/kernel/data-pipeline/scenario/migration/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/api/impl/MigrationJobAPI.java
index 88a9d76b6cd..bac5e76093d 100644
---
a/kernel/data-pipeline/scenario/migration/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/api/impl/MigrationJobAPI.java
+++
b/kernel/data-pipeline/scenario/migration/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/api/impl/MigrationJobAPI.java
@@ -108,7 +108,6 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
-import java.util.Properties;
import java.util.Set;
import java.util.stream.Collectors;
@@ -196,7 +195,7 @@ public final class MigrationJobAPI extends
AbstractInventoryIncrementalJobAPIImp
TableNameSchemaNameMapping tableNameSchemaNameMapping = new
TableNameSchemaNameMapping(tableNameSchemaMap);
CreateTableConfiguration createTableConfig =
buildCreateTableConfiguration(jobConfig);
DumperConfiguration dumperConfig =
buildDumperConfiguration(jobConfig.getJobId(),
jobConfig.getSourceResourceName(), jobConfig.getSource(), tableNameMap,
tableNameSchemaNameMapping);
- Map<LogicTableName, Set<String>> shardingColumnsMap =
TypedSPIRegistry.getService(ShardingColumnsExtractor.class, "Sharding", new
Properties()).getShardingColumnsMap(
+ Map<LogicTableName, Set<String>> shardingColumnsMap =
TypedSPIRegistry.getService(ShardingColumnsExtractor.class,
"Sharding").getShardingColumnsMap(
((ShardingSpherePipelineDataSourceConfiguration)
jobConfig.getTarget()).getRootConfig().getRules(), Collections.singleton(new
LogicTableName(jobConfig.getTargetTableName())));
ImporterConfiguration importerConfig =
buildImporterConfiguration(jobConfig, pipelineProcessConfig,
shardingColumnsMap, tableNameSchemaNameMapping);
return new
MigrationTaskConfiguration(jobConfig.getSourceResourceName(),
createTableConfig, dumperConfig, importerConfig);
@@ -312,7 +311,7 @@ public final class MigrationJobAPI extends
AbstractInventoryIncrementalJobAPIImp
String targetTableName = jobConfig.getTargetTableName();
// TODO use jobConfig.targetSchemaName
String targetSchemaName = jobConfig.getSourceSchemaName();
- PipelineSQLBuilder pipelineSQLBuilder =
TypedSPIRegistry.getService(PipelineSQLBuilder.class,
jobConfig.getTargetDatabaseType(), null);
+ PipelineSQLBuilder pipelineSQLBuilder =
TypedSPIRegistry.getService(PipelineSQLBuilder.class,
jobConfig.getTargetDatabaseType());
try (
PipelineDataSourceWrapper dataSource =
PipelineDataSourceFactory.newInstance(jobConfig.getTarget());
Connection connection = dataSource.getConnection()) {
diff --git
a/kernel/traffic/distsql/handler/src/main/java/org/apache/shardingsphere/traffic/distsql/handler/update/AlterTrafficRuleStatementUpdater.java
b/kernel/traffic/distsql/handler/src/main/java/org/apache/shardingsphere/traffic/distsql/handler/update/AlterTrafficRuleStatementUpdater.java
index 74719ae7d4f..306fed10baf 100644
---
a/kernel/traffic/distsql/handler/src/main/java/org/apache/shardingsphere/traffic/distsql/handler/update/AlterTrafficRuleStatementUpdater.java
+++
b/kernel/traffic/distsql/handler/src/main/java/org/apache/shardingsphere/traffic/distsql/handler/update/AlterTrafficRuleStatementUpdater.java
@@ -79,10 +79,10 @@ public final class AlterTrafficRuleStatementUpdater
implements GlobalRuleRALUpda
private Collection<String> getInvalidAlgorithmNames(final
AlterTrafficRuleStatement sqlStatement) {
Collection<String> result = new LinkedList<>();
for (TrafficRuleSegment each : sqlStatement.getSegments()) {
- if (!TypedSPIRegistry.findService(TrafficAlgorithm.class,
each.getAlgorithm().getName()).isPresent()) {
+ if (!TypedSPIRegistry.contains(TrafficAlgorithm.class,
each.getAlgorithm().getName())) {
result.add(each.getAlgorithm().getName());
}
- if (null != each.getLoadBalancer() &&
!TypedSPIRegistry.findService(TrafficLoadBalanceAlgorithm.class,
each.getLoadBalancer().getName()).isPresent()) {
+ if (null != each.getLoadBalancer() &&
!TypedSPIRegistry.contains(TrafficLoadBalanceAlgorithm.class,
each.getLoadBalancer().getName())) {
result.add(each.getLoadBalancer().getName());
}
}
diff --git
a/kernel/traffic/distsql/handler/src/main/java/org/apache/shardingsphere/traffic/distsql/handler/update/CreateTrafficRuleStatementUpdater.java
b/kernel/traffic/distsql/handler/src/main/java/org/apache/shardingsphere/traffic/distsql/handler/update/CreateTrafficRuleStatementUpdater.java
index 1826eb20e43..fa48f7465c6 100644
---
a/kernel/traffic/distsql/handler/src/main/java/org/apache/shardingsphere/traffic/distsql/handler/update/CreateTrafficRuleStatementUpdater.java
+++
b/kernel/traffic/distsql/handler/src/main/java/org/apache/shardingsphere/traffic/distsql/handler/update/CreateTrafficRuleStatementUpdater.java
@@ -79,10 +79,10 @@ public final class CreateTrafficRuleStatementUpdater
implements GlobalRuleRALUpd
private Collection<String> getInvalidAlgorithmNames(final
CreateTrafficRuleStatement sqlStatement) {
Collection<String> result = new LinkedList<>();
for (TrafficRuleSegment each : sqlStatement.getSegments()) {
- if (!TypedSPIRegistry.findService(TrafficAlgorithm.class,
each.getAlgorithm().getName()).isPresent()) {
+ if (!TypedSPIRegistry.contains(TrafficAlgorithm.class,
each.getAlgorithm().getName())) {
result.add(each.getAlgorithm().getName());
}
- if (null != each.getLoadBalancer() &&
!TypedSPIRegistry.findService(TrafficLoadBalanceAlgorithm.class,
each.getLoadBalancer().getName()).isPresent()) {
+ if (null != each.getLoadBalancer() &&
!TypedSPIRegistry.contains(TrafficLoadBalanceAlgorithm.class,
each.getLoadBalancer().getName())) {
result.add(each.getLoadBalancer().getName());
}
}
diff --git
a/kernel/transaction/type/xa/core/src/main/java/org/apache/shardingsphere/transaction/xa/XAShardingSphereTransactionManager.java
b/kernel/transaction/type/xa/core/src/main/java/org/apache/shardingsphere/transaction/xa/XAShardingSphereTransactionManager.java
index 1562fd2ed58..9ab0b2d5559 100644
---
a/kernel/transaction/type/xa/core/src/main/java/org/apache/shardingsphere/transaction/xa/XAShardingSphereTransactionManager.java
+++
b/kernel/transaction/type/xa/core/src/main/java/org/apache/shardingsphere/transaction/xa/XAShardingSphereTransactionManager.java
@@ -42,7 +42,6 @@ import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Map.Entry;
-import java.util.Properties;
/**
* ShardingSphere Transaction manager for XA.
@@ -55,7 +54,7 @@ public final class XAShardingSphereTransactionManager
implements ShardingSphereT
@Override
public void init(final Map<String, DatabaseType> databaseTypes, final
Map<String, DataSource> dataSources, final String providerType) {
- xaTransactionManagerProvider =
TypedSPIRegistry.getService(XATransactionManagerProvider.class, providerType,
new Properties());
+ xaTransactionManagerProvider =
TypedSPIRegistry.getService(XATransactionManagerProvider.class, providerType);
xaTransactionManagerProvider.init();
Map<String, ResourceDataSource> resourceDataSources =
getResourceDataSources(dataSources);
resourceDataSources.forEach((key, value) ->
cachedDataSources.put(value.getOriginalName(),
newXATransactionDataSource(databaseTypes.get(key), value)));
@@ -139,6 +138,6 @@ public final class XAShardingSphereTransactionManager
implements ShardingSphereT
@Override
public boolean containsProviderType(final String providerType) {
- return
TypedSPIRegistry.findService(XATransactionManagerProvider.class,
providerType).isPresent();
+ return TypedSPIRegistry.contains(XATransactionManagerProvider.class,
providerType);
}
}
diff --git
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/RALBackendHandlerFactory.java
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/RALBackendHandlerFactory.java
index ddca38be230..bd0d381a06a 100644
---
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/RALBackendHandlerFactory.java
+++
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/RALBackendHandlerFactory.java
@@ -80,7 +80,6 @@ import
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.sta
import java.util.HashMap;
import java.util.Map;
-import java.util.Properties;
/**
* RAL backend handler factory.
@@ -126,18 +125,17 @@ public final class RALBackendHandlerFactory {
}
if (sqlStatement instanceof QueryableScalingRALStatement) {
return new
QueryableScalingRALBackendHandler((QueryableScalingRALStatement) sqlStatement,
- (DatabaseDistSQLResultSet)
TypedSPIRegistry.getService(DistSQLResultSet.class,
sqlStatement.getClass().getCanonicalName(), new Properties()));
+ (DatabaseDistSQLResultSet)
TypedSPIRegistry.getService(DistSQLResultSet.class,
sqlStatement.getClass().getCanonicalName()));
}
if (sqlStatement instanceof UpdatableScalingRALStatement) {
return new
UpdatableScalingRALBackendHandler((UpdatableScalingRALStatement) sqlStatement,
connectionSession);
}
if (sqlStatement instanceof QueryableGlobalRuleRALStatement) {
return new QueryableGlobalRuleRALBackendHandler(sqlStatement,
- (GlobalRuleDistSQLResultSet)
TypedSPIRegistry.getService(DistSQLResultSet.class,
sqlStatement.getClass().getCanonicalName(), new Properties()));
+ (GlobalRuleDistSQLResultSet)
TypedSPIRegistry.getService(DistSQLResultSet.class,
sqlStatement.getClass().getCanonicalName()));
}
if (sqlStatement instanceof UpdatableGlobalRuleRALStatement) {
- return new UpdatableGlobalRuleRALBackendHandler(sqlStatement,
- TypedSPIRegistry.getService(GlobalRuleRALUpdater.class,
sqlStatement.getClass().getCanonicalName(), new Properties()));
+ return new UpdatableGlobalRuleRALBackendHandler(sqlStatement,
TypedSPIRegistry.getService(GlobalRuleRALUpdater.class,
sqlStatement.getClass().getCanonicalName()));
}
return createRALBackendHandler(sqlStatement, connectionSession);
}
diff --git
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/checker/DatabaseDiscoveryRuleConfigurationImportChecker.java
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/checker/DatabaseDiscoveryRuleConfigurationImportChecker.java
index 5e830e6888d..0f70743acaa 100644
---
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/checker/DatabaseDiscoveryRuleConfigurationImportChecker.java
+++
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/checker/DatabaseDiscoveryRuleConfigurationImportChecker.java
@@ -62,7 +62,7 @@ public final class
DatabaseDiscoveryRuleConfigurationImportChecker {
private void checkDiscoverTypeAndHeartbeat(final String databaseName,
final DatabaseDiscoveryRuleConfiguration currentRuleConfig) {
Collection<String> invalidInput =
currentRuleConfig.getDiscoveryTypes().values().stream().map(AlgorithmConfiguration::getType)
- .filter(each ->
!TypedSPIRegistry.findService(DatabaseDiscoveryProviderAlgorithm.class,
each).isPresent()).collect(Collectors.toList());
+ .filter(each ->
!TypedSPIRegistry.contains(DatabaseDiscoveryProviderAlgorithm.class,
each)).collect(Collectors.toList());
ShardingSpherePreconditions.checkState(invalidInput.isEmpty(), () ->
new InvalidAlgorithmConfigurationException(DB_DISCOVERY.toLowerCase(),
invalidInput));
currentRuleConfig.getDataSources().forEach(each -> {
if
(!currentRuleConfig.getDiscoveryTypes().containsKey(each.getDiscoveryTypeName()))
{
diff --git
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/checker/EncryptRuleConfigurationImportChecker.java
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/checker/EncryptRuleConfigurationImportChecker.java
index 386b49d7610..23495d1ac6f 100644
---
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/checker/EncryptRuleConfigurationImportChecker.java
+++
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/checker/EncryptRuleConfigurationImportChecker.java
@@ -63,7 +63,7 @@ public final class EncryptRuleConfigurationImportChecker {
private void checkEncryptors(final EncryptRuleConfiguration
currentRuleConfig) {
Collection<String> notExistedAlgorithms =
currentRuleConfig.getEncryptors().values().stream().map(AlgorithmConfiguration::getType)
- .filter(each ->
!TypedSPIRegistry.findService(EncryptAlgorithm.class,
each).isPresent()).collect(Collectors.toList());
+ .filter(each ->
!TypedSPIRegistry.contains(EncryptAlgorithm.class,
each)).collect(Collectors.toList());
ShardingSpherePreconditions.checkState(notExistedAlgorithms.isEmpty(),
() -> new InvalidAlgorithmConfigurationException("Encryptors",
notExistedAlgorithms));
}
diff --git
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/checker/MaskRuleConfigurationImportChecker.java
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/checker/MaskRuleConfigurationImportChecker.java
index 40e7fec6922..4a6f48189b4 100644
---
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/checker/MaskRuleConfigurationImportChecker.java
+++
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/checker/MaskRuleConfigurationImportChecker.java
@@ -63,7 +63,7 @@ public final class MaskRuleConfigurationImportChecker {
private void checkMaskAlgorithms(final MaskRuleConfiguration
currentRuleConfig) {
Collection<String> notExistedAlgorithms =
currentRuleConfig.getMaskAlgorithms().values().stream().map(AlgorithmConfiguration::getType)
- .filter(each ->
!TypedSPIRegistry.findService(MaskAlgorithm.class,
each).isPresent()).collect(Collectors.toList());
+ .filter(each ->
!TypedSPIRegistry.contains(MaskAlgorithm.class,
each)).collect(Collectors.toList());
ShardingSpherePreconditions.checkState(notExistedAlgorithms.isEmpty(),
() -> new InvalidAlgorithmConfigurationException("Mask algorithms",
notExistedAlgorithms));
}
diff --git
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/checker/ShadowRuleConfigurationImportChecker.java
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/checker/ShadowRuleConfigurationImportChecker.java
index 00d7a8107d2..2be7822e17a 100644
---
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/checker/ShadowRuleConfigurationImportChecker.java
+++
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/checker/ShadowRuleConfigurationImportChecker.java
@@ -89,7 +89,7 @@ public final class ShadowRuleConfigurationImportChecker {
private void checkShadowAlgorithms(final ShadowRuleConfiguration
currentRuleConfig) {
Collection<String> notExistedAlgorithms =
currentRuleConfig.getShadowAlgorithms().values().stream().map(AlgorithmConfiguration::getType)
- .filter(each ->
!TypedSPIRegistry.findService(ShadowAlgorithm.class,
each).isPresent()).collect(Collectors.toList());
+ .filter(each ->
!TypedSPIRegistry.contains(ShadowAlgorithm.class,
each)).collect(Collectors.toList());
ShardingSpherePreconditions.checkState(notExistedAlgorithms.isEmpty(),
() -> new InvalidAlgorithmConfigurationException("Shadow algorithms",
notExistedAlgorithms));
}
}
diff --git
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/RQLBackendHandlerFactory.java
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/RQLBackendHandlerFactory.java
index 5025c13a24d..9fb9b22f42f 100644
---
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/RQLBackendHandlerFactory.java
+++
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/RQLBackendHandlerFactory.java
@@ -26,8 +26,6 @@ import
org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPIRegistry;
import org.apache.shardingsphere.proxy.backend.handler.ProxyBackendHandler;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
-import java.util.Properties;
-
/**
* RQL backend handler factory.
*/
@@ -50,7 +48,7 @@ public final class RQLBackendHandlerFactory {
}
private static ProxyBackendHandler newInstanceByDistSQLResultSet(final
RQLStatement sqlStatement, final ConnectionSession connectionSession) {
- DistSQLResultSet resultSet =
TypedSPIRegistry.getService(DistSQLResultSet.class,
sqlStatement.getClass().getCanonicalName(), new Properties());
+ DistSQLResultSet resultSet =
TypedSPIRegistry.getService(DistSQLResultSet.class,
sqlStatement.getClass().getCanonicalName());
return new RQLResultSetBackendHandler(sqlStatement, connectionSession,
(DatabaseDistSQLResultSet) resultSet);
}
}
diff --git
a/proxy/bootstrap/src/main/java/org/apache/shardingsphere/proxy/version/ShardingSphereProxyVersion.java
b/proxy/bootstrap/src/main/java/org/apache/shardingsphere/proxy/version/ShardingSphereProxyVersion.java
index 427f1374200..76a414751c4 100644
---
a/proxy/bootstrap/src/main/java/org/apache/shardingsphere/proxy/version/ShardingSphereProxyVersion.java
+++
b/proxy/bootstrap/src/main/java/org/apache/shardingsphere/proxy/version/ShardingSphereProxyVersion.java
@@ -34,7 +34,6 @@ import
org.apache.shardingsphere.proxy.frontend.spi.DatabaseProtocolFrontendEngi
import javax.sql.DataSource;
import java.util.Map.Entry;
import java.util.Optional;
-import java.util.Properties;
/**
* ShardingSphere-Proxy version.
@@ -69,7 +68,7 @@ public final class ShardingSphereProxyVersion {
}
DatabaseServerInfo databaseServerInfo = new
DatabaseServerInfo(dataSource.get());
log.info("{}, database name is `{}`", databaseServerInfo,
database.getName());
- TypedSPIRegistry.getService(DatabaseProtocolFrontendEngine.class,
DatabaseTypeEngine.getTrunkDatabaseType(databaseServerInfo.getDatabaseName()).getType(),
new Properties())
+ TypedSPIRegistry.getService(DatabaseProtocolFrontendEngine.class,
DatabaseTypeEngine.getTrunkDatabaseType(databaseServerInfo.getDatabaseName()).getType())
.setDatabaseVersion(database.getName(),
databaseServerInfo.getDatabaseVersion());
}
diff --git
a/proxy/frontend/core/src/main/java/org/apache/shardingsphere/proxy/frontend/netty/ServerHandlerInitializer.java
b/proxy/frontend/core/src/main/java/org/apache/shardingsphere/proxy/frontend/netty/ServerHandlerInitializer.java
index 8f87b15dcec..3363f80d3a0 100644
---
a/proxy/frontend/core/src/main/java/org/apache/shardingsphere/proxy/frontend/netty/ServerHandlerInitializer.java
+++
b/proxy/frontend/core/src/main/java/org/apache/shardingsphere/proxy/frontend/netty/ServerHandlerInitializer.java
@@ -27,8 +27,6 @@ import
org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPIRegistry;
import
org.apache.shardingsphere.proxy.frontend.spi.DatabaseProtocolFrontendEngine;
-import java.util.Properties;
-
/**
* Server handler initializer.
*/
@@ -39,7 +37,7 @@ public final class ServerHandlerInitializer extends
ChannelInitializer<SocketCha
@Override
protected void initChannel(final SocketChannel socketChannel) {
- DatabaseProtocolFrontendEngine databaseProtocolFrontendEngine =
TypedSPIRegistry.getService(DatabaseProtocolFrontendEngine.class,
databaseType.getType(), new Properties());
+ DatabaseProtocolFrontendEngine databaseProtocolFrontendEngine =
TypedSPIRegistry.getService(DatabaseProtocolFrontendEngine.class,
databaseType.getType());
databaseProtocolFrontendEngine.initChannel(socketChannel);
ChannelPipeline pipeline = socketChannel.pipeline();
pipeline.addLast(new ChannelAttrInitializer());