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

menghaoran 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 13e1a28  Change discovery api (#13885)
13e1a28 is described below

commit 13e1a28cd7dc59a7934f56b926bf002da5604ac5
Author: zhaojinchao <[email protected]>
AuthorDate: Fri Dec 3 14:20:30 2021 +0800

    Change discovery api (#13885)
    
    * change discovery api
    
    * update
    
    * update
    
    * update
    
    * update
---
 .../config/DatabaseDiscoveryRuleConfiguration.java |  3 +++
 ...tabaseDiscoveryDataSourceRuleConfiguration.java |  2 ++
 ...> DatabaseDiscoveryHeartBeatConfiguration.java} | 12 ++++------
 ...ProvidedDatabaseDiscoveryRuleConfiguration.java |  3 +++
 .../YamlDatabaseDiscoveryRuleConfiguration.java    |  3 +++
 ...tabaseDiscoveryDataSourceRuleConfiguration.java |  5 ++---
 ...mlDatabaseDiscoveryHeartBeatConfiguration.java} | 10 ++-------
 ...eAlgorithmProviderConfigurationYamlSwapper.java |  3 ++-
 ...abaseDiscoveryRuleConfigurationYamlSwapper.java | 26 ++++++++++++++++++++--
 .../route/DatabaseDiscoverySQLRouterTest.java      |  5 +++--
 .../rule/DatabaseDiscoveryDataSourceRuleTest.java  |  8 +++----
 .../rule/DatabaseDiscoveryRuleTest.java            |  6 ++---
 ...hmProvidedDatabaseDiscoveryRuleBuilderTest.java |  2 +-
 .../builder/DatabaseDiscoveryRuleBuilderTest.java  |  5 +++--
 ...orithmProviderConfigurationYamlSwapperTest.java |  5 +++--
 ...eDiscoveryRuleConfigurationYamlSwapperTest.java |  9 ++++----
 .../DatabaseDiscoveryRuleStatementConverter.java   |  7 ++++--
 .../DatabaseDiscoveryRuleQueryResultSetTest.java   |  5 +++--
 ...rDatabaseDiscoveryRuleStatementUpdaterTest.java |  6 ++---
 ...eDatabaseDiscoveryRuleStatementUpdaterTest.java |  4 ++--
 ...pDatabaseDiscoveryRuleStatementUpdaterTest.java | 10 ++++-----
 21 files changed, 85 insertions(+), 54 deletions(-)

diff --git 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-api/src/main/java/org/apache/shardingsphere/dbdiscovery/api/config/DatabaseDiscoveryRuleConfiguration.java
 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-api/src/main/java/org/apache/shardingsphere/dbdiscovery/api/config/DatabaseDiscoveryRuleConfiguration.java
index 887c175..45eabe7 100644
--- 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-api/src/main/java/org/apache/shardingsphere/dbdiscovery/api/config/DatabaseDiscoveryRuleConfiguration.java
+++ 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-api/src/main/java/org/apache/shardingsphere/dbdiscovery/api/config/DatabaseDiscoveryRuleConfiguration.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.dbdiscovery.api.config;
 
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
+import 
org.apache.shardingsphere.dbdiscovery.api.config.rule.DatabaseDiscoveryHeartBeatConfiguration;
 import 
org.apache.shardingsphere.dbdiscovery.api.config.rule.DatabaseDiscoveryDataSourceRuleConfiguration;
 import 
org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmConfiguration;
 import 
org.apache.shardingsphere.infra.config.function.DistributedRuleConfiguration;
@@ -36,5 +37,7 @@ public final class DatabaseDiscoveryRuleConfiguration 
implements SchemaRuleConfi
     
     private final Collection<DatabaseDiscoveryDataSourceRuleConfiguration> 
dataSources;
     
+    private final Map<String, DatabaseDiscoveryHeartBeatConfiguration> 
discoveryHeartbeats;
+    
     private final Map<String, ShardingSphereAlgorithmConfiguration> 
discoveryTypes;
 }
diff --git 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-api/src/main/java/org/apache/shardingsphere/dbdiscovery/api/config/rule/DatabaseDiscoveryDataSourceRuleConfiguration.java
 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-api/src/main/java/org/apache/shardingsphere/dbdiscovery/api/config/rule/DatabaseDiscoveryDataSourceRuleConfiguration.java
index 8a1fcb7..544ff11 100644
--- 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-api/src/main/java/org/apache/shardingsphere/dbdiscovery/api/config/rule/DatabaseDiscoveryDataSourceRuleConfiguration.java
+++ 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-api/src/main/java/org/apache/shardingsphere/dbdiscovery/api/config/rule/DatabaseDiscoveryDataSourceRuleConfiguration.java
@@ -33,5 +33,7 @@ public final class 
DatabaseDiscoveryDataSourceRuleConfiguration {
     
     private final List<String> dataSourceNames;
     
+    private final String discoveryHeartbeatName;
+    
     private final String discoveryTypeName;
 }
diff --git 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-api/src/main/java/org/apache/shardingsphere/dbdiscovery/api/config/rule/DatabaseDiscoveryDataSourceRuleConfiguration.java
 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-api/src/main/java/org/apache/shardingsphere/dbdiscovery/api/config/rule/DatabaseDiscoveryHeartBeatConfiguration.java
similarity index 77%
copy from 
shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-api/src/main/java/org/apache/shardingsphere/dbdiscovery/api/config/rule/DatabaseDiscoveryDataSourceRuleConfiguration.java
copy to 
shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-api/src/main/java/org/apache/shardingsphere/dbdiscovery/api/config/rule/DatabaseDiscoveryHeartBeatConfiguration.java
index 8a1fcb7..420c34a 100644
--- 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-api/src/main/java/org/apache/shardingsphere/dbdiscovery/api/config/rule/DatabaseDiscoveryDataSourceRuleConfiguration.java
+++ 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-api/src/main/java/org/apache/shardingsphere/dbdiscovery/api/config/rule/DatabaseDiscoveryHeartBeatConfiguration.java
@@ -20,18 +20,14 @@ package 
org.apache.shardingsphere.dbdiscovery.api.config.rule;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 
-import java.util.List;
+import java.util.Properties;
 
 /**
- * Database discovery data source rule configuration.
+ * Database discovery heartbeat configuration.
  */
 @RequiredArgsConstructor
 @Getter
