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 717c999 Use direct call to instead of event post on
AddResourceBackendHandler (#11488)
717c999 is described below
commit 717c99918248f66d683ef60a4f961ee37470c687
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Jul 24 22:50:31 2021 +0800
Use direct call to instead of event post on AddResourceBackendHandler
(#11488)
* Add MetaDataContexts.getConfigCenter()
* Use direct call to refactor AddResourceBackendHandler
* Use direct call to refactor AddResourceBackendHandler
* Fix test case
* Add DataSourcePersistService.append()
* Add test case
---
.../metadata/GovernanceMetaDataContexts.java | 28 ++++++++--------
.../metadata/GovernanceMetaDataContextsTest.java | 2 +-
.../DataSourceAddedSQLNotificationEvent.java | 37 ----------------------
.../subscriber/DataSourceRegistrySubscriber.java | 15 +--------
.../DataSourceRegistrySubscriberTest.java | 11 +------
.../service/impl/DataSourcePersistService.java | 12 +++++++
.../service/impl/DataSourcePersistServiceTest.java | 9 ++++++
.../infra/context/metadata/MetaDataContexts.java | 8 +++++
.../context/metadata/MetaDataContextsBuilder.java | 6 ++--
.../metadata/impl/StandardMetaDataContexts.java | 13 +++++---
.../metadata/MetaDataContextsBuilderTest.java | 12 ++++---
.../impl/StandardMetaDataContextsTest.java | 5 +--
.../core/datasource/ShardingSphereDataSource.java | 7 +++-
.../GovernanceShardingSphereDataSource.java | 9 +++---
.../internal/state/DriverStateContextTest.java | 3 +-
.../proxy/backend/context/ProxyContext.java | 2 +-
.../rdl/resource/AddResourceBackendHandler.java | 13 ++------
.../DatabaseCommunicationEngineFactoryTest.java | 3 +-
.../DatabaseCommunicationEngineTest.java | 5 +--
.../jdbc/connection/BackendConnectionTest.java | 3 +-
.../jdbc/datasource/JDBCBackendDataSourceTest.java | 3 +-
.../context/BackendExecutorContextTest.java | 3 +-
.../proxy/backend/context/ProxyContextTest.java | 11 ++++---
.../DatabaseOperateBackendHandlerFactoryTest.java | 5 +--
.../mysql/executor/ShowDatabasesExecutorTest.java | 3 +-
.../mysql/executor/ShowTablesExecutorTest.java | 3 +-
.../mysql/executor/UseDatabaseExecutorTest.java | 3 +-
.../impl/BroadcastDatabaseBackendHandlerTest.java | 3 +-
.../SchemaAssignedDatabaseBackendHandlerTest.java | 3 +-
.../impl/UnicastDatabaseBackendHandlerTest.java | 3 +-
.../distsql/DistSQLBackendHandlerFactoryTest.java | 30 ++++++++----------
.../resource/AddResourceBackendHandlerTest.java | 14 ++++----
.../ShardingCTLExplainBackendHandlerTest.java | 3 +-
.../hint/ShardingCTLHintBackendHandlerTest.java | 3 +-
.../sctl/set/ShardingCTLSetBackendHandlerTest.java | 3 +-
.../impl/AbstractBootstrapInitializer.java | 2 +-
.../FrontDatabaseProtocolTypeFactoryTest.java | 7 ++--
.../frontend/mysql/MySQLFrontendEngineTest.java | 5 +--
.../MySQLAuthenticationEngineTest.java | 4 ++-
.../MySQLAuthenticationHandlerTest.java | 5 +--
.../command/MySQLCommandExecutorFactoryTest.java | 3 +-
.../execute/MySQLComStmtExecuteExecutorTest.java | 3 +-
.../PostgreSQLAuthenticationEngineTest.java | 10 +++---
.../PostgreSQLAuthenticationHandlerTest.java | 3 +-
.../parse/PostgreSQLComParseExecutorTest.java | 3 +-
45 files changed, 172 insertions(+), 169 deletions(-)
diff --git
a/shardingsphere-governance/shardingsphere-governance-context/src/main/java/org/apache/shardingsphere/governance/context/metadata/GovernanceMetaDataContexts.java
b/shardingsphere-governance/shardingsphere-governance-context/src/main/java/org/apache/shardingsphere/governance/context/metadata/GovernanceMetaDataContexts.java
index 911a4c2..01bdeb8 100644
---
a/shardingsphere-governance/shardingsphere-governance-context/src/main/java/org/apache/shardingsphere/governance/context/metadata/GovernanceMetaDataContexts.java
+++
b/shardingsphere-governance/shardingsphere-governance-context/src/main/java/org/apache/shardingsphere/governance/context/metadata/GovernanceMetaDataContexts.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.governance.context.metadata;
import com.google.common.collect.Maps;
import com.google.common.eventbus.Subscribe;
+import lombok.Getter;
import org.apache.shardingsphere.authority.rule.AuthorityRule;
import
org.apache.shardingsphere.governance.context.authority.listener.event.AuthorityChangedEvent;
import
org.apache.shardingsphere.governance.core.lock.ShardingSphereDistributeLock;
@@ -80,6 +81,7 @@ public final class GovernanceMetaDataContexts implements
MetaDataContexts {
private volatile StandardMetaDataContexts metaDataContexts;
+ @Getter
private final ConfigCenter configCenter;
private final RegistryCenter registryCenter;
@@ -187,7 +189,7 @@ public final class GovernanceMetaDataContexts implements
MetaDataContexts {
ShardingSphereMetaData metaData = buildMetaData(event);
metaDataMap.put(event.getSchemaName(), metaData);
metaDataContexts.getOptimizeContextFactory().getSchemaMetadatas().getSchemas().put(event.getSchemaName(),
new FederateSchemaMetadata(event.getSchemaName(),
metaData.getSchema().getTables()));
- metaDataContexts = new StandardMetaDataContexts(metaDataMap,
metaDataContexts.getGlobalRuleMetaData(), metaDataContexts.getExecutorEngine(),
+ metaDataContexts = new StandardMetaDataContexts(configCenter,
metaDataMap, metaDataContexts.getGlobalRuleMetaData(),
metaDataContexts.getExecutorEngine(),
metaDataContexts.getProps(),
metaDataContexts.getOptimizeContextFactory());
configCenter.getSchemaMetaDataService().persist(event.getSchemaName(),
metaDataContexts.getMetaDataMap().get(event.getSchemaName()).getSchema());
ShardingSphereEventBus.getInstance().post(new
DataSourceChangeCompletedEvent(event.getSchemaName(),
@@ -204,7 +206,7 @@ public final class GovernanceMetaDataContexts implements
MetaDataContexts {
Map<String, ShardingSphereMetaData> metaDataMap = new
HashMap<>(metaDataContexts.getMetaDataMap());
metaDataMap.remove(event.getSchemaName());
metaDataContexts.getOptimizeContextFactory().getSchemaMetadatas().getSchemas().remove(event.getSchemaName());
- metaDataContexts = new StandardMetaDataContexts(
+ metaDataContexts = new StandardMetaDataContexts(configCenter,
metaDataMap, metaDataContexts.getGlobalRuleMetaData(),
metaDataContexts.getExecutorEngine(), metaDataContexts.getProps(),
metaDataContexts.getOptimizeContextFactory());
configCenter.getSchemaMetaDataService().delete(event.getSchemaName());
}
@@ -217,8 +219,8 @@ public final class GovernanceMetaDataContexts implements
MetaDataContexts {
@Subscribe
public synchronized void renew(final PropertiesChangedEvent event) {
ConfigurationProperties props = new
ConfigurationProperties(event.getProps());
- metaDataContexts = new
StandardMetaDataContexts(metaDataContexts.getMetaDataMap(),
metaDataContexts.getGlobalRuleMetaData(),
- metaDataContexts.getExecutorEngine(), props,
metaDataContexts.getOptimizeContextFactory());
+ metaDataContexts = new StandardMetaDataContexts(configCenter,
+ metaDataContexts.getMetaDataMap(),
metaDataContexts.getGlobalRuleMetaData(), metaDataContexts.getExecutorEngine(),
props, metaDataContexts.getOptimizeContextFactory());
}
/**
@@ -249,8 +251,8 @@ public final class GovernanceMetaDataContexts implements
MetaDataContexts {
metaDataContexts.getOptimizeContextFactory().getSchemaMetadatas().getSchemas().put(event.getSchemaName(),
new FederateSchemaMetadata(event.getSchemaName(),
newMetaData.getSchema().getTables()));
}
- metaDataContexts = new StandardMetaDataContexts(newMetaDataMap,
metaDataContexts.getGlobalRuleMetaData(), metaDataContexts.getExecutorEngine(),
- metaDataContexts.getProps(),
metaDataContexts.getOptimizeContextFactory());
+ metaDataContexts = new StandardMetaDataContexts(configCenter,
+ newMetaDataMap, metaDataContexts.getGlobalRuleMetaData(),
metaDataContexts.getExecutorEngine(), metaDataContexts.getProps(),
metaDataContexts.getOptimizeContextFactory());
} finally {
ShardingSphereEventBus.getInstance().post(new
InnerLockReleasedEvent(LockNameUtil.getMetadataRefreshLockName()));
}
@@ -267,7 +269,7 @@ public final class GovernanceMetaDataContexts implements
MetaDataContexts {
String schemaName = event.getSchemaName();
ShardingSphereMetaData metaData =
getChangedMetaData(metaDataContexts.getMetaDataMap().get(schemaName),
event.getRuleConfigurations());
Map<String, ShardingSphereMetaData> newMetaDataMap =
getNewMetaData(schemaName, metaData);
- metaDataContexts = new StandardMetaDataContexts(newMetaDataMap,
metaDataContexts.getGlobalRuleMetaData(), metaDataContexts.getExecutorEngine(),
+ metaDataContexts = new StandardMetaDataContexts(configCenter,
newMetaDataMap, metaDataContexts.getGlobalRuleMetaData(),
metaDataContexts.getExecutorEngine(),
metaDataContexts.getProps(),
metaDataContexts.getOptimizeContextFactory());
configCenter.getSchemaMetaDataService().persist(schemaName,
newMetaDataMap.get(schemaName).getSchema());
}
@@ -283,8 +285,8 @@ public final class GovernanceMetaDataContexts implements
MetaDataContexts {
String schemaName = event.getSchemaName();
ShardingSphereMetaData metaData =
getChangedMetaData(metaDataContexts.getMetaDataMap().get(schemaName),
event.getDataSourceConfigurations());
Map<String, ShardingSphereMetaData> newMetaDataMap =
getNewMetaData(schemaName, metaData);
- metaDataContexts = new StandardMetaDataContexts(
- newMetaDataMap, metaDataContexts.getGlobalRuleMetaData(),
metaDataContexts.getExecutorEngine(), metaDataContexts.getProps(),
metaDataContexts.getOptimizeContextFactory());
+ metaDataContexts = new StandardMetaDataContexts(configCenter,
newMetaDataMap,
+ metaDataContexts.getGlobalRuleMetaData(),
metaDataContexts.getExecutorEngine(), metaDataContexts.getProps(),
metaDataContexts.getOptimizeContextFactory());
ShardingSphereEventBus.getInstance().post(new
DataSourceChangeCompletedEvent(event.getSchemaName(),
metaDataContexts.getMetaDataMap().get(event.getSchemaName()).getResource().getDatabaseType(),
newMetaDataMap.get(event.getSchemaName()).getResource().getDataSources()));
}
@@ -332,7 +334,7 @@ public final class GovernanceMetaDataContexts implements
MetaDataContexts {
if (!newGlobalConfigs.isEmpty()) {
ShardingSphereRuleMetaData newGlobalRuleMetaData = new
ShardingSphereRuleMetaData(newGlobalConfigs,
ShardingSphereRulesBuilder.buildGlobalRules(newGlobalConfigs,
metaDataContexts.getMetaDataMap()));
- metaDataContexts = new
StandardMetaDataContexts(metaDataContexts.getMetaDataMap(),
newGlobalRuleMetaData, metaDataContexts.getExecutorEngine(),
+ metaDataContexts = new StandardMetaDataContexts(configCenter,
metaDataContexts.getMetaDataMap(), newGlobalRuleMetaData,
metaDataContexts.getExecutorEngine(),
metaDataContexts.getProps(),
metaDataContexts.getOptimizeContextFactory());
}
}
@@ -361,7 +363,7 @@ public final class GovernanceMetaDataContexts implements
MetaDataContexts {
// TODO load global schema from reg center
configCenter.getGlobalRuleService().load(),
metaDataContexts.getProps().getProps());
- return
metaDataContextsBuilder.build().getMetaDataMap().get(schemaName);
+ return
metaDataContextsBuilder.build(configCenter).getMetaDataMap().get(schemaName);
}
private ShardingSphereMetaData getChangedMetaData(final
ShardingSphereMetaData oldMetaData, final ShardingSphereSchema schema, final
String schemaName) {
@@ -373,7 +375,7 @@ public final class GovernanceMetaDataContexts implements
MetaDataContexts {
// TODO load global schema from reg center
MetaDataContextsBuilder builder = new
MetaDataContextsBuilder(Collections.singletonMap(oldMetaData.getName(),
oldMetaData.getResource().getDataSources()),
Collections.singletonMap(oldMetaData.getName(), ruleConfigs),
new LinkedList<>(), metaDataContexts.getProps().getProps());
- return builder.build().getMetaDataMap().values().iterator().next();
+ return
builder.build(configCenter).getMetaDataMap().values().iterator().next();
}
private ShardingSphereMetaData getChangedMetaData(final
ShardingSphereMetaData oldMetaData, final Map<String, DataSourceConfiguration>
newDataSourceConfigs) throws SQLException {
@@ -385,7 +387,7 @@ public final class GovernanceMetaDataContexts implements
MetaDataContexts {
getNewDataSources(oldMetaData.getResource().getDataSources(),
getAddedDataSources(oldMetaData, newDataSourceConfigs), modifiedDataSources,
deletedDataSources));
// TODO load global schema from reg center
return new MetaDataContextsBuilder(dataSourcesMap,
Collections.singletonMap(oldMetaData.getName(),
oldMetaData.getRuleMetaData().getConfigurations()), new LinkedList<>(),
-
metaDataContexts.getProps().getProps()).build().getMetaDataMap().get(oldMetaData.getName());
+
metaDataContexts.getProps().getProps()).build(configCenter).getMetaDataMap().get(oldMetaData.getName());
}
private Map<String, DataSource> getNewDataSources(final Map<String,
DataSource> oldDataSources,
diff --git
a/shardingsphere-governance/shardingsphere-governance-context/src/test/java/org/apache/shardingsphere/governance/context/metadata/GovernanceMetaDataContextsTest.java
b/shardingsphere-governance/shardingsphere-governance-context/src/test/java/org/apache/shardingsphere/governance/context/metadata/GovernanceMetaDataContextsTest.java
index 0afcd76..d6ba806 100644
---
a/shardingsphere-governance/shardingsphere-governance-context/src/test/java/org/apache/shardingsphere/governance/context/metadata/GovernanceMetaDataContextsTest.java
+++
b/shardingsphere-governance/shardingsphere-governance-context/src/test/java/org/apache/shardingsphere/governance/context/metadata/GovernanceMetaDataContextsTest.java
@@ -96,7 +96,7 @@ public final class GovernanceMetaDataContextsTest {
@Before
public void setUp() {
- governanceMetaDataContexts = new GovernanceMetaDataContexts(new
StandardMetaDataContexts(
+ governanceMetaDataContexts = new GovernanceMetaDataContexts(new
StandardMetaDataContexts(mock(ConfigCenter.class),
createMetaDataMap(), globalRuleMetaData,
mock(ExecutorEngine.class), props, mockOptimizeContextFactory()), configCenter,
registryCenter, mock(RegistryCenterRepository.class));
}
diff --git
a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/registry/config/event/datasource/DataSourceAddedSQLNotificationEvent.java
b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/registry/config/event/datasource/DataSourceAddedSQLNotificationEvent.java
deleted file mode 100644
index abff8c5..0000000
---
a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/registry/config/event/datasource/DataSourceAddedSQLNotificationEvent.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package
org.apache.shardingsphere.governance.core.registry.config.event.datasource;
-
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.governance.core.registry.SQLNotificationEvent;
-import
org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration;
-
-import java.util.Map;
-
-/**
- * Data source added SQL notification event.
- */
-@RequiredArgsConstructor
-@Getter
-public final class DataSourceAddedSQLNotificationEvent implements
SQLNotificationEvent {
-
- private final String schemaName;
-
- private final Map<String, DataSourceConfiguration>
dataSourceConfigurations;
-}
diff --git
a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/registry/config/subscriber/DataSourceRegistrySubscriber.java
b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/registry/config/subscriber/DataSourceRegistrySubscriber.java
index 426a6b9..158d559 100644
---
a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/registry/config/subscriber/DataSourceRegistrySubscriber.java
+++
b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/registry/config/subscriber/DataSourceRegistrySubscriber.java
@@ -18,11 +18,10 @@
package org.apache.shardingsphere.governance.core.registry.config.subscriber;
import com.google.common.eventbus.Subscribe;
-import
org.apache.shardingsphere.governance.core.registry.config.event.datasource.DataSourceAddedSQLNotificationEvent;
import
org.apache.shardingsphere.governance.core.registry.config.event.datasource.DataSourceDroppedSQLNotificationEvent;
-import
org.apache.shardingsphere.infra.config.persist.service.impl.DataSourcePersistService;
import
org.apache.shardingsphere.governance.repository.spi.RegistryCenterRepository;
import
org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration;
+import
org.apache.shardingsphere.infra.config.persist.service.impl.DataSourcePersistService;
import org.apache.shardingsphere.infra.eventbus.ShardingSphereEventBus;
import java.util.Map;
@@ -40,18 +39,6 @@ public final class DataSourceRegistrySubscriber {
}
/**
- * Update data source configurations for add.
- *
- * @param event data source added event
- */
- @Subscribe
- public void update(final DataSourceAddedSQLNotificationEvent event) {
- Map<String, DataSourceConfiguration> dataSourceConfigs =
persistService.load(event.getSchemaName());
- dataSourceConfigs.putAll(event.getDataSourceConfigurations());
- persistService.persist(event.getSchemaName(), dataSourceConfigs);
- }
-
- /**
* Update data source configurations for drop.
*
* @param event data source dropped event
diff --git
a/shardingsphere-governance/shardingsphere-governance-core/src/test/java/org/apache/shardingsphere/governance/core/registry/config/subscriber/DataSourceRegistrySubscriberTest.java
b/shardingsphere-governance/shardingsphere-governance-core/src/test/java/org/apache/shardingsphere/governance/core/registry/config/subscriber/DataSourceRegistrySubscriberTest.java
index 348888d..b6fcb96 100644
---
a/shardingsphere-governance/shardingsphere-governance-core/src/test/java/org/apache/shardingsphere/governance/core/registry/config/subscriber/DataSourceRegistrySubscriberTest.java
+++
b/shardingsphere-governance/shardingsphere-governance-core/src/test/java/org/apache/shardingsphere/governance/core/registry/config/subscriber/DataSourceRegistrySubscriberTest.java
@@ -17,11 +17,10 @@
package org.apache.shardingsphere.governance.core.registry.config.subscriber;
-import
org.apache.shardingsphere.governance.core.registry.config.event.datasource.DataSourceAddedSQLNotificationEvent;
import
org.apache.shardingsphere.governance.core.registry.config.event.datasource.DataSourceDroppedSQLNotificationEvent;
-import
org.apache.shardingsphere.infra.config.persist.service.impl.DataSourcePersistService;
import
org.apache.shardingsphere.governance.repository.spi.RegistryCenterRepository;
import
org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration;
+import
org.apache.shardingsphere.infra.config.persist.service.impl.DataSourcePersistService;
import org.apache.shardingsphere.test.mock.MockedDataSource;
import org.junit.Before;
import org.junit.Test;
@@ -59,14 +58,6 @@ public final class DataSourceRegistrySubscriberTest {
}
@Test
- public void assertUpdateWithDataSourceAddedEvent() {
- Map<String, DataSourceConfiguration> dataSourceConfigs =
createDataSourceConfigurations();
- DataSourceAddedSQLNotificationEvent event = new
DataSourceAddedSQLNotificationEvent("foo_db", dataSourceConfigs);
- dataSourceRegistrySubscriber.update(event);
- verify(persistService).persist("foo_db", dataSourceConfigs);
- }
-
- @Test
public void assertUpdateWithDataSourceAlteredEvent() {
DataSourceDroppedSQLNotificationEvent event = new
DataSourceDroppedSQLNotificationEvent("foo_db",
Collections.singletonList("ds_0"));
Map<String, DataSourceConfiguration> dataSourceConfigs =
createDataSourceConfigurations();
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/config/persist/service/impl/DataSourcePersistService.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/config/persist/service/impl/DataSourcePersistService.java
index bdd4151..5e04229 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/config/persist/service/impl/DataSourcePersistService.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/config/persist/service/impl/DataSourcePersistService.java
@@ -76,4 +76,16 @@ public final class DataSourcePersistService implements
SchemaBasedPersistService
public boolean isExisted(final String schemaName) {
return
!Strings.isNullOrEmpty(repository.get(SchemaMetadataNode.getMetadataDataSourcePath(schemaName)));
}
+
+ /**
+ * Append data source configurations.
+ *
+ * @param schemaName schema name
+ * @param toBeAppendedDataSourceConfigs data source configurations to be
appended
+ */
+ public void append(final String schemaName, final Map<String,
DataSourceConfiguration> toBeAppendedDataSourceConfigs) {
+ Map<String, DataSourceConfiguration> dataSourceConfigs =
load(schemaName);
+ dataSourceConfigs.putAll(toBeAppendedDataSourceConfigs);
+ persist(schemaName, dataSourceConfigs);
+ }
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/config/persist/service/impl/DataSourcePersistServiceTest.java
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/config/persist/service/impl/DataSourcePersistServiceTest.java
index c70470b..5874876 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/config/persist/service/impl/DataSourcePersistServiceTest.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/config/persist/service/impl/DataSourcePersistServiceTest.java
@@ -32,12 +32,14 @@ import java.net.URISyntaxException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Arrays;
+import java.util.Collections;
import java.util.Map;
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.verify;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
@@ -85,4 +87,11 @@ public final class DataSourcePersistServiceTest {
result.setConnectionInitSqls(Arrays.asList("set names utf8mb4;", "set
names utf8;"));
return result;
}
+
+ @Test
+ public void assertAppend() {
+ when(repository.get("/metadata/foo_db/dataSources")).thenReturn("");
+ new DataSourcePersistService(repository).append("foo_db",
Collections.emptyMap());
+ verify(repository).persist("/metadata/foo_db/dataSources", "{}\n");
+ }
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/metadata/MetaDataContexts.java
b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/metadata/MetaDataContexts.java
index 9898f90..e6fad50 100644
---
a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/metadata/MetaDataContexts.java
+++
b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/metadata/MetaDataContexts.java
@@ -17,6 +17,7 @@
package org.apache.shardingsphere.infra.context.metadata;
+import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
import org.apache.shardingsphere.infra.lock.ShardingSphereLock;
@@ -36,6 +37,13 @@ import java.util.Optional;
public interface MetaDataContexts extends Closeable {
/**
+ * Get config center.
+ *
+ * @return config center
+ */
+ ConfigCenter getConfigCenter();
+
+ /**
* Get all schema names.
*
* @return all schema names
diff --git
a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/metadata/MetaDataContextsBuilder.java
b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/metadata/MetaDataContextsBuilder.java
index 3836384..e34e3d6 100644
---
a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/metadata/MetaDataContextsBuilder.java
+++
b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/metadata/MetaDataContextsBuilder.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.infra.context.metadata;
import org.apache.shardingsphere.infra.config.DatabaseAccessConfiguration;
import org.apache.shardingsphere.infra.config.RuleConfiguration;
+import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationPropertyKey;
import
org.apache.shardingsphere.infra.context.metadata.impl.StandardMetaDataContexts;
@@ -85,10 +86,11 @@ public final class MetaDataContextsBuilder {
/**
* Build meta data contexts.
*
+ * @param configCenter config center
* @exception SQLException SQL exception
* @return meta data contexts
*/
- public StandardMetaDataContexts build() throws SQLException {
+ public StandardMetaDataContexts build(final ConfigCenter configCenter)
throws SQLException {
Map<String, ShardingSphereMetaData> metaDataMap = new
HashMap<>(schemaRuleConfigs.size(), 1);
Map<String, ShardingSphereMetaData> actualMetaDataMap = new
HashMap<>(schemaRuleConfigs.size(), 1);
for (String each : schemaRuleConfigs.keySet()) {
@@ -104,7 +106,7 @@ public final class MetaDataContextsBuilder {
metaDataMap.put(each, new ShardingSphereMetaData(each, resource,
ruleMetaData, buildSchema(tableMetaDatas)));
}
OptimizeContextFactory optimizeContextFactory = new
OptimizeContextFactory(actualMetaDataMap);
- return new StandardMetaDataContexts(metaDataMap,
buildGlobalSchemaMetaData(metaDataMap), executorEngine, props,
optimizeContextFactory);
+ return new StandardMetaDataContexts(configCenter, metaDataMap,
buildGlobalSchemaMetaData(metaDataMap), executorEngine, props,
optimizeContextFactory);
}
private ShardingSphereSchema buildSchema(final Map<TableMetaData,
TableMetaData> tableMetaDatas) {
diff --git
a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/metadata/impl/StandardMetaDataContexts.java
b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/metadata/impl/StandardMetaDataContexts.java
index d616ff6..d339f5f 100644
---
a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/metadata/impl/StandardMetaDataContexts.java
+++
b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/metadata/impl/StandardMetaDataContexts.java
@@ -18,6 +18,7 @@
package org.apache.shardingsphere.infra.context.metadata.impl;
import lombok.Getter;
+import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
import org.apache.shardingsphere.infra.context.metadata.MetaDataContexts;
import org.apache.shardingsphere.infra.database.DefaultSchema;
@@ -30,9 +31,9 @@ import org.apache.shardingsphere.infra.state.StateContext;
import java.util.Collection;
import java.util.Collections;
+import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
-import java.util.HashMap;
import java.util.Optional;
import java.util.Properties;
@@ -42,6 +43,9 @@ import java.util.Properties;
@Getter
public final class StandardMetaDataContexts implements MetaDataContexts {
+ @Getter
+ private final ConfigCenter configCenter;
+
private final Map<String, ShardingSphereMetaData> metaDataMap;
private final ShardingSphereRuleMetaData globalRuleMetaData;
@@ -54,13 +58,14 @@ public final class StandardMetaDataContexts implements
MetaDataContexts {
private final StateContext stateContext;
- public StandardMetaDataContexts() {
- this(new LinkedHashMap<>(), new
ShardingSphereRuleMetaData(Collections.emptyList(), Collections.emptyList()),
+ public StandardMetaDataContexts(final ConfigCenter configCenter) {
+ this(configCenter, new LinkedHashMap<>(), new
ShardingSphereRuleMetaData(Collections.emptyList(), Collections.emptyList()),
null, new ConfigurationProperties(new Properties()), new
OptimizeContextFactory(new HashMap<>()));
}
- public StandardMetaDataContexts(final Map<String, ShardingSphereMetaData>
metaDataMap, final ShardingSphereRuleMetaData globalRuleMetaData,
+ public StandardMetaDataContexts(final ConfigCenter configCenter, final
Map<String, ShardingSphereMetaData> metaDataMap, final
ShardingSphereRuleMetaData globalRuleMetaData,
final ExecutorEngine executorEngine, final
ConfigurationProperties props, final OptimizeContextFactory
optimizeContextFactory) {
+ this.configCenter = configCenter;
this.metaDataMap = new LinkedHashMap<>(metaDataMap);
this.globalRuleMetaData = globalRuleMetaData;
this.executorEngine = executorEngine;
diff --git
a/shardingsphere-infra/shardingsphere-infra-context/src/test/java/org/apache/shardingsphere/infra/context/metadata/MetaDataContextsBuilderTest.java
b/shardingsphere-infra/shardingsphere-infra-context/src/test/java/org/apache/shardingsphere/infra/context/metadata/MetaDataContextsBuilderTest.java
index 7a2f14c..dadf66e 100644
---
a/shardingsphere-infra/shardingsphere-infra-context/src/test/java/org/apache/shardingsphere/infra/context/metadata/MetaDataContextsBuilderTest.java
+++
b/shardingsphere-infra/shardingsphere-infra-context/src/test/java/org/apache/shardingsphere/infra/context/metadata/MetaDataContextsBuilderTest.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.infra.context.metadata;
import com.google.common.collect.Lists;
import
org.apache.shardingsphere.authority.api.config.AuthorityRuleConfiguration;
+import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationPropertyKey;
import org.apache.shardingsphere.infra.context.fixture.FixtureRule;
import
org.apache.shardingsphere.infra.context.fixture.FixtureRuleConfiguration;
@@ -40,13 +41,14 @@ import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
@RunWith(MockitoJUnitRunner.class)
public final class MetaDataContextsBuilderTest {
@Test
public void assertBuildWithoutConfiguration() throws SQLException {
- MetaDataContexts actual = new
MetaDataContextsBuilder(Collections.emptyMap(), Collections.emptyMap(),
null).build();
+ MetaDataContexts actual = new
MetaDataContextsBuilder(Collections.emptyMap(), Collections.emptyMap(),
null).build(mock(ConfigCenter.class));
assertTrue(actual.getAllSchemaNames().isEmpty());
assertTrue(actual.getProps().getProps().isEmpty());
}
@@ -55,8 +57,8 @@ public final class MetaDataContextsBuilderTest {
public void assertBuildWithConfigurationsButWithoutDataSource() throws
SQLException {
Properties props = new Properties();
props.setProperty(ConfigurationPropertyKey.EXECUTOR_SIZE.getKey(),
"1");
- MetaDataContexts actual = new MetaDataContextsBuilder(
- Collections.singletonMap("logic_db", Collections.emptyMap()),
Collections.singletonMap("logic_db", Lists.newArrayList(new
FixtureRuleConfiguration())), props).build();
+ MetaDataContexts actual = new
MetaDataContextsBuilder(Collections.singletonMap("logic_db",
Collections.emptyMap()),
+ Collections.singletonMap("logic_db", Lists.newArrayList(new
FixtureRuleConfiguration())), props).build(mock(ConfigCenter.class));
assertRules(actual);
assertTrue(actual.getMetaData("logic_db").getResource().getDataSources().isEmpty());
assertThat(actual.getProps().getProps().size(), is(1));
@@ -68,7 +70,7 @@ public final class MetaDataContextsBuilderTest {
Properties props = new Properties();
props.setProperty(ConfigurationPropertyKey.EXECUTOR_SIZE.getKey(),
"1");
MetaDataContexts actual = new
MetaDataContextsBuilder(Collections.singletonMap("logic_db",
Collections.singletonMap("ds", new MockedDataSource())),
- Collections.singletonMap("logic_db", Lists.newArrayList(new
FixtureRuleConfiguration())), props).build();
+ Collections.singletonMap("logic_db", Lists.newArrayList(new
FixtureRuleConfiguration())), props).build(mock(ConfigCenter.class));
assertRules(actual);
assertDataSources(actual);
assertThat(actual.getProps().getProps().size(), is(1));
@@ -84,7 +86,7 @@ public final class MetaDataContextsBuilderTest {
MetaDataContexts actual = new MetaDataContextsBuilder(
Collections.singletonMap("logic_db", Collections.emptyMap()),
Collections.singletonMap("logic_db",
- Lists.newArrayList(new FixtureRuleConfiguration())),
Collections.singleton(authorityRuleConfig), props).build();
+ Lists.newArrayList(new FixtureRuleConfiguration())),
Collections.singleton(authorityRuleConfig),
props).build(mock(ConfigCenter.class));
assertRules(actual);
assertTrue(actual.getMetaData("logic_db").getResource().getDataSources().isEmpty());
assertThat(actual.getProps().getProps().size(), is(1));
diff --git
a/shardingsphere-infra/shardingsphere-infra-context/src/test/java/org/apache/shardingsphere/infra/context/metadata/impl/StandardMetaDataContextsTest.java
b/shardingsphere-infra/shardingsphere-infra-context/src/test/java/org/apache/shardingsphere/infra/context/metadata/impl/StandardMetaDataContextsTest.java
index 1a872bf..3727ee1 100644
---
a/shardingsphere-infra/shardingsphere-infra-context/src/test/java/org/apache/shardingsphere/infra/context/metadata/impl/StandardMetaDataContextsTest.java
+++
b/shardingsphere-infra/shardingsphere-infra-context/src/test/java/org/apache/shardingsphere/infra/context/metadata/impl/StandardMetaDataContextsTest.java
@@ -17,6 +17,7 @@
package org.apache.shardingsphere.infra.context.metadata.impl;
+import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
import org.apache.shardingsphere.infra.database.DefaultSchema;
import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
@@ -49,7 +50,7 @@ public final class StandardMetaDataContextsTest {
@Test
public void assertGetDefaultMetaData() {
ShardingSphereMetaData metaData = getShardingSphereMetaData();
- StandardMetaDataContexts standardMetaDataContexts = new
StandardMetaDataContexts(Collections.singletonMap(DefaultSchema.LOGIC_NAME,
metaData),
+ StandardMetaDataContexts standardMetaDataContexts = new
StandardMetaDataContexts(mock(ConfigCenter.class),
Collections.singletonMap(DefaultSchema.LOGIC_NAME, metaData),
mock(ShardingSphereRuleMetaData.class), null, new
ConfigurationProperties(new Properties()), optimizeContextFactory);
assertThat(standardMetaDataContexts.getDefaultMetaData(),
is(metaData));
}
@@ -58,7 +59,7 @@ public final class StandardMetaDataContextsTest {
public void assertClose() {
ExecutorEngine executorEngine = mock(ExecutorEngine.class);
ShardingSphereMetaData metaData = getShardingSphereMetaData();
- StandardMetaDataContexts standardMetaDataContexts = new
StandardMetaDataContexts(Collections.singletonMap("logic_db", metaData),
+ StandardMetaDataContexts standardMetaDataContexts = new
StandardMetaDataContexts(mock(ConfigCenter.class),
Collections.singletonMap("logic_db", metaData),
mock(ShardingSphereRuleMetaData.class), executorEngine, new
ConfigurationProperties(new Properties()), optimizeContextFactory);
standardMetaDataContexts.close();
verify(executorEngine).close();
diff --git
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSource.java
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSource.java
index 9a74c77..ed1ded7 100644
---
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSource.java
+++
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSource.java
@@ -22,6 +22,9 @@ import lombok.RequiredArgsConstructor;
import
org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection;
import
org.apache.shardingsphere.driver.jdbc.unsupported.AbstractUnsupportedOperationDataSource;
import org.apache.shardingsphere.infra.config.RuleConfiguration;
+import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
+import
org.apache.shardingsphere.infra.config.persist.repository.ConfigCenterRepository;
+import
org.apache.shardingsphere.infra.config.persist.repository.LocalConfigCenterRepository;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationPropertyKey;
import org.apache.shardingsphere.infra.context.metadata.MetaDataContexts;
import
org.apache.shardingsphere.infra.context.metadata.MetaDataContextsBuilder;
@@ -51,8 +54,10 @@ public final class ShardingSphereDataSource extends
AbstractUnsupportedOperation
private final TransactionContexts transactionContexts;
public ShardingSphereDataSource(final Map<String, DataSource>
dataSourceMap, final Collection<RuleConfiguration> configurations, final
Properties props) throws SQLException {
+ // TODO load from SPI
+ ConfigCenterRepository repository = new LocalConfigCenterRepository();
metaDataContexts = new MetaDataContextsBuilder(
- Collections.singletonMap(DefaultSchema.LOGIC_NAME,
dataSourceMap), Collections.singletonMap(DefaultSchema.LOGIC_NAME,
configurations), props).build();
+ Collections.singletonMap(DefaultSchema.LOGIC_NAME,
dataSourceMap), Collections.singletonMap(DefaultSchema.LOGIC_NAME,
configurations), props).build(new ConfigCenter(repository));
String xaTransactionMangerType =
metaDataContexts.getProps().getValue(ConfigurationPropertyKey.XA_TRANSACTION_MANAGER_TYPE);
transactionContexts =
createTransactionContexts(metaDataContexts.getDefaultMetaData().getResource().getDatabaseType(),
dataSourceMap, xaTransactionMangerType);
}
diff --git
a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/internal/datasource/GovernanceShardingSphereDataSource.java
b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/internal/datasource/GovernanceShardingSphereDataSource.java
index 72b5982..bafb8a7 100644
---
a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/internal/datasource/GovernanceShardingSphereDataSource.java
+++
b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/internal/datasource/GovernanceShardingSphereDataSource.java
@@ -80,7 +80,7 @@ public final class GovernanceShardingSphereDataSource extends
AbstractUnsupporte
repository =
RegistryCenterRepositoryFactory.newInstance(governanceConfig);
ConfigCenter configCenter = new ConfigCenter(repository);
RegistryCenter registryCenter = new RegistryCenter(repository);
- metaDataContexts = new
GovernanceMetaDataContexts(createMetaDataContexts(dataSourceMap, ruleConfigs,
props), configCenter, registryCenter, repository);
+ metaDataContexts = new
GovernanceMetaDataContexts(createMetaDataContexts(configCenter, dataSourceMap,
ruleConfigs, props), configCenter, registryCenter, repository);
String xaTransactionMangerType =
metaDataContexts.getProps().getValue(ConfigurationPropertyKey.XA_TRANSACTION_MANAGER_TYPE);
transactionContexts =
createTransactionContexts(metaDataContexts.getDefaultMetaData().getResource().getDatabaseType(),
metaDataContexts.getDefaultMetaData().getResource().getDataSources(),
xaTransactionMangerType);
@@ -93,13 +93,14 @@ public final class GovernanceShardingSphereDataSource
extends AbstractUnsupporte
Map<String, DataSource> dataSourceMap =
DataSourceConverter.getDataSourceMap(dataSourceConfigs);
MetaDataContextsBuilder metaDataContextsBuilder = new
MetaDataContextsBuilder(Collections.singletonMap(DefaultSchema.LOGIC_NAME,
dataSourceMap),
Collections.singletonMap(DefaultSchema.LOGIC_NAME,
ruleConfigurations), configCenter.getGlobalRuleService().load(),
configCenter.getPropsService().load());
- return metaDataContextsBuilder.build();
+ return metaDataContextsBuilder.build(configCenter);
}
- private StandardMetaDataContexts createMetaDataContexts(final Map<String,
DataSource> dataSourceMap, final Collection<RuleConfiguration> ruleConfigs,
final Properties props) throws SQLException {
+ private StandardMetaDataContexts createMetaDataContexts(final ConfigCenter
configCenter,
+ final Map<String,
DataSource> dataSourceMap, final Collection<RuleConfiguration> ruleConfigs,
final Properties props) throws SQLException {
MetaDataContextsBuilder metaDataContextsBuilder = new
MetaDataContextsBuilder(
Collections.singletonMap(DefaultSchema.LOGIC_NAME,
dataSourceMap), Collections.singletonMap(DefaultSchema.LOGIC_NAME,
ruleConfigs), props);
- return metaDataContextsBuilder.build();
+ return metaDataContextsBuilder.build(configCenter);
}
private TransactionContexts createTransactionContexts(final DatabaseType
databaseType, final Map<String, DataSource> dataSourceMap, final String
xaTransactionMangerType) {
diff --git
a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/test/java/org/apache/shardingsphere/driver/governance/internal/state/DriverStateContextTest.java
b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/test/java/org/apache/shardingsphere/driver/governance/internal/state/DriverStateContextTest.java
index 52af438..b664ab7 100644
---
a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/test/java/org/apache/shardingsphere/driver/governance/internal/state/DriverStateContextTest.java
+++
b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/test/java/org/apache/shardingsphere/driver/governance/internal/state/DriverStateContextTest.java
@@ -19,6 +19,7 @@ package
org.apache.shardingsphere.driver.governance.internal.state;
import
org.apache.shardingsphere.driver.governance.internal.circuit.connection.CircuitBreakerConnection;
import
org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection;
+import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
import org.apache.shardingsphere.infra.context.metadata.MetaDataContexts;
import
org.apache.shardingsphere.infra.context.metadata.impl.StandardMetaDataContexts;
import org.apache.shardingsphere.infra.state.StateEvent;
@@ -38,7 +39,7 @@ import static org.mockito.Mockito.mock;
public final class DriverStateContextTest {
- private MetaDataContexts metaDataContexts = new StandardMetaDataContexts();
+ private MetaDataContexts metaDataContexts = new
StandardMetaDataContexts(mock(ConfigCenter.class));
@Test
public void assertGetConnectionWithOkState() {
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/context/ProxyContext.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/context/ProxyContext.java
index a28a42c..03c3872 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/context/ProxyContext.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/context/ProxyContext.java
@@ -52,7 +52,7 @@ public final class ProxyContext {
private ProxyContext() {
backendDataSource = new JDBCBackendDataSource();
- metaDataContexts = new StandardMetaDataContexts();
+ metaDataContexts = new StandardMetaDataContexts(null);
transactionContexts = new StandardTransactionContexts();
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/resource/AddResourceBackendHandler.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/resource/AddResourceBackendHandler.java
index 3d7b8b3..2c0ecbd 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/resource/AddResourceBackendHandler.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/resource/AddResourceBackendHandler.java
@@ -19,11 +19,9 @@ package
org.apache.shardingsphere.proxy.backend.text.distsql.rdl.resource;
import org.apache.shardingsphere.distsql.parser.segment.DataSourceSegment;
import
org.apache.shardingsphere.distsql.parser.statement.rdl.create.AddResourceStatement;
-import
org.apache.shardingsphere.governance.core.registry.config.event.datasource.DataSourceAddedSQLNotificationEvent;
import
org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration;
import org.apache.shardingsphere.infra.config.datasource.DataSourceValidator;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
-import org.apache.shardingsphere.infra.eventbus.ShardingSphereEventBus;
import org.apache.shardingsphere.infra.distsql.exception.DistSQLException;
import
org.apache.shardingsphere.infra.distsql.exception.resource.DuplicateResourceException;
import
org.apache.shardingsphere.infra.distsql.exception.resource.InvalidResourceException;
@@ -62,14 +60,14 @@ public final class AddResourceBackendHandler extends
SchemaRequiredBackendHandle
@Override
public ResponseHeader execute(final String schemaName, final
AddResourceStatement sqlStatement) throws DistSQLException {
check(schemaName, sqlStatement);
- Map<String, DataSourceConfiguration> dataSourceConfigMap =
DataSourceParameterConverter.getDataSourceConfigurationMap(
+ Map<String, DataSourceConfiguration> dataSourceConfigs =
DataSourceParameterConverter.getDataSourceConfigurationMap(
DataSourceParameterConverter.getDataSourceParameterMapFromYamlConfiguration(AddResourcesStatementConverter.convert(databaseType,
sqlStatement)));
- Collection<String> invalidDataSourceNames =
dataSourceConfigMap.entrySet()
+ Collection<String> invalidDataSourceNames =
dataSourceConfigs.entrySet()
.stream().filter(entry ->
!dataSourceValidator.validate(entry.getValue())).map(Entry::getKey).collect(Collectors.toList());
if (!invalidDataSourceNames.isEmpty()) {
throw new InvalidResourceException(invalidDataSourceNames);
}
- post(schemaName, dataSourceConfigMap);
+
ProxyContext.getInstance().getMetaDataContexts().getConfigCenter().getDataSourceService().append(schemaName,
dataSourceConfigs);
return new UpdateResponseHeader(sqlStatement);
}
@@ -86,9 +84,4 @@ public final class AddResourceBackendHandler extends
SchemaRequiredBackendHandle
throw new DuplicateResourceException(duplicateDataSourceNames);
}
}
-
- private void post(final String schemaName, final Map<String,
DataSourceConfiguration> dataSources) {
- // TODO Need to get the executed feedback from registry center for
returning.
- ShardingSphereEventBus.getInstance().post(new
DataSourceAddedSQLNotificationEvent(schemaName, dataSources));
- }
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngineFactoryTest.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngineFactoryTest.java
index 4414fb5..ae4b4be 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngineFactoryTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngineFactoryTest.java
@@ -18,6 +18,7 @@
package org.apache.shardingsphere.proxy.backend.communication;
import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
+import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
import
org.apache.shardingsphere.infra.context.metadata.impl.StandardMetaDataContexts;
import org.apache.shardingsphere.infra.database.type.dialect.H2DatabaseType;
@@ -50,7 +51,7 @@ public final class DatabaseCommunicationEngineFactoryTest {
public void setUp() throws IllegalAccessException, NoSuchFieldException {
Field metaDataContexts =
ProxyContext.getInstance().getClass().getDeclaredField("metaDataContexts");
metaDataContexts.setAccessible(true);
- metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(getMetaDataMap(),
mock(ShardingSphereRuleMetaData.class),
+ metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(mock(ConfigCenter.class), getMetaDataMap(),
mock(ShardingSphereRuleMetaData.class),
mock(ExecutorEngine.class), new ConfigurationProperties(new
Properties()), getOptimizeContextFactory()));
BackendConnection backendConnection = mock(BackendConnection.class,
RETURNS_DEEP_STUBS);
when(backendConnection.getSchemaName()).thenReturn("schema");
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngineTest.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngineTest.java
index b68d083..eff67cc 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngineTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngineTest.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.proxy.backend.communication;
import lombok.SneakyThrows;
import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
+import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
import org.apache.shardingsphere.infra.context.metadata.MetaDataContexts;
import
org.apache.shardingsphere.infra.context.metadata.impl.StandardMetaDataContexts;
@@ -57,9 +58,9 @@ import java.sql.Statement;
import java.sql.Types;
import java.util.Collection;
import java.util.Collections;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.HashMap;
import java.util.Optional;
import java.util.Properties;
@@ -90,7 +91,7 @@ public final class DatabaseCommunicationEngineTest {
@Before
public void setUp() {
when(backendConnection.getSchemaName()).thenReturn("schema");
- MetaDataContexts metaDataContexts = new
StandardMetaDataContexts(mockMetaDataMap(),
mock(ShardingSphereRuleMetaData.class), mock(ExecutorEngine.class),
+ MetaDataContexts metaDataContexts = new
StandardMetaDataContexts(mock(ConfigCenter.class), mockMetaDataMap(),
mock(ShardingSphereRuleMetaData.class), mock(ExecutorEngine.class),
new ConfigurationProperties(new Properties()),
mockOptimizeContextFactory());
ProxyContext.getInstance().init(metaDataContexts, new
StandardTransactionContexts());
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/connection/BackendConnectionTest.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/connection/BackendConnectionTest.java
index e52e9b3..6a4aea7 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/connection/BackendConnectionTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/connection/BackendConnectionTest.java
@@ -19,6 +19,7 @@ package
org.apache.shardingsphere.proxy.backend.communication.jdbc.connection;
import com.google.common.collect.Multimap;
import lombok.SneakyThrows;
+import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
import
org.apache.shardingsphere.infra.context.metadata.impl.StandardMetaDataContexts;
import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
@@ -101,7 +102,7 @@ public final class BackendConnectionTest {
private void setMetaDataContexts() throws ReflectiveOperationException {
Field field =
ProxyContext.getInstance().getClass().getDeclaredField("metaDataContexts");
field.setAccessible(true);
- field.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(createMetaDataMap(),
+ field.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(mock(ConfigCenter.class), createMetaDataMap(),
mock(ShardingSphereRuleMetaData.class),
mock(ExecutorEngine.class), new ConfigurationProperties(new Properties()),
mock(OptimizeContextFactory.class)));
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/datasource/JDBCBackendDataSourceTest.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/datasource/JDBCBackendDataSourceTest.java
index 9907f00..14f0254 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/datasource/JDBCBackendDataSourceTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/datasource/JDBCBackendDataSourceTest.java
@@ -19,6 +19,7 @@ package
org.apache.shardingsphere.proxy.backend.communication.jdbc.datasource;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
+import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
import
org.apache.shardingsphere.infra.context.metadata.impl.StandardMetaDataContexts;
import org.apache.shardingsphere.infra.database.type.dialect.H2DatabaseType;
@@ -74,7 +75,7 @@ public final class JDBCBackendDataSourceTest {
private void setMetaDataContexts() {
Field metaDataContexts =
ProxyContext.getInstance().getClass().getDeclaredField("metaDataContexts");
metaDataContexts.setAccessible(true);
- metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(createMetaDataMap(),
mock(ShardingSphereRuleMetaData.class),
+ metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(mock(ConfigCenter.class), createMetaDataMap(),
mock(ShardingSphereRuleMetaData.class),
mock(ExecutorEngine.class), new ConfigurationProperties(new
Properties()), mock(OptimizeContextFactory.class)));
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/context/BackendExecutorContextTest.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/context/BackendExecutorContextTest.java
index 9236a37..bf5a71c 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/context/BackendExecutorContextTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/context/BackendExecutorContextTest.java
@@ -17,6 +17,7 @@
package org.apache.shardingsphere.proxy.backend.context;
+import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
import org.apache.shardingsphere.infra.context.metadata.MetaDataContexts;
import
org.apache.shardingsphere.infra.context.metadata.impl.StandardMetaDataContexts;
@@ -38,7 +39,7 @@ public final class BackendExecutorContextTest {
@Before
public void setUp() {
- MetaDataContexts metaDataContexts = new
StandardMetaDataContexts(Collections.emptyMap(),
mock(ShardingSphereRuleMetaData.class),
+ MetaDataContexts metaDataContexts = new
StandardMetaDataContexts(mock(ConfigCenter.class), Collections.emptyMap(),
mock(ShardingSphereRuleMetaData.class),
mock(ExecutorEngine.class), new ConfigurationProperties(new
Properties()), mock(OptimizeContextFactory.class));
ProxyContext.getInstance().init(metaDataContexts, new
StandardTransactionContexts());
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/context/ProxyContextTest.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/context/ProxyContextTest.java
index 0984b99..39cc416 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/context/ProxyContextTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/context/ProxyContextTest.java
@@ -17,6 +17,7 @@
package org.apache.shardingsphere.proxy.backend.context;
+import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
import org.apache.shardingsphere.infra.context.metadata.MetaDataContexts;
import
org.apache.shardingsphere.infra.context.metadata.impl.StandardMetaDataContexts;
@@ -35,10 +36,10 @@ import org.junit.Test;
import javax.sql.DataSource;
import java.lang.reflect.Field;
import java.util.Collections;
+import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.Map;
-import java.util.HashMap;
import java.util.Properties;
import static org.hamcrest.CoreMatchers.is;
@@ -70,7 +71,7 @@ public final class ProxyContextTest {
Map<String, ShardingSphereMetaData> metaDataMap =
mockMetaDataMap(Collections.emptyMap());
Field metaDataContexts =
ProxyContext.getInstance().getClass().getDeclaredField("metaDataContexts");
metaDataContexts.setAccessible(true);
- metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(metaDataMap, mock(ShardingSphereRuleMetaData.class),
mock(ExecutorEngine.class),
+ metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(mock(ConfigCenter.class), metaDataMap,
mock(ShardingSphereRuleMetaData.class), mock(ExecutorEngine.class),
new ConfigurationProperties(new Properties()),
mock(OptimizeContextFactory.class)));
assertTrue(ProxyContext.getInstance().schemaExists("schema"));
assertFalse(ProxyContext.getInstance().schemaExists("schema_2"));
@@ -91,7 +92,7 @@ public final class ProxyContextTest {
Map<String, ShardingSphereMetaData> metaDataMap =
mockMetaDataMap(Collections.emptyMap());
Field metaDataContexts =
ProxyContext.getInstance().getClass().getDeclaredField("metaDataContexts");
metaDataContexts.setAccessible(true);
- metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(metaDataMap, mock(ShardingSphereRuleMetaData.class),
mock(ExecutorEngine.class),
+ metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(mock(ConfigCenter.class), metaDataMap,
mock(ShardingSphereRuleMetaData.class), mock(ExecutorEngine.class),
new ConfigurationProperties(new Properties()),
mock(OptimizeContextFactory.class)));
ProxyContext.getInstance().getMetaData("schema1");
}
@@ -101,7 +102,7 @@ public final class ProxyContextTest {
Map<String, ShardingSphereMetaData> metaDataMap =
mockMetaDataMap(Collections.emptyMap());
Field metaDataContexts =
ProxyContext.getInstance().getClass().getDeclaredField("metaDataContexts");
metaDataContexts.setAccessible(true);
- metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(metaDataMap, mock(ShardingSphereRuleMetaData.class),
mock(ExecutorEngine.class),
+ metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(mock(ConfigCenter.class), metaDataMap,
mock(ShardingSphereRuleMetaData.class), mock(ExecutorEngine.class),
new ConfigurationProperties(new Properties()),
mock(OptimizeContextFactory.class)));
assertThat(metaDataMap.get("schema"),
is(ProxyContext.getInstance().getMetaData("schema")));
}
@@ -111,7 +112,7 @@ public final class ProxyContextTest {
Map<String, ShardingSphereMetaData> metaDataMap = createMetaDataMap();
Field metaDataContexts =
ProxyContext.getInstance().getClass().getDeclaredField("metaDataContexts");
metaDataContexts.setAccessible(true);
- metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(metaDataMap, mock(ShardingSphereRuleMetaData.class),
mock(ExecutorEngine.class),
+ metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(mock(ConfigCenter.class), metaDataMap,
mock(ShardingSphereRuleMetaData.class), mock(ExecutorEngine.class),
new ConfigurationProperties(new Properties()),
mock(OptimizeContextFactory.class)));
assertThat(new
LinkedHashSet<>(ProxyContext.getInstance().getAllSchemaNames()),
is(metaDataMap.keySet()));
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/DatabaseOperateBackendHandlerFactoryTest.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/DatabaseOperateBackendHandlerFactoryTest.java
index d6db83c..27a4e4f 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/DatabaseOperateBackendHandlerFactoryTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/DatabaseOperateBackendHandlerFactoryTest.java
@@ -18,6 +18,7 @@
package org.apache.shardingsphere.proxy.backend.text.admin;
import lombok.SneakyThrows;
+import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
import org.apache.shardingsphere.infra.context.metadata.MetaDataContexts;
import
org.apache.shardingsphere.infra.context.metadata.impl.StandardMetaDataContexts;
@@ -63,7 +64,7 @@ public final class DatabaseOperateBackendHandlerFactoryTest {
public void setUp() throws IllegalAccessException, NoSuchFieldException {
Field metaDataContexts =
ProxyContext.getInstance().getClass().getDeclaredField("metaDataContexts");
metaDataContexts.setAccessible(true);
- metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(getMetaDataMap(),
+ metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(mock(ConfigCenter.class), getMetaDataMap(),
mock(ShardingSphereRuleMetaData.class),
mock(ExecutorEngine.class), new ConfigurationProperties(new Properties()),
mock(OptimizeContextFactory.class)));
}
@@ -162,7 +163,7 @@ public final class DatabaseOperateBackendHandlerFactoryTest
{
when(mockedMetaDataContexts.getMetaData("schema")).thenReturn(metaData);
metaDataContexts.set(ProxyContext.getInstance(),
mockedMetaDataContexts);
} else {
- metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts());
+ metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(mock(ConfigCenter.class)));
}
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowDatabasesExecutorTest.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowDatabasesExecutorTest.java
index 500aa82..dbdfb70 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowDatabasesExecutorTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowDatabasesExecutorTest.java
@@ -17,6 +17,7 @@
package org.apache.shardingsphere.proxy.backend.text.admin.mysql.executor;
+import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
import
org.apache.shardingsphere.infra.context.metadata.impl.StandardMetaDataContexts;
import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
@@ -57,7 +58,7 @@ public final class ShowDatabasesExecutorTest {
showDatabasesExecutor = new ShowDatabasesExecutor();
Field metaDataContexts =
ProxyContext.getInstance().getClass().getDeclaredField("metaDataContexts");
metaDataContexts.setAccessible(true);
- metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(getMetaDataMap(),
mock(ShardingSphereRuleMetaData.class),
+ metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(mock(ConfigCenter.class), getMetaDataMap(),
mock(ShardingSphereRuleMetaData.class),
mock(ExecutorEngine.class), new ConfigurationProperties(new
Properties()), mock(OptimizeContextFactory.class)));
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowTablesExecutorTest.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowTablesExecutorTest.java
index 0b85e9b..6c45cdf 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowTablesExecutorTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowTablesExecutorTest.java
@@ -17,6 +17,7 @@
package org.apache.shardingsphere.proxy.backend.text.admin.mysql.executor;
+import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
import
org.apache.shardingsphere.infra.context.metadata.impl.StandardMetaDataContexts;
import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
@@ -54,7 +55,7 @@ public final class ShowTablesExecutorTest {
Map<String, ShardingSphereMetaData> metaDataMap = getMetaDataMap();
Field metaDataContexts =
ProxyContext.getInstance().getClass().getDeclaredField("metaDataContexts");
metaDataContexts.setAccessible(true);
- metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(metaDataMap, mock(ShardingSphereRuleMetaData.class),
mock(ExecutorEngine.class),
+ metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(mock(ConfigCenter.class), metaDataMap,
mock(ShardingSphereRuleMetaData.class), mock(ExecutorEngine.class),
new ConfigurationProperties(new Properties()),
mock(OptimizeContextFactory.class)));
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/UseDatabaseExecutorTest.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/UseDatabaseExecutorTest.java
index 9776069..221e2c7 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/UseDatabaseExecutorTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/UseDatabaseExecutorTest.java
@@ -17,6 +17,7 @@
package org.apache.shardingsphere.proxy.backend.text.admin.mysql.executor;
+import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
import
org.apache.shardingsphere.infra.context.metadata.impl.StandardMetaDataContexts;
import org.apache.shardingsphere.infra.database.type.dialect.H2DatabaseType;
@@ -56,7 +57,7 @@ public final class UseDatabaseExecutorTest {
backendConnection = mock(BackendConnection.class);
Field metaDataContexts =
ProxyContext.getInstance().getClass().getDeclaredField("metaDataContexts");
metaDataContexts.setAccessible(true);
- metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(getMetaDataMap(),
mock(ShardingSphereRuleMetaData.class), mock(ExecutorEngine.class),
+ metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(mock(ConfigCenter.class), getMetaDataMap(),
mock(ShardingSphereRuleMetaData.class), mock(ExecutorEngine.class),
new ConfigurationProperties(new Properties()),
mock(OptimizeContextFactory.class)));
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/data/impl/BroadcastDatabaseBackendHandlerTest.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/data/impl/BroadcastDatabaseBackendHandlerTest.java
index 7278ead..0a3d8d0 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/data/impl/BroadcastDatabaseBackendHandlerTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/data/impl/BroadcastDatabaseBackendHandlerTest.java
@@ -19,6 +19,7 @@ package
org.apache.shardingsphere.proxy.backend.text.data.impl;
import lombok.SneakyThrows;
import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
+import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
import
org.apache.shardingsphere.infra.context.metadata.impl.StandardMetaDataContexts;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
@@ -76,7 +77,7 @@ public final class BroadcastDatabaseBackendHandlerTest {
public void setUp() throws IllegalAccessException, NoSuchFieldException {
Field metaDataContexts =
ProxyContext.getInstance().getClass().getDeclaredField("metaDataContexts");
metaDataContexts.setAccessible(true);
- metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(getMetaDataMap(),
mock(ShardingSphereRuleMetaData.class),
+ metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(mock(ConfigCenter.class), getMetaDataMap(),
mock(ShardingSphereRuleMetaData.class),
mock(ExecutorEngine.class), new ConfigurationProperties(new
Properties()), mock(OptimizeContextFactory.class)));
when(backendConnection.getSchemaName()).thenReturn(String.format(SCHEMA_PATTERN,
0));
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/data/impl/SchemaAssignedDatabaseBackendHandlerTest.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/data/impl/SchemaAssignedDatabaseBackendHandlerTest.java
index fc3c9cb..a65c112 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/data/impl/SchemaAssignedDatabaseBackendHandlerTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/data/impl/SchemaAssignedDatabaseBackendHandlerTest.java
@@ -19,6 +19,7 @@ package
org.apache.shardingsphere.proxy.backend.text.data.impl;
import lombok.SneakyThrows;
import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
+import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
import
org.apache.shardingsphere.infra.context.metadata.impl.StandardMetaDataContexts;
import org.apache.shardingsphere.infra.database.type.dialect.H2DatabaseType;
@@ -77,7 +78,7 @@ public final class SchemaAssignedDatabaseBackendHandlerTest {
public void setUp() throws IllegalAccessException, NoSuchFieldException,
SQLException {
Field metaDataContexts =
ProxyContext.getInstance().getClass().getDeclaredField("metaDataContexts");
metaDataContexts.setAccessible(true);
- metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(getMetaDataMap(),
mock(ShardingSphereRuleMetaData.class), mock(ExecutorEngine.class),
+ metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(mock(ConfigCenter.class), getMetaDataMap(),
mock(ShardingSphereRuleMetaData.class), mock(ExecutorEngine.class),
new ConfigurationProperties(new Properties()),
mock(OptimizeContextFactory.class)));
when(backendConnection.getSchemaName()).thenReturn(String.format(SCHEMA_PATTERN,
0));
mockDatabaseCommunicationEngine(new
UpdateResponseHeader(mock(SQLStatement.class)));
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/data/impl/UnicastDatabaseBackendHandlerTest.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/data/impl/UnicastDatabaseBackendHandlerTest.java
index 061f1ec..35e01a8 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/data/impl/UnicastDatabaseBackendHandlerTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/data/impl/UnicastDatabaseBackendHandlerTest.java
@@ -19,6 +19,7 @@ package
org.apache.shardingsphere.proxy.backend.text.data.impl;
import lombok.SneakyThrows;
import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
+import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
import
org.apache.shardingsphere.infra.context.metadata.impl.StandardMetaDataContexts;
import org.apache.shardingsphere.infra.database.type.dialect.H2DatabaseType;
@@ -77,7 +78,7 @@ public final class UnicastDatabaseBackendHandlerTest {
public void setUp() throws IllegalAccessException, NoSuchFieldException,
SQLException {
Field metaDataContexts =
ProxyContext.getInstance().getClass().getDeclaredField("metaDataContexts");
metaDataContexts.setAccessible(true);
- metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(getMetaDataMap(),
mock(ShardingSphereRuleMetaData.class), mock(ExecutorEngine.class),
+ metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(mock(ConfigCenter.class), getMetaDataMap(),
mock(ShardingSphereRuleMetaData.class), mock(ExecutorEngine.class),
new ConfigurationProperties(new Properties()),
mock(OptimizeContextFactory.class)));
when(backendConnection.getSchemaName()).thenReturn(String.format(SCHEMA_PATTERN,
0));
mockDatabaseCommunicationEngine(new
UpdateResponseHeader(mock(SQLStatement.class)));
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/DistSQLBackendHandlerFactoryTest.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/DistSQLBackendHandlerFactoryTest.java
index 7096aae..1f71c7d 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/DistSQLBackendHandlerFactoryTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/DistSQLBackendHandlerFactoryTest.java
@@ -17,11 +17,11 @@
package org.apache.shardingsphere.proxy.backend.text.distsql;
-import lombok.SneakyThrows;
import
org.apache.shardingsphere.distsql.parser.statement.rdl.RuleDefinitionStatement;
import
org.apache.shardingsphere.distsql.parser.statement.rdl.create.AddResourceStatement;
import
org.apache.shardingsphere.distsql.parser.statement.rdl.drop.DropResourceStatement;
import
org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowResourcesStatement;
+import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
import org.apache.shardingsphere.infra.context.metadata.MetaDataContexts;
import
org.apache.shardingsphere.infra.context.metadata.impl.StandardMetaDataContexts;
@@ -42,6 +42,7 @@ import
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.Alt
import
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.CreateReadwriteSplittingRuleStatement;
import
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.DropReadwriteSplittingRuleStatement;
import
org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingTableRuleStatement;
+import org.apache.shardingsphere.transaction.context.TransactionContexts;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -67,7 +68,7 @@ public final class DistSQLBackendHandlerFactoryTest {
public void setUp() throws IllegalAccessException, NoSuchFieldException {
Field metaDataContexts =
ProxyContext.getInstance().getClass().getDeclaredField("metaDataContexts");
metaDataContexts.setAccessible(true);
- metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(getMetaDataMap(),
+ metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(mock(ConfigCenter.class), getMetaDataMap(),
mock(ShardingSphereRuleMetaData.class),
mock(ExecutorEngine.class), new ConfigurationProperties(new Properties()),
mock(OptimizeContextFactory.class)));
}
@@ -175,22 +176,17 @@ public final class DistSQLBackendHandlerFactoryTest {
assertThat(response, instanceOf(QueryResponseHeader.class));
}
- @SneakyThrows(ReflectiveOperationException.class)
private void setGovernanceMetaDataContexts(final boolean isGovernance) {
- Field metaDataContexts =
ProxyContext.getInstance().getClass().getDeclaredField("metaDataContexts");
- metaDataContexts.setAccessible(true);
- if (isGovernance) {
- MetaDataContexts mockedMetaDataContexts =
mock(MetaDataContexts.class);
-
when(mockedMetaDataContexts.getAllSchemaNames()).thenReturn(Collections.singletonList("schema"));
- ShardingSphereMetaData metaData =
mock(ShardingSphereMetaData.class, RETURNS_DEEP_STUBS);
- when(metaData.getResource().getDatabaseType()).thenReturn(new
MySQLDatabaseType());
-
when(metaData.getResource().getDataSources()).thenReturn(Collections.emptyMap());
-
when(metaData.getResource().getNotExistedResources(any())).thenReturn(Collections.emptyList());
-
when(mockedMetaDataContexts.getMetaData("schema")).thenReturn(metaData);
- metaDataContexts.set(ProxyContext.getInstance(),
mockedMetaDataContexts);
- } else {
- metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts());
- }
+ ProxyContext.getInstance().init(isGovernance ? mockMetaDataContexts()
: new StandardMetaDataContexts(mock(ConfigCenter.class)),
mock(TransactionContexts.class));
+ }
+
+ private MetaDataContexts mockMetaDataContexts() {
+ MetaDataContexts result = mock(MetaDataContexts.class,
RETURNS_DEEP_STUBS);
+
when(result.getAllSchemaNames()).thenReturn(Collections.singletonList("schema"));
+
when(result.getMetaData("schema").getResource().getDatabaseType()).thenReturn(new
MySQLDatabaseType());
+
when(result.getMetaData("schema").getResource().getDataSources()).thenReturn(Collections.emptyMap());
+
when(result.getMetaData("schema").getResource().getNotExistedResources(any())).thenReturn(Collections.emptyList());
+ return result;
}
@After
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/resource/AddResourceBackendHandlerTest.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/resource/AddResourceBackendHandlerTest.java
index 70896e4..7f399bd 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/resource/AddResourceBackendHandlerTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/resource/AddResourceBackendHandlerTest.java
@@ -34,6 +34,7 @@ import
org.apache.shardingsphere.transaction.context.TransactionContexts;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
@@ -44,7 +45,6 @@ import java.util.Properties;
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
@@ -59,17 +59,17 @@ public final class AddResourceBackendHandlerTest {
@Mock
private BackendConnection backendConnection;
- @Mock
+ @Mock(answer = Answers.RETURNS_DEEP_STUBS)
private MetaDataContexts metaDataContexts;
@Mock
private TransactionContexts transactionContexts;
@Mock
- private ShardingSphereMetaData shardingSphereMetaData;
+ private ShardingSphereMetaData metaData;
@Mock
- private ShardingSphereResource shardingSphereResource;
+ private ShardingSphereResource resource;
private AddResourceBackendHandler addResourceBackendHandler;
@@ -85,9 +85,9 @@ public final class AddResourceBackendHandlerTest {
public void assertExecute() throws DistSQLException {
ProxyContext.getInstance().init(metaDataContexts, transactionContexts);
when(metaDataContexts.getAllSchemaNames()).thenReturn(Collections.singleton("test"));
-
when(metaDataContexts.getMetaData(eq("test"))).thenReturn(shardingSphereMetaData);
-
when(shardingSphereMetaData.getResource()).thenReturn(shardingSphereResource);
- when(shardingSphereResource.getDataSources()).thenReturn(new
HashMap<>());
+ when(metaDataContexts.getMetaData("test")).thenReturn(metaData);
+ when(metaData.getResource()).thenReturn(resource);
+ when(resource.getDataSources()).thenReturn(new HashMap<>());
when(dataSourceValidator.validate(any(DataSourceConfiguration.class))).thenReturn(true);
ResponseHeader responseHeader =
addResourceBackendHandler.execute("test", createAddResourceStatement());
assertTrue(responseHeader instanceof UpdateResponseHeader);
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/sctl/explain/ShardingCTLExplainBackendHandlerTest.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/sctl/explain/ShardingCTLExplainBackendHandlerTest.java
index d1ea933..f62ffae 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/sctl/explain/ShardingCTLExplainBackendHandlerTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/sctl/explain/ShardingCTLExplainBackendHandlerTest.java
@@ -1,5 +1,6 @@
package org.apache.shardingsphere.proxy.backend.text.sctl.explain;
+import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
import
org.apache.shardingsphere.infra.context.metadata.impl.StandardMetaDataContexts;
import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
@@ -61,7 +62,7 @@ public final class ShardingCTLExplainBackendHandlerTest {
handler = new ShardingCTLExplainBackendHandler("sctl:explain select
1", connection);
Field metaDataContexts =
ProxyContext.getInstance().getClass().getDeclaredField("metaDataContexts");
metaDataContexts.setAccessible(true);
- metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(getMetaDataMap(),
+ metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(mock(ConfigCenter.class), getMetaDataMap(),
mock(ShardingSphereRuleMetaData.class),
mock(ExecutorEngine.class), new ConfigurationProperties(new Properties()),
mock(OptimizeContextFactory.class)));
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/sctl/hint/ShardingCTLHintBackendHandlerTest.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/sctl/hint/ShardingCTLHintBackendHandlerTest.java
index 65b058d..2057281 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/sctl/hint/ShardingCTLHintBackendHandlerTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/sctl/hint/ShardingCTLHintBackendHandlerTest.java
@@ -18,6 +18,7 @@
package org.apache.shardingsphere.proxy.backend.text.sctl.hint;
import com.google.common.collect.ImmutableMap;
+import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationPropertyKey;
import org.apache.shardingsphere.infra.context.metadata.MetaDataContexts;
@@ -167,7 +168,7 @@ public final class ShardingCTLHintBackendHandlerTest {
metaDataContexts.setAccessible(true);
Properties props = new Properties();
props.setProperty(ConfigurationPropertyKey.PROXY_HINT_ENABLED.getKey(),
Boolean.TRUE.toString());
- metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(getMetaDataMap(),
mock(ShardingSphereRuleMetaData.class),
+ metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(mock(ConfigCenter.class), getMetaDataMap(),
mock(ShardingSphereRuleMetaData.class),
mock(ExecutorEngine.class), new
ConfigurationProperties(props), mock(OptimizeContextFactory.class)));
String sql = "sctl:hint show table status";
ShardingCTLHintBackendHandler defaultHintBackendHandler = new
ShardingCTLHintBackendHandler(sql, backendConnection);
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/sctl/set/ShardingCTLSetBackendHandlerTest.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/sctl/set/ShardingCTLSetBackendHandlerTest.java
index 35ebc9f..502c65a 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/sctl/set/ShardingCTLSetBackendHandlerTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/sctl/set/ShardingCTLSetBackendHandlerTest.java
@@ -17,6 +17,7 @@
package org.apache.shardingsphere.proxy.backend.text.sctl.set;
+import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
import
org.apache.shardingsphere.infra.context.metadata.impl.StandardMetaDataContexts;
import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
@@ -58,7 +59,7 @@ public final class ShardingCTLSetBackendHandlerTest {
public void setUp() throws NoSuchFieldException, IllegalAccessException {
Field metaDataContexts =
ProxyContext.getInstance().getClass().getDeclaredField("metaDataContexts");
metaDataContexts.setAccessible(true);
- metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(getMetaDataMap(),
mock(ShardingSphereRuleMetaData.class), mock(ExecutorEngine.class),
+ metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(mock(ConfigCenter.class), getMetaDataMap(),
mock(ShardingSphereRuleMetaData.class), mock(ExecutorEngine.class),
new ConfigurationProperties(new Properties()),
mock(OptimizeContextFactory.class)));
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/AbstractBootstrapInitializer.java
b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/AbstractBootstrapInitializer.java
index 570daeb..ec61d58 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/AbstractBootstrapInitializer.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/AbstractBootstrapInitializer.java
@@ -89,7 +89,7 @@ public abstract class AbstractBootstrapInitializer implements
BootstrapInitializ
Map<String, Map<String, DataSource>> dataSourcesMap =
createDataSourcesMap(proxyConfig.getSchemaDataSources());
MetaDataContextsBuilder metaDataContextsBuilder = new
MetaDataContextsBuilder(
dataSourcesMap, proxyConfig.getSchemaRules(),
proxyConfig.getGlobalRules(), proxyConfig.getProps());
- return metaDataContextsBuilder.build();
+ return metaDataContextsBuilder.build(configCenter);
}
private static Map<String, Map<String, DataSource>>
createDataSourcesMap(final Map<String, Map<String, DataSourceParameter>>
schemaDataSources) {
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/test/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactoryTest.java
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/test/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactoryTest.java
index 826b503..bf834d8 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/test/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactoryTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/test/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactoryTest.java
@@ -18,6 +18,7 @@
package org.apache.shardingsphere.proxy.frontend.protocol;
import lombok.SneakyThrows;
+import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationPropertyKey;
import
org.apache.shardingsphere.infra.context.metadata.impl.StandardMetaDataContexts;
@@ -49,7 +50,7 @@ public final class FrontDatabaseProtocolTypeFactoryTest {
@Test
public void
assertGetDatabaseTypeWhenThrowShardingSphereConfigurationException() {
- StandardMetaDataContexts metaDataContexts = new
StandardMetaDataContexts(
+ StandardMetaDataContexts metaDataContexts = new
StandardMetaDataContexts(mock(ConfigCenter.class),
Collections.emptyMap(),
mock(ShardingSphereRuleMetaData.class), mock(ExecutorEngine.class), new
ConfigurationProperties(new Properties()), mock(OptimizeContextFactory.class));
setMetaDataContexts(metaDataContexts);
assertTrue(metaDataContexts.getMetaDataMap().isEmpty());
@@ -58,7 +59,7 @@ public final class FrontDatabaseProtocolTypeFactoryTest {
@Test
public void
assertGetDatabaseTypeInstanceOfMySQLDatabaseTypeFromMetaDataContextsSchemaName()
{
- StandardMetaDataContexts metaDataContexts = new
StandardMetaDataContexts(
+ StandardMetaDataContexts metaDataContexts = new
StandardMetaDataContexts(mock(ConfigCenter.class),
mockMetaDataMap(), mock(ShardingSphereRuleMetaData.class),
mock(ExecutorEngine.class), new ConfigurationProperties(new Properties()),
mock(OptimizeContextFactory.class));
setMetaDataContexts(metaDataContexts);
assertFalse(metaDataContexts.getMetaDataMap().isEmpty());
@@ -74,7 +75,7 @@ public final class FrontDatabaseProtocolTypeFactoryTest {
public void
assertGetDatabaseTypeOfPostgreSQLDatabaseTypeFromMetaDataContextsProps() {
Properties props = new Properties();
props.setProperty(ConfigurationPropertyKey.PROXY_FRONTEND_DATABASE_PROTOCOL_TYPE.getKey(),
"PostgreSQL");
- StandardMetaDataContexts metaDataContexts = new
StandardMetaDataContexts(
+ StandardMetaDataContexts metaDataContexts = new
StandardMetaDataContexts(mock(ConfigCenter.class),
mockMetaDataMap(), mock(ShardingSphereRuleMetaData.class),
mock(ExecutorEngine.class), new ConfigurationProperties(props),
mock(OptimizeContextFactory.class));
setMetaDataContexts(metaDataContexts);
assertFalse(metaDataContexts.getMetaDataMap().isEmpty());
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/MySQLFrontendEngineTest.java
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/MySQLFrontendEngineTest.java
index ca4258e..8cb41c8 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/MySQLFrontendEngineTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/MySQLFrontendEngineTest.java
@@ -29,14 +29,15 @@ import
org.apache.shardingsphere.db.protocol.mysql.packet.generic.MySQLOKPacket;
import
org.apache.shardingsphere.db.protocol.mysql.packet.handshake.MySQLHandshakePacket;
import org.apache.shardingsphere.db.protocol.mysql.payload.MySQLPacketPayload;
import
org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmConfiguration;
+import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
import org.apache.shardingsphere.infra.context.metadata.MetaDataContexts;
import
org.apache.shardingsphere.infra.context.metadata.impl.StandardMetaDataContexts;
import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
-import org.apache.shardingsphere.infra.metadata.user.ShardingSphereUser;
import
org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
+import org.apache.shardingsphere.infra.metadata.user.ShardingSphereUser;
import org.apache.shardingsphere.infra.optimize.context.OptimizeContextFactory;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import
org.apache.shardingsphere.proxy.frontend.authentication.AuthenticationResult;
@@ -164,7 +165,7 @@ public final class MySQLFrontendEngineTest {
}
private MetaDataContexts getMetaDataContexts(final ShardingSphereUser
user) {
- return new StandardMetaDataContexts(getMetaDataMap(),
+ return new StandardMetaDataContexts(mock(ConfigCenter.class),
getMetaDataMap(),
buildGlobalRuleMetaData(user), mock(ExecutorEngine.class), new
ConfigurationProperties(new Properties()), mock(OptimizeContextFactory.class));
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/authentication/MySQLAuthenticationEngineTest.java
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/authentication/MySQLAuthenticationEngineTest.java
index 0677ed6..8dedf7f 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/authentication/MySQLAuthenticationEngineTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/authentication/MySQLAuthenticationEngineTest.java
@@ -27,6 +27,7 @@ import
org.apache.shardingsphere.db.protocol.mysql.packet.generic.MySQLErrPacket
import
org.apache.shardingsphere.db.protocol.mysql.packet.generic.MySQLOKPacket;
import
org.apache.shardingsphere.db.protocol.mysql.packet.handshake.MySQLHandshakePacket;
import org.apache.shardingsphere.db.protocol.mysql.payload.MySQLPacketPayload;
+import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
import
org.apache.shardingsphere.infra.context.metadata.impl.StandardMetaDataContexts;
import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
@@ -154,7 +155,8 @@ public final class MySQLAuthenticationEngineTest {
private void setMetaDataContexts() throws NoSuchFieldException,
IllegalAccessException {
Field field =
ProxyContext.getInstance().getClass().getDeclaredField("metaDataContexts");
field.setAccessible(true);
- field.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(Collections.singletonMap("sharding_db",
mockShardingSphereMetaData()), mock(ShardingSphereRuleMetaData.class),
+ field.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(mock(ConfigCenter.class),
+ Collections.singletonMap("sharding_db",
mockShardingSphereMetaData()), mock(ShardingSphereRuleMetaData.class),
mock(ExecutorEngine.class), new ConfigurationProperties(new
Properties()), mock(OptimizeContextFactory.class)));
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/authentication/MySQLAuthenticationHandlerTest.java
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/authentication/MySQLAuthenticationHandlerTest.java
index f288445..62d1f58 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/authentication/MySQLAuthenticationHandlerTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/authentication/MySQLAuthenticationHandlerTest.java
@@ -26,11 +26,12 @@ import
org.apache.shardingsphere.authority.rule.builder.AuthorityRuleBuilder;
import
org.apache.shardingsphere.db.protocol.mysql.constant.MySQLServerErrorCode;
import
org.apache.shardingsphere.db.protocol.mysql.packet.handshake.MySQLAuthPluginData;
import
org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmConfiguration;
-import org.apache.shardingsphere.infra.executor.check.SQLChecker;
+import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
import org.apache.shardingsphere.infra.context.metadata.MetaDataContexts;
import
org.apache.shardingsphere.infra.context.metadata.impl.StandardMetaDataContexts;
import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
+import org.apache.shardingsphere.infra.executor.check.SQLChecker;
import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import
org.apache.shardingsphere.infra.metadata.resource.ShardingSphereResource;
@@ -139,7 +140,7 @@ public final class MySQLAuthenticationHandlerTest {
}
private MetaDataContexts getMetaDataContexts(final ShardingSphereUser
user) {
- return new StandardMetaDataContexts(getMetaDataMap(),
+ return new StandardMetaDataContexts(mock(ConfigCenter.class),
getMetaDataMap(),
buildGlobalRuleMetaData(user), mock(ExecutorEngine.class), new
ConfigurationProperties(new Properties()), mock(OptimizeContextFactory.class));
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/MySQLCommandExecutorFactoryTest.java
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/MySQLCommandExecutorFactoryTest.java
index 815ab67..f70a816 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/MySQLCommandExecutorFactoryTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/MySQLCommandExecutorFactoryTest.java
@@ -26,6 +26,7 @@ import
org.apache.shardingsphere.db.protocol.mysql.packet.command.query.binary.r
import
org.apache.shardingsphere.db.protocol.mysql.packet.command.query.text.fieldlist.MySQLComFieldListPacket;
import
org.apache.shardingsphere.db.protocol.mysql.packet.command.query.text.query.MySQLComQueryPacket;
import org.apache.shardingsphere.db.protocol.packet.CommandPacket;
+import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
import org.apache.shardingsphere.infra.context.metadata.MetaDataContexts;
import
org.apache.shardingsphere.infra.context.metadata.impl.StandardMetaDataContexts;
@@ -80,7 +81,7 @@ public final class MySQLCommandExecutorFactoryTest {
field.setAccessible(true);
ShardingSphereMetaData metaData = mockShardingSphereMetaData();
Map<String, ShardingSphereMetaData> metaDataMap =
Collections.singletonMap("logic_db", metaData);
- MetaDataContexts metaDataContexts = new
StandardMetaDataContexts(metaDataMap,
+ MetaDataContexts metaDataContexts = new
StandardMetaDataContexts(mock(ConfigCenter.class), metaDataMap,
mock(ShardingSphereRuleMetaData.class),
mock(ExecutorEngine.class), new ConfigurationProperties(new Properties()),
mockOptimizeContextFactory());
field.set(ProxyContext.getInstance(), metaDataContexts);
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutorTest.java
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutorTest.java
index 8ae0dd0..e37b5a7 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutorTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutorTest.java
@@ -18,6 +18,7 @@
package
org.apache.shardingsphere.proxy.frontend.mysql.command.query.binary.execute;
import
org.apache.shardingsphere.db.protocol.mysql.packet.command.query.binary.execute.MySQLComStmtExecutePacket;
+import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
import
org.apache.shardingsphere.infra.context.metadata.impl.StandardMetaDataContexts;
import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
@@ -66,7 +67,7 @@ public final class MySQLComStmtExecuteExecutorTest {
field.setAccessible(true);
ShardingSphereMetaData metaData = mockShardingSphereMetaData();
Map<String, ShardingSphereMetaData> metaDataMap =
Collections.singletonMap("logic_db", metaData);
- StandardMetaDataContexts metaDataContexts = new
StandardMetaDataContexts(metaDataMap,
+ StandardMetaDataContexts metaDataContexts = new
StandardMetaDataContexts(mock(ConfigCenter.class), metaDataMap,
mock(ShardingSphereRuleMetaData.class),
mock(ExecutorEngine.class), new ConfigurationProperties(new Properties()),
mockOptimizeContextFactory());
field.set(ProxyContext.getInstance(), metaDataContexts);
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/authentication/PostgreSQLAuthenticationEngineTest.java
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/authentication/PostgreSQLAuthenticationEngineTest.java
index 009b23c..01edcb8 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/authentication/PostgreSQLAuthenticationEngineTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/authentication/PostgreSQLAuthenticationEngineTest.java
@@ -29,6 +29,7 @@ import
org.apache.shardingsphere.db.protocol.payload.PacketPayload;
import
org.apache.shardingsphere.db.protocol.postgresql.packet.handshake.PostgreSQLAuthenticationMD5PasswordPacket;
import
org.apache.shardingsphere.db.protocol.postgresql.payload.PostgreSQLPacketPayload;
import
org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmConfiguration;
+import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
import
org.apache.shardingsphere.infra.context.metadata.impl.StandardMetaDataContexts;
import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
@@ -136,17 +137,16 @@ public final class PostgreSQLAuthenticationEngineTest {
actual = engine.authenticate(channelHandlerContext, payload);
assertThat(actual.isFinished(), is(password.equals(inputPassword)));
}
-
+
private StandardMetaDataContexts getMetaDataContexts(final
ShardingSphereUser user) {
- return new StandardMetaDataContexts(new LinkedHashMap<>(),
+ return new StandardMetaDataContexts(mock(ConfigCenter.class), new
LinkedHashMap<>(),
buildGlobalRuleMetaData(user), mock(ExecutorEngine.class), new
ConfigurationProperties(new Properties()), mock(OptimizeContextFactory.class));
}
-
+
private ShardingSphereRuleMetaData buildGlobalRuleMetaData(final
ShardingSphereUser user) {
AuthorityRuleConfiguration authorityRuleConfiguration = new
AuthorityRuleConfiguration(Collections.singletonList(user), new
ShardingSphereAlgorithmConfiguration("NATIVE", new Properties()));
AuthorityRule rule = new
AuthorityRuleBuilder().build(authorityRuleConfiguration,
Collections.emptyMap());
- ShardingSphereRuleMetaData metaData = new
ShardingSphereRuleMetaData(Collections.singletonList(authorityRuleConfiguration),
Collections.singletonList(rule));
- return metaData;
+ return new
ShardingSphereRuleMetaData(Collections.singletonList(authorityRuleConfiguration),
Collections.singletonList(rule));
}
@SneakyThrows(ReflectiveOperationException.class)
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/authentication/PostgreSQLAuthenticationHandlerTest.java
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/authentication/PostgreSQLAuthenticationHandlerTest.java
index 8de8fa3..1bd52e5 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/authentication/PostgreSQLAuthenticationHandlerTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/authentication/PostgreSQLAuthenticationHandlerTest.java
@@ -28,6 +28,7 @@ import
org.apache.shardingsphere.db.protocol.postgresql.constant.PostgreSQLError
import
org.apache.shardingsphere.db.protocol.postgresql.packet.handshake.PostgreSQLPasswordMessagePacket;
import
org.apache.shardingsphere.db.protocol.postgresql.payload.PostgreSQLPacketPayload;
import
org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmConfiguration;
+import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
import org.apache.shardingsphere.infra.context.metadata.MetaDataContexts;
import
org.apache.shardingsphere.infra.context.metadata.impl.StandardMetaDataContexts;
@@ -125,7 +126,7 @@ public final class PostgreSQLAuthenticationHandlerTest {
}
private MetaDataContexts getMetaDataContexts(final ShardingSphereUser
user) {
- return new StandardMetaDataContexts(getMetaDataMap(),
+ return new StandardMetaDataContexts(mock(ConfigCenter.class),
getMetaDataMap(),
buildGlobalRuleMetaData(user), mock(ExecutorEngine.class), new
ConfigurationProperties(new Properties()), mock(OptimizeContextFactory.class));
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/binary/parse/PostgreSQLComParseExecutorTest.java
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/binary/parse/PostgreSQLComParseExecutorTest.java
index 3cfbbf0..e47f5f8 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/binary/parse/PostgreSQLComParseExecutorTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/binary/parse/PostgreSQLComParseExecutorTest.java
@@ -20,6 +20,7 @@ package
org.apache.shardingsphere.proxy.frontend.postgresql.command.query.binary
import
org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.binary.PostgreSQLBinaryStatementRegistry;
import
org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.binary.parse.PostgreSQLComParsePacket;
import
org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.binary.parse.PostgreSQLParseCompletePacket;
+import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
import
org.apache.shardingsphere.infra.context.metadata.impl.StandardMetaDataContexts;
import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
@@ -70,7 +71,7 @@ public final class PostgreSQLComParseExecutorTest {
when(backendConnection.getSchemaName()).thenReturn("schema");
Field metaDataContexts =
ProxyContext.getInstance().getClass().getDeclaredField("metaDataContexts");
metaDataContexts.setAccessible(true);
- metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(getMetaDataMap(),
+ metaDataContexts.set(ProxyContext.getInstance(), new
StandardMetaDataContexts(mock(ConfigCenter.class), getMetaDataMap(),
mock(ShardingSphereRuleMetaData.class),
mock(ExecutorEngine.class), new ConfigurationProperties(new Properties()),
mock(OptimizeContextFactory.class)));
PostgreSQLComParseExecutor actual = new
PostgreSQLComParseExecutor(parsePacket, backendConnection);
assertThat(actual.execute().iterator().next(),
instanceOf(PostgreSQLParseCompletePacket.class));