This is an automated email from the ASF dual-hosted git repository.
duanzhengqiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 89f9871 Remove databaseType ref of DatabaseDiscoveryRule (#12231)
89f9871 is described below
commit 89f9871ff79d769d22964caf1e6ba2aa91e9c3ec
Author: Liang Zhang <[email protected]>
AuthorDate: Mon Sep 6 06:30:59 2021 +0800
Remove databaseType ref of DatabaseDiscoveryRule (#12231)
* Remove databaseType ref of DatabaseDiscoveryRule
* Refactor DatabaseDiscoveryType
---
.../dbdiscovery/spi/DatabaseDiscoveryType.java | 14 +++----
.../dbdiscovery/rule/DatabaseDiscoveryRule.java | 44 +++++++++++-----------
...orithmProvidedDatabaseDiscoveryRuleBuilder.java | 2 +-
.../rule/builder/DatabaseDiscoveryRuleBuilder.java | 2 +-
.../fixture/TestDatabaseDiscoveryType.java | 8 ++--
.../route/DatabaseDiscoverySQLRouterTest.java | 3 +-
.../rule/DatabaseDiscoveryRuleTest.java | 5 +--
.../dbdiscovery/mgr/MGRDatabaseDiscoveryType.java | 10 ++---
.../dbdiscovery/mgr/MGRHeartbeatJob.java | 8 ++--
.../mgr/MGRDatabaseDiscoveryTypeTest.java | 4 +-
.../distsql/fixture/TestDatabaseDiscoveryType.java | 20 +++++-----
11 files changed, 58 insertions(+), 62 deletions(-)
diff --git
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-api/src/main/java/org/apache/shardingsphere/dbdiscovery/spi/DatabaseDiscoveryType.java
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-api/src/main/java/org/apache/shardingsphere/dbdiscovery/spi/DatabaseDiscoveryType.java
index 2fdca56..de370d2 100644
---
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-api/src/main/java/org/apache/shardingsphere/dbdiscovery/spi/DatabaseDiscoveryType.java
+++
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-api/src/main/java/org/apache/shardingsphere/dbdiscovery/spi/DatabaseDiscoveryType.java
@@ -32,31 +32,31 @@ public interface DatabaseDiscoveryType extends
ShardingSphereAlgorithm {
/**
* Check database discovery config.
*
- * @param dataSourceMap data source map
* @param schemaName schema name
+ * @param dataSourceMap data source map
* @throws SQLException SQL Exception
*/
- void checkDatabaseDiscoveryConfig(Map<String, DataSource> dataSourceMap,
String schemaName) throws SQLException;
+ void checkDatabaseDiscoveryConfig(String schemaName, Map<String,
DataSource> dataSourceMap) throws SQLException;
/**
* Update primary data source.
*
- * @param dataSourceMap data source map
* @param schemaName schema name
+ * @param dataSourceMap data source map
* @param disabledDataSourceNames disabled data source names
* @param primaryDataSourceName primary data source name
* @param groupName group name
*/
- void updatePrimaryDataSource(Map<String, DataSource> dataSourceMap, String
schemaName, Collection<String> disabledDataSourceNames, String groupName,
String primaryDataSourceName);
+ void updatePrimaryDataSource(String schemaName, Map<String, DataSource>
dataSourceMap, Collection<String> disabledDataSourceNames, String groupName,
String primaryDataSourceName);
/**
* Update member state.
*
- * @param dataSourceMap data source map
* @param schemaName schema name
+ * @param dataSourceMap data source map
* @param disabledDataSourceNames disabled data source names
*/
- void updateMemberState(Map<String, DataSource> dataSourceMap, String
schemaName, Collection<String> disabledDataSourceNames);
+ void updateMemberState(String schemaName, Map<String, DataSource>
dataSourceMap, Collection<String> disabledDataSourceNames);
/**
* Start periodical update.
@@ -67,7 +67,7 @@ public interface DatabaseDiscoveryType extends
ShardingSphereAlgorithm {
* @param primaryDataSourceName primary data source name
* @param groupName group name
*/
- void startPeriodicalUpdate(Map<String, DataSource> dataSourceMap, String
schemaName, Collection<String> disabledDataSourceNames, String groupName,
String primaryDataSourceName);
+ void startPeriodicalUpdate(String schemaName, Map<String, DataSource>
dataSourceMap, Collection<String> disabledDataSourceNames, String groupName,
String primaryDataSourceName);
/**
* Get primary data source.
diff --git
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/rule/DatabaseDiscoveryRule.java
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/rule/DatabaseDiscoveryRule.java
index cedf26d..7310038 100644
---
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/rule/DatabaseDiscoveryRule.java
+++
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/rule/DatabaseDiscoveryRule.java
@@ -27,7 +27,6 @@ import
org.apache.shardingsphere.infra.aware.DataSourceNameAware;
import org.apache.shardingsphere.infra.aware.DataSourceNameAwareFactory;
import
org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmConfiguration;
import
org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmFactory;
-import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.exception.ShardingSphereException;
import org.apache.shardingsphere.infra.rule.event.RuleChangedEvent;
import
org.apache.shardingsphere.infra.rule.event.impl.DataSourceNameDisabledEvent;
@@ -61,30 +60,24 @@ public final class DatabaseDiscoveryRule implements
SchemaRule, DataSourceContai
@Getter
private final Map<String, DatabaseDiscoveryDataSourceRule> dataSourceRules;
- public DatabaseDiscoveryRule(final DatabaseDiscoveryRuleConfiguration
config, final String schemaName, final DatabaseType databaseType, final
Map<String, DataSource> dataSourceMap) {
- checkDataSourcesArguments(config.getDataSources(), databaseType,
dataSourceMap);
- discoveryTypes = getDiscoveryTypes(config.getDiscoveryTypes());
- dataSourceRules = getDataSourceRules(config.getDataSources());
- startMonitor(schemaName, dataSourceMap);
- initAware();
+ public DatabaseDiscoveryRule(final DatabaseDiscoveryRuleConfiguration
config, final String schemaName, final Map<String, DataSource> dataSourceMap) {
+ this(config.getDataSources(),
getDiscoveryTypes(config.getDiscoveryTypes()), schemaName, dataSourceMap);
}
- public DatabaseDiscoveryRule(final
AlgorithmProvidedDatabaseDiscoveryRuleConfiguration config,
- final String schemaName, final DatabaseType
databaseType, final Map<String, DataSource> dataSourceMap) {
- checkDataSourcesArguments(config.getDataSources(), databaseType,
dataSourceMap);
- discoveryTypes = config.getDiscoveryTypes();
- dataSourceRules = getDataSourceRules(config.getDataSources());
- startMonitor(schemaName, dataSourceMap);
- initAware();
+ public DatabaseDiscoveryRule(final
AlgorithmProvidedDatabaseDiscoveryRuleConfiguration config, final String
schemaName, final Map<String, DataSource> dataSourceMap) {
+ this(config.getDataSources(), config.getDiscoveryTypes(), schemaName,
dataSourceMap);
}
- private void checkDataSourcesArguments(final
Collection<DatabaseDiscoveryDataSourceRuleConfiguration> dataSources, final
DatabaseType databaseType, final Map<String, DataSource> dataSourceMap) {
- Preconditions.checkArgument(!dataSources.isEmpty(), "Database
discovery rules can not be empty.");
- Preconditions.checkArgument(null != dataSourceMap &&
!dataSourceMap.isEmpty(), "Data sources cannot be empty.");
- Preconditions.checkNotNull(databaseType, "Database type cannot be
null.");
+ private DatabaseDiscoveryRule(final
Collection<DatabaseDiscoveryDataSourceRuleConfiguration> dataSourceRuleConfigs,
final Map<String, DatabaseDiscoveryType> discoveryTypes,
+ final String schemaName, final Map<String,
DataSource> dataSourceMap) {
+ checkDataSourcesArguments(dataSourceRuleConfigs, dataSourceMap);
+ this.discoveryTypes = discoveryTypes;
+ dataSourceRules = getDataSourceRules(dataSourceRuleConfigs);
+ startMonitor(schemaName, dataSourceMap);
+ initAware();
}
- private Map<String, DatabaseDiscoveryType> getDiscoveryTypes(final
Map<String, ShardingSphereAlgorithmConfiguration> discoveryTypesConfig) {
+ private static Map<String, DatabaseDiscoveryType> getDiscoveryTypes(final
Map<String, ShardingSphereAlgorithmConfiguration> discoveryTypesConfig) {
Map<String, DatabaseDiscoveryType> result = new LinkedHashMap<>();
for (Entry<String, ShardingSphereAlgorithmConfiguration> entry :
discoveryTypesConfig.entrySet()) {
result.put(entry.getKey(),
ShardingSphereAlgorithmFactory.createAlgorithm(entry.getValue(),
DatabaseDiscoveryType.class));
@@ -92,6 +85,11 @@ public final class DatabaseDiscoveryRule implements
SchemaRule, DataSourceContai
return result;
}
+ private void checkDataSourcesArguments(final
Collection<DatabaseDiscoveryDataSourceRuleConfiguration> dataSources, final
Map<String, DataSource> dataSourceMap) {
+ Preconditions.checkArgument(!dataSources.isEmpty(), "Database
discovery rules can not be empty.");
+ Preconditions.checkArgument(null != dataSourceMap &&
!dataSourceMap.isEmpty(), "Data sources cannot be empty.");
+ }
+
private Map<String, DatabaseDiscoveryDataSourceRule>
getDataSourceRules(final
Collection<DatabaseDiscoveryDataSourceRuleConfiguration> dataSources) {
Map<String, DatabaseDiscoveryDataSourceRule> result = new
HashMap<>(dataSources.size(), 1);
for (DatabaseDiscoveryDataSourceRuleConfiguration each : dataSources) {
@@ -114,12 +112,12 @@ public final class DatabaseDiscoveryRule implements
SchemaRule, DataSourceContai
Map<String, DataSource> originalDataSourceMap = new
HashMap<>(dataSourceMap);
Collection<String> disabledDataSourceNames =
dbDiscoveryDataSourceRule.getDisabledDataSourceNames();
String primaryDataSourceName =
dbDiscoveryDataSourceRule.getPrimaryDataSourceName();
-
databaseDiscoveryType.updatePrimaryDataSource(originalDataSourceMap,
schemaName, disabledDataSourceNames, groupName, primaryDataSourceName);
+ databaseDiscoveryType.updatePrimaryDataSource(schemaName,
originalDataSourceMap, disabledDataSourceNames, groupName,
primaryDataSourceName);
dbDiscoveryDataSourceRule.updatePrimaryDataSourceName(databaseDiscoveryType.getPrimaryDataSource());
- databaseDiscoveryType.updateMemberState(originalDataSourceMap,
schemaName, disabledDataSourceNames);
+ databaseDiscoveryType.updateMemberState(schemaName,
originalDataSourceMap, disabledDataSourceNames);
try {
-
databaseDiscoveryType.checkDatabaseDiscoveryConfig(dataSourceMap, schemaName);
-
databaseDiscoveryType.startPeriodicalUpdate(originalDataSourceMap, schemaName,
disabledDataSourceNames, groupName, primaryDataSourceName);
+ databaseDiscoveryType.checkDatabaseDiscoveryConfig(schemaName,
dataSourceMap);
+ databaseDiscoveryType.startPeriodicalUpdate(schemaName,
originalDataSourceMap, disabledDataSourceNames, groupName,
primaryDataSourceName);
} catch (final SQLException ex) {
throw new ShardingSphereException(ex);
}
diff --git
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/rule/builder/AlgorithmProvidedDatabaseDiscoveryRuleBuilder.java
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/rule/builder/AlgorithmProvidedDatabaseDiscoveryRuleBuilder.java
index 85b6d3d..d9f545d 100644
---
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/rule/builder/AlgorithmProvidedDatabaseDiscoveryRuleBuilder.java
+++
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/rule/builder/AlgorithmProvidedDatabaseDiscoveryRuleBuilder.java
@@ -34,7 +34,7 @@ public final class
AlgorithmProvidedDatabaseDiscoveryRuleBuilder implements Sche
@Override
public DatabaseDiscoveryRule build(final SchemaRulesBuilderMaterials
materials, final AlgorithmProvidedDatabaseDiscoveryRuleConfiguration config,
final Collection<ShardingSphereRule>
rules) {
- return new DatabaseDiscoveryRule(config, materials.getSchemaName(),
materials.getDatabaseType(), materials.getDataSourceMap());
+ return new DatabaseDiscoveryRule(config, materials.getSchemaName(),
materials.getDataSourceMap());
}
@Override
diff --git
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/rule/builder/DatabaseDiscoveryRuleBuilder.java
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/rule/builder/DatabaseDiscoveryRuleBuilder.java
index f3da959..2451596 100644
---
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/rule/builder/DatabaseDiscoveryRuleBuilder.java
+++
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/rule/builder/DatabaseDiscoveryRuleBuilder.java
@@ -43,7 +43,7 @@ public final class DatabaseDiscoveryRuleBuilder implements
SchemaRuleBuilder<Dat
realDataSourceMap.put(datasourceName,
materials.getDataSourceMap().get(datasourceName));
}
}
- return new DatabaseDiscoveryRule(config, materials.getSchemaName(),
materials.getDatabaseType(), realDataSourceMap);
+ return new DatabaseDiscoveryRule(config, materials.getSchemaName(),
realDataSourceMap);
}
@Override
diff --git
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/fixture/TestDatabaseDiscoveryType.java
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/fixture/TestDatabaseDiscoveryType.java
index 444fd82..ab0a3ce 100644
---
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/fixture/TestDatabaseDiscoveryType.java
+++
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/fixture/TestDatabaseDiscoveryType.java
@@ -26,20 +26,20 @@ import java.util.Map;
public final class TestDatabaseDiscoveryType implements DatabaseDiscoveryType {
@Override
- public void checkDatabaseDiscoveryConfig(final Map<String, DataSource>
dataSourceMap, final String schemaName) {
+ public void checkDatabaseDiscoveryConfig(final String schemaName, final
Map<String, DataSource> dataSourceMap) {
}
@Override
- public void updatePrimaryDataSource(final Map<String, DataSource>
activeDataSourceMap, final String schemaName, final Collection<String>
disabledDataSourceNames,
+ public void updatePrimaryDataSource(final String schemaName, final
Map<String, DataSource> activeDataSourceMap, final Collection<String>
disabledDataSourceNames,
final String groupName, final String
primaryDataSourceName) {
}
@Override
- public void updateMemberState(final Map<String, DataSource> dataSourceMap,
final String schemaName, final Collection<String> disabledDataSourceNames) {
+ public void updateMemberState(final String schemaName, final Map<String,
DataSource> dataSourceMap, final Collection<String> disabledDataSourceNames) {
}
@Override
- public void startPeriodicalUpdate(final Map<String, DataSource>
dataSourceMap, final String schemaName, final Collection<String>
disabledDataSourceNames,
+ public void startPeriodicalUpdate(final String schemaName, final
Map<String, DataSource> dataSourceMap, final Collection<String>
disabledDataSourceNames,
final String groupName, final String
primaryDataSourceName) {
}
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 1d8a48b..249fe24 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
@@ -24,7 +24,6 @@ import org.apache.shardingsphere.infra.binder.LogicSQL;
import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
import
org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmConfiguration;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
-import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import
org.apache.shardingsphere.infra.metadata.resource.ShardingSphereResource;
import
org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
@@ -78,7 +77,7 @@ public final class DatabaseDiscoverySQLRouterTest {
= new
DatabaseDiscoveryDataSourceRuleConfiguration(DATA_SOURCE_NAME,
Collections.singletonList(PRIMARY_DATA_SOURCE), "TEST");
ShardingSphereAlgorithmConfiguration algorithmConfig = new
ShardingSphereAlgorithmConfiguration("TEST", new Properties());
DatabaseDiscoveryRuleConfiguration config = new
DatabaseDiscoveryRuleConfiguration(Collections.singleton(dataSourceConfig),
Collections.singletonMap("TEST", algorithmConfig));
- rule = new DatabaseDiscoveryRule(config, "TEST",
mock(DatabaseType.class), Collections.singletonMap("ds",
mock(DataSource.class)));
+ 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/DatabaseDiscoveryRuleTest.java
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/DatabaseDiscoveryRuleTest.java
index 6d64d27..aba482b 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
@@ -21,7 +21,6 @@ import com.google.common.collect.ImmutableMap;
import
org.apache.shardingsphere.dbdiscovery.api.config.DatabaseDiscoveryRuleConfiguration;
import
org.apache.shardingsphere.dbdiscovery.api.config.rule.DatabaseDiscoveryDataSourceRuleConfiguration;
import
org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmConfiguration;
-import org.apache.shardingsphere.infra.database.type.DatabaseType;
import
org.apache.shardingsphere.infra.rule.event.impl.DataSourceNameDisabledEvent;
import org.junit.Test;
@@ -44,7 +43,7 @@ public final class DatabaseDiscoveryRuleTest {
@Test(expected = IllegalArgumentException.class)
public void assertNewWithEmptyDataSourceRule() {
- new DatabaseDiscoveryRule(new
DatabaseDiscoveryRuleConfiguration(Collections.emptyList(),
Collections.emptyMap()), "ha_db", mock(DatabaseType.class), dataSourceMap);
+ new DatabaseDiscoveryRule(new
DatabaseDiscoveryRuleConfiguration(Collections.emptyList(),
Collections.emptyMap()), "ha_db", dataSourceMap);
}
@Test
@@ -98,6 +97,6 @@ public final class DatabaseDiscoveryRuleTest {
private DatabaseDiscoveryRule createRule() {
DatabaseDiscoveryDataSourceRuleConfiguration config = new
DatabaseDiscoveryDataSourceRuleConfiguration("test_pr", Arrays.asList("ds_0",
"ds_1"), "TEST");
return new DatabaseDiscoveryRule(new
DatabaseDiscoveryRuleConfiguration(
- Collections.singleton(config), ImmutableMap.of("TEST", new
ShardingSphereAlgorithmConfiguration("TEST", new Properties()))), "ha_db",
mock(DatabaseType.class), dataSourceMap);
+ Collections.singleton(config), ImmutableMap.of("TEST", new
ShardingSphereAlgorithmConfiguration("TEST", new Properties()))), "ha_db",
dataSourceMap);
}
}
diff --git
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-provider/shardingsphere-db-discovery-mgr/src/main/java/org/apache/shardingsphere/dbdiscovery/mgr/MGRDatabaseDiscoveryType.java
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-provider/shardingsphere-db-discovery-mgr/src/main/java/org/apache/shardingsphere/dbdiscovery/mgr/MGRDatabaseDiscoveryType.java
index f225119..79c57ef 100644
---
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-provider/shardingsphere-db-discovery-mgr/src/main/java/org/apache/shardingsphere/dbdiscovery/mgr/MGRDatabaseDiscoveryType.java
+++
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-provider/shardingsphere-db-discovery-mgr/src/main/java/org/apache/shardingsphere/dbdiscovery/mgr/MGRDatabaseDiscoveryType.java
@@ -71,7 +71,7 @@ public final class MGRDatabaseDiscoveryType implements
DatabaseDiscoveryType {
private Properties props = new Properties();
@Override
- public void checkDatabaseDiscoveryConfig(final Map<String, DataSource>
dataSourceMap, final String schemaName) throws SQLException {
+ public void checkDatabaseDiscoveryConfig(final String schemaName, final
Map<String, DataSource> dataSourceMap) throws SQLException {
try (Connection connection =
dataSourceMap.get(oldPrimaryDataSource).getConnection();
Statement statement = connection.createStatement()) {
checkPluginIsActive(statement);
@@ -124,7 +124,7 @@ public final class MGRDatabaseDiscoveryType implements
DatabaseDiscoveryType {
}
@Override
- public void updatePrimaryDataSource(final Map<String, DataSource>
dataSourceMap, final String schemaName, final Collection<String>
disabledDataSourceNames,
+ public void updatePrimaryDataSource(final String schemaName, final
Map<String, DataSource> dataSourceMap, final Collection<String>
disabledDataSourceNames,
final String groupName, final String
primaryDataSourceName) {
Map<String, DataSource> activeDataSourceMap = new
HashMap<>(dataSourceMap);
if (!disabledDataSourceNames.isEmpty()) {
@@ -184,7 +184,7 @@ public final class MGRDatabaseDiscoveryType implements
DatabaseDiscoveryType {
}
@Override
- public void updateMemberState(final Map<String, DataSource> dataSourceMap,
final String schemaName, final Collection<String> disabledDataSourceNames) {
+ public void updateMemberState(final String schemaName, final Map<String,
DataSource> dataSourceMap, final Collection<String> disabledDataSourceNames) {
Map<String, DataSource> activeDataSourceMap = new
HashMap<>(dataSourceMap);
if (!disabledDataSourceNames.isEmpty()) {
activeDataSourceMap.entrySet().removeIf(each ->
disabledDataSourceNames.contains(each.getKey()));
@@ -268,7 +268,7 @@ public final class MGRDatabaseDiscoveryType implements
DatabaseDiscoveryType {
}
@Override
- public void startPeriodicalUpdate(final Map<String, DataSource>
dataSourceMap, final String schemaName, final Collection<String>
disabledDataSourceNames,
+ public void startPeriodicalUpdate(final String schemaName, final
Map<String, DataSource> dataSourceMap, final Collection<String>
disabledDataSourceNames,
final String groupName, final String
primaryDataSourceName) {
if (null == coordinatorRegistryCenter) {
ZookeeperConfiguration zkConfig = new
ZookeeperConfiguration(props.getProperty("zkServerLists"), "mgr-elasticjob");
@@ -278,7 +278,7 @@ public final class MGRDatabaseDiscoveryType implements
DatabaseDiscoveryType {
if (null != SCHEDULE_JOB_BOOTSTRAP_MAP.get(groupName)) {
SCHEDULE_JOB_BOOTSTRAP_MAP.get(groupName).shutdown();
}
- SCHEDULE_JOB_BOOTSTRAP_MAP.put(groupName, new
ScheduleJobBootstrap(coordinatorRegistryCenter, new MGRHeartbeatJob(this,
dataSourceMap, schemaName, disabledDataSourceNames,
+ SCHEDULE_JOB_BOOTSTRAP_MAP.put(groupName, new
ScheduleJobBootstrap(coordinatorRegistryCenter, new MGRHeartbeatJob(this,
schemaName, dataSourceMap, disabledDataSourceNames,
groupName, primaryDataSourceName),
JobConfiguration.newBuilder("MGR-" + groupName,
1).cron(props.getProperty("keepAliveCron")).build()));
SCHEDULE_JOB_BOOTSTRAP_MAP.get(groupName).schedule();
}
diff --git
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-provider/shardingsphere-db-discovery-mgr/src/main/java/org/apache/shardingsphere/dbdiscovery/mgr/MGRHeartbeatJob.java
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-provider/shardingsphere-db-discovery-mgr/src/main/java/org/apache/shardingsphere/dbdiscovery/mgr/MGRHeartbeatJob.java
index 489589b..9852c7b 100644
---
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-provider/shardingsphere-db-discovery-mgr/src/main/java/org/apache/shardingsphere/dbdiscovery/mgr/MGRHeartbeatJob.java
+++
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-provider/shardingsphere-db-discovery-mgr/src/main/java/org/apache/shardingsphere/dbdiscovery/mgr/MGRHeartbeatJob.java
@@ -34,10 +34,10 @@ public final class MGRHeartbeatJob implements SimpleJob {
private final DatabaseDiscoveryType databaseDiscoveryType;
- private final Map<String, DataSource> dataSourceMap;
-
private final String schemaName;
+ private final Map<String, DataSource> dataSourceMap;
+
private final Collection<String> disabledDataSourceNames;
private final String groupName;
@@ -46,7 +46,7 @@ public final class MGRHeartbeatJob implements SimpleJob {
@Override
public void execute(final ShardingContext shardingContext) {
- databaseDiscoveryType.updatePrimaryDataSource(dataSourceMap,
schemaName, disabledDataSourceNames, groupName, primaryDataSourceName);
- databaseDiscoveryType.updateMemberState(dataSourceMap, schemaName,
disabledDataSourceNames);
+ databaseDiscoveryType.updatePrimaryDataSource(schemaName,
dataSourceMap, disabledDataSourceNames, groupName, primaryDataSourceName);
+ databaseDiscoveryType.updateMemberState(schemaName, dataSourceMap,
disabledDataSourceNames);
}
}
diff --git
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-provider/shardingsphere-db-discovery-mgr/src/test/java/org/apache/shardingsphere/dbdiscovery/mgr/MGRDatabaseDiscoveryTypeTest.java
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-provider/shardingsphere-db-discovery-mgr/src/test/java/org/apache/shardingsphere/dbdiscovery/mgr/MGRDatabaseDiscoveryTypeTest.java
index d30fcb1..3bfb40c 100644
---
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-provider/shardingsphere-db-discovery-mgr/src/test/java/org/apache/shardingsphere/dbdiscovery/mgr/MGRDatabaseDiscoveryTypeTest.java
+++
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-provider/shardingsphere-db-discovery-mgr/src/test/java/org/apache/shardingsphere/dbdiscovery/mgr/MGRDatabaseDiscoveryTypeTest.java
@@ -73,7 +73,7 @@ public final class MGRDatabaseDiscoveryTypeTest {
when(dataSourceMap.get(null)).thenReturn(dataSource);
try {
mgrHaType.getProps().setProperty("groupName", "group_name");
- mgrHaType.checkDatabaseDiscoveryConfig(dataSourceMap,
"discovery_db");
+ mgrHaType.checkDatabaseDiscoveryConfig("discovery_db",
dataSourceMap);
} catch (final SQLException ex) {
throw new ShardingSphereException(ex);
}
@@ -114,7 +114,7 @@ public final class MGRDatabaseDiscoveryTypeTest {
dataSourceMap.put(String.format("ds_%s", i), dataSources.get(i));
}
mgrHaType.getProps().setProperty("groupName", "group_name");
- mgrHaType.updatePrimaryDataSource(dataSourceMap, "discovery_db",
Collections.emptySet(), "group_name", null);
+ mgrHaType.updatePrimaryDataSource("discovery_db", dataSourceMap,
Collections.emptySet(), "group_name", null);
assertThat(mgrHaType.getPrimaryDataSource(), is("ds_2"));
}
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/fixture/TestDatabaseDiscoveryType.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/fixture/TestDatabaseDiscoveryType.java
index d3c85ae..46cddac 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/fixture/TestDatabaseDiscoveryType.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/fixture/TestDatabaseDiscoveryType.java
@@ -20,7 +20,6 @@ package
org.apache.shardingsphere.proxy.backend.text.distsql.fixture;
import org.apache.shardingsphere.dbdiscovery.spi.DatabaseDiscoveryType;
import javax.sql.DataSource;
-import java.sql.SQLException;
import java.util.Collection;
import java.util.Map;
@@ -28,29 +27,30 @@ import java.util.Map;
* Test database discovery type.
*/
public final class TestDatabaseDiscoveryType implements DatabaseDiscoveryType {
+
@Override
- public void checkDatabaseDiscoveryConfig(final Map<String, DataSource>
dataSourceMap, final String schemaName) throws SQLException {
+ public void checkDatabaseDiscoveryConfig(final String schemaName, final
Map<String, DataSource> dataSourceMap) {
}
-
+
@Override
- public void updatePrimaryDataSource(final Map<String, DataSource>
dataSourceMap, final String schemaName,
+ public void updatePrimaryDataSource(final String schemaName, final
Map<String, DataSource> dataSourceMap,
final Collection<String>
disabledDataSourceNames, final String groupName, final String
primaryDataSourceName) {
}
-
+
@Override
- public void updateMemberState(final Map<String, DataSource> dataSourceMap,
final String schemaName, final Collection<String> disabledDataSourceNames) {
+ public void updateMemberState(final String schemaName, final Map<String,
DataSource> dataSourceMap, final Collection<String> disabledDataSourceNames) {
}
-
+
@Override
- public void startPeriodicalUpdate(final Map<String, DataSource>
dataSourceMap, final String schemaName,
+ public void startPeriodicalUpdate(final String schemaName, final
Map<String, DataSource> dataSourceMap,
final Collection<String>
disabledDataSourceNames, final String groupName, final String
primaryDataSourceName) {
}
-
+
@Override
public String getPrimaryDataSource() {
return null;
}
-
+
@Override
public String getType() {
return "TEST";