-public final class DatabaseDiscoveryDataSourceRuleConfiguration {
+public final class DatabaseDiscoveryHeartBeatConfiguration {
     
-    private final String name;
-    
-    private final List<String> dataSourceNames;
-    
-    private final String discoveryTypeName;
+    private final Properties props;
 }
diff --git 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/algorithm/config/AlgorithmProvidedDatabaseDiscoveryRuleConfiguration.java
 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/algorithm/config/AlgorithmProvidedDatabaseDiscoveryRuleConfiguration.java
index 2aacf43..2c299db 100644
--- 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/algorithm/config/AlgorithmProvidedDatabaseDiscoveryRuleConfiguration.java
+++ 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/algorithm/config/AlgorithmProvidedDatabaseDiscoveryRuleConfiguration.java
@@ -21,6 +21,7 @@ import lombok.AllArgsConstructor;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
 import lombok.Setter;
+import 
org.apache.shardingsphere.dbdiscovery.api.config.rule.DatabaseDiscoveryHeartBeatConfiguration;
 import 
org.apache.shardingsphere.dbdiscovery.api.config.rule.DatabaseDiscoveryDataSourceRuleConfiguration;
 import org.apache.shardingsphere.dbdiscovery.spi.DatabaseDiscoveryType;
 import 
org.apache.shardingsphere.infra.config.function.DistributedRuleConfiguration;
@@ -42,5 +43,7 @@ public final class 
AlgorithmProvidedDatabaseDiscoveryRuleConfiguration implement
     
     private Collection<DatabaseDiscoveryDataSourceRuleConfiguration> 
dataSources = new LinkedList<>();
     
+    private Collection<DatabaseDiscoveryHeartBeatConfiguration> 
discoveryHeartbeats = new LinkedList<>();
+    
     private Map<String, DatabaseDiscoveryType> discoveryTypes = new 
LinkedHashMap<>();
 }
diff --git 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/yaml/config/YamlDatabaseDiscoveryRuleConfiguration.java
 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/yaml/config/YamlDatabaseDiscoveryRuleConfiguration.java
index d1aefb4..3634faf 100644
--- 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/yaml/config/YamlDatabaseDiscoveryRuleConfiguration.java
+++ 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/yaml/config/YamlDatabaseDiscoveryRuleConfiguration.java
@@ -21,6 +21,7 @@ import lombok.Getter;
 import lombok.Setter;
 import 
org.apache.shardingsphere.dbdiscovery.api.config.DatabaseDiscoveryRuleConfiguration;
 import 
org.apache.shardingsphere.dbdiscovery.yaml.config.rule.YamlDatabaseDiscoveryDataSourceRuleConfiguration;
+import 
org.apache.shardingsphere.dbdiscovery.yaml.config.rule.YamlDatabaseDiscoveryHeartBeatConfiguration;
 import org.apache.shardingsphere.infra.yaml.config.pojo.YamlRuleConfiguration;
 import 
org.apache.shardingsphere.infra.yaml.config.pojo.algorithm.YamlShardingSphereAlgorithmConfiguration;
 
@@ -36,6 +37,8 @@ public final class YamlDatabaseDiscoveryRuleConfiguration 
implements YamlRuleCon
     
     private Map<String, YamlDatabaseDiscoveryDataSourceRuleConfiguration> 
dataSources = new LinkedHashMap<>();
     
+    private Map<String, YamlDatabaseDiscoveryHeartBeatConfiguration> 
discoveryHeartbeats = new LinkedHashMap<>();
+    
     private Map<String, YamlShardingSphereAlgorithmConfiguration> 
discoveryTypes = new LinkedHashMap<>();
     
     @Override
diff --git 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/yaml/config/rule/YamlDatabaseDiscoveryDataSourceRuleConfiguration.java
 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/yaml/config/rule/YamlDatabaseDiscoveryDataSourceRuleConfiguration.java
index f7782f3..03e0819 100644
--- 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/yaml/config/rule/YamlDatabaseDiscoveryDataSourceRuleConfiguration.java
+++ 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/yaml/config/rule/YamlDatabaseDiscoveryDataSourceRuleConfiguration.java
@@ -23,7 +23,6 @@ import 
org.apache.shardingsphere.infra.yaml.config.pojo.YamlConfiguration;
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Properties;
 
 /**
  * Database discovery data source rule configuration for YAML.
@@ -34,7 +33,7 @@ public final class 
YamlDatabaseDiscoveryDataSourceRuleConfiguration implements Y
 
     private List<String> dataSourceNames = new ArrayList<>();
     
-    private String discoveryTypeName;
+    private String discoveryHeartbeatName;
     
-    private Properties props = new Properties();
+    private String discoveryTypeName;
 }
diff --git 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/yaml/config/rule/YamlDatabaseDiscoveryDataSourceRuleConfiguration.java
 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/yaml/config/rule/YamlDatabaseDiscoveryHeartBeatConfiguration.java
similarity index 77%
copy from 
shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/yaml/config/rule/YamlDatabaseDiscoveryDataSourceRuleConfiguration.java
copy to 
shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/yaml/config/rule/YamlDatabaseDiscoveryHeartBeatConfiguration.java
index f7782f3..a33c364 100644
--- 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/yaml/config/rule/YamlDatabaseDiscoveryDataSourceRuleConfiguration.java
+++ 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/yaml/config/rule/YamlDatabaseDiscoveryHeartBeatConfiguration.java
@@ -21,20 +21,14 @@ import lombok.Getter;
 import lombok.Setter;
 import org.apache.shardingsphere.infra.yaml.config.pojo.YamlConfiguration;
 
-import java.util.ArrayList;
-import java.util.List;
 import java.util.Properties;
 
 /**
- * Database discovery data source rule configuration for YAML.
+ * Database discovery heart beat configuration for YAML.
  */
 @Getter
 @Setter
