This is an automated email from the ASF dual-hosted git repository.

sunnianjun 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 07f7d69a186 Add RuleConfigurationChecker.getTableNames() (#30636)
07f7d69a186 is described below

commit 07f7d69a186bce1c72994bbb127b74f5e5323bf9
Author: Liang Zhang <[email protected]>
AuthorDate: Mon Mar 25 17:00:16 2024 +0800

    Add RuleConfigurationChecker.getTableNames() (#30636)
    
    * Refactor RuleConfigurationCheckEngine
    
    * Refactor RuleConfigurationCheckEngine
    
    * Add RuleConfigurationChecker.getTableNames()
---
 .../checker/EncryptRuleConfigurationChecker.java   | 14 ++++-------
 .../mask/checker/MaskRuleConfigurationChecker.java | 14 ++++-------
 ...ReadwriteSplittingRuleConfigurationChecker.java |  3 +--
 .../checker/ShadowRuleConfigurationChecker.java    | 10 --------
 .../checker/ShardingRuleConfigurationChecker.java  | 21 +++++++---------
 .../rule/checker/RuleConfigurationCheckEngine.java | 28 +++++++++++++++++-----
 .../rule/checker/RuleConfigurationChecker.java     | 12 +++++++++-
 .../YamlDatabaseConfigurationImportExecutor.java   |  2 +-
 8 files changed, 53 insertions(+), 51 deletions(-)

diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/checker/EncryptRuleConfigurationChecker.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/checker/EncryptRuleConfigurationChecker.java
index 4ea6481d65c..59d958a9ceb 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/checker/EncryptRuleConfigurationChecker.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/checker/EncryptRuleConfigurationChecker.java
@@ -32,14 +32,12 @@ import 
org.apache.shardingsphere.encrypt.spi.EncryptAlgorithm;
 import 
org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfiguration;
 import 
org.apache.shardingsphere.infra.config.rule.checker.RuleConfigurationChecker;
 import 
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
-import org.apache.shardingsphere.infra.exception.rule.DuplicateRuleException;
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 
 import javax.sql.DataSource;
 import java.util.Collection;
 import java.util.Map;
-import java.util.Map.Entry;
 import java.util.stream.Collectors;
 
 /**
@@ -58,16 +56,9 @@ public final class EncryptRuleConfigurationChecker 
implements RuleConfigurationC
     }
     
     private void checkTables(final String databaseName, final 
Collection<EncryptTableRuleConfiguration> tableRuleConfigs, final Map<String, 
AlgorithmConfiguration> encryptors) {
-        checkTablesNotDuplicated(databaseName, tableRuleConfigs);
         tableRuleConfigs.forEach(each -> checkColumns(databaseName, each, 
encryptors));
     }
     
-    private void checkTablesNotDuplicated(final String databaseName, final 
Collection<EncryptTableRuleConfiguration> tableRuleConfigs) {
-        Collection<String> duplicatedTables = 
tableRuleConfigs.stream().map(EncryptTableRuleConfiguration::getName)
-                .collect(Collectors.groupingBy(each -> each, 
Collectors.counting())).entrySet().stream().filter(each -> each.getValue() > 
1).map(Entry::getKey).collect(Collectors.toSet());
-        ShardingSpherePreconditions.checkState(duplicatedTables.isEmpty(), () 
-> new DuplicateRuleException("ENCRYPT", databaseName, duplicatedTables));
-    }
-    
     private void checkColumns(final String databaseName, final 
EncryptTableRuleConfiguration tableRuleConfig, final Map<String, 
AlgorithmConfiguration> encryptors) {
         for (EncryptColumnRuleConfiguration each : 
tableRuleConfig.getColumns()) {
             checkCipherColumn(databaseName, tableRuleConfig.getName(), 
each.getName(), each.getCipher(), encryptors);
@@ -100,6 +91,11 @@ public final class EncryptRuleConfigurationChecker 
implements RuleConfigurationC
                 () -> new UnregisteredEncryptorException(databaseName, 
likeQueryColumnConfig.getEncryptorName()));
     }
     
+    @Override
+    public Collection<String> getTableNames(final EncryptRuleConfiguration 
ruleConfig) {
+        return 
ruleConfig.getTables().stream().map(EncryptTableRuleConfiguration::getName).collect(Collectors.toList());
+    }
+    
     @Override
     public int getOrder() {
         return EncryptOrder.ORDER;
diff --git 
a/features/mask/core/src/main/java/org/apache/shardingsphere/mask/checker/MaskRuleConfigurationChecker.java
 
b/features/mask/core/src/main/java/org/apache/shardingsphere/mask/checker/MaskRuleConfigurationChecker.java
index 74add9d483e..0b21d98b86d 100644
--- 
a/features/mask/core/src/main/java/org/apache/shardingsphere/mask/checker/MaskRuleConfigurationChecker.java
+++ 
b/features/mask/core/src/main/java/org/apache/shardingsphere/mask/checker/MaskRuleConfigurationChecker.java
@@ -21,7 +21,6 @@ import 
org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfigurat
 import 
org.apache.shardingsphere.infra.algorithm.core.exception.AlgorithmNotFoundOnColumnException;
 import 
org.apache.shardingsphere.infra.config.rule.checker.RuleConfigurationChecker;
 import 
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
-import org.apache.shardingsphere.infra.exception.rule.DuplicateRuleException;
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import org.apache.shardingsphere.mask.api.config.MaskRuleConfiguration;
@@ -33,7 +32,6 @@ import org.apache.shardingsphere.mask.spi.MaskAlgorithm;
 import javax.sql.DataSource;
 import java.util.Collection;
 import java.util.Map;
-import java.util.Map.Entry;
 import java.util.stream.Collectors;
 
 /**
@@ -52,16 +50,9 @@ public final class MaskRuleConfigurationChecker implements 
RuleConfigurationChec
     }
     
     private void checkTables(final String databaseName, final 
Collection<MaskTableRuleConfiguration> tables, final Map<String, 
AlgorithmConfiguration> maskAlgorithms) {
-        checkTablesNotDuplicated(databaseName, tables);
         tables.forEach(each -> checkColumns(databaseName, each.getName(), 
each.getColumns(), maskAlgorithms));
     }
     
-    private void checkTablesNotDuplicated(final String databaseName, final 
Collection<MaskTableRuleConfiguration> tables) {
-        Collection<String> duplicatedTables = 
tables.stream().map(MaskTableRuleConfiguration::getName)
-                .collect(Collectors.groupingBy(each -> each, 
Collectors.counting())).entrySet().stream().filter(each -> each.getValue() > 
1).map(Entry::getKey).collect(Collectors.toSet());
-        ShardingSpherePreconditions.checkState(duplicatedTables.isEmpty(), () 
-> new DuplicateRuleException("MASK", databaseName, duplicatedTables));
-    }
-    
     private void checkColumns(final String databaseName, final String 
tableName, final Collection<MaskColumnRuleConfiguration> columns, final 
Map<String, AlgorithmConfiguration> maskAlgorithms) {
         for (MaskColumnRuleConfiguration each : columns) {
             
ShardingSpherePreconditions.checkState(maskAlgorithms.containsKey(each.getMaskAlgorithm()),
@@ -69,6 +60,11 @@ public final class MaskRuleConfigurationChecker implements 
RuleConfigurationChec
         }
     }
     
+    @Override
+    public Collection<String> getTableNames(final MaskRuleConfiguration 
ruleConfig) {
+        return 
ruleConfig.getTables().stream().map(MaskTableRuleConfiguration::getName).collect(Collectors.toList());
+    }
+    
     @Override
     public int getOrder() {
         return MaskOrder.ORDER;
diff --git 
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/checker/ReadwriteSplittingRuleConfigurationChecker.java
 
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/checker/ReadwriteSplittingRuleConfigurationChecker.java
index 8bb5bd43f9e..ae3eec00aea 100644
--- 
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/checker/ReadwriteSplittingRuleConfigurationChecker.java
+++ 
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/checker/ReadwriteSplittingRuleConfigurationChecker.java
@@ -50,8 +50,7 @@ public final class ReadwriteSplittingRuleConfigurationChecker 
implements RuleCon
     
     @Override
     public void check(final String databaseName, final 
ReadwriteSplittingRuleConfiguration ruleConfig, final Map<String, DataSource> 
dataSourceMap, final Collection<ShardingSphereRule> builtRules) {
-        Collection<ReadwriteSplittingDataSourceRuleConfiguration> configs = 
ruleConfig.getDataSources();
-        checkDataSources(databaseName, configs, dataSourceMap, builtRules);
+        checkDataSources(databaseName, ruleConfig.getDataSources(), 
dataSourceMap, builtRules);
         checkLoadBalancer(databaseName, ruleConfig);
     }
     
diff --git 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/checker/ShadowRuleConfigurationChecker.java
 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/checker/ShadowRuleConfigurationChecker.java
index ae58d08e91f..fb0b0e7af16 100644
--- 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/checker/ShadowRuleConfigurationChecker.java
+++ 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/checker/ShadowRuleConfigurationChecker.java
@@ -20,7 +20,6 @@ package org.apache.shardingsphere.shadow.checker;
 import 
org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfiguration;
 import 
org.apache.shardingsphere.infra.config.rule.checker.RuleConfigurationChecker;
 import 
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
-import org.apache.shardingsphere.infra.exception.rule.DuplicateRuleException;
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import org.apache.shardingsphere.shadow.api.config.ShadowRuleConfiguration;
@@ -40,7 +39,6 @@ import java.util.LinkedHashSet;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Set;
-import java.util.stream.Collectors;
 
 /**
  * Shadow rule configuration checker.
@@ -50,7 +48,6 @@ public final class ShadowRuleConfigurationChecker implements 
RuleConfigurationCh
     @Override
     public void check(final String databaseName, final ShadowRuleConfiguration 
ruleConfig, final Map<String, DataSource> dataSourceMap, final 
Collection<ShardingSphereRule> builtRules) {
         checkShadowAlgorithms(ruleConfig);
-        checkTablesNotDuplicated(databaseName, ruleConfig);
         Map<String, ShadowDataSourceConfiguration> dataSources = 
initShadowDataSources(ruleConfig.getDataSources());
         checkDataSources(dataSources, dataSourceMap, databaseName);
         Map<String, ShadowTableConfiguration> shadowTables = 
ruleConfig.getTables();
@@ -67,13 +64,6 @@ public final class ShadowRuleConfigurationChecker implements 
RuleConfigurationCh
         ruleConfig.getShadowAlgorithms().values().forEach(each -> 
TypedSPILoader.checkService(ShadowAlgorithm.class, each.getType(), 
each.getProps()));
     }
     
-    private void checkTablesNotDuplicated(final String databaseName, final 
ShadowRuleConfiguration ruleConfig) {
-        Collection<String> tableNames = ruleConfig.getTables().keySet();
-        Collection<String> duplicatedTables = 
tableNames.stream().collect(Collectors.groupingBy(each -> each, 
Collectors.counting())).entrySet().stream()
-                .filter(each -> each.getValue() > 
1).map(Entry::getKey).collect(Collectors.toSet());
-        ShardingSpherePreconditions.checkState(duplicatedTables.isEmpty(), () 
-> new DuplicateRuleException("SHADOW", databaseName, duplicatedTables));
-    }
-    
     private void checkDataSources(final Map<String, 
ShadowDataSourceConfiguration> shadowDataSources, final Map<String, DataSource> 
dataSourceMap, final String databaseName) {
         Set<String> dataSourceName = dataSourceMap.keySet();
         for (Entry<String, ShadowDataSourceConfiguration> entry : 
shadowDataSources.entrySet()) {
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/checker/ShardingRuleConfigurationChecker.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/checker/ShardingRuleConfigurationChecker.java
index 85033fb5b36..953e82dd823 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/checker/ShardingRuleConfigurationChecker.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/checker/ShardingRuleConfigurationChecker.java
@@ -23,10 +23,9 @@ import 
org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfigurat
 import 
org.apache.shardingsphere.infra.algorithm.keygen.core.KeyGenerateAlgorithm;
 import 
org.apache.shardingsphere.infra.config.rule.checker.RuleConfigurationChecker;
 import org.apache.shardingsphere.infra.datanode.DataNode;
-import org.apache.shardingsphere.infra.exception.rule.DuplicateRuleException;
+import 
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
 import org.apache.shardingsphere.infra.expr.core.InlineExpressionParserFactory;
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
-import 
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
 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;
@@ -46,9 +45,7 @@ import java.util.Collection;
 import java.util.HashSet;
 import java.util.LinkedHashSet;
 import java.util.Map;
-import java.util.Map.Entry;
 import java.util.Objects;
-import java.util.Set;
 import java.util.stream.Collectors;
 
 /**
@@ -80,7 +77,6 @@ public final class ShardingRuleConfigurationChecker 
implements RuleConfiguration
     
     private void checkTableConfiguration(final String databaseName, final 
Collection<ShardingTableRuleConfiguration> tables, final 
Collection<ShardingAutoTableRuleConfiguration> autoTables,
                                          final Collection<String> 
keyGenerators, final Collection<String> auditors, final Collection<String> 
shardingAlgorithms) {
-        checkTablesNotDuplicated(databaseName, tables, autoTables);
         for (ShardingTableRuleConfiguration each : tables) {
             checkLogicTable(databaseName, each.getLogicTable());
             checkKeyGenerateStrategy(databaseName, 
each.getKeyGenerateStrategy(), keyGenerators);
@@ -96,14 +92,6 @@ public final class ShardingRuleConfigurationChecker 
implements RuleConfiguration
         }
     }
     
-    private void checkTablesNotDuplicated(final String databaseName, final 
Collection<ShardingTableRuleConfiguration> tables, final 
Collection<ShardingAutoTableRuleConfiguration> autoTables) {
-        Collection<String> logicTables = 
tables.stream().map(ShardingTableRuleConfiguration::getLogicTable).collect(Collectors.toList());
-        
logicTables.addAll(autoTables.stream().map(ShardingAutoTableRuleConfiguration::getLogicTable).collect(Collectors.toList()));
-        Set<String> duplicatedLogicTables = 
logicTables.stream().collect(Collectors.groupingBy(each -> each, 
Collectors.counting())).entrySet().stream()
-                .filter(each -> each.getValue() > 
1).map(Entry::getKey).collect(Collectors.toSet());
-        
ShardingSpherePreconditions.checkState(duplicatedLogicTables.isEmpty(), () -> 
new DuplicateRuleException("sharding", databaseName, duplicatedLogicTables));
-    }
-    
     private void checkLogicTable(final String databaseName, final String 
logicTable) {
         
ShardingSpherePreconditions.checkState(!Strings.isNullOrEmpty(logicTable), () 
-> new MissingRequiredShardingConfigurationException("Sharding logic table", 
databaseName));
     }
@@ -155,6 +143,13 @@ public final class ShardingRuleConfigurationChecker 
implements RuleConfiguration
         return new 
HashSet<>(InlineExpressionParserFactory.newInstance(shardingAutoTableRuleConfig.getActualDataSources()).splitAndEvaluate());
     }
     
+    @Override
+    public Collection<String> getTableNames(final ShardingRuleConfiguration 
ruleConfig) {
+        Collection<String> result = 
ruleConfig.getTables().stream().map(ShardingTableRuleConfiguration::getLogicTable).collect(Collectors.toList());
+        
result.addAll(ruleConfig.getAutoTables().stream().map(ShardingAutoTableRuleConfiguration::getLogicTable).collect(Collectors.toList()));
+        return result;
+    }
+    
     @Override
     public int getOrder() {
         return ShardingOrder.ORDER;
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/config/rule/checker/RuleConfigurationCheckEngine.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/config/rule/checker/RuleConfigurationCheckEngine.java
index 1a7b8660c6a..0936a7cd452 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/config/rule/checker/RuleConfigurationCheckEngine.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/config/rule/checker/RuleConfigurationCheckEngine.java
@@ -21,6 +21,7 @@ import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
 import 
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
+import org.apache.shardingsphere.infra.exception.rule.DuplicateRuleException;
 import 
org.apache.shardingsphere.infra.exception.storageunit.MissingRequiredStorageUnitsException;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.rule.attribute.datasource.DataSourceMapperRuleAttribute;
@@ -40,20 +41,24 @@ import java.util.stream.Collectors;
 public final class RuleConfigurationCheckEngine {
     
     /**
-     * Check rule.
+     * Check rule configuration.
      * 
-     * @param ruleConfig rule configuration
+     * @param ruleConfig rule configuration to be checked
      * @param database database
      */
     @SuppressWarnings({"unchecked", "rawtypes"})
-    public static void checkRule(final RuleConfiguration ruleConfig, final 
ShardingSphereDatabase database) {
-        RuleConfigurationChecker configChecker = 
OrderedSPILoader.getServicesByClass(RuleConfigurationChecker.class, 
Collections.singleton(ruleConfig.getClass())).get(ruleConfig.getClass());
-        Collection<String> requiredDataSourceNames = 
configChecker.getRequiredDataSourceNames(ruleConfig);
+    public static void check(final RuleConfiguration ruleConfig, final 
ShardingSphereDatabase database) {
+        RuleConfigurationChecker checker = 
OrderedSPILoader.getServicesByClass(RuleConfigurationChecker.class, 
Collections.singleton(ruleConfig.getClass())).get(ruleConfig.getClass());
+        Collection<String> requiredDataSourceNames = 
checker.getRequiredDataSourceNames(ruleConfig);
         if (!requiredDataSourceNames.isEmpty()) {
             checkDataSourcesExisted(database, requiredDataSourceNames);
         }
+        Collection<String> tableNames = checker.getTableNames(ruleConfig);
+        if (!tableNames.isEmpty()) {
+            checkTablesNotDuplicated(ruleConfig, database.getName(), 
tableNames);
+        }
         Map<String, DataSource> dataSources = 
database.getResourceMetaData().getStorageUnits().entrySet().stream().collect(Collectors.toMap(Entry::getKey,
 entry -> entry.getValue().getDataSource()));
-        configChecker.check(database.getName(), ruleConfig, dataSources, 
database.getRuleMetaData().getRules());
+        checker.check(database.getName(), ruleConfig, dataSources, 
database.getRuleMetaData().getRules());
     }
     
     private static void checkDataSourcesExisted(final ShardingSphereDatabase 
database, final Collection<String> requiredDataSourceNames) {
@@ -63,4 +68,15 @@ public final class RuleConfigurationCheckEngine {
         notExistedDataSources.removeIf(logicDataSources::contains);
         
ShardingSpherePreconditions.checkState(notExistedDataSources.isEmpty(), () -> 
new MissingRequiredStorageUnitsException(database.getName(), 
notExistedDataSources));
     }
+    
+    private static void checkTablesNotDuplicated(final RuleConfiguration 
ruleConfig, final String databaseName, final Collection<String> tableNames) {
+        Collection<String> duplicatedTables = tableNames.stream()
+                .collect(Collectors.groupingBy(each -> each, 
Collectors.counting())).entrySet().stream().filter(each -> each.getValue() > 
1).map(Entry::getKey).collect(Collectors.toSet());
+        ShardingSpherePreconditions.checkState(duplicatedTables.isEmpty(), () 
-> new DuplicateRuleException(getRuleType(ruleConfig), databaseName, 
duplicatedTables));
+    }
+    
+    private static String getRuleType(final RuleConfiguration ruleConfig) {
+        String ruleConfigClassName = ruleConfig.getClass().getSimpleName();
+        return ruleConfigClassName.substring(0, 
ruleConfigClassName.indexOf("RuleConfiguration"));
+    }
 }
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/config/rule/checker/RuleConfigurationChecker.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/config/rule/checker/RuleConfigurationChecker.java
index ebd03cd97b9..3c78ae81466 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/config/rule/checker/RuleConfigurationChecker.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/config/rule/checker/RuleConfigurationChecker.java
@@ -51,7 +51,17 @@ public interface RuleConfigurationChecker<T extends 
RuleConfiguration> extends O
      * @param ruleConfig rule configuration
      * @return required data source names
      */
-    default Collection<String> getRequiredDataSourceNames(T ruleConfig) {
+    default Collection<String> getRequiredDataSourceNames(final T ruleConfig) {
+        return Collections.emptyList();
+    }
+    
+    /**
+     * Get table names.
+     * 
+     * @param ruleConfig rule configuration
+     * @return table names
+     */
+    default Collection<String> getTableNames(final T ruleConfig) {
         return Collections.emptyList();
     }
 }
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/YamlDatabaseConfigurationImportExecutor.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/YamlDatabaseConfigurationImportExecutor.java
index f21f94119d6..f7068df35fe 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/YamlDatabaseConfigurationImportExecutor.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/YamlDatabaseConfigurationImportExecutor.java
@@ -140,7 +140,7 @@ public final class YamlDatabaseConfigurationImportExecutor {
     }
     
     private void addRule(final Collection<RuleConfiguration> ruleConfigs, 
final RuleConfiguration ruleConfig, final ShardingSphereDatabase database) {
-        RuleConfigurationCheckEngine.checkRule(ruleConfig, database);
+        RuleConfigurationCheckEngine.check(ruleConfig, database);
         ruleConfigs.add(ruleConfig);
         database.getRuleMetaData().getRules().add(buildRule(ruleConfig, 
database));
     }

Reply via email to