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 676abda431e Refactor GlobalRuleBuilder from database map to database
collection (#33886)
676abda431e is described below
commit 676abda431e062ab9dc3b7b30529f99b5f4a2d7b
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Dec 3 12:34:12 2024 +0800
Refactor GlobalRuleBuilder from database map to database collection (#33886)
* Refactor GlobalRuleBuilder from database map to database collection
* Refactor GlobalRuleBuilder from database map to database collection
* Refactor GlobalRuleBuilder from database map to database collection
* Refactor GlobalRuleBuilder from database map to database collection
* Refactor GlobalRuleBuilder from database map to database collection
* Refactor GlobalRuleBuilder from database map to database collection
* Refactor GlobalRuleBuilder from database map to database collection
* Refactor GlobalRuleBuilder from database map to database collection
---
.../infra/metadata/ShardingSphereMetaData.java | 4 ++--
.../rule/builder/global/GlobalRuleBuilder.java | 4 ++--
.../rule/builder/global/GlobalRulesBuilder.java | 4 ++--
.../infra/rule/scope/GlobalRule.java | 4 ++--
.../infra/metadata/ShardingSphereMetaDataTest.java | 5 ++---
.../builder/fixture/FixtureGlobalRuleBuilder.java | 4 ++--
.../jdbc/adapter/PreparedStatementAdapterTest.java | 2 +-
.../driver/jdbc/adapter/StatementAdapterTest.java | 4 ++--
.../connection/ShardingSphereConnectionTest.java | 2 +-
.../UnsupportedOperationPreparedStatementTest.java | 2 +-
.../UnsupportedOperationStatementTest.java | 2 +-
.../rule/builder/AuthorityRuleBuilder.java | 4 ++--
.../rule/builder/GlobalClockRuleBuilder.java | 4 ++--
.../rule/builder/GlobalClockRuleBuilderTest.java | 2 +-
.../logging/rule/builder/LoggingRuleBuilder.java | 4 ++--
.../rule/builder/LoggingRuleBuilderTest.java | 6 +++---
.../sqlfederation/rule/SQLFederationRule.java | 6 +++---
.../rule/builder/SQLFederationRuleBuilder.java | 4 ++--
.../engine/SQLFederationEngineTest.java | 14 ++++++-------
.../optimizer/context/OptimizerContextFactory.java | 3 ++-
.../parser/OptimizerParserContextFactory.java | 10 ++++-----
.../context/planner/OptimizerMetaDataFactory.java | 8 ++++----
.../optimizer/context/OptimizerContextTest.java | 14 ++++++-------
.../parser/rule/builder/SQLParserRuleBuilder.java | 4 ++--
.../rule/builder/SQLParserRuleBuilderTest.java | 2 +-
.../rule/builder/SQLTranslatorRuleBuilder.java | 4 ++--
.../rule/builder/TimestampServiceRuleBuilder.java | 4 ++--
.../transaction/rule/TransactionRule.java | 17 ++++++++-------
.../rule/builder/TransactionRuleBuilder.java | 4 ++--
.../transaction/rule/TransactionRuleTest.java | 24 +++++++++++-----------
.../rule/builder/TransactionRuleBuilderTest.java | 3 +--
.../metadata/manager/SchemaMetaDataManager.java | 8 ++++----
.../StandaloneMetaDataManagerPersistService.java | 16 +++++++--------
.../handler/ProxyBackendHandlerFactoryTest.java | 2 +-
...enGaussSystemCatalogAdminQueryExecutorTest.java | 14 ++++++-------
.../OpenGaussAuthenticationEngineTest.java | 2 +-
.../PostgreSQLAuthenticationEngineTest.java | 2 +-
37 files changed, 109 insertions(+), 113 deletions(-)
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaData.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaData.java
index 594d99fbc9e..6a64055d2e2 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaData.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaData.java
@@ -108,7 +108,7 @@ public final class ShardingSphereMetaData {
public void addDatabase(final String databaseName, final DatabaseType
protocolType, final ConfigurationProperties props) {
ShardingSphereDatabase database =
ShardingSphereDatabase.create(databaseName, protocolType, props);
databases.put(database.getName(), database);
- globalRuleMetaData.getRules().forEach(each -> ((GlobalRule)
each).refresh(databases, GlobalRuleChangedType.DATABASE_CHANGED));
+ globalRuleMetaData.getRules().forEach(each -> ((GlobalRule)
each).refresh(databases.values(), GlobalRuleChangedType.DATABASE_CHANGED));
}
/**
@@ -122,7 +122,7 @@ public final class ShardingSphereMetaData {
@SneakyThrows(Exception.class)
private void cleanResources(final ShardingSphereDatabase database) {
- globalRuleMetaData.getRules().forEach(each -> ((GlobalRule)
each).refresh(databases, GlobalRuleChangedType.DATABASE_CHANGED));
+ globalRuleMetaData.getRules().forEach(each -> ((GlobalRule)
each).refresh(databases.values(), GlobalRuleChangedType.DATABASE_CHANGED));
for (ShardingSphereRule each : database.getRuleMetaData().getRules()) {
if (each instanceof AutoCloseable) {
((AutoCloseable) each).close();
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/builder/global/GlobalRuleBuilder.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/builder/global/GlobalRuleBuilder.java
index 6188828fa35..901f7ae21d9 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/builder/global/GlobalRuleBuilder.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/builder/global/GlobalRuleBuilder.java
@@ -24,7 +24,7 @@ import
org.apache.shardingsphere.infra.rule.builder.RuleBuilder;
import org.apache.shardingsphere.infra.rule.scope.GlobalRule;
import org.apache.shardingsphere.infra.spi.annotation.SingletonSPI;
-import java.util.Map;
+import java.util.Collection;
/**
* Global rule builder.
@@ -42,5 +42,5 @@ public interface GlobalRuleBuilder<T extends
RuleConfiguration> extends RuleBuil
* @param props props
* @return global rule
*/
- GlobalRule build(T ruleConfig, Map<String, ShardingSphereDatabase>
databases, ConfigurationProperties props);
+ GlobalRule build(T ruleConfig, Collection<ShardingSphereDatabase>
databases, ConfigurationProperties props);
}
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/builder/global/GlobalRulesBuilder.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/builder/global/GlobalRulesBuilder.java
index eabd82769b4..3786f91c4d7 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/builder/global/GlobalRulesBuilder.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/builder/global/GlobalRulesBuilder.java
@@ -52,7 +52,7 @@ public final class GlobalRulesBuilder {
final Map<String,
ShardingSphereDatabase> databases, final ConfigurationProperties props) {
Collection<ShardingSphereRule> result = new LinkedList<>();
for (Entry<RuleConfiguration, GlobalRuleBuilder> entry :
getRuleBuilderMap(globalRuleConfigs).entrySet()) {
- result.add(entry.getValue().build(entry.getKey(), databases,
props));
+ result.add(entry.getValue().build(entry.getKey(),
databases.values(), props));
}
return result;
}
@@ -93,6 +93,6 @@ public final class GlobalRulesBuilder {
@SuppressWarnings("unchecked")
public static Collection<ShardingSphereRule> buildSingleRules(final
RuleConfiguration globalRuleConfig, final Map<String, ShardingSphereDatabase>
databases, final ConfigurationProperties props) {
return OrderedSPILoader.getServices(GlobalRuleBuilder.class,
Collections.singleton(globalRuleConfig)).entrySet()
- .stream().map(each -> each.getValue().build(each.getKey(),
databases, props)).collect(Collectors.toList());
+ .stream().map(each -> each.getValue().build(each.getKey(),
databases.values(), props)).collect(Collectors.toList());
}
}
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/scope/GlobalRule.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/scope/GlobalRule.java
index 06ac169be08..4ccc001ac38 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/scope/GlobalRule.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/scope/GlobalRule.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.infra.rule.scope;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
-import java.util.Map;
+import java.util.Collection;
/**
* Global rule.
@@ -33,7 +33,7 @@ public interface GlobalRule extends ShardingSphereRule {
* @param databases changed databases
* @param changedType changed type
*/
- default void refresh(final Map<String, ShardingSphereDatabase> databases,
GlobalRuleChangedType changedType) {
+ default void refresh(final Collection<ShardingSphereDatabase> databases,
GlobalRuleChangedType changedType) {
}
/**
diff --git
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaDataTest.java
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaDataTest.java
index 45ca20c57c4..21d57c114c6 100644
---
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaDataTest.java
+++
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaDataTest.java
@@ -72,8 +72,7 @@ class ShardingSphereMetaDataTest {
Map<String, ShardingSphereDatabase> databases = new
HashMap<>(Collections.singletonMap("foo_db", database));
ShardingSphereMetaData metaData = new
ShardingSphereMetaData(databases, mock(ResourceMetaData.class), new
RuleMetaData(Collections.singleton(globalRule)), configProps);
metaData.addDatabase("foo_db", databaseType, configProps);
- assertThat(metaData.getDatabases(), is(databases));
- verify(globalRule).refresh(databases,
GlobalRuleChangedType.DATABASE_CHANGED);
+ assertThat(metaData.getDatabase("foo_db"), is(database));
}
@Test
@@ -91,7 +90,7 @@ class ShardingSphereMetaDataTest {
assertTrue(metaData.getDatabases().isEmpty());
Awaitility.await().pollDelay(10L,
TimeUnit.MILLISECONDS).until(dataSource::isClosed);
assertTrue(dataSource.isClosed());
- verify(globalRule).refresh(metaData.getDatabases(),
GlobalRuleChangedType.DATABASE_CHANGED);
+ verify(globalRule).refresh(metaData.getAllDatabases(),
GlobalRuleChangedType.DATABASE_CHANGED);
}
@Test
diff --git
a/infra/common/src/test/java/org/apache/shardingsphere/infra/rule/builder/fixture/FixtureGlobalRuleBuilder.java
b/infra/common/src/test/java/org/apache/shardingsphere/infra/rule/builder/fixture/FixtureGlobalRuleBuilder.java
index 95743d650a3..ca7f81f52b3 100644
---
a/infra/common/src/test/java/org/apache/shardingsphere/infra/rule/builder/fixture/FixtureGlobalRuleBuilder.java
+++
b/infra/common/src/test/java/org/apache/shardingsphere/infra/rule/builder/fixture/FixtureGlobalRuleBuilder.java
@@ -21,12 +21,12 @@ import
org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.rule.builder.global.GlobalRuleBuilder;
-import java.util.Map;
+import java.util.Collection;
public final class FixtureGlobalRuleBuilder implements
GlobalRuleBuilder<FixtureGlobalRuleConfiguration> {
@Override
- public FixtureGlobalRule build(final FixtureGlobalRuleConfiguration
ruleConfig, final Map<String, ShardingSphereDatabase> databases, final
ConfigurationProperties props) {
+ public FixtureGlobalRule build(final FixtureGlobalRuleConfiguration
ruleConfig, final Collection<ShardingSphereDatabase> databases, final
ConfigurationProperties props) {
return new FixtureGlobalRule();
}
diff --git
a/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/adapter/PreparedStatementAdapterTest.java
b/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/adapter/PreparedStatementAdapterTest.java
index 15c3a675e23..1ab61816694 100644
---
a/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/adapter/PreparedStatementAdapterTest.java
+++
b/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/adapter/PreparedStatementAdapterTest.java
@@ -68,7 +68,7 @@ class PreparedStatementAdapterTest {
when(connection.getContextManager().getMetaDataContexts().getMetaData().getGlobalRuleMetaData()).thenReturn(
new RuleMetaData(Arrays.asList(
new SQLParserRule(new
DefaultSQLParserRuleConfigurationBuilder().build()),
- new SQLFederationRule(new
DefaultSQLFederationRuleConfigurationBuilder().build(),
Collections.emptyMap()))));
+ new SQLFederationRule(new
DefaultSQLFederationRuleConfigurationBuilder().build(),
Collections.emptyList()))));
when(connection.getContextManager().getMetaDataContexts().getMetaData().getProps()).thenReturn(new
ConfigurationProperties(new Properties()));
when(connection.getContextManager().getMetaDataContexts().getMetaData().getDatabase(
connection.getCurrentDatabaseName()).getProtocolType()).thenReturn(TypedSPILoader.getService(DatabaseType.class,
"MySQL"));
diff --git
a/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/adapter/StatementAdapterTest.java
b/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/adapter/StatementAdapterTest.java
index 3b68f95f3a4..21147a5d94a 100644
---
a/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/adapter/StatementAdapterTest.java
+++
b/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/adapter/StatementAdapterTest.java
@@ -235,7 +235,7 @@ class StatementAdapterTest {
private ShardingSphereStatement mockShardingSphereStatement(final
Statement... statements) {
ShardingSphereConnection connection =
mock(ShardingSphereConnection.class, RETURNS_DEEP_STUBS);
RuleMetaData globalRuleMetaData = new RuleMetaData(Arrays.asList(
- new SQLFederationRule(new
DefaultSQLFederationRuleConfigurationBuilder().build(), Collections.emptyMap()),
+ new SQLFederationRule(new
DefaultSQLFederationRuleConfigurationBuilder().build(),
Collections.emptyList()),
new SQLParserRule(new
DefaultSQLParserRuleConfigurationBuilder().build())));
when(connection.getContextManager().getMetaDataContexts().getMetaData().getGlobalRuleMetaData()).thenReturn(globalRuleMetaData);
when(connection.getContextManager().getMetaDataContexts().getMetaData().getProps()).thenReturn(new
ConfigurationProperties(new Properties()));
@@ -257,7 +257,7 @@ class StatementAdapterTest {
DatabaseType databaseType =
TypedSPILoader.getService(DatabaseType.class, "FIXTURE");
when(connection.getContextManager().getMetaDataContexts().getMetaData().getDatabase("db").getProtocolType()).thenReturn(databaseType);
when(connection.getContextManager().getMetaDataContexts().getMetaData().getGlobalRuleMetaData()).thenReturn(new
RuleMetaData(Arrays.asList(
- new SQLFederationRule(new
DefaultSQLFederationRuleConfigurationBuilder().build(), Collections.emptyMap()),
+ new SQLFederationRule(new
DefaultSQLFederationRuleConfigurationBuilder().build(),
Collections.emptyList()),
new SQLParserRule(new
DefaultSQLParserRuleConfigurationBuilder().build()))));
when(connection.getContextManager().getMetaDataContexts().getMetaData().getProps()).thenReturn(new
ConfigurationProperties(new Properties()));
ShardingSphereStatement result = new
ShardingSphereStatement(connection, null);
diff --git
a/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/core/connection/ShardingSphereConnectionTest.java
b/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/core/connection/ShardingSphereConnectionTest.java
index 9169ab0170d..c0c9014eed9 100644
---
a/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/core/connection/ShardingSphereConnectionTest.java
+++
b/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/core/connection/ShardingSphereConnectionTest.java
@@ -210,6 +210,6 @@ class ShardingSphereConnectionTest {
}
private TransactionRule mockTransactionRule() {
- return new TransactionRule(new
TransactionRuleConfiguration(TransactionType.LOCAL.name(), "", new
Properties()), Collections.emptyMap());
+ return new TransactionRule(new
TransactionRuleConfiguration(TransactionType.LOCAL.name(), "", new
Properties()), Collections.emptyList());
}
}
diff --git
a/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/unsupported/UnsupportedOperationPreparedStatementTest.java
b/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/unsupported/UnsupportedOperationPreparedStatementTest.java
index c042e94bd0f..3c2e0294ca1 100644
---
a/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/unsupported/UnsupportedOperationPreparedStatementTest.java
+++
b/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/unsupported/UnsupportedOperationPreparedStatementTest.java
@@ -54,7 +54,7 @@ class UnsupportedOperationPreparedStatementTest {
when(connection.getCurrentDatabaseName()).thenReturn(DefaultDatabase.LOGIC_NAME);
when(connection.getContextManager().getMetaDataContexts().getMetaData().getGlobalRuleMetaData()).thenReturn(new
RuleMetaData(Arrays.asList(
new SQLParserRule(new
DefaultSQLParserRuleConfigurationBuilder().build()),
- new SQLFederationRule(new
DefaultSQLFederationRuleConfigurationBuilder().build(),
Collections.emptyMap()))));
+ new SQLFederationRule(new
DefaultSQLFederationRuleConfigurationBuilder().build(),
Collections.emptyList()))));
when(connection.getContextManager().getMetaDataContexts().getMetaData().getDatabase(
connection.getCurrentDatabaseName()).getProtocolType()).thenReturn(TypedSPILoader.getService(DatabaseType.class,
"MySQL"));
when(connection.getContextManager().getMetaDataContexts().getMetaData().getProps()).thenReturn(new
ConfigurationProperties(new Properties()));
diff --git
a/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/unsupported/UnsupportedOperationStatementTest.java
b/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/unsupported/UnsupportedOperationStatementTest.java
index d1407916d5d..ed6da52a7ce 100644
---
a/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/unsupported/UnsupportedOperationStatementTest.java
+++
b/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/unsupported/UnsupportedOperationStatementTest.java
@@ -52,7 +52,7 @@ class UnsupportedOperationStatementTest {
when(connection.getContextManager().getMetaDataContexts().getMetaData().getDatabase("db").getProtocolType()).thenReturn(databaseType);
when(connection.getContextManager().getMetaDataContexts().getMetaData().getGlobalRuleMetaData()).thenReturn(new
RuleMetaData(
Arrays.asList(
- new SQLFederationRule(new
DefaultSQLFederationRuleConfigurationBuilder().build(), Collections.emptyMap()),
+ new SQLFederationRule(new
DefaultSQLFederationRuleConfigurationBuilder().build(),
Collections.emptyList()),
new SQLParserRule(new
DefaultSQLParserRuleConfigurationBuilder().build()))));
when(connection.getContextManager().getMetaDataContexts().getMetaData().getProps()).thenReturn(new
ConfigurationProperties(new Properties()));
shardingSphereStatement = new ShardingSphereStatement(connection,
null);
diff --git
a/kernel/authority/core/src/main/java/org/apache/shardingsphere/authority/rule/builder/AuthorityRuleBuilder.java
b/kernel/authority/core/src/main/java/org/apache/shardingsphere/authority/rule/builder/AuthorityRuleBuilder.java
index e85c7891134..316a08f15b3 100644
---
a/kernel/authority/core/src/main/java/org/apache/shardingsphere/authority/rule/builder/AuthorityRuleBuilder.java
+++
b/kernel/authority/core/src/main/java/org/apache/shardingsphere/authority/rule/builder/AuthorityRuleBuilder.java
@@ -24,7 +24,7 @@ import
org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.rule.builder.global.GlobalRuleBuilder;
-import java.util.Map;
+import java.util.Collection;
/**
* Authority rule builder.
@@ -32,7 +32,7 @@ import java.util.Map;
public final class AuthorityRuleBuilder implements
GlobalRuleBuilder<AuthorityRuleConfiguration> {
@Override
- public AuthorityRule build(final AuthorityRuleConfiguration ruleConfig,
final Map<String, ShardingSphereDatabase> databases, final
ConfigurationProperties props) {
+ public AuthorityRule build(final AuthorityRuleConfiguration ruleConfig,
final Collection<ShardingSphereDatabase> databases, final
ConfigurationProperties props) {
return new AuthorityRule(ruleConfig);
}
diff --git
a/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/rule/builder/GlobalClockRuleBuilder.java
b/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/rule/builder/GlobalClockRuleBuilder.java
index 79e9bba3e1e..4330bec3a9e 100644
---
a/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/rule/builder/GlobalClockRuleBuilder.java
+++
b/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/rule/builder/GlobalClockRuleBuilder.java
@@ -24,7 +24,7 @@ import
org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.rule.builder.global.GlobalRuleBuilder;
-import java.util.Map;
+import java.util.Collection;
/**
* Global clock rule builder.
@@ -32,7 +32,7 @@ import java.util.Map;
public final class GlobalClockRuleBuilder implements
GlobalRuleBuilder<GlobalClockRuleConfiguration> {
@Override
- public GlobalClockRule build(final GlobalClockRuleConfiguration
ruleConfig, final Map<String, ShardingSphereDatabase> databases, final
ConfigurationProperties props) {
+ public GlobalClockRule build(final GlobalClockRuleConfiguration
ruleConfig, final Collection<ShardingSphereDatabase> databases, final
ConfigurationProperties props) {
return new GlobalClockRule(ruleConfig);
}
diff --git
a/kernel/global-clock/core/src/test/java/org/apache/shardingsphere/globalclock/rule/builder/GlobalClockRuleBuilderTest.java
b/kernel/global-clock/core/src/test/java/org/apache/shardingsphere/globalclock/rule/builder/GlobalClockRuleBuilderTest.java
index b4fa1a01cf0..caa4fed3040 100644
---
a/kernel/global-clock/core/src/test/java/org/apache/shardingsphere/globalclock/rule/builder/GlobalClockRuleBuilderTest.java
+++
b/kernel/global-clock/core/src/test/java/org/apache/shardingsphere/globalclock/rule/builder/GlobalClockRuleBuilderTest.java
@@ -38,6 +38,6 @@ class GlobalClockRuleBuilderTest {
void assertBuild() {
GlobalClockRuleConfiguration ruleConfig = new
GlobalClockRuleConfiguration("FIXTURE", "FIXTURE", false, new Properties());
Map<GlobalRuleConfiguration, GlobalRuleBuilder> builders =
OrderedSPILoader.getServices(GlobalRuleBuilder.class,
Collections.singleton(ruleConfig));
- assertThat(builders.get(ruleConfig).build(ruleConfig,
Collections.emptyMap(), null), instanceOf(GlobalClockRule.class));
+ assertThat(builders.get(ruleConfig).build(ruleConfig,
Collections.emptyList(), null), instanceOf(GlobalClockRule.class));
}
}
diff --git
a/kernel/logging/core/src/main/java/org/apache/shardingsphere/logging/rule/builder/LoggingRuleBuilder.java
b/kernel/logging/core/src/main/java/org/apache/shardingsphere/logging/rule/builder/LoggingRuleBuilder.java
index 1f331e524d3..78d102c8dbc 100644
---
a/kernel/logging/core/src/main/java/org/apache/shardingsphere/logging/rule/builder/LoggingRuleBuilder.java
+++
b/kernel/logging/core/src/main/java/org/apache/shardingsphere/logging/rule/builder/LoggingRuleBuilder.java
@@ -26,7 +26,7 @@ import
org.apache.shardingsphere.logging.constant.LoggingOrder;
import org.apache.shardingsphere.logging.logger.ShardingSphereLogger;
import org.apache.shardingsphere.logging.rule.LoggingRule;
-import java.util.Map;
+import java.util.Collection;
import java.util.Optional;
import java.util.Properties;
@@ -36,7 +36,7 @@ import java.util.Properties;
public final class LoggingRuleBuilder implements
GlobalRuleBuilder<LoggingRuleConfiguration> {
@Override
- public LoggingRule build(final LoggingRuleConfiguration ruleConfig, final
Map<String, ShardingSphereDatabase> databases, final ConfigurationProperties
props) {
+ public LoggingRule build(final LoggingRuleConfiguration ruleConfig, final
Collection<ShardingSphereDatabase> databases, final ConfigurationProperties
props) {
syncLoggingRuleConfiguration(ruleConfig, props);
return new LoggingRule(ruleConfig);
}
diff --git
a/kernel/logging/core/src/test/java/org/apache/shardingsphere/logging/rule/builder/LoggingRuleBuilderTest.java
b/kernel/logging/core/src/test/java/org/apache/shardingsphere/logging/rule/builder/LoggingRuleBuilderTest.java
index 537e2a580be..030cf8882a1 100644
---
a/kernel/logging/core/src/test/java/org/apache/shardingsphere/logging/rule/builder/LoggingRuleBuilderTest.java
+++
b/kernel/logging/core/src/test/java/org/apache/shardingsphere/logging/rule/builder/LoggingRuleBuilderTest.java
@@ -44,7 +44,7 @@ class LoggingRuleBuilderTest {
ConfigurationProperties props = new
ConfigurationProperties(PropertiesBuilder.build(
new Property(LoggingConstants.SQL_SHOW,
Boolean.TRUE.toString()), new Property(LoggingConstants.SQL_SIMPLE,
Boolean.TRUE.toString())));
LoggingRuleBuilder ruleBuilder = (LoggingRuleBuilder)
OrderedSPILoader.getServices(GlobalRuleBuilder.class,
Collections.singleton(ruleConfig)).get(ruleConfig);
- LoggingRule actual = ruleBuilder.build(ruleConfig,
Collections.emptyMap(), props);
+ LoggingRule actual = ruleBuilder.build(ruleConfig,
Collections.emptyList(), props);
assertThat(actual.getConfiguration(), is(ruleConfig));
assertThat(logger.getProps().getProperty(LoggingConstants.SQL_LOG_ENABLE),
is(Boolean.TRUE.toString()));
assertThat(logger.getProps().getProperty(LoggingConstants.SQL_LOG_SIMPLE),
is(Boolean.TRUE.toString()));
@@ -58,7 +58,7 @@ class LoggingRuleBuilderTest {
LoggingRuleConfiguration ruleConfig = new
LoggingRuleConfiguration(Collections.singleton(logger),
Collections.emptyList());
ConfigurationProperties props = new ConfigurationProperties(new
Properties());
LoggingRuleBuilder ruleBuilder = (LoggingRuleBuilder)
OrderedSPILoader.getServices(GlobalRuleBuilder.class,
Collections.singleton(ruleConfig)).get(ruleConfig);
- LoggingRule actual = ruleBuilder.build(ruleConfig,
Collections.emptyMap(), props);
+ LoggingRule actual = ruleBuilder.build(ruleConfig,
Collections.emptyList(), props);
assertThat(actual.getConfiguration(), is(ruleConfig));
assertThat(props.getProps().getProperty(LoggingConstants.SQL_SHOW),
is(Boolean.TRUE.toString()));
assertThat(props.getProps().getProperty(LoggingConstants.SQL_SIMPLE),
is(Boolean.TRUE.toString()));
@@ -70,7 +70,7 @@ class LoggingRuleBuilderTest {
LoggingRuleConfiguration ruleConfig = new
LoggingRuleConfiguration(Collections.singleton(logger),
Collections.emptyList());
ConfigurationProperties props = new ConfigurationProperties(new
Properties());
LoggingRuleBuilder ruleBuilder = (LoggingRuleBuilder)
OrderedSPILoader.getServices(GlobalRuleBuilder.class,
Collections.singleton(ruleConfig)).get(ruleConfig);
- LoggingRule actual = ruleBuilder.build(ruleConfig,
Collections.emptyMap(), props);
+ LoggingRule actual = ruleBuilder.build(ruleConfig,
Collections.emptyList(), props);
assertThat(actual.getConfiguration(), is(ruleConfig));
assertFalse(logger.getProps().containsKey(LoggingConstants.SQL_LOG_ENABLE));
assertFalse(logger.getProps().containsKey(LoggingConstants.SQL_LOG_SIMPLE));
diff --git
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/rule/SQLFederationRule.java
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/rule/SQLFederationRule.java
index 6fffda59320..6db0387b068 100644
---
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/rule/SQLFederationRule.java
+++
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/rule/SQLFederationRule.java
@@ -25,7 +25,7 @@ import
org.apache.shardingsphere.sqlfederation.constant.SQLFederationOrder;
import
org.apache.shardingsphere.sqlfederation.optimizer.context.OptimizerContext;
import
org.apache.shardingsphere.sqlfederation.optimizer.context.OptimizerContextFactory;
-import java.util.Map;
+import java.util.Collection;
import java.util.concurrent.atomic.AtomicReference;
/**
@@ -38,13 +38,13 @@ public final class SQLFederationRule implements GlobalRule {
private final AtomicReference<OptimizerContext> optimizerContext;
- public SQLFederationRule(final SQLFederationRuleConfiguration ruleConfig,
final Map<String, ShardingSphereDatabase> databases) {
+ public SQLFederationRule(final SQLFederationRuleConfiguration ruleConfig,
final Collection<ShardingSphereDatabase> databases) {
configuration = ruleConfig;
optimizerContext = new
AtomicReference<>(OptimizerContextFactory.create(databases));
}
@Override
- public void refresh(final Map<String, ShardingSphereDatabase> databases,
final GlobalRuleChangedType changedType) {
+ public void refresh(final Collection<ShardingSphereDatabase> databases,
final GlobalRuleChangedType changedType) {
optimizerContext.set(OptimizerContextFactory.create(databases));
}
diff --git
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/rule/builder/SQLFederationRuleBuilder.java
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/rule/builder/SQLFederationRuleBuilder.java
index 347b9b644fc..a9459ee05df 100644
---
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/rule/builder/SQLFederationRuleBuilder.java
+++
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/rule/builder/SQLFederationRuleBuilder.java
@@ -25,7 +25,7 @@ import
org.apache.shardingsphere.sqlfederation.config.SQLFederationRuleConfigura
import org.apache.shardingsphere.sqlfederation.constant.SQLFederationOrder;
import org.apache.shardingsphere.sqlfederation.rule.SQLFederationRule;
-import java.util.Map;
+import java.util.Collection;
/**
* SQL federation rule builder.
@@ -33,7 +33,7 @@ import java.util.Map;
public final class SQLFederationRuleBuilder implements
GlobalRuleBuilder<SQLFederationRuleConfiguration> {
@Override
- public GlobalRule build(final SQLFederationRuleConfiguration ruleConfig,
final Map<String, ShardingSphereDatabase> databases, final
ConfigurationProperties props) {
+ public GlobalRule build(final SQLFederationRuleConfiguration ruleConfig,
final Collection<ShardingSphereDatabase> databases, final
ConfigurationProperties props) {
return new SQLFederationRule(ruleConfig, databases);
}
diff --git
a/kernel/sql-federation/core/src/test/java/org/apache/shardingsphere/sqlfederation/engine/SQLFederationEngineTest.java
b/kernel/sql-federation/core/src/test/java/org/apache/shardingsphere/sqlfederation/engine/SQLFederationEngineTest.java
index d1b5438505d..6b36a079c84 100644
---
a/kernel/sql-federation/core/src/test/java/org/apache/shardingsphere/sqlfederation/engine/SQLFederationEngineTest.java
+++
b/kernel/sql-federation/core/src/test/java/org/apache/shardingsphere/sqlfederation/engine/SQLFederationEngineTest.java
@@ -62,7 +62,7 @@ class SQLFederationEngineTest {
@Test
void assertDecideWhenSelectStatementContainsSystemSchema() throws
SQLException {
Collection<ShardingSphereRule> globalRules =
- Collections.singleton(new SQLFederationRule(new
SQLFederationRuleConfiguration(false, false, mock(CacheOption.class)),
Collections.emptyMap()));
+ Collections.singleton(new SQLFederationRule(new
SQLFederationRuleConfiguration(false, false, mock(CacheOption.class)),
Collections.emptyList()));
SelectStatementContext sqlStatementContext =
mock(SelectStatementContext.class, RETURNS_DEEP_STUBS);
when(sqlStatementContext.getDatabaseType()).thenReturn(databaseType);
when(sqlStatementContext.getTablesContext().getDatabaseNames()).thenReturn(Collections.singletonList("information_schema"));
@@ -87,7 +87,7 @@ class SQLFederationEngineTest {
void assertDecideWhenNotConfigSqlFederationEnabled() throws SQLException {
Collection<ShardingSphereRule> globalRules =
Collections
- .singletonList(new SQLFederationRule(new
SQLFederationRuleConfiguration(false, false, mock(CacheOption.class)),
Collections.emptyMap()));
+ .singletonList(new SQLFederationRule(new
SQLFederationRuleConfiguration(false, false, mock(CacheOption.class)),
Collections.emptyList()));
SQLFederationEngine engine = createSQLFederationEngine(globalRules,
Collections.emptyList());
RuleMetaData globalRuleMetaData = new RuleMetaData(globalRules);
assertFalse(engine.decide(mock(QueryContext.class),
globalRuleMetaData));
@@ -97,7 +97,7 @@ class SQLFederationEngineTest {
@Test
void assertDecideWhenConfigAllQueryUseSQLFederation() throws SQLException {
Collection<ShardingSphereRule> globalRules =
- Collections.singletonList(new SQLFederationRule(new
SQLFederationRuleConfiguration(true, true, mock(CacheOption.class)),
Collections.emptyMap()));
+ Collections.singletonList(new SQLFederationRule(new
SQLFederationRuleConfiguration(true, true, mock(CacheOption.class)),
Collections.emptyList()));
ShardingSphereDatabase database = new
ShardingSphereDatabase(DefaultDatabase.LOGIC_NAME,
databaseType, mock(ResourceMetaData.class,
RETURNS_DEEP_STUBS), new RuleMetaData(globalRules), Collections.emptyList());
SelectStatementContext selectStatementContext =
mock(SelectStatementContext.class, RETURNS_DEEP_STUBS);
@@ -115,7 +115,7 @@ class SQLFederationEngineTest {
@Test
void assertDecideWhenExecuteNotSelectStatement() throws SQLException {
Collection<ShardingSphereRule> globalRules =
- Collections.singletonList(new SQLFederationRule(new
SQLFederationRuleConfiguration(true, false, mock(CacheOption.class)),
Collections.emptyMap()));
+ Collections.singletonList(new SQLFederationRule(new
SQLFederationRuleConfiguration(true, false, mock(CacheOption.class)),
Collections.emptyList()));
SQLFederationEngine engine = createSQLFederationEngine(globalRules,
Collections.emptyList());
RuleMetaData globalRuleMetaData = new RuleMetaData(globalRules);
assertFalse(engine.decide(mock(QueryContext.class),
globalRuleMetaData));
@@ -125,7 +125,7 @@ class SQLFederationEngineTest {
@Test
void assertDecideWhenConfigSingleMatchedRule() throws SQLException {
Collection<ShardingSphereRule> globalRules =
- Collections.singletonList(new SQLFederationRule(new
SQLFederationRuleConfiguration(true, false, mock(CacheOption.class)),
Collections.emptyMap()));
+ Collections.singletonList(new SQLFederationRule(new
SQLFederationRuleConfiguration(true, false, mock(CacheOption.class)),
Collections.emptyList()));
Collection<ShardingSphereRule> databaseRules =
Collections.singletonList(new SQLFederationDeciderRuleMatchFixture());
ShardingSphereDatabase database = new
ShardingSphereDatabase(DefaultDatabase.LOGIC_NAME,
databaseType, mock(ResourceMetaData.class,
RETURNS_DEEP_STUBS), new RuleMetaData(globalRules), Collections.emptyList());
@@ -144,7 +144,7 @@ class SQLFederationEngineTest {
@Test
void assertDecideWhenConfigSingleNotMatchedRule() throws SQLException {
Collection<ShardingSphereRule> globalRules =
- Collections.singletonList(new SQLFederationRule(new
SQLFederationRuleConfiguration(true, false, mock(CacheOption.class)),
Collections.emptyMap()));
+ Collections.singletonList(new SQLFederationRule(new
SQLFederationRuleConfiguration(true, false, mock(CacheOption.class)),
Collections.emptyList()));
Collection<ShardingSphereRule> databaseRules =
Collections.singletonList(new SQLFederationDeciderRuleNotMatchFixture());
ShardingSphereDatabase database = new
ShardingSphereDatabase(DefaultDatabase.LOGIC_NAME,
databaseType, mock(ResourceMetaData.class,
RETURNS_DEEP_STUBS), new RuleMetaData(databaseRules), Collections.emptyList());
@@ -162,7 +162,7 @@ class SQLFederationEngineTest {
@Test
void assertDecideWhenConfigMultiRule() throws SQLException {
Collection<ShardingSphereRule> globalRules =
- Collections.singletonList(new SQLFederationRule(new
SQLFederationRuleConfiguration(true, false, mock(CacheOption.class)),
Collections.emptyMap()));
+ Collections.singletonList(new SQLFederationRule(new
SQLFederationRuleConfiguration(true, false, mock(CacheOption.class)),
Collections.emptyList()));
Collection<ShardingSphereRule> databaseRules = Arrays.asList(new
SQLFederationDeciderRuleNotMatchFixture(),
new SQLFederationDeciderRuleMatchFixture());
ShardingSphereDatabase database = new
ShardingSphereDatabase(DefaultDatabase.LOGIC_NAME,
diff --git
a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/context/OptimizerContextFactory.java
b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/context/OptimizerContextFactory.java
index 5f2a2ad1bae..75b76e8c31b 100644
---
a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/context/OptimizerContextFactory.java
+++
b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/context/OptimizerContextFactory.java
@@ -29,6 +29,7 @@ import
org.apache.shardingsphere.sqlfederation.optimizer.context.parser.Optimize
import
org.apache.shardingsphere.sqlfederation.optimizer.context.planner.OptimizerMetaData;
import
org.apache.shardingsphere.sqlfederation.optimizer.context.planner.OptimizerMetaDataFactory;
+import java.util.Collection;
import java.util.Map;
import java.util.Properties;
@@ -44,7 +45,7 @@ public final class OptimizerContextFactory {
* @param databases databases
* @return created optimizer context
*/
- public static OptimizerContext create(final Map<String,
ShardingSphereDatabase> databases) {
+ public static OptimizerContext create(final
Collection<ShardingSphereDatabase> databases) {
Map<String, OptimizerParserContext> parserContexts =
OptimizerParserContextFactory.create(databases);
// TODO consider to use sqlParserRule in global rule
SQLParserRule sqlParserRule = new SQLParserRuleBuilder().build(new
DefaultSQLParserRuleConfigurationBuilder().build(), databases, new
ConfigurationProperties(new Properties()));
diff --git
a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/context/parser/OptimizerParserContextFactory.java
b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/context/parser/OptimizerParserContextFactory.java
index 5e029871acc..9899ce4f048 100644
---
a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/context/parser/OptimizerParserContextFactory.java
+++
b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/context/parser/OptimizerParserContextFactory.java
@@ -24,8 +24,8 @@ import
org.apache.shardingsphere.infra.database.core.type.DatabaseType;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.sqlfederation.optimizer.context.parser.dialect.OptimizerSQLPropertiesBuilder;
+import java.util.Collection;
import java.util.Map;
-import java.util.Map.Entry;
/**
* Optimizer parser context factory.
@@ -39,11 +39,11 @@ public final class OptimizerParserContextFactory {
* @param databases databases
* @return created optimizer parser context map
*/
- public static Map<String, OptimizerParserContext> create(final Map<String,
ShardingSphereDatabase> databases) {
+ public static Map<String, OptimizerParserContext> create(final
Collection<ShardingSphereDatabase> databases) {
Map<String, OptimizerParserContext> result = new
CaseInsensitiveMap<>();
- for (Entry<String, ShardingSphereDatabase> entry :
databases.entrySet()) {
- DatabaseType databaseType = entry.getValue().getProtocolType();
- result.put(entry.getKey(), new
OptimizerParserContext(databaseType, new
OptimizerSQLPropertiesBuilder(databaseType).build()));
+ for (ShardingSphereDatabase each : databases) {
+ DatabaseType databaseType = each.getProtocolType();
+ result.put(each.getName(), new
OptimizerParserContext(databaseType, new
OptimizerSQLPropertiesBuilder(databaseType).build()));
}
return result;
}
diff --git
a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/context/planner/OptimizerMetaDataFactory.java
b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/context/planner/OptimizerMetaDataFactory.java
index 4a5a800648c..115d503d0fa 100644
---
a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/context/planner/OptimizerMetaDataFactory.java
+++
b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/context/planner/OptimizerMetaDataFactory.java
@@ -27,8 +27,8 @@ import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
import
org.apache.shardingsphere.sqlfederation.optimizer.metadata.schema.SQLFederationSchema;
+import java.util.Collection;
import java.util.Map;
-import java.util.Map.Entry;
/**
* Optimizer meta data factory.
@@ -44,10 +44,10 @@ public final class OptimizerMetaDataFactory {
* @param databases databases
* @return created optimizer planner context map
*/
- public static Map<String, OptimizerMetaData> create(final Map<String,
ShardingSphereDatabase> databases) {
+ public static Map<String, OptimizerMetaData> create(final
Collection<ShardingSphereDatabase> databases) {
Map<String, OptimizerMetaData> result = new
CaseInsensitiveMap<>(databases.size(), 1F);
- for (Entry<String, ShardingSphereDatabase> entry :
databases.entrySet()) {
- result.put(entry.getKey(), create(entry.getValue()));
+ for (ShardingSphereDatabase each : databases) {
+ result.put(each.getName(), create(each));
}
return result;
}
diff --git
a/kernel/sql-federation/optimizer/src/test/java/org/apache/shardingsphere/sqlfederation/optimizer/context/OptimizerContextTest.java
b/kernel/sql-federation/optimizer/src/test/java/org/apache/shardingsphere/sqlfederation/optimizer/context/OptimizerContextTest.java
index 5fd485769da..4321aa763e7 100644
---
a/kernel/sql-federation/optimizer/src/test/java/org/apache/shardingsphere/sqlfederation/optimizer/context/OptimizerContextTest.java
+++
b/kernel/sql-federation/optimizer/src/test/java/org/apache/shardingsphere/sqlfederation/optimizer/context/OptimizerContextTest.java
@@ -17,7 +17,6 @@
package org.apache.shardingsphere.sqlfederation.optimizer.context;
-import org.apache.shardingsphere.infra.database.core.DefaultDatabase;
import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
@@ -38,24 +37,25 @@ class OptimizerContextTest {
@Test
void assertGetSqlParserRule() {
- OptimizerContext actual =
OptimizerContextFactory.create(Collections.singletonMap(DefaultDatabase.LOGIC_NAME,
createShardingSphereDatabase()));
+ OptimizerContext actual =
OptimizerContextFactory.create(Collections.singleton(mockDatabase()));
assertThat(actual.getSqlParserRule(), instanceOf(SQLParserRule.class));
}
@Test
void assertGetParserContext() {
- OptimizerContext actual =
OptimizerContextFactory.create(Collections.singletonMap(DefaultDatabase.LOGIC_NAME,
createShardingSphereDatabase()));
- assertThat(actual.getParserContext(DefaultDatabase.LOGIC_NAME),
instanceOf(OptimizerParserContext.class));
+ OptimizerContext actual =
OptimizerContextFactory.create(Collections.singleton(mockDatabase()));
+ assertThat(actual.getParserContext("foo_db"),
instanceOf(OptimizerParserContext.class));
}
@Test
void assertGetOptimizerMetaData() {
- OptimizerContext actual =
OptimizerContextFactory.create(Collections.singletonMap(DefaultDatabase.LOGIC_NAME,
createShardingSphereDatabase()));
- assertThat(actual.getMetaData(DefaultDatabase.LOGIC_NAME),
instanceOf(OptimizerMetaData.class));
+ OptimizerContext actual =
OptimizerContextFactory.create(Collections.singleton(mockDatabase()));
+ assertThat(actual.getMetaData("foo_db"),
instanceOf(OptimizerMetaData.class));
}
- private ShardingSphereDatabase createShardingSphereDatabase() {
+ private ShardingSphereDatabase mockDatabase() {
ShardingSphereDatabase result = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
+ when(result.getName()).thenReturn("foo_db");
when(result.getProtocolType()).thenReturn(TypedSPILoader.getService(DatabaseType.class,
"MySQL"));
return result;
}
diff --git
a/kernel/sql-parser/core/src/main/java/org/apache/shardingsphere/parser/rule/builder/SQLParserRuleBuilder.java
b/kernel/sql-parser/core/src/main/java/org/apache/shardingsphere/parser/rule/builder/SQLParserRuleBuilder.java
index b02b0e2c167..31291891ddb 100644
---
a/kernel/sql-parser/core/src/main/java/org/apache/shardingsphere/parser/rule/builder/SQLParserRuleBuilder.java
+++
b/kernel/sql-parser/core/src/main/java/org/apache/shardingsphere/parser/rule/builder/SQLParserRuleBuilder.java
@@ -24,7 +24,7 @@ import
org.apache.shardingsphere.parser.config.SQLParserRuleConfiguration;
import org.apache.shardingsphere.parser.constant.SQLParserOrder;
import org.apache.shardingsphere.parser.rule.SQLParserRule;
-import java.util.Map;
+import java.util.Collection;
/**
* SQL parser rule builder.
@@ -32,7 +32,7 @@ import java.util.Map;
public final class SQLParserRuleBuilder implements
GlobalRuleBuilder<SQLParserRuleConfiguration> {
@Override
- public SQLParserRule build(final SQLParserRuleConfiguration ruleConfig,
final Map<String, ShardingSphereDatabase> databases, final
ConfigurationProperties props) {
+ public SQLParserRule build(final SQLParserRuleConfiguration ruleConfig,
final Collection<ShardingSphereDatabase> databases, final
ConfigurationProperties props) {
return new SQLParserRule(ruleConfig);
}
diff --git
a/kernel/sql-parser/core/src/test/java/org/apache/shardingsphere/parser/rule/builder/SQLParserRuleBuilderTest.java
b/kernel/sql-parser/core/src/test/java/org/apache/shardingsphere/parser/rule/builder/SQLParserRuleBuilderTest.java
index 3477814873f..6688254a1fb 100644
---
a/kernel/sql-parser/core/src/test/java/org/apache/shardingsphere/parser/rule/builder/SQLParserRuleBuilderTest.java
+++
b/kernel/sql-parser/core/src/test/java/org/apache/shardingsphere/parser/rule/builder/SQLParserRuleBuilderTest.java
@@ -35,7 +35,7 @@ class SQLParserRuleBuilderTest {
@Test
void assertBuild() {
SQLParserRuleConfiguration ruleConfig = new
SQLParserRuleConfiguration(new CacheOption(2, 5L), new CacheOption(4, 7L));
- SQLParserRule actualResult = new
SQLParserRuleBuilder().build(ruleConfig, Collections.emptyMap(), new
ConfigurationProperties(new Properties()));
+ SQLParserRule actualResult = new
SQLParserRuleBuilder().build(ruleConfig, Collections.emptyList(), new
ConfigurationProperties(new Properties()));
assertThat(actualResult.getConfiguration(), is(ruleConfig));
assertThat(actualResult.getSqlStatementCache().getInitialCapacity(),
is(4));
assertThat(actualResult.getSqlStatementCache().getMaximumSize(),
is(7L));
diff --git
a/kernel/sql-translator/core/src/main/java/org/apache/shardingsphere/sqltranslator/rule/builder/SQLTranslatorRuleBuilder.java
b/kernel/sql-translator/core/src/main/java/org/apache/shardingsphere/sqltranslator/rule/builder/SQLTranslatorRuleBuilder.java
index b952eeacdef..0c4fc94eabf 100644
---
a/kernel/sql-translator/core/src/main/java/org/apache/shardingsphere/sqltranslator/rule/builder/SQLTranslatorRuleBuilder.java
+++
b/kernel/sql-translator/core/src/main/java/org/apache/shardingsphere/sqltranslator/rule/builder/SQLTranslatorRuleBuilder.java
@@ -24,7 +24,7 @@ import
org.apache.shardingsphere.sqltranslator.config.SQLTranslatorRuleConfigura
import org.apache.shardingsphere.sqltranslator.constant.SQLTranslatorOrder;
import org.apache.shardingsphere.sqltranslator.rule.SQLTranslatorRule;
-import java.util.Map;
+import java.util.Collection;
/**
* SQL translator rule builder.
@@ -32,7 +32,7 @@ import java.util.Map;
public final class SQLTranslatorRuleBuilder implements
GlobalRuleBuilder<SQLTranslatorRuleConfiguration> {
@Override
- public SQLTranslatorRule build(final SQLTranslatorRuleConfiguration
ruleConfig, final Map<String, ShardingSphereDatabase> databases, final
ConfigurationProperties props) {
+ public SQLTranslatorRule build(final SQLTranslatorRuleConfiguration
ruleConfig, final Collection<ShardingSphereDatabase> databases, final
ConfigurationProperties props) {
return new SQLTranslatorRule(ruleConfig);
}
diff --git
a/kernel/time-service/core/src/main/java/org/apache/shardingsphere/timeservice/core/rule/builder/TimestampServiceRuleBuilder.java
b/kernel/time-service/core/src/main/java/org/apache/shardingsphere/timeservice/core/rule/builder/TimestampServiceRuleBuilder.java
index 3f09c1947af..215cf359c4e 100644
---
a/kernel/time-service/core/src/main/java/org/apache/shardingsphere/timeservice/core/rule/builder/TimestampServiceRuleBuilder.java
+++
b/kernel/time-service/core/src/main/java/org/apache/shardingsphere/timeservice/core/rule/builder/TimestampServiceRuleBuilder.java
@@ -24,7 +24,7 @@ import
org.apache.shardingsphere.timeservice.config.TimestampServiceRuleConfigur
import org.apache.shardingsphere.timeservice.core.rule.TimestampServiceRule;
import
org.apache.shardingsphere.timeservice.core.rule.constant.TimestampServiceOrder;
-import java.util.Map;
+import java.util.Collection;
/**
* Timestamp service rule builder.
@@ -32,7 +32,7 @@ import java.util.Map;
public final class TimestampServiceRuleBuilder implements
GlobalRuleBuilder<TimestampServiceRuleConfiguration> {
@Override
- public TimestampServiceRule build(final TimestampServiceRuleConfiguration
ruleConfig, final Map<String, ShardingSphereDatabase> databases, final
ConfigurationProperties props) {
+ public TimestampServiceRule build(final TimestampServiceRuleConfiguration
ruleConfig, final Collection<ShardingSphereDatabase> databases, final
ConfigurationProperties props) {
return new TimestampServiceRule(ruleConfig);
}
diff --git
a/kernel/transaction/core/src/main/java/org/apache/shardingsphere/transaction/rule/TransactionRule.java
b/kernel/transaction/core/src/main/java/org/apache/shardingsphere/transaction/rule/TransactionRule.java
index 892bb20ce98..f1567851194 100644
---
a/kernel/transaction/core/src/main/java/org/apache/shardingsphere/transaction/rule/TransactionRule.java
+++
b/kernel/transaction/core/src/main/java/org/apache/shardingsphere/transaction/rule/TransactionRule.java
@@ -35,9 +35,9 @@ import
org.apache.shardingsphere.transaction.config.TransactionRuleConfiguration
import org.apache.shardingsphere.transaction.constant.TransactionOrder;
import javax.sql.DataSource;
+import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Map;
-import java.util.Map.Entry;
import java.util.Properties;
import java.util.concurrent.atomic.AtomicReference;
@@ -61,7 +61,7 @@ public final class TransactionRule implements GlobalRule,
AutoCloseable {
private final RuleAttributes attributes;
- public TransactionRule(final TransactionRuleConfiguration ruleConfig,
final Map<String, ShardingSphereDatabase> databases) {
+ public TransactionRule(final TransactionRuleConfiguration ruleConfig,
final Collection<ShardingSphereDatabase> databases) {
configuration = ruleConfig;
defaultType =
TransactionType.valueOf(ruleConfig.getDefaultType().toUpperCase());
providerType = ruleConfig.getProviderType();
@@ -70,18 +70,17 @@ public final class TransactionRule implements GlobalRule,
AutoCloseable {
attributes = new RuleAttributes();
}
- private synchronized ShardingSphereTransactionManagerEngine
createTransactionManagerEngine(final Map<String, ShardingSphereDatabase>
databases) {
+ private synchronized ShardingSphereTransactionManagerEngine
createTransactionManagerEngine(final Collection<ShardingSphereDatabase>
databases) {
ShardingSphereTransactionManagerEngine result = new
ShardingSphereTransactionManagerEngine(defaultType);
if (databases.isEmpty()) {
return result;
}
Map<String, DatabaseType> databaseTypes = new
LinkedHashMap<>(databases.size(), 1F);
Map<String, DataSource> dataSourceMap = new
LinkedHashMap<>(databases.size(), 1F);
- for (Entry<String, ShardingSphereDatabase> entry :
databases.entrySet()) {
- ShardingSphereDatabase database = entry.getValue();
- database.getResourceMetaData().getStorageUnits().forEach((key,
value) -> {
- databaseTypes.put(database.getName() + "." + key,
value.getStorageType());
- dataSourceMap.put(database.getName() + "." + key,
value.getDataSource());
+ for (ShardingSphereDatabase each : databases) {
+ each.getResourceMetaData().getStorageUnits().forEach((key, value)
-> {
+ databaseTypes.put(each.getName() + "." + key,
value.getStorageType());
+ dataSourceMap.put(each.getName() + "." + key,
value.getDataSource());
});
}
result.init(databaseTypes, dataSourceMap, providerType);
@@ -120,7 +119,7 @@ public final class TransactionRule implements GlobalRule,
AutoCloseable {
}
@Override
- public void refresh(final Map<String, ShardingSphereDatabase> databases,
final GlobalRuleChangedType changedType) {
+ public void refresh(final Collection<ShardingSphereDatabase> databases,
final GlobalRuleChangedType changedType) {
if (GlobalRuleChangedType.DATABASE_CHANGED != changedType) {
return;
}
diff --git
a/kernel/transaction/core/src/main/java/org/apache/shardingsphere/transaction/rule/builder/TransactionRuleBuilder.java
b/kernel/transaction/core/src/main/java/org/apache/shardingsphere/transaction/rule/builder/TransactionRuleBuilder.java
index 1871a5f3ac3..a2f0571031e 100644
---
a/kernel/transaction/core/src/main/java/org/apache/shardingsphere/transaction/rule/builder/TransactionRuleBuilder.java
+++
b/kernel/transaction/core/src/main/java/org/apache/shardingsphere/transaction/rule/builder/TransactionRuleBuilder.java
@@ -24,7 +24,7 @@ import
org.apache.shardingsphere.transaction.config.TransactionRuleConfiguration
import org.apache.shardingsphere.transaction.constant.TransactionOrder;
import org.apache.shardingsphere.transaction.rule.TransactionRule;
-import java.util.Map;
+import java.util.Collection;
/**
* Transaction rule builder.
@@ -32,7 +32,7 @@ import java.util.Map;
public final class TransactionRuleBuilder implements
GlobalRuleBuilder<TransactionRuleConfiguration> {
@Override
- public TransactionRule build(final TransactionRuleConfiguration
ruleConfig, final Map<String, ShardingSphereDatabase> databases, final
ConfigurationProperties props) {
+ public TransactionRule build(final TransactionRuleConfiguration
ruleConfig, final Collection<ShardingSphereDatabase> databases, final
ConfigurationProperties props) {
return new TransactionRule(ruleConfig, databases);
}
diff --git
a/kernel/transaction/core/src/test/java/org/apache/shardingsphere/transaction/rule/TransactionRuleTest.java
b/kernel/transaction/core/src/test/java/org/apache/shardingsphere/transaction/rule/TransactionRuleTest.java
index 4d1ab1ab350..abfa430c67b 100644
---
a/kernel/transaction/core/src/test/java/org/apache/shardingsphere/transaction/rule/TransactionRuleTest.java
+++
b/kernel/transaction/core/src/test/java/org/apache/shardingsphere/transaction/rule/TransactionRuleTest.java
@@ -58,27 +58,27 @@ class TransactionRuleTest {
@Test
void assertRefreshWithNotDatabaseChange() {
- TransactionRule actual = new TransactionRule(new
TransactionRuleConfiguration("XA", "Atomikos", new Properties()),
Collections.emptyMap());
- actual.refresh(Collections.singletonMap(BAR_DB, createAddDatabase()),
GlobalRuleChangedType.SCHEMA_CHANGED);
+ TransactionRule actual = new TransactionRule(new
TransactionRuleConfiguration("XA", "Atomikos", new Properties()),
Collections.emptyList());
+ actual.refresh(Collections.singleton(createAddDatabase()),
GlobalRuleChangedType.SCHEMA_CHANGED);
assertThat(actual.getResource().getTransactionManager(TransactionType.XA),
instanceOf(ShardingSphereTransactionManagerFixture.class));
}
@Test
void assertRefreshWithDatabaseChange() {
- TransactionRule actual = new TransactionRule(new
TransactionRuleConfiguration("XA", "Atomikos", new Properties()),
Collections.singletonMap(FOO_DB, createDatabase()));
- actual.refresh(Collections.singletonMap(BAR_DB, createAddDatabase()),
GlobalRuleChangedType.DATABASE_CHANGED);
+ TransactionRule actual = new TransactionRule(new
TransactionRuleConfiguration("XA", "Atomikos", new Properties()),
Collections.singleton(createDatabase()));
+ actual.refresh(Collections.singleton(createAddDatabase()),
GlobalRuleChangedType.DATABASE_CHANGED);
assertThat(actual.getResource().getTransactionManager(TransactionType.XA),
instanceOf(ShardingSphereTransactionManagerFixture.class));
}
@Test
void assertIsNotImplicitCommitTransactionWhenNotAutoCommit() {
- assertFalse(new TransactionRule(new TransactionRuleConfiguration("XA",
"Atomikos", new Properties()), Collections.emptyMap())
+ assertFalse(new TransactionRule(new TransactionRuleConfiguration("XA",
"Atomikos", new Properties()), Collections.emptyList())
.isImplicitCommitTransaction(mock(ExecutionContext.class),
mock(ConnectionTransaction.class), false));
}
@Test
void
assertIsNotImplicitCommitTransactionWhenDefaultTypeIsNotDistributedTransaction()
{
- assertFalse(new TransactionRule(new
TransactionRuleConfiguration("LOCAL", null, new Properties()),
Collections.emptyMap())
+ assertFalse(new TransactionRule(new
TransactionRuleConfiguration("LOCAL", null, new Properties()),
Collections.emptyList())
.isImplicitCommitTransaction(mock(ExecutionContext.class),
mock(ConnectionTransaction.class), true));
}
@@ -86,7 +86,7 @@ class TransactionRuleTest {
void assertIsNotImplicitCommitTransactionWhenInDistributedTransaction() {
ConnectionTransaction connectionTransaction =
mock(ConnectionTransaction.class);
when(connectionTransaction.isInDistributedTransaction()).thenReturn(true);
- assertFalse(new TransactionRule(new TransactionRuleConfiguration("XA",
null, new Properties()), Collections.emptyMap())
+ assertFalse(new TransactionRule(new TransactionRuleConfiguration("XA",
null, new Properties()), Collections.emptyList())
.isImplicitCommitTransaction(mock(ExecutionContext.class),
connectionTransaction, true));
}
@@ -94,7 +94,7 @@ class TransactionRuleTest {
void assertIsNotImplicitCommitTransactionWhenQuery() {
ExecutionContext executionContext = mock(ExecutionContext.class,
RETURNS_DEEP_STUBS);
when(executionContext.getSqlStatementContext().getSqlStatement()).thenReturn(mock(SelectStatement.class));
- assertFalse(new TransactionRule(new TransactionRuleConfiguration("XA",
null, new Properties()), Collections.emptyMap())
+ assertFalse(new TransactionRule(new TransactionRuleConfiguration("XA",
null, new Properties()), Collections.emptyList())
.isImplicitCommitTransaction(executionContext,
mock(ConnectionTransaction.class), true));
}
@@ -103,7 +103,7 @@ class TransactionRuleTest {
ExecutionContext executionContext = mock(ExecutionContext.class,
RETURNS_DEEP_STUBS);
when(executionContext.getSqlStatementContext().getSqlStatement()).thenReturn(mock(UpdateStatement.class));
when(executionContext.getExecutionUnits()).thenReturn(Collections.singleton(mock(ExecutionUnit.class)));
- assertFalse(new TransactionRule(new TransactionRuleConfiguration("XA",
null, new Properties()), Collections.emptyMap())
+ assertFalse(new TransactionRule(new TransactionRuleConfiguration("XA",
null, new Properties()), Collections.emptyList())
.isImplicitCommitTransaction(executionContext,
mock(ConnectionTransaction.class), true));
}
@@ -112,13 +112,13 @@ class TransactionRuleTest {
ExecutionContext executionContext = mock(ExecutionContext.class,
RETURNS_DEEP_STUBS);
when(executionContext.getSqlStatementContext().getSqlStatement()).thenReturn(mock(UpdateStatement.class));
when(executionContext.getExecutionUnits()).thenReturn(Arrays.asList(mock(ExecutionUnit.class),
mock(ExecutionUnit.class)));
- assertTrue(new TransactionRule(new TransactionRuleConfiguration("XA",
null, new Properties()), Collections.emptyMap())
+ assertTrue(new TransactionRule(new TransactionRuleConfiguration("XA",
null, new Properties()), Collections.emptyList())
.isImplicitCommitTransaction(executionContext,
mock(ConnectionTransaction.class), true));
}
@Test
void assertClose() {
- TransactionRule actual = new TransactionRule(new
TransactionRuleConfiguration("XA", "Atomikos", new Properties()),
Collections.singletonMap(FOO_DB, createDatabase()));
+ TransactionRule actual = new TransactionRule(new
TransactionRuleConfiguration("XA", "Atomikos", new Properties()),
Collections.singleton(createDatabase()));
actual.close();
assertThat(actual.getResource().getTransactionManager(TransactionType.XA),
instanceOf(ShardingSphereTransactionManagerFixture.class));
}
@@ -127,7 +127,7 @@ class TransactionRuleTest {
ShardingSphereDatabase result = mock(ShardingSphereDatabase.class);
ResourceMetaData resourceMetaData = createResourceMetaData();
when(result.getResourceMetaData()).thenReturn(resourceMetaData);
- when(result.getName()).thenReturn("sharding_db");
+ when(result.getName()).thenReturn(FOO_DB);
return result;
}
diff --git
a/kernel/transaction/core/src/test/java/org/apache/shardingsphere/transaction/rule/builder/TransactionRuleBuilderTest.java
b/kernel/transaction/core/src/test/java/org/apache/shardingsphere/transaction/rule/builder/TransactionRuleBuilderTest.java
index d03efb8c08a..37e6eb644f6 100644
---
a/kernel/transaction/core/src/test/java/org/apache/shardingsphere/transaction/rule/builder/TransactionRuleBuilderTest.java
+++
b/kernel/transaction/core/src/test/java/org/apache/shardingsphere/transaction/rule/builder/TransactionRuleBuilderTest.java
@@ -18,7 +18,6 @@
package org.apache.shardingsphere.transaction.rule.builder;
import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
-import org.apache.shardingsphere.infra.database.core.DefaultDatabase;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaData;
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
@@ -45,7 +44,7 @@ class TransactionRuleBuilderTest {
TransactionRuleConfiguration ruleConfig = new
TransactionRuleConfiguration("LOCAL", "provider", new Properties());
ShardingSphereDatabase database = new
ShardingSphereDatabase("logic_db", null, new
ResourceMetaData(createDataSourceMap()),
new
RuleMetaData(Collections.singletonList(mock(ShardingSphereRule.class))),
Collections.singleton(new ShardingSphereSchema("test")));
- try (TransactionRule rule = new
TransactionRuleBuilder().build(ruleConfig,
Collections.singletonMap(DefaultDatabase.LOGIC_NAME, database),
mock(ConfigurationProperties.class))) {
+ try (TransactionRule rule = new
TransactionRuleBuilder().build(ruleConfig, Collections.singleton(database),
mock(ConfigurationProperties.class))) {
assertNotNull(rule.getConfiguration());
}
}
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/SchemaMetaDataManager.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/SchemaMetaDataManager.java
index c14a98957c8..bd9138e1bdf 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/SchemaMetaDataManager.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/SchemaMetaDataManager.java
@@ -91,7 +91,7 @@ public final class SchemaMetaDataManager {
return;
}
database.addSchema(new ShardingSphereSchema(schemaName));
- metaData.getGlobalRuleMetaData().getRules().forEach(each ->
((GlobalRule) each).refresh(metaData.getDatabases(),
GlobalRuleChangedType.SCHEMA_CHANGED));
+ metaData.getGlobalRuleMetaData().getRules().forEach(each ->
((GlobalRule) each).refresh(metaData.getAllDatabases(),
GlobalRuleChangedType.SCHEMA_CHANGED));
}
/**
@@ -107,7 +107,7 @@ public final class SchemaMetaDataManager {
return;
}
database.dropSchema(schemaName);
- metaData.getGlobalRuleMetaData().getRules().forEach(each ->
((GlobalRule) each).refresh(metaData.getDatabases(),
GlobalRuleChangedType.SCHEMA_CHANGED));
+ metaData.getGlobalRuleMetaData().getRules().forEach(each ->
((GlobalRule) each).refresh(metaData.getAllDatabases(),
GlobalRuleChangedType.SCHEMA_CHANGED));
}
/**
@@ -126,7 +126,7 @@ public final class SchemaMetaDataManager {
Optional.ofNullable(toBeChangedTable).ifPresent(optional ->
alterTable(databaseName, schemaName, optional));
Optional.ofNullable(toBeChangedView).ifPresent(optional ->
alterView(databaseName, schemaName, optional));
if (null != toBeChangedTable || null != toBeChangedView) {
- metaData.getGlobalRuleMetaData().getRules().forEach(each ->
((GlobalRule) each).refresh(metaData.getDatabases(),
GlobalRuleChangedType.SCHEMA_CHANGED));
+ metaData.getGlobalRuleMetaData().getRules().forEach(each ->
((GlobalRule) each).refresh(metaData.getAllDatabases(),
GlobalRuleChangedType.SCHEMA_CHANGED));
}
}
@@ -146,7 +146,7 @@ public final class SchemaMetaDataManager {
Optional.ofNullable(toBeDeletedTableName).ifPresent(optional ->
dropTable(databaseName, schemaName, optional));
Optional.ofNullable(toBeDeletedViewName).ifPresent(optional ->
dropView(databaseName, schemaName, optional));
if (!Strings.isNullOrEmpty(toBeDeletedTableName) ||
!Strings.isNullOrEmpty(toBeDeletedViewName)) {
- metaData.getGlobalRuleMetaData().getRules().forEach(each ->
((GlobalRule) each).refresh(metaData.getDatabases(),
GlobalRuleChangedType.SCHEMA_CHANGED));
+ metaData.getGlobalRuleMetaData().getRules().forEach(each ->
((GlobalRule) each).refresh(metaData.getAllDatabases(),
GlobalRuleChangedType.SCHEMA_CHANGED));
}
}
diff --git
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/StandaloneMetaDataManagerPersistService.java
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/StandaloneMetaDataManagerPersistService.java
index 0cd8d5dcd02..f7058181afd 100644
---
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/StandaloneMetaDataManagerPersistService.java
+++
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/StandaloneMetaDataManagerPersistService.java
@@ -94,7 +94,7 @@ public final class StandaloneMetaDataManagerPersistService
implements MetaDataMa
ShardingSphereMetaData metaData =
metaDataContextManager.getMetaDataContexts().get().getMetaData();
ShardingSphereDatabase database = metaData.getDatabase(databaseName);
database.addSchema(new ShardingSphereSchema(schemaName));
- metaData.getGlobalRuleMetaData().getRules().forEach(each ->
((GlobalRule) each).refresh(metaData.getDatabases(),
GlobalRuleChangedType.SCHEMA_CHANGED));
+ metaData.getGlobalRuleMetaData().getRules().forEach(each ->
((GlobalRule) each).refresh(metaData.getAllDatabases(),
GlobalRuleChangedType.SCHEMA_CHANGED));
metaDataPersistService.getDatabaseMetaDataFacade().getSchema().add(databaseName,
schemaName);
}
@@ -104,7 +104,7 @@ public final class StandaloneMetaDataManagerPersistService
implements MetaDataMa
ShardingSphereDatabase database =
metaData.getDatabase(alterSchemaPOJO.getDatabaseName());
putSchemaMetaData(database, alterSchemaPOJO.getSchemaName(),
alterSchemaPOJO.getRenameSchemaName(),
alterSchemaPOJO.getLogicDataSourceName());
removeSchemaMetaData(database, alterSchemaPOJO.getSchemaName());
- metaData.getGlobalRuleMetaData().getRules().forEach(each ->
((GlobalRule) each).refresh(metaData.getDatabases(),
GlobalRuleChangedType.SCHEMA_CHANGED));
+ metaData.getGlobalRuleMetaData().getRules().forEach(each ->
((GlobalRule) each).refresh(metaData.getAllDatabases(),
GlobalRuleChangedType.SCHEMA_CHANGED));
ShardingSphereSchema alteredSchema =
database.getSchema(alterSchemaPOJO.getRenameSchemaName());
String databaseName = alterSchemaPOJO.getDatabaseName();
String alteredSchemaName = alterSchemaPOJO.getRenameSchemaName();
@@ -202,7 +202,7 @@ public final class StandaloneMetaDataManagerPersistService
implements MetaDataMa
tobeRemovedSchemas.add(each.toLowerCase());
}
removeDataNode(database.getRuleMetaData().getAttributes(MutableDataNodeRuleAttribute.class),
new HashSet<>(tobeRemovedSchemas), new HashSet<>(tobeRemovedTables));
- metaData.getGlobalRuleMetaData().getRules().forEach(each ->
((GlobalRule) each).refresh(metaData.getDatabases(),
GlobalRuleChangedType.SCHEMA_CHANGED));
+ metaData.getGlobalRuleMetaData().getRules().forEach(each ->
((GlobalRule) each).refresh(metaData.getAllDatabases(),
GlobalRuleChangedType.SCHEMA_CHANGED));
}
@Override
@@ -213,7 +213,7 @@ public final class StandaloneMetaDataManagerPersistService
implements MetaDataMa
ShardingSphereDatabase database = metaData.getDatabase(databaseName);
addDataNode(database,
alterSchemaMetaDataPOJO.getLogicDataSourceName(), schemaName,
alterSchemaMetaDataPOJO.getAlteredTables(),
alterSchemaMetaDataPOJO.getAlteredViews());
removeDataNode(database, schemaName,
alterSchemaMetaDataPOJO.getDroppedTables(),
alterSchemaMetaDataPOJO.getDroppedViews());
- metaData.getGlobalRuleMetaData().getRules().forEach(each ->
((GlobalRule) each).refresh(metaData.getDatabases(),
GlobalRuleChangedType.SCHEMA_CHANGED));
+ metaData.getGlobalRuleMetaData().getRules().forEach(each ->
((GlobalRule) each).refresh(metaData.getAllDatabases(),
GlobalRuleChangedType.SCHEMA_CHANGED));
metaDataPersistService.getDatabaseMetaDataFacade().getTable().persist(databaseName,
schemaName, alterSchemaMetaDataPOJO.getAlteredTables());
metaDataPersistService.getDatabaseMetaDataFacade().getView().persist(databaseName,
schemaName, alterSchemaMetaDataPOJO.getAlteredViews());
alterSchemaMetaDataPOJO.getDroppedTables().forEach(each ->
metaDataPersistService.getDatabaseMetaDataFacade().getTable().drop(databaseName,
schemaName, each));
@@ -228,7 +228,7 @@ public final class StandaloneMetaDataManagerPersistService
implements MetaDataMa
metaDataContextManager.getMetaDataContexts().get(),
metaDataPersistService, metaDataContextManager.getComputeNodeInstanceContext());
metaDataContextManager.getMetaDataContexts().get().getMetaData().getDatabases().putAll(changedDatabases);
metaDataContextManager.getMetaDataContexts().get().getMetaData().getGlobalRuleMetaData().getRules()
- .forEach(each -> ((GlobalRule)
each).refresh(metaDataContextManager.getMetaDataContexts().get().getMetaData().getDatabases(),
GlobalRuleChangedType.DATABASE_CHANGED));
+ .forEach(each -> ((GlobalRule)
each).refresh(metaDataContextManager.getMetaDataContexts().get().getMetaData().getAllDatabases(),
GlobalRuleChangedType.DATABASE_CHANGED));
metaDataContextManager.getMetaDataContexts().get().getMetaData().getDatabase(databaseName).getAllSchemas()
.forEach(each -> {
if (each.isEmpty()) {
@@ -250,7 +250,7 @@ public final class StandaloneMetaDataManagerPersistService
implements MetaDataMa
metaDataContextManager.getMetaDataContexts().get(),
metaDataPersistService, metaDataContextManager.getComputeNodeInstanceContext());
metaDataContextManager.getMetaDataContexts().get().getMetaData().getDatabases().putAll(changedDatabases);
metaDataContextManager.getMetaDataContexts().get().getMetaData().getGlobalRuleMetaData().getRules()
- .forEach(each -> ((GlobalRule)
each).refresh(metaDataContextManager.getMetaDataContexts().get().getMetaData().getDatabases(),
GlobalRuleChangedType.DATABASE_CHANGED));
+ .forEach(each -> ((GlobalRule)
each).refresh(metaDataContextManager.getMetaDataContexts().get().getMetaData().getAllDatabases(),
GlobalRuleChangedType.DATABASE_CHANGED));
DataSourceUnitPersistService dataSourceService =
metaDataPersistService.getDataSourceUnitService();
metaDataPersistService.getMetaDataVersionPersistService()
.switchActiveVersion(dataSourceService.persist(databaseName,
toBeUpdatedProps));
@@ -346,7 +346,7 @@ public final class StandaloneMetaDataManagerPersistService
implements MetaDataMa
ShardingSphereMetaData metaData =
metaDataContextManager.getMetaDataContexts().get().getMetaData();
ShardingSphereDatabase database = metaData.getDatabase(databaseName);
addTableToDataNode(database, schemaName, logicDataSourceName, table);
- metaData.getGlobalRuleMetaData().getRules().forEach(each ->
((GlobalRule) each).refresh(metaData.getDatabases(),
GlobalRuleChangedType.SCHEMA_CHANGED));
+ metaData.getGlobalRuleMetaData().getRules().forEach(each ->
((GlobalRule) each).refresh(metaData.getAllDatabases(),
GlobalRuleChangedType.SCHEMA_CHANGED));
metaDataPersistService.getDatabaseMetaDataFacade().getTable().persist(databaseName,
schemaName, Collections.singleton(table));
}
@@ -355,7 +355,7 @@ public final class StandaloneMetaDataManagerPersistService
implements MetaDataMa
ShardingSphereMetaData metaData =
metaDataContextManager.getMetaDataContexts().get().getMetaData();
ShardingSphereDatabase database = metaData.getDatabase(databaseName);
removeTablesToDataNode(database, schemaName, tableNames);
- metaData.getGlobalRuleMetaData().getRules().forEach(each ->
((GlobalRule) each).refresh(metaData.getDatabases(),
GlobalRuleChangedType.SCHEMA_CHANGED));
+ metaData.getGlobalRuleMetaData().getRules().forEach(each ->
((GlobalRule) each).refresh(metaData.getAllDatabases(),
GlobalRuleChangedType.SCHEMA_CHANGED));
tableNames.forEach(each ->
metaDataPersistService.getDatabaseMetaDataFacade().getTable().drop(databaseName,
schemaName, each));
}
diff --git
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/ProxyBackendHandlerFactoryTest.java
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/ProxyBackendHandlerFactoryTest.java
index ed179228666..1bb5adb059f 100644
---
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/ProxyBackendHandlerFactoryTest.java
+++
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/ProxyBackendHandlerFactoryTest.java
@@ -123,7 +123,7 @@ class ProxyBackendHandlerFactoryTest {
RuleMetaData globalRuleMetaData = new RuleMetaData(Arrays.asList(
new AuthorityRule(new
DefaultAuthorityRuleConfigurationBuilder().build()),
new SQLParserRule(new
DefaultSQLParserRuleConfigurationBuilder().build()),
- new TransactionRule(new
DefaultTransactionRuleConfigurationBuilder().build(), Collections.emptyMap())));
+ new TransactionRule(new
DefaultTransactionRuleConfigurationBuilder().build(),
Collections.emptyList())));
when(metaDataContexts.getMetaData().getGlobalRuleMetaData()).thenReturn(globalRuleMetaData);
return result;
}
diff --git
a/proxy/backend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussSystemCatalogAdminQueryExecutorTest.java
b/proxy/backend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussSystemCatalogAdminQueryExecutorTest.java
index aba12e6e27d..cf42fd45134 100644
---
a/proxy/backend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussSystemCatalogAdminQueryExecutorTest.java
+++
b/proxy/backend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussSystemCatalogAdminQueryExecutorTest.java
@@ -58,7 +58,6 @@ import java.sql.Types;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
-import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Optional;
import java.util.Properties;
@@ -88,7 +87,7 @@ class OpenGaussSystemCatalogAdminQueryExecutorTest {
ConnectionContext connectionContext = mockConnectionContext();
when(connectionSession.getConnectionContext()).thenReturn(connectionContext);
Map<String, ShardingSphereDatabase> databases = createDatabases();
- SQLFederationRule sqlFederationRule = new SQLFederationRule(new
SQLFederationRuleConfiguration(false, false, new CacheOption(1, 1L)),
databases);
+ SQLFederationRule sqlFederationRule = new SQLFederationRule(new
SQLFederationRuleConfiguration(false, false, new CacheOption(1, 1L)),
databases.values());
when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getGlobalRuleMetaData()).thenReturn(mock(RuleMetaData.class));
OpenGaussSelectStatement sqlStatement =
createSelectStatementForPgDatabase();
ShardingSphereMetaData metaData =
@@ -120,7 +119,6 @@ class OpenGaussSystemCatalogAdminQueryExecutorTest {
}
private Map<String, ShardingSphereDatabase> createDatabases() {
- Map<String, ShardingSphereDatabase> result = new LinkedHashMap<>(1,
1F);
Collection<ShardingSphereColumn> columns = Arrays.asList(
new ShardingSphereColumn("datname", 12, false, false, false,
true, false, false),
new ShardingSphereColumn("datdba", -5, false, false, false,
true, false, false),
@@ -139,8 +137,8 @@ class OpenGaussSystemCatalogAdminQueryExecutorTest {
new ShardingSphereColumn("datminmxid", 1111, false, false,
false, true, false, false));
ShardingSphereSchema schema = new ShardingSphereSchema("pg_catalog",
Collections.singleton(new ShardingSphereTable("pg_database",
columns, Collections.emptyList(), Collections.emptyList())),
Collections.emptyList());
- result.put("sharding_db", new ShardingSphereDatabase("sharding_db",
databaseType, mock(ResourceMetaData.class, RETURNS_DEEP_STUBS),
mock(RuleMetaData.class), Collections.singleton(schema)));
- return result;
+ return Collections.singletonMap("sharding_db",
+ new ShardingSphereDatabase("sharding_db", databaseType,
mock(ResourceMetaData.class, RETURNS_DEEP_STUBS), mock(RuleMetaData.class),
Collections.singleton(schema)));
}
@Test
@@ -151,7 +149,7 @@ class OpenGaussSystemCatalogAdminQueryExecutorTest {
ConfigurationProperties props = new ConfigurationProperties(new
Properties());
when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getProps()).thenReturn(props);
Map<String, ShardingSphereDatabase> databases = createDatabases();
- SQLFederationRule sqlFederationRule = new SQLFederationRule(new
SQLFederationRuleConfiguration(false, false, new CacheOption(1, 1L)),
databases);
+ SQLFederationRule sqlFederationRule = new SQLFederationRule(new
SQLFederationRuleConfiguration(false, false, new CacheOption(1, 1L)),
databases.values());
OpenGaussSelectStatement sqlStatement =
createSelectStatementForVersion();
ShardingSphereMetaData metaData =
new ShardingSphereMetaData(databases,
mock(ResourceMetaData.class, RETURNS_DEEP_STUBS), new
RuleMetaData(Collections.singletonList(sqlFederationRule)), props);
@@ -187,7 +185,7 @@ class OpenGaussSystemCatalogAdminQueryExecutorTest {
ConfigurationProperties props = new ConfigurationProperties(new
Properties());
when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getProps()).thenReturn(props);
Map<String, ShardingSphereDatabase> databases = createDatabases();
- SQLFederationRule sqlFederationRule = new SQLFederationRule(new
SQLFederationRuleConfiguration(false, false, new CacheOption(1, 1L)),
databases);
+ SQLFederationRule sqlFederationRule = new SQLFederationRule(new
SQLFederationRuleConfiguration(false, false, new CacheOption(1, 1L)),
databases.values());
OpenGaussSelectStatement sqlStatement =
createSelectStatementForGsPasswordDeadlineAndIntervalToNum();
ShardingSphereMetaData metaData =
new ShardingSphereMetaData(databases,
mock(ResourceMetaData.class, RETURNS_DEEP_STUBS), new
RuleMetaData(Collections.singletonList(sqlFederationRule)), props);
@@ -225,7 +223,7 @@ class OpenGaussSystemCatalogAdminQueryExecutorTest {
ConfigurationProperties props = new ConfigurationProperties(new
Properties());
when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getProps()).thenReturn(props);
Map<String, ShardingSphereDatabase> databases = createDatabases();
- SQLFederationRule sqlFederationRule = new SQLFederationRule(new
SQLFederationRuleConfiguration(false, false, new CacheOption(1, 1L)),
databases);
+ SQLFederationRule sqlFederationRule = new SQLFederationRule(new
SQLFederationRuleConfiguration(false, false, new CacheOption(1, 1L)),
databases.values());
OpenGaussSelectStatement sqlStatement =
createSelectStatementForGsPasswordNotifyTime();
ShardingSphereMetaData metaData =
new ShardingSphereMetaData(databases,
mock(ResourceMetaData.class, RETURNS_DEEP_STUBS), new
RuleMetaData(Collections.singletonList(sqlFederationRule)), props);
diff --git
a/proxy/frontend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/frontend/opengauss/authentication/OpenGaussAuthenticationEngineTest.java
b/proxy/frontend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/frontend/opengauss/authentication/OpenGaussAuthenticationEngineTest.java
index 3b2792e4b3f..6387ec5b8f9 100644
---
a/proxy/frontend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/frontend/opengauss/authentication/OpenGaussAuthenticationEngineTest.java
+++
b/proxy/frontend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/frontend/opengauss/authentication/OpenGaussAuthenticationEngineTest.java
@@ -143,7 +143,7 @@ class OpenGaussAuthenticationEngineTest {
private RuleMetaData buildGlobalRuleMetaData(final UserConfiguration
userConfig) {
AuthorityRuleConfiguration ruleConfig = new AuthorityRuleConfiguration(
Collections.singleton(userConfig), new
AlgorithmConfiguration("ALL_PERMITTED", new Properties()),
Collections.emptyMap(), null);
- return new RuleMetaData(Collections.singleton(new
AuthorityRuleBuilder().build(ruleConfig, Collections.emptyMap(),
mock(ConfigurationProperties.class))));
+ return new RuleMetaData(Collections.singleton(new
AuthorityRuleBuilder().build(ruleConfig, Collections.emptyList(),
mock(ConfigurationProperties.class))));
}
@SneakyThrows(ReflectiveOperationException.class)
diff --git
a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/authentication/PostgreSQLAuthenticationEngineTest.java
b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/authentication/PostgreSQLAuthenticationEngineTest.java
index 691f3a7202e..86c57d67253 100644
---
a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/authentication/PostgreSQLAuthenticationEngineTest.java
+++
b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/authentication/PostgreSQLAuthenticationEngineTest.java
@@ -206,7 +206,7 @@ class PostgreSQLAuthenticationEngineTest {
private RuleMetaData buildGlobalRuleMetaData(final UserConfiguration
userConfig) {
AuthorityRuleConfiguration ruleConfig = new AuthorityRuleConfiguration(
Collections.singleton(userConfig), new
AlgorithmConfiguration("ALL_PERMITTED", new Properties()),
Collections.emptyMap(), null);
- AuthorityRule rule = new AuthorityRuleBuilder().build(ruleConfig,
Collections.emptyMap(), mock(ConfigurationProperties.class));
+ AuthorityRule rule = new AuthorityRuleBuilder().build(ruleConfig,
Collections.emptyList(), mock(ConfigurationProperties.class));
return new RuleMetaData(Collections.singleton(rule));
}