-public final class YamlDatabaseDiscoveryDataSourceRuleConfiguration implements 
YamlConfiguration {
-
-    private List<String> dataSourceNames = new ArrayList<>();
-    
-    private String discoveryTypeName;
+public final class YamlDatabaseDiscoveryHeartBeatConfiguration implements 
YamlConfiguration {
     
     private Properties props = new Properties();
 }
diff --git 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/yaml/swapper/DatabaseDiscoveryRuleAlgorithmProviderConfigurationYamlSwapper.java
 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/yaml/swapper/DatabaseDiscoveryRuleAlgorithmProviderConfigurationYamlSwapper.java
index e40767e..bdc9a92 100644
--- 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/yaml/swapper/DatabaseDiscoveryRuleAlgorithmProviderConfigurationYamlSwapper.java
+++ 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/yaml/swapper/DatabaseDiscoveryRuleAlgorithmProviderConfigurationYamlSwapper.java
@@ -62,7 +62,8 @@ public final class 
DatabaseDiscoveryRuleAlgorithmProviderConfigurationYamlSwappe
     }
     
     private DatabaseDiscoveryDataSourceRuleConfiguration swapToObject(final 
String name, final YamlDatabaseDiscoveryDataSourceRuleConfiguration 
yamlDataSourceRuleConfig) {
-        return new DatabaseDiscoveryDataSourceRuleConfiguration(name, 
yamlDataSourceRuleConfig.getDataSourceNames(), 
yamlDataSourceRuleConfig.getDiscoveryTypeName());
+        return new DatabaseDiscoveryDataSourceRuleConfiguration(name, 
yamlDataSourceRuleConfig.getDataSourceNames(), 
yamlDataSourceRuleConfig.getDiscoveryHeartbeatName(),
+                yamlDataSourceRuleConfig.getDiscoveryTypeName());
     }
     
     @Override
diff --git 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/yaml/swapper/DatabaseDiscoveryRuleConfigurationYamlSwapper.java
 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/yaml/swapper/DatabaseDiscoveryRuleConfigurationYamlSwapper.java
index 32c3adb..a3cd23d 100644
--- 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/yaml/swapper/DatabaseDiscoveryRuleConfigurationYamlSwapper.java
+++ 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/yaml/swapper/DatabaseDiscoveryRuleConfigurationYamlSwapper.java
@@ -17,10 +17,12 @@
 
 package org.apache.shardingsphere.dbdiscovery.yaml.swapper;
 
+import 
org.apache.shardingsphere.dbdiscovery.api.config.rule.DatabaseDiscoveryHeartBeatConfiguration;
 import org.apache.shardingsphere.dbdiscovery.constant.DatabaseDiscoveryOrder;
 import 
org.apache.shardingsphere.dbdiscovery.yaml.config.rule.YamlDatabaseDiscoveryDataSourceRuleConfiguration;
 import 
org.apache.shardingsphere.dbdiscovery.api.config.rule.DatabaseDiscoveryDataSourceRuleConfiguration;
 import 
org.apache.shardingsphere.dbdiscovery.yaml.config.YamlDatabaseDiscoveryRuleConfiguration;
+import 
org.apache.shardingsphere.dbdiscovery.yaml.config.rule.YamlDatabaseDiscoveryHeartBeatConfiguration;
 import 
org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmConfiguration;
 import 
org.apache.shardingsphere.infra.yaml.config.swapper.YamlRuleConfigurationSwapper;
 import 
org.apache.shardingsphere.infra.yaml.config.swapper.algorithm.ShardingSphereAlgorithmConfigurationYamlSwapper;
@@ -30,6 +32,7 @@ import java.util.Collection;
 import java.util.LinkedHashMap;
 import java.util.LinkedList;
 import java.util.Map;
+
 import java.util.Map.Entry;
 import java.util.stream.Collectors;
 
@@ -46,6 +49,9 @@ public final class 
DatabaseDiscoveryRuleConfigurationYamlSwapper
         YamlDatabaseDiscoveryRuleConfiguration result = new 
YamlDatabaseDiscoveryRuleConfiguration();
         result.setDataSources(data.getDataSources().stream().collect(
                 
Collectors.toMap(DatabaseDiscoveryDataSourceRuleConfiguration::getName, 
this::swapToYamlConfiguration, (oldValue, currentValue) -> oldValue, 
LinkedHashMap::new)));
+        if (null != data.getDiscoveryHeartbeats()) {
+            data.getDiscoveryHeartbeats().forEach((key, value) -> 
result.getDiscoveryHeartbeats().put(key, swapToYamlConfiguration(value)));
+        }
         if (null != data.getDiscoveryTypes()) {
             data.getDiscoveryTypes().forEach((key, value) -> 
result.getDiscoveryTypes().put(key, 
algorithmSwapper.swapToYamlConfiguration(value)));
         }
@@ -55,25 +61,41 @@ public final class 
DatabaseDiscoveryRuleConfigurationYamlSwapper
     private YamlDatabaseDiscoveryDataSourceRuleConfiguration 
swapToYamlConfiguration(final DatabaseDiscoveryDataSourceRuleConfiguration 
dataSourceRuleConfig) {
         YamlDatabaseDiscoveryDataSourceRuleConfiguration result = new 
YamlDatabaseDiscoveryDataSourceRuleConfiguration();
         result.setDataSourceNames(dataSourceRuleConfig.getDataSourceNames());
+        
result.setDiscoveryHeartbeatName(dataSourceRuleConfig.getDiscoveryHeartbeatName());
         
result.setDiscoveryTypeName(dataSourceRuleConfig.getDiscoveryTypeName());
         return result;
     }
     
