This is an automated email from the ASF dual-hosted git repository.
jianglongtao 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 5152623dd1c Refactor ImportRuleConfigurationProvider.check() (#30625)
5152623dd1c is described below
commit 5152623dd1c98915e616547867a4d15aebcfd65f
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Mar 24 16:37:47 2024 +0800
Refactor ImportRuleConfigurationProvider.check() (#30625)
* Refactor ImportRuleConfigurationProvider.check()
* Refactor ImportRuleConfigurationProvider.check()
---
.../provider/EncryptImportRuleConfigurationProvider.java | 7 +++----
.../provider/MaskImportRuleConfigurationProvider.java | 7 +++----
.../ReadwriteSplittingImportRuleConfigurationProvider.java | 3 +--
...adwriteSplittingImportRuleConfigurationProviderTest.java | 10 +---------
.../provider/ShadowImportRuleConfigurationProvider.java | 5 ++---
.../provider/ShardingImportRuleConfigurationProvider.java | 5 ++---
.../ShardingImportRuleConfigurationProviderTest.java | 13 +++----------
.../rule/spi/database/ImportRuleConfigurationChecker.java | 2 +-
.../rule/spi/database/ImportRuleConfigurationProvider.java | 5 ++---
9 files changed, 18 insertions(+), 39 deletions(-)
diff --git
a/features/encrypt/distsql/handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/provider/EncryptImportRuleConfigurationProvider.java
b/features/encrypt/distsql/handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/provider/EncryptImportRuleConfigurationProvider.java
index cfc33a2bdaf..e802de098d9 100644
---
a/features/encrypt/distsql/handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/provider/EncryptImportRuleConfigurationProvider.java
+++
b/features/encrypt/distsql/handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/provider/EncryptImportRuleConfigurationProvider.java
@@ -26,7 +26,6 @@ import
org.apache.shardingsphere.encrypt.api.config.rule.EncryptColumnRuleConfig
import
org.apache.shardingsphere.encrypt.api.config.rule.EncryptTableRuleConfiguration;
import org.apache.shardingsphere.encrypt.spi.EncryptAlgorithm;
import
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
-import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import java.util.Collection;
@@ -41,10 +40,10 @@ import java.util.stream.Collectors;
public final class EncryptImportRuleConfigurationProvider implements
ImportRuleConfigurationProvider<EncryptRuleConfiguration> {
@Override
- public void check(final ShardingSphereDatabase database, final
EncryptRuleConfiguration ruleConfig) {
- checkTables(database.getName(), ruleConfig);
+ public void check(final String databaseName, final
EncryptRuleConfiguration ruleConfig) {
+ checkTables(databaseName, ruleConfig);
checkEncryptors(ruleConfig);
- checkTableEncryptorsExisted(database.getName(), ruleConfig);
+ checkTableEncryptorsExisted(databaseName, ruleConfig);
}
private void checkTables(final String databaseName, final
EncryptRuleConfiguration ruleConfig) {
diff --git
a/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/provider/MaskImportRuleConfigurationProvider.java
b/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/provider/MaskImportRuleConfigurationProvider.java
index 68649bdaf2d..e24f52496ba 100644
---
a/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/provider/MaskImportRuleConfigurationProvider.java
+++
b/features/mask/distsql/handler/src/main/java/org/apache/shardingsphere/mask/distsql/handler/provider/MaskImportRuleConfigurationProvider.java
@@ -21,7 +21,6 @@ import
org.apache.shardingsphere.distsql.handler.engine.update.ral.rule.spi.data
import
org.apache.shardingsphere.distsql.handler.exception.algorithm.MissingRequiredAlgorithmException;
import
org.apache.shardingsphere.distsql.handler.exception.rule.DuplicateRuleException;
import
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
-import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.mask.api.config.MaskRuleConfiguration;
import
org.apache.shardingsphere.mask.api.config.rule.MaskColumnRuleConfiguration;
@@ -38,10 +37,10 @@ import java.util.stream.Collectors;
public final class MaskImportRuleConfigurationProvider implements
ImportRuleConfigurationProvider<MaskRuleConfiguration> {
@Override
- public void check(final ShardingSphereDatabase database, final
MaskRuleConfiguration ruleConfig) {
- checkTables(database.getName(), ruleConfig);
+ public void check(final String databaseName, final MaskRuleConfiguration
ruleConfig) {
+ checkTables(databaseName, ruleConfig);
checkMaskAlgorithms(ruleConfig);
- checkMaskAlgorithmsExisted(database.getName(), ruleConfig);
+ checkMaskAlgorithmsExisted(databaseName, ruleConfig);
}
private void checkTables(final String databaseName, final
MaskRuleConfiguration ruleConfig) {
diff --git
a/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/provider/ReadwriteSplittingImportRuleConfigurationProvider.java
b/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/provider/ReadwriteSplittingImportRuleConfigurationProvider.java
index aeeac9b6298..5784003282c 100644
---
a/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/provider/ReadwriteSplittingImportRuleConfigurationProvider.java
+++
b/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/provider/ReadwriteSplittingImportRuleConfigurationProvider.java
@@ -19,7 +19,6 @@ package
org.apache.shardingsphere.readwritesplitting.distsql.handler.provider;
import
org.apache.shardingsphere.distsql.handler.engine.update.ral.rule.spi.database.ImportRuleConfigurationProvider;
import
org.apache.shardingsphere.infra.algorithm.loadbalancer.core.LoadBalanceAlgorithm;
-import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import
org.apache.shardingsphere.readwritesplitting.api.ReadwriteSplittingRuleConfiguration;
import
org.apache.shardingsphere.readwritesplitting.api.rule.ReadwriteSplittingDataSourceRuleConfiguration;
@@ -33,7 +32,7 @@ import java.util.LinkedHashSet;
public final class ReadwriteSplittingImportRuleConfigurationProvider
implements ImportRuleConfigurationProvider<ReadwriteSplittingRuleConfiguration>
{
@Override
- public void check(final ShardingSphereDatabase database, final
ReadwriteSplittingRuleConfiguration ruleConfig) {
+ public void check(final String databaseName, final
ReadwriteSplittingRuleConfiguration ruleConfig) {
checkLoadBalancers(ruleConfig);
}
diff --git
a/features/readwrite-splitting/distsql/handler/src/test/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/provider/ReadwriteSplittingImportRuleConfigurationProviderTest.java
b/features/readwrite-splitting/distsql/handler/src/test/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/provider/ReadwriteSplittingImportRuleConfigurationProviderTest.java
index f9d20a89a22..39348c3a810 100644
---
a/features/readwrite-splitting/distsql/handler/src/test/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/provider/ReadwriteSplittingImportRuleConfigurationProviderTest.java
+++
b/features/readwrite-splitting/distsql/handler/src/test/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/provider/ReadwriteSplittingImportRuleConfigurationProviderTest.java
@@ -52,9 +52,8 @@ class ReadwriteSplittingImportRuleConfigurationProviderTest {
@Test
void assertCheckLoadBalancers() {
- ShardingSphereDatabase database = mockDatabase();
ReadwriteSplittingRuleConfiguration currentRuleConfig =
createInvalidLoadBalancerRuleConfig();
- assertThrows(ServiceProviderNotFoundException.class, () ->
importRuleConfigProvider.check(database, currentRuleConfig));
+ assertThrows(ServiceProviderNotFoundException.class, () ->
importRuleConfigProvider.check("foo_db", currentRuleConfig));
}
private ShardingSphereDatabase mockDatabaseWithDataSource() {
@@ -74,13 +73,6 @@ class ReadwriteSplittingImportRuleConfigurationProviderTest {
return new ReadwriteSplittingRuleConfiguration(dataSources,
Collections.emptyMap());
}
- private ShardingSphereDatabase mockDatabase() {
- ShardingSphereDatabase result = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
-
when(result.getRuleMetaData().getAttributes(DataSourceMapperRuleAttribute.class)).thenReturn(Collections.emptyList());
-
when(result.getResourceMetaData().getNotExistedDataSources(any())).thenReturn(Collections.emptyList());
- return result;
- }
-
private ReadwriteSplittingRuleConfiguration
createInvalidLoadBalancerRuleConfig() {
Map<String, AlgorithmConfiguration> loadBalancer = new HashMap<>();
loadBalancer.put("invalid_load_balancer",
mock(AlgorithmConfiguration.class));
diff --git
a/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/provider/ShadowImportRuleConfigurationProvider.java
b/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/provider/ShadowImportRuleConfigurationProvider.java
index b9ebb241217..5be16ff817b 100644
---
a/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/provider/ShadowImportRuleConfigurationProvider.java
+++
b/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/provider/ShadowImportRuleConfigurationProvider.java
@@ -20,7 +20,6 @@ package
org.apache.shardingsphere.shadow.distsql.handler.provider;
import
org.apache.shardingsphere.distsql.handler.engine.update.ral.rule.spi.database.ImportRuleConfigurationProvider;
import
org.apache.shardingsphere.distsql.handler.exception.rule.DuplicateRuleException;
import
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
-import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.shadow.api.config.ShadowRuleConfiguration;
import org.apache.shardingsphere.shadow.spi.ShadowAlgorithm;
@@ -36,8 +35,8 @@ import java.util.stream.Collectors;
public final class ShadowImportRuleConfigurationProvider implements
ImportRuleConfigurationProvider<ShadowRuleConfiguration> {
@Override
- public void check(final ShardingSphereDatabase database, final
ShadowRuleConfiguration ruleConfig) {
- checkTables(database.getName(), ruleConfig);
+ public void check(final String databaseName, final ShadowRuleConfiguration
ruleConfig) {
+ checkTables(databaseName, ruleConfig);
checkShadowAlgorithms(ruleConfig);
}
diff --git
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/provider/ShardingImportRuleConfigurationProvider.java
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/provider/ShardingImportRuleConfigurationProvider.java
index 2099e919c68..5b54e819b2a 100644
---
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/provider/ShardingImportRuleConfigurationProvider.java
+++
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/provider/ShardingImportRuleConfigurationProvider.java
@@ -24,7 +24,6 @@ import
org.apache.shardingsphere.infra.algorithm.keygen.core.KeyGenerateAlgorith
import org.apache.shardingsphere.infra.datanode.DataNode;
import
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
import org.apache.shardingsphere.infra.expr.core.InlineExpressionParserFactory;
-import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import
org.apache.shardingsphere.sharding.api.config.rule.ShardingAutoTableRuleConfiguration;
@@ -45,8 +44,8 @@ import java.util.stream.Collectors;
public final class ShardingImportRuleConfigurationProvider implements
ImportRuleConfigurationProvider<ShardingRuleConfiguration> {
@Override
- public void check(final ShardingSphereDatabase database, final
ShardingRuleConfiguration ruleConfig) {
- checkLogicTables(database.getName(), ruleConfig);
+ public void check(final String databaseName, final
ShardingRuleConfiguration ruleConfig) {
+ checkLogicTables(databaseName, ruleConfig);
checkShardingAlgorithms(ruleConfig.getShardingAlgorithms().values());
checkKeyGeneratorAlgorithms(ruleConfig.getKeyGenerators().values());
}
diff --git
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/provider/ShardingImportRuleConfigurationProviderTest.java
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/provider/ShardingImportRuleConfigurationProviderTest.java
index fe3da7f9a1e..5d22abbbc77 100644
---
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/provider/ShardingImportRuleConfigurationProviderTest.java
+++
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/provider/ShardingImportRuleConfigurationProviderTest.java
@@ -43,7 +43,7 @@ class ShardingImportRuleConfigurationProviderTest {
@Test
void assertCheckLogicTables() {
- assertThrows(DuplicateRuleException.class, () -> new
ShardingImportRuleConfigurationProvider().check(mock(ShardingSphereDatabase.class),
createDuplicatedTablesRuleConfiguration()));
+ assertThrows(DuplicateRuleException.class, () -> new
ShardingImportRuleConfigurationProvider().check("foo_db",
createDuplicatedTablesRuleConfiguration()));
}
@Test
@@ -55,12 +55,12 @@ class ShardingImportRuleConfigurationProviderTest {
@Test
void assertCheckKeyGenerators() {
- assertThrows(ServiceProviderNotFoundException.class, () -> new
ShardingImportRuleConfigurationProvider().check(mockDatabase(),
createInvalidKeyGeneratorRuleConfiguration()));
+ assertThrows(ServiceProviderNotFoundException.class, () -> new
ShardingImportRuleConfigurationProvider().check("foo_db",
createInvalidKeyGeneratorRuleConfiguration()));
}
@Test
void assertCheckShardingAlgorithms() {
- assertThrows(ServiceProviderNotFoundException.class, () -> new
ShardingImportRuleConfigurationProvider().check(mockDatabase(),
createInvalidShardingAlgorithmRuleConfiguration()));
+ assertThrows(ServiceProviderNotFoundException.class, () -> new
ShardingImportRuleConfigurationProvider().check("foo_db",
createInvalidShardingAlgorithmRuleConfiguration()));
}
private ShardingRuleConfiguration
createDuplicatedTablesRuleConfiguration() {
@@ -79,13 +79,6 @@ class ShardingImportRuleConfigurationProviderTest {
return result;
}
- private ShardingSphereDatabase mockDatabase() {
- ShardingSphereDatabase result = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
-
when(result.getResourceMetaData().getNotExistedDataSources(any())).thenReturn(Collections.emptyList());
- when(result.getRuleMetaData()).thenReturn(new
RuleMetaData(Collections.emptyList()));
- return result;
- }
-
private ShardingRuleConfiguration
createInvalidKeyGeneratorRuleConfiguration() {
ShardingRuleConfiguration result = new ShardingRuleConfiguration();
result.getKeyGenerators().put("Invalid_key_generator",
mock(AlgorithmConfiguration.class));
diff --git
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/ral/rule/spi/database/ImportRuleConfigurationChecker.java
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/ral/rule/spi/database/ImportRuleConfigurationChecker.java
index d24d9db9fa3..a4a907c364c 100644
---
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/ral/rule/spi/database/ImportRuleConfigurationChecker.java
+++
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/ral/rule/spi/database/ImportRuleConfigurationChecker.java
@@ -50,7 +50,7 @@ public final class ImportRuleConfigurationChecker {
if (!requiredDataSourceNames.isEmpty()) {
checkDataSourcesExisted(database, requiredDataSourceNames);
}
- importProvider.get().check(database, ruleConfig);
+ importProvider.get().check(database.getName(), ruleConfig);
}
}
diff --git
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/ral/rule/spi/database/ImportRuleConfigurationProvider.java
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/ral/rule/spi/database/ImportRuleConfigurationProvider.java
index f428b6cfc92..91d964bc918 100644
---
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/ral/rule/spi/database/ImportRuleConfigurationProvider.java
+++
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/ral/rule/spi/database/ImportRuleConfigurationProvider.java
@@ -18,7 +18,6 @@
package
org.apache.shardingsphere.distsql.handler.engine.update.ral.rule.spi.database;
import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
-import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.spi.annotation.SingletonSPI;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPI;
@@ -36,10 +35,10 @@ public interface ImportRuleConfigurationProvider<T extends
RuleConfiguration> ex
/**
* Check rule configuration.
*
- * @param database database
+ * @param databaseName database name
* @param ruleConfig rule configuration
*/
- void check(ShardingSphereDatabase database, T ruleConfig);
+ void check(String databaseName, T ruleConfig);
/**
* Get required data source names.