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 f4e5cad Refactor DatabaseDiscoveryDataSourceRule (#12235)
f4e5cad is described below
commit f4e5cad98af542b3228070f8bb1bf942570c5b97
Author: Liang Zhang <[email protected]>
AuthorDate: Mon Sep 6 15:42:23 2021 +0800
Refactor DatabaseDiscoveryDataSourceRule (#12235)
* Rename DatabaseDiscoveryType.checkDatabaseDiscoveryConfiguration
* Refactor DatabaseDiscoveryDataSourceRule
---
.../dbdiscovery/spi/DatabaseDiscoveryType.java | 4 ++--
.../rule/DatabaseDiscoveryDataSourceRule.java | 22 +++++++++++++---------
.../dbdiscovery/rule/DatabaseDiscoveryRule.java | 18 +++++++++++-------
.../fixture/TestDatabaseDiscoveryType.java | 2 +-
.../rule/DatabaseDiscoveryDataSourceRuleTest.java | 8 ++++----
.../dbdiscovery/mgr/MGRDatabaseDiscoveryType.java | 2 +-
.../mgr/MGRDatabaseDiscoveryTypeTest.java | 2 +-
.../distsql/fixture/TestDatabaseDiscoveryType.java | 2 +-
8 files changed, 34 insertions(+), 26 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 de370d2..430cff0 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
@@ -30,13 +30,13 @@ import java.util.Map;
public interface DatabaseDiscoveryType extends ShardingSphereAlgorithm {
/**
- * Check database discovery config.
+ * Check database discovery configuration.
*
* @param schemaName schema name
* @param dataSourceMap data source map
* @throws SQLException SQL Exception
*/
- void checkDatabaseDiscoveryConfig(String schemaName, Map<String,
DataSource> dataSourceMap) throws SQLException;
+ void checkDatabaseDiscoveryConfiguration(String schemaName, Map<String,
DataSource> dataSourceMap) throws SQLException;
/**
* Update primary data source.
diff --git
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/rule/DatabaseDiscoveryDataSourceRule.java
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/rule/DatabaseDiscoveryDataSourceRule.java
index 3bc1888..74c736f 100644
---
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/rule/DatabaseDiscoveryDataSourceRule.java
+++
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/rule/DatabaseDiscoveryDataSourceRule.java
@@ -78,17 +78,21 @@ public final class DatabaseDiscoveryDataSourceRule {
}
/**
- * Update disabled data source names.
+ * Disable data source.
*
- * @param dataSourceName data source name
- * @param isDisabled is disabled
+ * @param dataSourceName data source name to be disabled
+ */
+ public void disableDataSource(final String dataSourceName) {
+ disabledDataSourceNames.add(dataSourceName);
+ }
+
+ /**
+ * Enable data source.
+ *
+ * @param dataSourceName data source name to be enabled
*/
- public void updateDisabledDataSourceNames(final String dataSourceName,
final boolean isDisabled) {
- if (isDisabled) {
- disabledDataSourceNames.add(dataSourceName);
- } else {
- disabledDataSourceNames.remove(dataSourceName);
- }
+ public void enableDataSource(final String dataSourceName) {
+ disabledDataSourceNames.remove(dataSourceName);
}
/**
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 7310038..2d68ecc 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
@@ -107,16 +107,16 @@ public final class DatabaseDiscoveryRule implements
SchemaRule, DataSourceContai
private void startMonitor(final String schemaName, final Map<String,
DataSource> dataSourceMap) {
for (Entry<String, DatabaseDiscoveryDataSourceRule> entry :
dataSourceRules.entrySet()) {
String groupName = entry.getKey();
- DatabaseDiscoveryDataSourceRule dbDiscoveryDataSourceRule =
entry.getValue();
- DatabaseDiscoveryType databaseDiscoveryType =
dbDiscoveryDataSourceRule.getDatabaseDiscoveryType();
+ DatabaseDiscoveryDataSourceRule dataSourceRule = entry.getValue();
+ DatabaseDiscoveryType databaseDiscoveryType =
dataSourceRule.getDatabaseDiscoveryType();
Map<String, DataSource> originalDataSourceMap = new
HashMap<>(dataSourceMap);
- Collection<String> disabledDataSourceNames =
dbDiscoveryDataSourceRule.getDisabledDataSourceNames();
- String primaryDataSourceName =
dbDiscoveryDataSourceRule.getPrimaryDataSourceName();
+ Collection<String> disabledDataSourceNames =
dataSourceRule.getDisabledDataSourceNames();
+ String primaryDataSourceName =
dataSourceRule.getPrimaryDataSourceName();
databaseDiscoveryType.updatePrimaryDataSource(schemaName,
originalDataSourceMap, disabledDataSourceNames, groupName,
primaryDataSourceName);
-
dbDiscoveryDataSourceRule.updatePrimaryDataSourceName(databaseDiscoveryType.getPrimaryDataSource());
+
dataSourceRule.updatePrimaryDataSourceName(databaseDiscoveryType.getPrimaryDataSource());
databaseDiscoveryType.updateMemberState(schemaName,
originalDataSourceMap, disabledDataSourceNames);
try {
- databaseDiscoveryType.checkDatabaseDiscoveryConfig(schemaName,
dataSourceMap);
+
databaseDiscoveryType.checkDatabaseDiscoveryConfiguration(schemaName,
dataSourceMap);
databaseDiscoveryType.startPeriodicalUpdate(schemaName,
originalDataSourceMap, disabledDataSourceNames, groupName,
primaryDataSourceName);
} catch (final SQLException ex) {
throw new ShardingSphereException(ex);
@@ -160,7 +160,11 @@ public final class DatabaseDiscoveryRule implements
SchemaRule, DataSourceContai
public void updateRuleStatus(final RuleChangedEvent event) {
if (event instanceof DataSourceNameDisabledEvent) {
for (Entry<String, DatabaseDiscoveryDataSourceRule> entry :
dataSourceRules.entrySet()) {
-
entry.getValue().updateDisabledDataSourceNames(((DataSourceNameDisabledEvent)
event).getDataSourceName(), ((DataSourceNameDisabledEvent) event).isDisabled());
+ if (((DataSourceNameDisabledEvent) event).isDisabled()) {
+
entry.getValue().disableDataSource(((DataSourceNameDisabledEvent)
event).getDataSourceName());
+ } else {
+
entry.getValue().enableDataSource(((DataSourceNameDisabledEvent)
event).getDataSourceName());
+ }
}
} else if (event instanceof PrimaryDataSourceEvent) {
for (Entry<String, DatabaseDiscoveryDataSourceRule> entry :
dataSourceRules.entrySet()) {
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 ab0a3ce..d763492 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,7 +26,7 @@ import java.util.Map;
public final class TestDatabaseDiscoveryType implements DatabaseDiscoveryType {
@Override
- public void checkDatabaseDiscoveryConfig(final String schemaName, final
Map<String, DataSource> dataSourceMap) {
+ public void checkDatabaseDiscoveryConfiguration(final String schemaName,
final Map<String, DataSource> dataSourceMap) {
}
@Override
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 84c74d6..fa9f645 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
@@ -57,20 +57,20 @@ public final class DatabaseDiscoveryDataSourceRuleTest {
@Test
public void assertGetDataSourceNamesWithDisabledDataSourceNames() {
- databaseDiscoveryDataSourceRule.updateDisabledDataSourceNames("ds_0",
true);
+ databaseDiscoveryDataSourceRule.disableDataSource("ds_0");
assertThat(databaseDiscoveryDataSourceRule.getDataSourceNames(),
is(Collections.singletonList("ds_1")));
}
@Test
public void assertUpdateDisabledDataSourceNamesForDisabled() {
- databaseDiscoveryDataSourceRule.updateDisabledDataSourceNames("ds_0",
true);
+ databaseDiscoveryDataSourceRule.disableDataSource("ds_0");
assertThat(databaseDiscoveryDataSourceRule.getDataSourceNames(),
is(Collections.singletonList("ds_1")));
}
@Test
public void assertUpdateDisabledDataSourceNamesForEnabled() {
- databaseDiscoveryDataSourceRule.updateDisabledDataSourceNames("ds_0",
true);
- databaseDiscoveryDataSourceRule.updateDisabledDataSourceNames("ds_0",
false);
+ databaseDiscoveryDataSourceRule.disableDataSource("ds_0");
+ databaseDiscoveryDataSourceRule.enableDataSource("ds_0");
assertThat(databaseDiscoveryDataSourceRule.getDataSourceNames(),
is(Arrays.asList("ds_0", "ds_1")));
}
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 79c57ef..8e2f0bd 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 String schemaName, final
Map<String, DataSource> dataSourceMap) throws SQLException {
+ public void checkDatabaseDiscoveryConfiguration(final String schemaName,
final Map<String, DataSource> dataSourceMap) throws SQLException {
try (Connection connection =
dataSourceMap.get(oldPrimaryDataSource).getConnection();
Statement statement = connection.createStatement()) {
checkPluginIsActive(statement);
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 3bfb40c..1b7d6d5 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("discovery_db",
dataSourceMap);
+ mgrHaType.checkDatabaseDiscoveryConfiguration("discovery_db",
dataSourceMap);
} catch (final SQLException ex) {
throw new ShardingSphereException(ex);
}
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 46cddac..652a448 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
@@ -29,7 +29,7 @@ import java.util.Map;
public final class TestDatabaseDiscoveryType implements DatabaseDiscoveryType {
@Override
- public void checkDatabaseDiscoveryConfig(final String schemaName, final
Map<String, DataSource> dataSourceMap) {
+ public void checkDatabaseDiscoveryConfiguration(final String schemaName,
final Map<String, DataSource> dataSourceMap) {
}
@Override