+    private YamlDatabaseDiscoveryHeartBeatConfiguration 
swapToYamlConfiguration(final DatabaseDiscoveryHeartBeatConfiguration 
heartBeatRuleConfig) {
+        YamlDatabaseDiscoveryHeartBeatConfiguration result = new 
YamlDatabaseDiscoveryHeartBeatConfiguration();
+        result.setProps(heartBeatRuleConfig.getProps());
+        return result;
+    }
+    
     @Override
     public DatabaseDiscoveryRuleConfiguration swapToObject(final 
YamlDatabaseDiscoveryRuleConfiguration yamlConfig) {
         Collection<DatabaseDiscoveryDataSourceRuleConfiguration> dataSources = 
new LinkedList<>();
         for (Entry<String, YamlDatabaseDiscoveryDataSourceRuleConfiguration> 
entry : yamlConfig.getDataSources().entrySet()) {
             dataSources.add(swapToObject(entry.getKey(), entry.getValue()));
         }
+        Map<String, DatabaseDiscoveryHeartBeatConfiguration> heartBeats = new 
LinkedHashMap<>(yamlConfig.getDiscoveryHeartbeats().entrySet().size(), 1);
+        if (null != yamlConfig.getDiscoveryHeartbeats()) {
+            yamlConfig.getDiscoveryHeartbeats().forEach((key, value) -> 
heartBeats.put(key, swapToObject(value)));
+        }
         Map<String, ShardingSphereAlgorithmConfiguration> haTypes = new 
LinkedHashMap<>(yamlConfig.getDiscoveryTypes().entrySet().size(), 1);
         if (null != yamlConfig.getDiscoveryTypes()) {
             yamlConfig.getDiscoveryTypes().forEach((key, value) -> 
haTypes.put(key, algorithmSwapper.swapToObject(value)));
         }
-        return new DatabaseDiscoveryRuleConfiguration(dataSources, haTypes);
+        return new DatabaseDiscoveryRuleConfiguration(dataSources, heartBeats, 
haTypes);
     }
     
     private DatabaseDiscoveryDataSourceRuleConfiguration swapToObject(final 
String name, final YamlDatabaseDiscoveryDataSourceRuleConfiguration 
yamlDataSourceRuleConfig) {
-        return new DatabaseDiscoveryDataSourceRuleConfiguration(name, 
yamlDataSourceRuleConfig.getDataSourceNames(), 
yamlDataSourceRuleConfig.getDiscoveryTypeName());
+        return new DatabaseDiscoveryDataSourceRuleConfiguration(name, 
yamlDataSourceRuleConfig.getDataSourceNames(), 
yamlDataSourceRuleConfig.getDiscoveryHeartbeatName(),
+                yamlDataSourceRuleConfig.getDiscoveryTypeName());
+    }
+    
+    private DatabaseDiscoveryHeartBeatConfiguration swapToObject(final 
YamlDatabaseDiscoveryHeartBeatConfiguration yamlHeartbeatRuleConfig) {
+        return new 
DatabaseDiscoveryHeartBeatConfiguration(yamlHeartbeatRuleConfig.getProps());
     }
     
     @Override
diff --git 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/route/DatabaseDiscoverySQLRouterTest.java
 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/route/DatabaseDiscoverySQLRouterTest.java
