This is an automated email from the ASF dual-hosted git repository.
panjuan 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 0abc3a8 fix SingleTableDataNode concurrent exception (#13686)
0abc3a8 is described below
commit 0abc3a8b072e584263af6dda868e720470c13f20
Author: Zhengqiang Duan <[email protected]>
AuthorDate: Thu Nov 18 19:15:07 2021 +0800
fix SingleTableDataNode concurrent exception (#13686)
---
.../engine/fixture/AbstractRoutingEngineTest.java | 2 +-
.../type/AlterTableStatementSchemaRefresher.java | 4 ++--
.../type/CreateTableStatementSchemaRefresher.java | 2 +-
.../type/CreateViewStatementSchemaRefresher.java | 2 +-
.../type/DropTableStatementSchemaRefresher.java | 2 +-
.../type/DropViewStatementSchemaRefresher.java | 2 +-
.../rule/identifier/type/MutableDataNodeRule.java | 6 +++---
.../optimize/metadata/FederationSchemaMetaData.java | 15 ++++++++-------
.../type/AlterTableFederationMetaDataRefresher.java | 4 ++--
.../CreateTableFederationMetaDataRefresher.java | 2 +-
.../singletable/rule/SingleTableDataNodeLoader.java | 6 +++---
.../singletable/rule/SingleTableRule.java | 21 +++++++++++----------
.../rule/SingleTableDataNodeLoaderTest.java | 6 ------
.../singletable/rule/SingleTableRuleTest.java | 12 +++++-------
.../EncryptSQLRewriterParameterizedTest.java | 4 ++--
.../ShardingSQLRewriterParameterizedTest.java | 4 ++--
16 files changed, 44 insertions(+), 50 deletions(-)
diff --git
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/fixture/AbstractRoutingEngineTest.java
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/fixture/AbstractRoutingEngineTest.java
index 157f695..61a1e88 100644
---
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/fixture/AbstractRoutingEngineTest.java
+++
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/fixture/AbstractRoutingEngineTest.java
@@ -244,7 +244,7 @@ public abstract class AbstractRoutingEngineTest {
protected SingleTableRule createAllSingleTableRule(final
Collection<ShardingSphereRule> rules) {
Map<String, DataSource> dataSourceMap = createDataSourceMapWithMain();
SingleTableRule singleTableRule = new SingleTableRule(new
SingleTableRuleConfiguration(), mock(DatabaseType.class), dataSourceMap, rules,
new ConfigurationProperties(new Properties()));
- singleTableRule.addDataNode("t_category",
dataSourceMap.keySet().iterator().next());
+ singleTableRule.put("t_category",
dataSourceMap.keySet().iterator().next());
return singleTableRule;
}
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/AlterTableStatementSchemaRefresher.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/AlterTableStatementSchemaRefresher.java
index 9c44379..9204f44 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/AlterTableStatementSchemaRefresher.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/AlterTableStatementSchemaRefresher.java
@@ -51,13 +51,13 @@ public final class AlterTableStatementSchemaRefresher
implements SchemaRefresher
private void removeTableMetaData(final ShardingSphereMetaData
schemaMetaData, final String tableName) {
schemaMetaData.getSchema().remove(tableName);
-
schemaMetaData.getRuleMetaData().findRules(MutableDataNodeRule.class).forEach(each
-> each.dropDataNode(tableName));
+
schemaMetaData.getRuleMetaData().findRules(MutableDataNodeRule.class).forEach(each
-> each.remove(tableName));
}
private void putTableMetaData(final ShardingSphereMetaData schemaMetaData,
final Collection<String>
logicDataSourceNames, final String tableName, final ConfigurationProperties
props) throws SQLException {
if (!containsInDataNodeContainedRule(tableName, schemaMetaData)) {
-
schemaMetaData.getRuleMetaData().findRules(MutableDataNodeRule.class).forEach(each
-> each.addDataNode(tableName, logicDataSourceNames.iterator().next()));
+
schemaMetaData.getRuleMetaData().findRules(MutableDataNodeRule.class).forEach(each
-> each.put(tableName, logicDataSourceNames.iterator().next()));
}
SchemaBuilderMaterials materials = new SchemaBuilderMaterials(
schemaMetaData.getResource().getDatabaseType(),
schemaMetaData.getResource().getDataSources(),
schemaMetaData.getRuleMetaData().getRules(), props);
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/CreateTableStatementSchemaRefresher.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/CreateTableStatementSchemaRefresher.java
index 29682a4..33fabd0 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/CreateTableStatementSchemaRefresher.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/CreateTableStatementSchemaRefresher.java
@@ -42,7 +42,7 @@ public final class CreateTableStatementSchemaRefresher
implements SchemaRefreshe
final CreateTableStatement sqlStatement, final
ConfigurationProperties props) throws SQLException {
String tableName =
sqlStatement.getTable().getTableName().getIdentifier().getValue();
if (!containsInDataNodeContainedRule(tableName, schemaMetaData)) {
-
schemaMetaData.getRuleMetaData().findRules(MutableDataNodeRule.class).forEach(each
-> each.addDataNode(tableName, logicDataSourceNames.iterator().next()));
+
schemaMetaData.getRuleMetaData().findRules(MutableDataNodeRule.class).forEach(each
-> each.put(tableName, logicDataSourceNames.iterator().next()));
}
SchemaBuilderMaterials materials = new SchemaBuilderMaterials(
schemaMetaData.getResource().getDatabaseType(),
schemaMetaData.getResource().getDataSources(),
schemaMetaData.getRuleMetaData().getRules(), props);
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/CreateViewStatementSchemaRefresher.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/CreateViewStatementSchemaRefresher.java
index ebb08a5..32581a0 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/CreateViewStatementSchemaRefresher.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/CreateViewStatementSchemaRefresher.java
@@ -38,7 +38,7 @@ public final class CreateViewStatementSchemaRefresher
implements SchemaRefresher
TableMetaData tableMetaData = new TableMetaData();
schemaMetaData.getSchema().put(viewName, tableMetaData);
if (!containsInDataNodeContainedRule(viewName, schemaMetaData)) {
-
schemaMetaData.getRuleMetaData().findRules(MutableDataNodeRule.class).forEach(each
-> each.addDataNode(viewName, logicDataSourceNames.iterator().next()));
+
schemaMetaData.getRuleMetaData().findRules(MutableDataNodeRule.class).forEach(each
-> each.put(viewName, logicDataSourceNames.iterator().next()));
}
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/DropTableStatementSchemaRefresher.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/DropTableStatementSchemaRefresher.java
index 1c77c54..d2ae933 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/DropTableStatementSchemaRefresher.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/DropTableStatementSchemaRefresher.java
@@ -36,7 +36,7 @@ public final class DropTableStatementSchemaRefresher
implements SchemaRefresher<
sqlStatement.getTables().forEach(each ->
schemaMetaData.getSchema().remove(each.getTableName().getIdentifier().getValue()));
Collection<MutableDataNodeRule> rules =
schemaMetaData.getRuleMetaData().findRules(MutableDataNodeRule.class);
for (SimpleTableSegment each : sqlStatement.getTables()) {
- rules.forEach(rule ->
rule.dropDataNode(each.getTableName().getIdentifier().getValue()));
+ rules.forEach(rule ->
rule.remove(each.getTableName().getIdentifier().getValue()));
}
}
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/DropViewStatementSchemaRefresher.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/DropViewStatementSchemaRefresher.java
index 3169b58..2893418 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/DropViewStatementSchemaRefresher.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/DropViewStatementSchemaRefresher.java
@@ -36,7 +36,7 @@ public final class DropViewStatementSchemaRefresher
implements SchemaRefresher<D
sqlStatement.getViews().forEach(each ->
schemaMetaData.getSchema().remove(each.getTableName().getIdentifier().getValue()));
Collection<MutableDataNodeRule> rules =
schemaMetaData.getRuleMetaData().findRules(MutableDataNodeRule.class);
for (SimpleTableSegment each : sqlStatement.getViews()) {
- rules.forEach(rule ->
rule.dropDataNode(each.getTableName().getIdentifier().getValue()));
+ rules.forEach(rule ->
rule.remove(each.getTableName().getIdentifier().getValue()));
}
}
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/rule/identifier/type/MutableDataNodeRule.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/rule/identifier/type/MutableDataNodeRule.java
index 90b6e10..d4628da 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/rule/identifier/type/MutableDataNodeRule.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/rule/identifier/type/MutableDataNodeRule.java
@@ -30,12 +30,12 @@ public interface MutableDataNodeRule extends
ShardingSphereRule {
* @param tableName table name
* @param dataSourceName data source name
*/
- void addDataNode(String tableName, String dataSourceName);
+ void put(String tableName, String dataSourceName);
/**
- * Drop data node.
+ * Remove data node.
*
* @param tableName table name
*/
- void dropDataNode(String tableName);
+ void remove(String tableName);
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/FederationSchemaMetaData.java
b/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/FederationSchemaMetaData.java
index 63aedec..e1e83ad 100644
---
a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/FederationSchemaMetaData.java
+++
b/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/FederationSchemaMetaData.java
@@ -20,9 +20,9 @@ package org.apache.shardingsphere.infra.optimize.metadata;
import lombok.Getter;
import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
-import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Map.Entry;
+import java.util.concurrent.ConcurrentHashMap;
/**
* Federation schema meta data.
@@ -32,30 +32,31 @@ public final class FederationSchemaMetaData {
private final String name;
- private final Map<String, FederationTableMetaData> tables = new
LinkedHashMap<>();
+ private final Map<String, FederationTableMetaData> tables;
public FederationSchemaMetaData(final String name, final Map<String,
TableMetaData> metaData) {
this.name = name;
+ this.tables = new ConcurrentHashMap<>(metaData.size(), 1);
for (Entry<String, TableMetaData> entry : metaData.entrySet()) {
- tables.put(entry.getKey(), new
FederationTableMetaData(entry.getValue().getName(), entry.getValue()));
+ tables.put(entry.getKey().toLowerCase(), new
FederationTableMetaData(entry.getValue().getName(), entry.getValue()));
}
}
/**
- * Update table meta data.
+ * Add table meta data.
*
* @param metaData table meta data to be updated
*/
- public synchronized void update(final TableMetaData metaData) {
+ public void put(final TableMetaData metaData) {
tables.put(metaData.getName().toLowerCase(), new
FederationTableMetaData(metaData.getName(), metaData));
}
/**
- * Remove table.
+ * Remove table meta data.
*
* @param tableName table name to be removed
*/
- public synchronized void remove(final String tableName) {
+ public void remove(final String tableName) {
tables.remove(tableName.toLowerCase());
}
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/refresher/type/AlterTableFederationMetaDataRefresher.java
b/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/refresher/type/AlterTableFederationMetaDataRefresher.java
index fef18a1..5bc8c60 100644
---
a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/refresher/type/AlterTableFederationMetaDataRefresher.java
+++
b/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/refresher/type/AlterTableFederationMetaDataRefresher.java
@@ -40,10 +40,10 @@ public final class AlterTableFederationMetaDataRefresher
implements FederationMe
String tableName =
sqlStatement.getTable().getTableName().getIdentifier().getValue();
if (sqlStatement.getRenameTable().isPresent()) {
String renameTableName =
sqlStatement.getRenameTable().get().getTableName().getIdentifier().getValue();
- buildTableMetaData(materials,
renameTableName).ifPresent(schema::update);
+ buildTableMetaData(materials,
renameTableName).ifPresent(schema::put);
schema.remove(tableName);
} else {
- buildTableMetaData(materials, tableName).ifPresent(schema::update);
+ buildTableMetaData(materials, tableName).ifPresent(schema::put);
}
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/refresher/type/CreateTableFederationMetaDataRefresher.java
b/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/refresher/type/CreateTableFederationMetaDataRefresher.java
index 72f6a8f..5335512 100644
---
a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/refresher/type/CreateTableFederationMetaDataRefresher.java
+++
b/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/refresher/type/CreateTableFederationMetaDataRefresher.java
@@ -38,6 +38,6 @@ public final class CreateTableFederationMetaDataRefresher
implements FederationM
final CreateTableStatement sqlStatement, final
SchemaBuilderMaterials materials) throws SQLException {
String tableName =
sqlStatement.getTable().getTableName().getIdentifier().getValue();
Optional.ofNullable(TableMetaDataBuilder.load(Collections.singletonList(tableName),
materials).get(tableName))
- .map(each ->
TableMetaDataBuilder.decorateFederationTableMetaData(each,
materials.getRules())).ifPresent(schema::update);
+ .map(each ->
TableMetaDataBuilder.decorateFederationTableMetaData(each,
materials.getRules())).ifPresent(schema::put);
}
}
diff --git
a/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/main/java/org/apache/shardingsphere/singletable/rule/SingleTableDataNodeLoader.java
b/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/main/java/org/apache/shardingsphere/singletable/rule/SingleTableDataNodeLoader.java
index 3bdad25..28ae298 100644
---
a/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/main/java/org/apache/shardingsphere/singletable/rule/SingleTableDataNodeLoader.java
+++
b/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/main/java/org/apache/shardingsphere/singletable/rule/SingleTableDataNodeLoader.java
@@ -32,7 +32,7 @@ import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
-import java.util.TreeMap;
+import java.util.concurrent.ConcurrentHashMap;
/**
* Single table data node loader.
@@ -51,12 +51,12 @@ public final class SingleTableDataNodeLoader {
*/
public static Map<String, SingleTableDataNode> load(final DatabaseType
databaseType, final Map<String, DataSource> dataSourceMap,
final
Collection<String> excludedTables, final ConfigurationProperties props) {
- Map<String, SingleTableDataNode> result = new
TreeMap<>(String.CASE_INSENSITIVE_ORDER);
+ Map<String, SingleTableDataNode> result = new ConcurrentHashMap<>();
boolean checkDuplicateTable =
props.getValue(ConfigurationPropertyKey.CHECK_DUPLICATE_TABLE_ENABLED);
for (Entry<String, DataSource> entry : dataSourceMap.entrySet()) {
Map<String, SingleTableDataNode> dataNodeMap = load(databaseType,
entry.getKey(), entry.getValue(), excludedTables);
for (String each : dataNodeMap.keySet()) {
- SingleTableDataNode existDataNode = result.putIfAbsent(each,
dataNodeMap.get(each));
+ SingleTableDataNode existDataNode =
result.putIfAbsent(each.toLowerCase(), dataNodeMap.get(each));
if (checkDuplicateTable) {
Preconditions.checkState(null == existDataNode, "Single
table conflict, there are multiple tables `%s` existed.", each);
}
diff --git
a/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/main/java/org/apache/shardingsphere/singletable/rule/SingleTableRule.java
b/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/main/java/org/apache/shardingsphere/singletable/rule/SingleTableRule.java
index bcdd6ed..3de700f 100644
---
a/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/main/java/org/apache/shardingsphere/singletable/rule/SingleTableRule.java
+++
b/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/main/java/org/apache/shardingsphere/singletable/rule/SingleTableRule.java
@@ -94,7 +94,8 @@ public final class SingleTableRule implements SchemaRule,
DataNodeContainedRule,
* @return whether single tables are in same data source or not
*/
public boolean isSingleTablesInSameDataSource(final Collection<String>
singleTableNames) {
- Set<String> dataSourceNames =
singleTableNames.stream().map(singleTableDataNodes::get).filter(Objects::nonNull).map(SingleTableDataNode::getDataSourceName).collect(Collectors.toSet());
+ Set<String> dataSourceNames = singleTableNames.stream().map(each ->
singleTableDataNodes.get(each.toLowerCase()))
+
.filter(Objects::nonNull).map(SingleTableDataNode::getDataSourceName).collect(Collectors.toSet());
return dataSourceNames.size() <= 1;
}
@@ -109,7 +110,7 @@ public final class SingleTableRule implements SchemaRule,
DataNodeContainedRule,
if (!isSingleTablesInSameDataSource(singleTableNames)) {
return false;
}
- SingleTableDataNode dataNode =
singleTableDataNodes.get(singleTableNames.iterator().next());
+ SingleTableDataNode dataNode =
singleTableDataNodes.get(singleTableNames.iterator().next().toLowerCase());
for (RouteUnit each : routeContext.getRouteUnits()) {
if
(!each.getDataSourceMapper().getLogicName().equals(dataNode.getDataSourceName()))
{
return false;
@@ -134,19 +135,19 @@ public final class SingleTableRule implements SchemaRule,
DataNodeContainedRule,
* @return sharding logic table names
*/
public Collection<String> getSingleTableNames(final Collection<String>
logicTableNames) {
- return
logicTableNames.stream().filter(singleTableDataNodes::containsKey).collect(Collectors.toCollection(LinkedList::new));
+ return logicTableNames.stream().filter(each ->
singleTableDataNodes.containsKey(each.toLowerCase())).collect(Collectors.toCollection(LinkedList::new));
}
@Override
- public void addDataNode(final String tableName, final String
dataSourceName) {
- if (dataSourceNames.contains(dataSourceName) &&
!singleTableDataNodes.containsKey(tableName)) {
- singleTableDataNodes.put(tableName, new
SingleTableDataNode(tableName, dataSourceName));
+ public void put(final String tableName, final String dataSourceName) {
+ if (dataSourceNames.contains(dataSourceName)) {
+ singleTableDataNodes.put(tableName.toLowerCase(), new
SingleTableDataNode(tableName, dataSourceName));
}
}
@Override
- public void dropDataNode(final String tableName) {
- singleTableDataNodes.remove(tableName);
+ public void remove(final String tableName) {
+ singleTableDataNodes.remove(tableName.toLowerCase());
}
private Collection<String> getExcludedTables(final
Collection<ShardingSphereRule> rules) {
@@ -187,12 +188,12 @@ public final class SingleTableRule implements SchemaRule,
DataNodeContainedRule,
@Override
public Collection<String> getAllTables() {
- return singleTableDataNodes.keySet();
+ return
singleTableDataNodes.values().stream().map(SingleTableDataNode::getTableName).collect(Collectors.toList());
}
@Override
public Collection<String> getTables() {
- return singleTableDataNodes.keySet();
+ return
singleTableDataNodes.values().stream().map(SingleTableDataNode::getTableName).collect(Collectors.toList());
}
@Override
diff --git
a/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/test/java/org/apache/shardingsphere/singletable/rule/SingleTableDataNodeLoaderTest.java
b/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/test/java/org/apache/shardingsphere/singletable/rule/SingleTableDataNodeLoaderTest.java
index dfaf7a1..3d383f1 100644
---
a/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/test/java/org/apache/shardingsphere/singletable/rule/SingleTableDataNodeLoaderTest.java
+++
b/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/test/java/org/apache/shardingsphere/singletable/rule/SingleTableDataNodeLoaderTest.java
@@ -109,11 +109,8 @@ public final class SingleTableDataNodeLoaderTest {
assertFalse(dataNodeMap.containsKey("salary"));
assertFalse(dataNodeMap.containsKey("student"));
assertTrue(dataNodeMap.containsKey("dept"));
- assertTrue(dataNodeMap.containsKey("DEPT"));
assertTrue(dataNodeMap.containsKey("teacher"));
- assertTrue(dataNodeMap.containsKey("TEACHER"));
assertTrue(dataNodeMap.containsKey("class"));
- assertTrue(dataNodeMap.containsKey("CLASS"));
assertThat(dataNodeMap.get("dept").getDataSourceName(), is("ds0"));
assertThat(dataNodeMap.get("teacher").getDataSourceName(), is("ds1"));
assertThat(dataNodeMap.get("class").getDataSourceName(), is("ds1"));
@@ -138,11 +135,8 @@ public final class SingleTableDataNodeLoaderTest {
assertFalse(dataNodeMap.containsKey("salary"));
assertFalse(dataNodeMap.containsKey("student"));
assertTrue(dataNodeMap.containsKey("dept"));
- assertTrue(dataNodeMap.containsKey("DEPT"));
assertTrue(dataNodeMap.containsKey("teacher"));
- assertTrue(dataNodeMap.containsKey("TEACHER"));
assertTrue(dataNodeMap.containsKey("class"));
- assertTrue(dataNodeMap.containsKey("CLASS"));
assertThat(dataNodeMap.get("dept").getDataSourceName(), is("ds0"));
assertThat(dataNodeMap.get("teacher").getDataSourceName(), is("ds1"));
assertThat(dataNodeMap.get("class").getDataSourceName(), is("ds1"));
diff --git
a/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/test/java/org/apache/shardingsphere/singletable/rule/SingleTableRuleTest.java
b/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/test/java/org/apache/shardingsphere/singletable/rule/SingleTableRuleTest.java
index 79a2794..9cd1881 100644
---
a/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/test/java/org/apache/shardingsphere/singletable/rule/SingleTableRuleTest.java
+++
b/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/test/java/org/apache/shardingsphere/singletable/rule/SingleTableRuleTest.java
@@ -30,7 +30,6 @@ import java.sql.SQLException;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
-import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@@ -39,6 +38,7 @@ import java.util.stream.Collectors;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -94,9 +94,8 @@ public final class SingleTableRuleTest {
Collections.singletonList(dataNodeContainedRule), new
ConfigurationProperties(new Properties()));
Map<String, SingleTableDataNode> actual =
singleTableRule.getSingleTableDataNodes();
assertThat(actual.size(), is(2));
- Iterator<SingleTableDataNode> iterator = actual.values().iterator();
- assertThat(iterator.next().getTableName(), is("employee"));
- assertThat(iterator.next().getTableName(), is("student"));
+ assertTrue(actual.containsKey("employee"));
+ assertTrue(actual.containsKey("student"));
}
@Test
@@ -107,8 +106,7 @@ public final class SingleTableRuleTest {
Collections.singletonList(dataNodeContainedRule), new
ConfigurationProperties(new Properties()));
Map<String, SingleTableDataNode> actual =
singleTableRule.getSingleTableDataNodes();
assertThat(actual.size(), is(2));
- Iterator<SingleTableDataNode> iterator = actual.values().iterator();
- assertThat(iterator.next().getTableName(), is("employee"));
- assertThat(iterator.next().getTableName(), is("student"));
+ assertTrue(actual.containsKey("employee"));
+ assertTrue(actual.containsKey("student"));
}
}
diff --git
a/shardingsphere-test/shardingsphere-rewrite-test/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameterized/scenario/EncryptSQLRewriterParameterizedTest.java
b/shardingsphere-test/shardingsphere-rewrite-test/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameterized/scenario/EncryptSQLRewriterParameterizedTest.java
index 261ea1e..92bd5d9 100644
---
a/shardingsphere-test/shardingsphere-rewrite-test/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameterized/scenario/EncryptSQLRewriterParameterizedTest.java
+++
b/shardingsphere-test/shardingsphere-rewrite-test/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameterized/scenario/EncryptSQLRewriterParameterizedTest.java
@@ -71,8 +71,8 @@ public final class EncryptSQLRewriterParameterizedTest
extends AbstractSQLRewrit
protected void mockRules(final Collection<ShardingSphereRule> rules) {
Optional<SingleTableRule> singleTableRule = rules.stream().filter(each
-> each instanceof SingleTableRule).map(each -> (SingleTableRule)
each).findFirst();
if (singleTableRule.isPresent()) {
- singleTableRule.get().addDataNode("t_account", "encrypt_ds");
- singleTableRule.get().addDataNode("t_account_bak", "encrypt_ds");
+ singleTableRule.get().put("t_account", "encrypt_ds");
+ singleTableRule.get().put("t_account_bak", "encrypt_ds");
}
}
}
diff --git
a/shardingsphere-test/shardingsphere-rewrite-test/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameterized/scenario/ShardingSQLRewriterParameterizedTest.java
b/shardingsphere-test/shardingsphere-rewrite-test/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameterized/scenario/ShardingSQLRewriterParameterizedTest.java
index 64115d9..49eff62 100644
---
a/shardingsphere-test/shardingsphere-rewrite-test/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameterized/scenario/ShardingSQLRewriterParameterizedTest.java
+++
b/shardingsphere-test/shardingsphere-rewrite-test/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameterized/scenario/ShardingSQLRewriterParameterizedTest.java
@@ -72,8 +72,8 @@ public final class ShardingSQLRewriterParameterizedTest
extends AbstractSQLRewri
protected void mockRules(final Collection<ShardingSphereRule> rules) {
Optional<SingleTableRule> singleTableRule = rules.stream().filter(each
-> each instanceof SingleTableRule).map(each -> (SingleTableRule)
each).findFirst();
if (singleTableRule.isPresent()) {
- singleTableRule.get().addDataNode("t_single", "db");
- singleTableRule.get().addDataNode("t_single_extend", "db");
+ singleTableRule.get().put("t_single", "db");
+ singleTableRule.get().put("t_single_extend", "db");
}
}