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.

Reply via email to