index 249fe24..c46ba1c 100644
--- 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/route/DatabaseDiscoverySQLRouterTest.java
+++ 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/route/DatabaseDiscoverySQLRouterTest.java
@@ -74,9 +74,10 @@ public final class DatabaseDiscoverySQLRouterTest {
     @Before
     public void setUp() {
         DatabaseDiscoveryDataSourceRuleConfiguration dataSourceConfig 
-                = new 
DatabaseDiscoveryDataSourceRuleConfiguration(DATA_SOURCE_NAME, 
Collections.singletonList(PRIMARY_DATA_SOURCE), "TEST");
+                = new 
DatabaseDiscoveryDataSourceRuleConfiguration(DATA_SOURCE_NAME, 
Collections.singletonList(PRIMARY_DATA_SOURCE), "ha_heartbeat", "TEST");
         ShardingSphereAlgorithmConfiguration algorithmConfig = new 
ShardingSphereAlgorithmConfiguration("TEST", new Properties());
-        DatabaseDiscoveryRuleConfiguration config = new 
DatabaseDiscoveryRuleConfiguration(Collections.singleton(dataSourceConfig), 
Collections.singletonMap("TEST", algorithmConfig));
+        DatabaseDiscoveryRuleConfiguration config = new 
DatabaseDiscoveryRuleConfiguration(Collections.singleton(dataSourceConfig), 
Collections.emptyMap(),
+                Collections.singletonMap("TEST", algorithmConfig));
         rule = new DatabaseDiscoveryRule(config, "TEST", 
Collections.singletonMap("ds", mock(DataSource.class)));
         sqlRouter = (DatabaseDiscoverySQLRouter) 
OrderedSPIRegistry.getRegisteredServices(SQLRouter.class, 
Collections.singleton(rule)).get(rule);
     }
diff --git 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/DatabaseDiscoveryDataSourceRuleTest.java
 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/DatabaseDiscoveryDataSourceRuleTest.java
index fbe8832..5407a76 100644
--- 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/DatabaseDiscoveryDataSourceRuleTest.java
+++ 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/DatabaseDiscoveryDataSourceRuleTest.java
@@ -33,21 +33,21 @@ import static org.junit.Assert.assertThat;
 public final class DatabaseDiscoveryDataSourceRuleTest {
     
     private final DatabaseDiscoveryDataSourceRule 
databaseDiscoveryDataSourceRule = new DatabaseDiscoveryDataSourceRule(
-            new DatabaseDiscoveryDataSourceRuleConfiguration("test_pr", 
Arrays.asList("ds_0", "ds_1"), "discoveryTypeName"), new 
MGRDatabaseDiscoveryType());
+            new DatabaseDiscoveryDataSourceRuleConfiguration("test_pr", 
Arrays.asList("ds_0", "ds_1"), "ha_heartbeat", "discoveryTypeName"), new 
MGRDatabaseDiscoveryType());
     
     @Test(expected = IllegalArgumentException.class)
     public void assertNewHADataSourceRuleWithoutName() {
-        new DatabaseDiscoveryDataSourceRule(new 
DatabaseDiscoveryDataSourceRuleConfiguration("", Arrays.asList("ds_0", "ds_1"), 
"discoveryTypeName"), new MGRDatabaseDiscoveryType());
+        new DatabaseDiscoveryDataSourceRule(new 
DatabaseDiscoveryDataSourceRuleConfiguration("", Arrays.asList("ds_0", "ds_1"), 
"ha_heartbeat", "discoveryTypeName"), new MGRDatabaseDiscoveryType());
     }
     
     @Test(expected = IllegalArgumentException.class)
     public void assertNewHADataSourceRuleWithNullDataSourceName() {
-        new DatabaseDiscoveryDataSourceRule(new 
DatabaseDiscoveryDataSourceRuleConfiguration("ds", null, "discoveryTypeName"), 
new MGRDatabaseDiscoveryType());
+        new DatabaseDiscoveryDataSourceRule(new 
DatabaseDiscoveryDataSourceRuleConfiguration("ds", null, "ha_heartbeat", 
"discoveryTypeName"), new MGRDatabaseDiscoveryType());
     }
     
     @Test(expected = IllegalArgumentException.class)
     public void assertNewHADataSourceRuleWithEmptyDataSourceName() {
-        new DatabaseDiscoveryDataSourceRule(new 
DatabaseDiscoveryDataSourceRuleConfiguration("ds", Collections.emptyList(), 
"discoveryTypeName"), new MGRDatabaseDiscoveryType());
+        new DatabaseDiscoveryDataSourceRule(new 
DatabaseDiscoveryDataSourceRuleConfiguration("ds", Collections.emptyList(), 
"ha_heartbeat", "discoveryTypeName"), new MGRDatabaseDiscoveryType());
     }
     
     @Test
diff --git 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/DatabaseDiscoveryRuleTest.java
 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/DatabaseDiscoveryRuleTest.java
index 00ea6d0..1688fbf 100644
--- 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/DatabaseDiscoveryRuleTest.java
+++ 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/DatabaseDiscoveryRuleTest.java
@@ -43,7 +43,7 @@ public final class DatabaseDiscoveryRuleTest {
     
     @Test(expected = IllegalArgumentException.class)
     public void assertNewWithEmptyDataSourceRule() {
-        new DatabaseDiscoveryRule(new 
DatabaseDiscoveryRuleConfiguration(Collections.emptyList(), 
Collections.emptyMap()), "ha_db", dataSourceMap);
+        new DatabaseDiscoveryRule(new 
DatabaseDiscoveryRuleConfiguration(Collections.emptyList(), 
Collections.emptyMap(), Collections.emptyMap()), "ha_db", dataSourceMap);
     }
     
     @Test
@@ -101,8 +101,8 @@ public final class DatabaseDiscoveryRuleTest {
     }
     
     private DatabaseDiscoveryRule createRule() {
-        DatabaseDiscoveryDataSourceRuleConfiguration config = new 
DatabaseDiscoveryDataSourceRuleConfiguration("test_pr", Arrays.asList("ds_0", 
"ds_1"), "TEST");
+        DatabaseDiscoveryDataSourceRuleConfiguration config = new 
DatabaseDiscoveryDataSourceRuleConfiguration("test_pr", Arrays.asList("ds_0", 
"ds_1"), "ha_heartbeat", "TEST");
         return new DatabaseDiscoveryRule(new 
DatabaseDiscoveryRuleConfiguration(
-                Collections.singleton(config), ImmutableMap.of("TEST", new 
ShardingSphereAlgorithmConfiguration("TEST", new Properties()))), "ha_db", 
dataSourceMap);
+                Collections.singleton(config), Collections.emptyMap(), 
ImmutableMap.of("TEST", new ShardingSphereAlgorithmConfiguration("TEST", new 
Properties()))), "ha_db", dataSourceMap);
     }
 }
diff --git 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/builder/AlgorithmProvidedDatabaseDiscoveryRuleBuilderTest.java
 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/builder/AlgorithmProvidedDatabaseDiscoveryRuleBuilderTest.java
index c36c79c..2ca699b 100644
--- 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/builder/AlgorithmProvidedDatabaseDiscoveryRuleBuilderTest.java
+++ 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/builder/AlgorithmProvidedDatabaseDiscoveryRuleBuilderTest.java
@@ -46,7 +46,7 @@ public final class 
AlgorithmProvidedDatabaseDiscoveryRuleBuilderTest {
     @Test(expected = IllegalArgumentException.class)
     public void assertBuild() {
         AlgorithmProvidedDatabaseDiscoveryRuleConfiguration 
algorithmProvidedRuleConfig = 
mock(AlgorithmProvidedDatabaseDiscoveryRuleConfiguration.class);
-        DatabaseDiscoveryDataSourceRuleConfiguration ruleConfig = new 
DatabaseDiscoveryDataSourceRuleConfiguration("name", 
Collections.singletonList("name"), "discoveryTypeName");
+        DatabaseDiscoveryDataSourceRuleConfiguration ruleConfig = new 
DatabaseDiscoveryDataSourceRuleConfiguration("name", 
Collections.singletonList("name"), "ha_heartbeat", "discoveryTypeName");
         
when(algorithmProvidedRuleConfig.getDataSources()).thenReturn(Collections.singletonList(ruleConfig));
         SchemaRuleBuilder builder = OrderedSPIRegistry.getRegisteredServices(
                 SchemaRuleBuilder.class, 
Collections.singletonList(algorithmProvidedRuleConfig)).get(algorithmProvidedRuleConfig);
diff --git 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/builder/DatabaseDiscoveryRuleBuilderTest.java
 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/builder/DatabaseDiscoveryRuleBuilderTest.java
index c7ca391..cd0960c 100644
--- 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/builder/DatabaseDiscoveryRuleBuilderTest.java
+++ 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/builder/DatabaseDiscoveryRuleBuilderTest.java
@@ -48,9 +48,10 @@ public final class DatabaseDiscoveryRuleBuilderTest {
     @SuppressWarnings({"rawtypes", "unchecked"})
     @Test
     public void assertBuild() {
-        DatabaseDiscoveryDataSourceRuleConfiguration dataSourceConfig = new 
DatabaseDiscoveryDataSourceRuleConfiguration("name", 
Collections.singletonList("name"), "TEST");
+        DatabaseDiscoveryDataSourceRuleConfiguration dataSourceConfig =
+                new DatabaseDiscoveryDataSourceRuleConfiguration("name", 
Collections.singletonList("name"), "ha_heartbeat", "TEST");
         DatabaseDiscoveryRuleConfiguration config = new 
DatabaseDiscoveryRuleConfiguration(
-                Collections.singleton(dataSourceConfig), 
Collections.singletonMap("TEST", new 
ShardingSphereAlgorithmConfiguration("TEST", new Properties())));
+                Collections.singleton(dataSourceConfig), 
Collections.emptyMap(), Collections.singletonMap("TEST", new 
ShardingSphereAlgorithmConfiguration("TEST", new Properties())));
         SchemaRuleBuilder builder = 
OrderedSPIRegistry.getRegisteredServices(SchemaRuleBuilder.class, 
Collections.singletonList(config)).get(config);
         Map<String, DataSource> dataSourceMap = new HashMap<>(1, 1);
         dataSourceMap.put("primaryDataSourceName", mock(DataSource.class));
diff --git 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/yaml/swapper/DatabaseDiscoveryRuleAlgorithmProviderConfigurationYamlSwapperTest.java
 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/yaml/swapper/DatabaseDiscoveryRuleAlgorithmProviderConfigurationYamlSwapperTest.java
index 64bcd5b..ff89cb4 100644
--- 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/yaml/swapper/DatabaseDiscoveryRuleAlgorithmProviderConfigurationYamlSwapperTest.java
+++ 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/yaml/swapper/DatabaseDiscoveryRuleAlgorithmProviderConfigurationYamlSwapperTest.java
@@ -73,8 +73,9 @@ public final class 
DatabaseDiscoveryRuleAlgorithmProviderConfigurationYamlSwappe
     
     private YamlDatabaseDiscoveryRuleConfiguration 
createYamlHARuleConfiguration() {
         DatabaseDiscoveryDataSourceRuleConfiguration ruleConfig = new 
DatabaseDiscoveryDataSourceRuleConfiguration("name",
-                Collections.singletonList("dataSourceNames"), 
"discoveryTypeName");
+                Collections.singletonList("dataSourceNames"), "ha_heartbeat", 
"discoveryTypeName");
         return swapper.swapToYamlConfiguration(
-                new 
AlgorithmProvidedDatabaseDiscoveryRuleConfiguration(Collections.singletonList(ruleConfig),
 ImmutableMap.of("mgr", new MGRDatabaseDiscoveryType())));
+                new 
AlgorithmProvidedDatabaseDiscoveryRuleConfiguration(Collections.singletonList(ruleConfig),
 Collections.emptyList(),
+                        ImmutableMap.of("mgr", new 
MGRDatabaseDiscoveryType())));
     }
 }
diff --git 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/yaml/swapper/DatabaseDiscoveryRuleConfigurationYamlSwapperTest.java
 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/yaml/swapper/DatabaseDiscoveryRuleConfigurationYamlSwapperTest.java
index cbd4d57..6dae120 100644
--- 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/yaml/swapper/DatabaseDiscoveryRuleConfigurationYamlSwapperTest.java
+++ 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/yaml/swapper/DatabaseDiscoveryRuleConfigurationYamlSwapperTest.java
@@ -48,18 +48,19 @@ public final class 
DatabaseDiscoveryRuleConfigurationYamlSwapperTest {
     @Test
     public void assertSwapToYamlWithLoadBalanceAlgorithm() {
         DatabaseDiscoveryDataSourceRuleConfiguration dataSourceConfig =
-                new DatabaseDiscoveryDataSourceRuleConfiguration("ds", 
Collections.singletonList("dataSourceName"), "discoveryTypeName");
+                new DatabaseDiscoveryDataSourceRuleConfiguration("ds", 
Collections.singletonList("dataSourceName"), "ha_heartbeat", 
"discoveryTypeName");
         YamlDatabaseDiscoveryRuleConfiguration actual = 
getHARuleConfigurationYamlSwapper().swapToYamlConfiguration(new 
DatabaseDiscoveryRuleConfiguration(Collections.singleton(dataSourceConfig),
-                ImmutableMap.of("mgr", new 
ShardingSphereAlgorithmConfiguration("MGR", new Properties()))));
+                Collections.emptyMap(), ImmutableMap.of("mgr", new 
ShardingSphereAlgorithmConfiguration("MGR", new Properties()))));
         assertThat(actual.getDataSources().keySet(), 
is(Collections.singleton("ds")));
         assertThat(actual.getDataSources().get("ds").getDataSourceNames(), 
is(Collections.singletonList("dataSourceName")));
     }
     
     @Test
     public void assertSwapToYamlWithoutLoadBalanceAlgorithm() {
-        DatabaseDiscoveryDataSourceRuleConfiguration dataSourceConfig = new 
DatabaseDiscoveryDataSourceRuleConfiguration("ds", 
Collections.singletonList("dataSourceName"), "discoveryTypeName");
+        DatabaseDiscoveryDataSourceRuleConfiguration dataSourceConfig = new 
DatabaseDiscoveryDataSourceRuleConfiguration("ds", 
Collections.singletonList("dataSourceName"),
+                "ha_heartbeat", "discoveryTypeName");
         YamlDatabaseDiscoveryRuleConfiguration actual = 
getHARuleConfigurationYamlSwapper().swapToYamlConfiguration(
-                new 
DatabaseDiscoveryRuleConfiguration(Collections.singleton(dataSourceConfig), 
Collections.emptyMap()));
+                new 
DatabaseDiscoveryRuleConfiguration(Collections.singleton(dataSourceConfig), 
Collections.emptyMap(), Collections.emptyMap()));
         assertThat(actual.getDataSources().keySet(), 
is(Collections.singleton("ds")));
         assertThat(actual.getDataSources().get("ds").getDataSourceNames(), 
is(Collections.singletonList("dataSourceName")));
     }
diff --git 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-handler/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/converter/DatabaseDiscoveryRuleStatementConverter.java
 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-handler/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/converter/DatabaseDisco
 [...]
index 3bcdceb..b25ffcc 100644
--- 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-handler/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/converter/DatabaseDiscoveryRuleStatementConverter.java
+++ 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-handler/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/converter/DatabaseDiscoveryRuleStatementConverter.java
@@ -25,10 +25,12 @@ import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.DatabaseDisc
 import 
org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmConfiguration;
 
 import java.util.Collection;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.Map;
 
+
 /**
  * Database discovery rule statement converter.
  */
@@ -46,10 +48,11 @@ public final class DatabaseDiscoveryRuleStatementConverter {
         Map<String, ShardingSphereAlgorithmConfiguration> discoveryTypes = new 
HashMap<>(ruleSegments.size(), 1);
         for (DatabaseDiscoveryRuleSegment each : ruleSegments) {
             String type = getDatabaseDiscoveryType(each.getName(), 
each.getDiscoveryTypeName());
-            dataSources.add(new 
DatabaseDiscoveryDataSourceRuleConfiguration(each.getName(), new 
LinkedList<>(each.getDataSources()), type));
+            //TODO get real discoveryHeartbeatName
+            dataSources.add(new 
DatabaseDiscoveryDataSourceRuleConfiguration(each.getName(), new 
LinkedList<>(each.getDataSources()), "", type));
             discoveryTypes.put(type, new 
ShardingSphereAlgorithmConfiguration(each.getDiscoveryTypeName(), 
each.getProps()));
         }
-        return new DatabaseDiscoveryRuleConfiguration(dataSources, 
discoveryTypes);
+        return new DatabaseDiscoveryRuleConfiguration(dataSources, 
Collections.emptyMap(), discoveryTypes);
     }
     
     private static String getDatabaseDiscoveryType(final String ruleName, 
final String type) {
diff --git 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/query/DatabaseDiscoveryRuleQueryResultSetTest.java
 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/query/DatabaseDiscoveryRule
 [...]
index 8a6644a..4e3737e 100644
--- 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/query/DatabaseDiscoveryRuleQueryResultSetTest.java
+++ 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/query/DatabaseDiscoveryRuleQueryResultSetTest.java
@@ -63,10 +63,11 @@ public final class DatabaseDiscoveryRuleQueryResultSetTest {
     }
     
     private RuleConfiguration createRuleConfiguration() {
-        DatabaseDiscoveryDataSourceRuleConfiguration 
databaseDiscoveryDataSourceRuleConfig = new 
DatabaseDiscoveryDataSourceRuleConfiguration("ms_group", Arrays.asList("ds_0", 
"ds_1"), "test");
+        DatabaseDiscoveryDataSourceRuleConfiguration 
databaseDiscoveryDataSourceRuleConfig = new 
DatabaseDiscoveryDataSourceRuleConfiguration("ms_group", Arrays.asList("ds_0", 
"ds_1"),
+                "ms-heartbeat", "test");
         ShardingSphereAlgorithmConfiguration shardingSphereAlgorithmConfig = 
new ShardingSphereAlgorithmConfiguration("MGR", new Properties());
         Map<String, ShardingSphereAlgorithmConfiguration> discoverTypes = new 
HashMap<>(1, 1);
         discoverTypes.put("test", shardingSphereAlgorithmConfig);
-        return new 
DatabaseDiscoveryRuleConfiguration(Collections.singleton(databaseDiscoveryDataSourceRuleConfig),
 discoverTypes);
+        return new 
DatabaseDiscoveryRuleConfiguration(Collections.singleton(databaseDiscoveryDataSourceRuleConfig),
 Collections.emptyMap(), discoverTypes);
     }
 }
diff --git 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/AlterDatabaseDiscoveryRuleStatementUpdaterTest.java
 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/AlterDatabas
 [...]
index 2607b62..d062d64 100644
--- 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/AlterDatabaseDiscoveryRuleStatementUpdaterTest.java
+++ 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/AlterDatabaseDiscoveryRuleStatementUpdaterTest.java
@@ -64,7 +64,7 @@ public final class 
AlterDatabaseDiscoveryRuleStatementUpdaterTest {
     
     @Test(expected = RequiredRuleMissedException.class)
     public void 
assertCheckSQLStatementWithoutToBeAlteredDatabaseDiscoveryRule() throws 
DistSQLException {
-        updater.checkSQLStatement(shardingSphereMetaData, 
createSQLStatement("TEST"), new 
DatabaseDiscoveryRuleConfiguration(Collections.emptyList(), 
Collections.emptyMap()));
+        updater.checkSQLStatement(shardingSphereMetaData, 
createSQLStatement("TEST"), new 
DatabaseDiscoveryRuleConfiguration(Collections.emptyList(), 
Collections.emptyMap(), Collections.emptyMap()));
     }
     
     @Test(expected = RequiredResourceMissedException.class)
@@ -84,7 +84,7 @@ public final class 
AlterDatabaseDiscoveryRuleStatementUpdaterTest {
     }
     
     private DatabaseDiscoveryRuleConfiguration 
createCurrentRuleConfiguration() {
-        DatabaseDiscoveryDataSourceRuleConfiguration dataSourceRuleConfig = 
new DatabaseDiscoveryDataSourceRuleConfiguration("ha_group", 
Collections.emptyList(), "TEST");
-        return new DatabaseDiscoveryRuleConfiguration(new 
LinkedList<>(Collections.singleton(dataSourceRuleConfig)), 
Collections.emptyMap());
+        DatabaseDiscoveryDataSourceRuleConfiguration dataSourceRuleConfig = 
new DatabaseDiscoveryDataSourceRuleConfiguration("ha_group", 
Collections.emptyList(), "ha-heartbeat", "TEST");
+        return new DatabaseDiscoveryRuleConfiguration(new 
LinkedList<>(Collections.singleton(dataSourceRuleConfig)), 
Collections.emptyMap(), Collections.emptyMap());
     }
 }
diff --git 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryRuleStatementUpdaterTest.java
 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatab
 [...]
index 85d63a1..fb4cc33 100644
--- 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryRuleStatementUpdaterTest.java
+++ 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryRuleStatementUpdaterTest.java
@@ -58,9 +58,9 @@ public final class 
CreateDatabaseDiscoveryRuleStatementUpdaterTest {
     
     @Test(expected = DuplicateRuleException.class)
     public void assertCheckSQLStatementWithDuplicateRuleNames() throws 
DistSQLException {
-        DatabaseDiscoveryDataSourceRuleConfiguration dataSourceRuleConfig = 
new DatabaseDiscoveryDataSourceRuleConfiguration("pr_ds", 
Collections.emptyList(), "test");
+        DatabaseDiscoveryDataSourceRuleConfiguration dataSourceRuleConfig = 
new DatabaseDiscoveryDataSourceRuleConfiguration("pr_ds", 
Collections.emptyList(), "ha-heartbeat", "test");
         updater.checkSQLStatement(shardingSphereMetaData, 
createSQLStatement("TEST"), 
-                new 
DatabaseDiscoveryRuleConfiguration(Collections.singleton(dataSourceRuleConfig), 
Collections.emptyMap()));
+                new 
DatabaseDiscoveryRuleConfiguration(Collections.singleton(dataSourceRuleConfig), 
Collections.emptyMap(), Collections.emptyMap()));
     }
     
     @Test(expected = RequiredResourceMissedException.class)
diff --git 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/DropDatabaseDiscoveryRuleStatementUpdaterTest.java
 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/DropDatabaseD
 [...]
index 9370767..d237fdd 100644
--- 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/DropDatabaseDiscoveryRuleStatementUpdaterTest.java
+++ 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/DropDatabaseDiscoveryRuleStatementUpdaterTest.java
@@ -56,7 +56,7 @@ public final class 
DropDatabaseDiscoveryRuleStatementUpdaterTest {
     
     @Test(expected = RequiredRuleMissedException.class)
     public void assertCheckSQLStatementWithoutToBeDroppedRules() throws 
RuleDefinitionViolationException {
-        updater.checkSQLStatement(shardingSphereMetaData, 
createSQLStatement(), new 
DatabaseDiscoveryRuleConfiguration(Collections.emptyList(), 
Collections.emptyMap()));
+        updater.checkSQLStatement(shardingSphereMetaData, 
createSQLStatement(), new 
DatabaseDiscoveryRuleConfiguration(Collections.emptyList(), 
Collections.emptyMap(), Collections.emptyMap()));
     }
     
     @Test
@@ -78,17 +78,17 @@ public final class 
DropDatabaseDiscoveryRuleStatementUpdaterTest {
     }
     
     private DatabaseDiscoveryRuleConfiguration 
createCurrentRuleConfiguration() {
-        DatabaseDiscoveryDataSourceRuleConfiguration dataSourceRuleConfig = 
new DatabaseDiscoveryDataSourceRuleConfiguration("ha_group", 
Collections.emptyList(), "pr_ds_MGR");
+        DatabaseDiscoveryDataSourceRuleConfiguration dataSourceRuleConfig = 
new DatabaseDiscoveryDataSourceRuleConfiguration("ha_group", 
Collections.emptyList(), "ha_heartbeat", "pr_ds_MGR");
         Map<String, ShardingSphereAlgorithmConfiguration> discoveryTypes = new 
HashMap<>(1, 1);
         discoveryTypes.put("pr_ds_MGR", new 
ShardingSphereAlgorithmConfiguration("pr_ds_MGR", new Properties()));
-        return new DatabaseDiscoveryRuleConfiguration(new 
LinkedList<>(Collections.singleton(dataSourceRuleConfig)), discoveryTypes);
+        return new DatabaseDiscoveryRuleConfiguration(new 
LinkedList<>(Collections.singleton(dataSourceRuleConfig)), 
Collections.emptyMap(), discoveryTypes);
     }
     
     private DatabaseDiscoveryRuleConfiguration 
createMultipleCurrentRuleConfigurations() {
-        DatabaseDiscoveryDataSourceRuleConfiguration dataSourceRuleConfig = 
new DatabaseDiscoveryDataSourceRuleConfiguration("ha_group", 
Collections.emptyList(), "pr_ds_MGR");
+        DatabaseDiscoveryDataSourceRuleConfiguration dataSourceRuleConfig = 
new DatabaseDiscoveryDataSourceRuleConfiguration("ha_group", 
Collections.emptyList(), "ha_heartbeat", "pr_ds_MGR");
         Map<String, ShardingSphereAlgorithmConfiguration> discoveryTypes = new 
HashMap<>(1, 1);
         discoveryTypes.put("pr_ds_MGR", new 
ShardingSphereAlgorithmConfiguration("pr_ds_MGR", new Properties()));
         return new DatabaseDiscoveryRuleConfiguration(new 
LinkedList<>(Arrays.asList(dataSourceRuleConfig, 
-                new 
DatabaseDiscoveryDataSourceRuleConfiguration("ha_group_another", 
Collections.emptyList(), "pr_ds_MGR"))), discoveryTypes);
+                new 
DatabaseDiscoveryDataSourceRuleConfiguration("ha_group_another", 
Collections.emptyList(), "ha_heartbeat", "pr_ds_MGR"))), 
Collections.emptyMap(), discoveryTypes);
     }
 }

Reply via email to