This is an automated email from the ASF dual-hosted git repository.
wuweijie 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 6634335 Move RegistryCenterRepository out of GovernanceFacade (#11377)
6634335 is described below
commit 66343354181657154a1404c73f6c29fd29a2956b
Author: Liang Zhang <[email protected]>
AuthorDate: Mon Jul 19 02:54:35 2021 +0800
Move RegistryCenterRepository out of GovernanceFacade (#11377)
* Refactor ProxyConfigurationLoader
* Refactor GovernanceBootstrapInitializer
* Refactor GovernanceMetaDataContexts
* Refactor GovernanceMetaDataContexts
* Refactor GovernanceMetaDataContexts
* Move RegistryCenterRepository out of GovernanceFacade
* Move RegistryCenterRepository out of GovernanceFacade
* Fix test case
---
.../metadata/GovernanceMetaDataContexts.java | 17 +++++++------
.../metadata/GovernanceMetaDataContextsTest.java | 5 ++--
.../governance/core/GovernanceFacade.java | 27 ++++++---------------
.../governance/core/GovernanceFacadeTest.java | 25 +++----------------
.../GovernanceShardingSphereDataSource.java | 28 ++++++++++++++--------
.../impl/GovernanceBootstrapInitializer.java | 17 +++++++++----
.../proxy/config/ProxyConfigurationLoader.java | 6 ++---
7 files changed, 54 insertions(+), 71 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 51b947c..b0ce36a 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
@@ -34,6 +34,7 @@ import
org.apache.shardingsphere.governance.core.registry.metadata.event.SchemaD
import
org.apache.shardingsphere.governance.core.registry.state.event.DisabledStateChangedEvent;
import
org.apache.shardingsphere.governance.core.registry.state.event.PrimaryStateChangedEvent;
import org.apache.shardingsphere.governance.core.schema.GovernanceSchema;
+import
org.apache.shardingsphere.governance.repository.spi.RegistryCenterRepository;
import org.apache.shardingsphere.infra.config.RuleConfiguration;
import
org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration;
import org.apache.shardingsphere.infra.config.datasource.DataSourceConverter;
@@ -76,19 +77,19 @@ import java.util.stream.Collectors;
*/
public final class GovernanceMetaDataContexts implements MetaDataContexts {
- private final GovernanceFacade governanceFacade;
-
private volatile StandardMetaDataContexts metaDataContexts;
+ private final GovernanceFacade governanceFacade;
+
private final ShardingSphereLock lock;
- public GovernanceMetaDataContexts(final StandardMetaDataContexts
metaDataContexts, final GovernanceFacade governanceFacade) {
- this.governanceFacade = governanceFacade;
+ public GovernanceMetaDataContexts(final StandardMetaDataContexts
metaDataContexts, final GovernanceFacade governanceFacade, final
RegistryCenterRepository repository) {
this.metaDataContexts = metaDataContexts;
+ this.governanceFacade = governanceFacade;
ShardingSphereEventBus.getInstance().register(this);
disableDataSources();
persistMetaData();
- lock = createShardingSphereLock();
+ lock = createShardingSphereLock(repository);
}
private void disableDataSources() {
@@ -109,10 +110,9 @@ public final class GovernanceMetaDataContexts implements
MetaDataContexts {
metaDataContexts.getMetaDataMap().forEach((key, value) ->
governanceFacade.getConfigCenter().getSchemaMetaDataService().persist(key,
value.getSchema()));
}
- private ShardingSphereLock createShardingSphereLock() {
+ private ShardingSphereLock createShardingSphereLock(final
RegistryCenterRepository repository) {
return
metaDataContexts.getProps().<Boolean>getValue(ConfigurationPropertyKey.LOCK_ENABLED)
- ? new
ShardingSphereDistributeLock(governanceFacade.getRepository(),
metaDataContexts.getProps().<Long>getValue(ConfigurationPropertyKey.LOCK_WAIT_TIMEOUT_MILLISECONDS))
- : null;
+ ? new ShardingSphereDistributeLock(repository,
metaDataContexts.getProps().<Long>getValue(ConfigurationPropertyKey.LOCK_WAIT_TIMEOUT_MILLISECONDS))
: null;
}
@Override
@@ -168,7 +168,6 @@ public final class GovernanceMetaDataContexts implements
MetaDataContexts {
@Override
public void close() {
metaDataContexts.close();
- governanceFacade.close();
}
/**
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 e5d891c..f8135e0 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
@@ -30,6 +30,7 @@ import
org.apache.shardingsphere.governance.core.registry.metadata.event.SchemaA
import
org.apache.shardingsphere.governance.core.registry.metadata.event.SchemaDeletedEvent;
import
org.apache.shardingsphere.governance.core.registry.state.event.DisabledStateChangedEvent;
import org.apache.shardingsphere.governance.core.schema.GovernanceSchema;
+import
org.apache.shardingsphere.governance.repository.spi.RegistryCenterRepository;
import org.apache.shardingsphere.infra.config.RuleConfiguration;
import
org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmConfiguration;
import
org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration;
@@ -96,8 +97,8 @@ public final class GovernanceMetaDataContextsTest {
@Before
public void setUp() {
when(governanceFacade.getConfigCenter()).thenReturn(configCenter);
- governanceMetaDataContexts = new GovernanceMetaDataContexts(
- new StandardMetaDataContexts(createMetaDataMap(),
globalRuleMetaData, mock(ExecutorEngine.class), props,
mockOptimizeContextFactory()), governanceFacade);
+ governanceMetaDataContexts = new GovernanceMetaDataContexts(new
StandardMetaDataContexts(
+ createMetaDataMap(), globalRuleMetaData,
mock(ExecutorEngine.class), props, mockOptimizeContextFactory()),
governanceFacade, mock(RegistryCenterRepository.class));
}
private Map<String, ShardingSphereMetaData> createMetaDataMap() {
diff --git
a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/GovernanceFacade.java
b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/GovernanceFacade.java
index 9d2ebd3..f0b68ba 100644
---
a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/GovernanceFacade.java
+++
b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/GovernanceFacade.java
@@ -19,13 +19,11 @@ package org.apache.shardingsphere.governance.core;
import lombok.Getter;
import
org.apache.shardingsphere.governance.core.registry.GovernanceWatcherFactory;
-import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
import org.apache.shardingsphere.governance.core.registry.RegistryCenter;
-import
org.apache.shardingsphere.governance.core.registry.RegistryCenterRepositoryFactory;
-import
org.apache.shardingsphere.governance.repository.api.config.GovernanceConfiguration;
import
org.apache.shardingsphere.governance.repository.spi.RegistryCenterRepository;
import org.apache.shardingsphere.infra.config.RuleConfiguration;
import
org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration;
+import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
import java.util.Collection;
import java.util.Map;
@@ -36,12 +34,7 @@ import java.util.stream.Stream;
/**
* Governance facade.
*/
-public final class GovernanceFacade implements AutoCloseable {
-
- private boolean isOverwrite;
-
- @Getter
- private RegistryCenterRepository repository;
+public final class GovernanceFacade {
@Getter
private ConfigCenter configCenter;
@@ -54,12 +47,10 @@ public final class GovernanceFacade implements
AutoCloseable {
/**
* Initialize governance facade.
*
- * @param config governance configuration
+ * @param repository registry center repository
* @param schemaNames schema names
*/
- public void init(final GovernanceConfiguration config, final
Collection<String> schemaNames) {
- isOverwrite = config.isOverwrite();
- repository = RegistryCenterRepositoryFactory.newInstance(config);
+ public void init(final RegistryCenterRepository repository, final
Collection<String> schemaNames) {
configCenter = new ConfigCenter(repository);
registryCenter = new RegistryCenter(repository);
listenerFactory = new GovernanceWatcherFactory(repository,
@@ -73,9 +64,10 @@ public final class GovernanceFacade implements AutoCloseable
{
* @param schemaRuleConfigs schema and rule configuration map
* @param globalRuleConfigs global rule configurations
* @param props properties
+ * @param isOverwrite is overwrite
*/
- public void onlineInstance(final Map<String, Map<String,
DataSourceConfiguration>> dataSourceConfigs,
- final Map<String,
Collection<RuleConfiguration>> schemaRuleConfigs, final
Collection<RuleConfiguration> globalRuleConfigs, final Properties props) {
+ public void onlineInstance(final Map<String, Map<String,
DataSourceConfiguration>> dataSourceConfigs, final Map<String,
Collection<RuleConfiguration>> schemaRuleConfigs,
+ final Collection<RuleConfiguration>
globalRuleConfigs, final Properties props, final boolean isOverwrite) {
configCenter.persistConfigurations(dataSourceConfigs,
schemaRuleConfigs, globalRuleConfigs, props, isOverwrite);
onlineInstance();
}
@@ -87,9 +79,4 @@ public final class GovernanceFacade implements AutoCloseable {
registryCenter.registerInstanceOnline();
listenerFactory.watchListeners();
}
-
- @Override
- public void close() {
- repository.close();
- }
}
diff --git
a/shardingsphere-governance/shardingsphere-governance-core/src/test/java/org/apache/shardingsphere/governance/core/GovernanceFacadeTest.java
b/shardingsphere-governance/shardingsphere-governance-core/src/test/java/org/apache/shardingsphere/governance/core/GovernanceFacadeTest.java
index 33102f1..6fdb42c 100644
---
a/shardingsphere-governance/shardingsphere-governance-core/src/test/java/org/apache/shardingsphere/governance/core/GovernanceFacadeTest.java
+++
b/shardingsphere-governance/shardingsphere-governance-core/src/test/java/org/apache/shardingsphere/governance/core/GovernanceFacadeTest.java
@@ -19,13 +19,11 @@ package org.apache.shardingsphere.governance.core;
import lombok.SneakyThrows;
import
org.apache.shardingsphere.governance.core.registry.GovernanceWatcherFactory;
-import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
import org.apache.shardingsphere.governance.core.registry.RegistryCenter;
-import
org.apache.shardingsphere.governance.repository.api.config.GovernanceConfiguration;
-import
org.apache.shardingsphere.governance.repository.api.config.RegistryCenterConfiguration;
import
org.apache.shardingsphere.governance.repository.spi.RegistryCenterRepository;
import org.apache.shardingsphere.infra.config.RuleConfiguration;
import
org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration;
+import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
import org.junit.Test;
import java.lang.reflect.Field;
@@ -37,8 +35,6 @@ import java.util.Properties;
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertThat;
import static org.mockito.Mockito.mock;
@@ -50,17 +46,10 @@ public final class GovernanceFacadeTest {
@Test
public void assertInit() {
- GovernanceConfiguration config = new
GovernanceConfiguration("test_name", new RegistryCenterConfiguration("TEST",
"127.0.0.1", new Properties()), false);
- governanceFacade.init(config, Arrays.asList("schema_0", "schema_1"));
+ governanceFacade.init(mock(RegistryCenterRepository.class),
Arrays.asList("schema_0", "schema_1"));
assertNotNull(governanceFacade.getRegistryCenter());
- assertThat(getField(governanceFacade, "isOverwrite"),
instanceOf(Boolean.class));
- assertFalse((Boolean) getField(governanceFacade, "isOverwrite"));
- assertThat(getField(governanceFacade, "repository"),
instanceOf(RegistryCenterRepository.class));
- RegistryCenterRepository repository = (RegistryCenterRepository)
getField(governanceFacade, "repository");
- assertEquals(repository.getType(), "TEST");
assertThat(getField(governanceFacade, "listenerFactory"),
instanceOf(GovernanceWatcherFactory.class));
GovernanceWatcherFactory listenerFactory = (GovernanceWatcherFactory)
getField(governanceFacade, "listenerFactory");
- assertThat(getField(listenerFactory, "repository"), is(repository));
assertThat(getField(listenerFactory, "schemaNames"),
is(Arrays.asList("schema_0", "schema_1")));
}
@@ -76,20 +65,12 @@ public final class GovernanceFacadeTest {
Map<String, Collection<RuleConfiguration>> schemaRuleConfigs =
Collections.singletonMap("sharding_db",
Collections.singletonList(mock(RuleConfiguration.class)));
Collection<RuleConfiguration> globalRuleConfigs =
Collections.singleton(mock(RuleConfiguration.class));
Properties props = new Properties();
-
governanceFacade.onlineInstance(Collections.singletonMap("sharding_db",
dataSourceConfigs), schemaRuleConfigs, globalRuleConfigs, props);
+
governanceFacade.onlineInstance(Collections.singletonMap("sharding_db",
dataSourceConfigs), schemaRuleConfigs, globalRuleConfigs, props, false);
verify(configCenter).persistConfigurations(Collections.singletonMap("sharding_db",
dataSourceConfigs), schemaRuleConfigs, globalRuleConfigs, props, false);
verify(registryCenter).registerInstanceOnline();
verify(listenerFactory).watchListeners();
}
- @Test
- public void assertClose() {
- RegistryCenterRepository repository =
mock(RegistryCenterRepository.class);
- setField(governanceFacade, "repository", repository);
- governanceFacade.close();
- verify(repository).close();
- }
-
@SneakyThrows(ReflectiveOperationException.class)
private static Object getField(final Object target, final String
fieldName) {
Field field = target.getClass().getDeclaredField(fieldName);
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 a872c34..ad3e3fd 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
@@ -22,7 +22,9 @@ import
org.apache.shardingsphere.driver.governance.internal.state.DriverStateCon
import
org.apache.shardingsphere.driver.jdbc.unsupported.AbstractUnsupportedOperationDataSource;
import
org.apache.shardingsphere.governance.context.metadata.GovernanceMetaDataContexts;
import org.apache.shardingsphere.governance.core.GovernanceFacade;
+import
org.apache.shardingsphere.governance.core.registry.RegistryCenterRepositoryFactory;
import
org.apache.shardingsphere.governance.repository.api.config.GovernanceConfiguration;
+import
org.apache.shardingsphere.governance.repository.spi.RegistryCenterRepository;
import org.apache.shardingsphere.infra.config.RuleConfiguration;
import
org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration;
import org.apache.shardingsphere.infra.config.datasource.DataSourceConverter;
@@ -52,16 +54,20 @@ import java.util.stream.Collectors;
/**
* Governance ShardingSphere data source.
*/
-@Getter
public final class GovernanceShardingSphereDataSource extends
AbstractUnsupportedOperationDataSource implements AutoCloseable {
+ private final RegistryCenterRepository repository;
+
+ @Getter
private final MetaDataContexts metaDataContexts;
+ @Getter
private final TransactionContexts transactionContexts;
public GovernanceShardingSphereDataSource(final GovernanceConfiguration
governanceConfig) throws SQLException {
- GovernanceFacade governanceFacade =
createGovernanceFacade(governanceConfig);
- metaDataContexts = new
GovernanceMetaDataContexts(createMetaDataContexts(governanceFacade),
governanceFacade);
+ repository =
RegistryCenterRepositoryFactory.newInstance(governanceConfig);
+ GovernanceFacade governanceFacade = createGovernanceFacade();
+ metaDataContexts = new
GovernanceMetaDataContexts(createMetaDataContexts(governanceFacade),
governanceFacade, repository);
String xaTransactionMangerType =
metaDataContexts.getProps().getValue(ConfigurationPropertyKey.XA_TRANSACTION_MANAGER_TYPE);
transactionContexts =
createTransactionContexts(metaDataContexts.getDefaultMetaData().getResource().getDatabaseType(),
metaDataContexts.getDefaultMetaData().getResource().getDataSources(),
xaTransactionMangerType);
@@ -69,17 +75,18 @@ public final class GovernanceShardingSphereDataSource
extends AbstractUnsupporte
public GovernanceShardingSphereDataSource(final Map<String, DataSource>
dataSourceMap, final Collection<RuleConfiguration> ruleConfigs,
final Properties props, final
GovernanceConfiguration governanceConfig) throws SQLException {
- GovernanceFacade governanceFacade =
createGovernanceFacade(governanceConfig);
- metaDataContexts = new
GovernanceMetaDataContexts(createMetaDataContexts(dataSourceMap, ruleConfigs,
props), governanceFacade);
+ repository =
RegistryCenterRepositoryFactory.newInstance(governanceConfig);
+ GovernanceFacade governanceFacade = createGovernanceFacade();
+ metaDataContexts = new
GovernanceMetaDataContexts(createMetaDataContexts(dataSourceMap, ruleConfigs,
props), governanceFacade, repository);
String xaTransactionMangerType =
metaDataContexts.getProps().getValue(ConfigurationPropertyKey.XA_TRANSACTION_MANAGER_TYPE);
transactionContexts =
createTransactionContexts(metaDataContexts.getDefaultMetaData().getResource().getDatabaseType(),
metaDataContexts.getDefaultMetaData().getResource().getDataSources(),
xaTransactionMangerType);
- uploadLocalConfiguration(governanceFacade, ruleConfigs);
+ uploadLocalConfiguration(governanceFacade, ruleConfigs,
governanceConfig.isOverwrite());
}
- private GovernanceFacade createGovernanceFacade(final
GovernanceConfiguration config) {
+ private GovernanceFacade createGovernanceFacade() {
GovernanceFacade result = new GovernanceFacade();
- result.init(config,
Collections.singletonList(DefaultSchema.LOGIC_NAME));
+ result.init(repository,
Collections.singletonList(DefaultSchema.LOGIC_NAME));
result.onlineInstance();
return result;
}
@@ -106,12 +113,12 @@ public final class GovernanceShardingSphereDataSource
extends AbstractUnsupporte
return new
StandardTransactionContexts(Collections.singletonMap(DefaultSchema.LOGIC_NAME,
engine));
}
- private void uploadLocalConfiguration(final GovernanceFacade
governanceFacade, final Collection<RuleConfiguration> ruleConfigs) {
+ private void uploadLocalConfiguration(final GovernanceFacade
governanceFacade, final Collection<RuleConfiguration> ruleConfigs, final
boolean isOverwrite) {
Map<String, DataSourceConfiguration> dataSourceConfigs =
DataSourceConverter.getDataSourceConfigurationMap(metaDataContexts.getDefaultMetaData().getResource().getDataSources());
Collection<RuleConfiguration> schemaRuleConfigs =
ruleConfigs.stream().filter(each -> each instanceof
SchemaRuleConfiguration).collect(Collectors.toList());
Collection<RuleConfiguration> globalRuleConfigs =
ruleConfigs.stream().filter(each -> each instanceof
GlobalRuleConfiguration).collect(Collectors.toList());
governanceFacade.onlineInstance(Collections.singletonMap(DefaultSchema.LOGIC_NAME,
dataSourceConfigs),
- Collections.singletonMap(DefaultSchema.LOGIC_NAME,
schemaRuleConfigs), globalRuleConfigs, metaDataContexts.getProps().getProps());
+ Collections.singletonMap(DefaultSchema.LOGIC_NAME,
schemaRuleConfigs), globalRuleConfigs, metaDataContexts.getProps().getProps(),
isOverwrite);
}
@Override
@@ -128,6 +135,7 @@ public final class GovernanceShardingSphereDataSource
extends AbstractUnsupporte
public void close() throws Exception {
getDataSourceMap().forEach((key, value) -> close(value));
metaDataContexts.close();
+ repository.close();
}
private void close(final DataSource dataSource) {
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/GovernanceBootstrapInitializer.java
b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/GovernanceBootstrapInitializer.java
index d832e64..bfb148a 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/GovernanceBootstrapInitializer.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/GovernanceBootstrapInitializer.java
@@ -20,7 +20,10 @@ package org.apache.shardingsphere.proxy.initializer.impl;
import
org.apache.shardingsphere.governance.context.metadata.GovernanceMetaDataContexts;
import
org.apache.shardingsphere.governance.context.transaction.GovernanceTransactionContexts;
import org.apache.shardingsphere.governance.core.GovernanceFacade;
+import
org.apache.shardingsphere.governance.core.registry.RegistryCenterRepositoryFactory;
import
org.apache.shardingsphere.governance.core.yaml.swapper.GovernanceConfigurationYamlSwapper;
+import
org.apache.shardingsphere.governance.repository.api.config.GovernanceConfiguration;
+import
org.apache.shardingsphere.governance.repository.spi.RegistryCenterRepository;
import org.apache.shardingsphere.infra.config.RuleConfiguration;
import
org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration;
import org.apache.shardingsphere.infra.config.datasource.DataSourceParameter;
@@ -53,9 +56,13 @@ public final class GovernanceBootstrapInitializer extends
AbstractBootstrapIniti
private final GovernanceFacade governanceFacade = new GovernanceFacade();
+ private volatile RegistryCenterRepository repository;
+
@Override
protected ProxyConfiguration getProxyConfiguration(final
YamlProxyConfiguration yamlConfig) {
- governanceFacade.init(new
GovernanceConfigurationYamlSwapper().swapToObject(yamlConfig.getServerConfiguration().getGovernance()),
yamlConfig.getRuleConfigurations().keySet());
+ GovernanceConfiguration governanceConfig = new
GovernanceConfigurationYamlSwapper().swapToObject(yamlConfig.getServerConfiguration().getGovernance());
+ repository =
RegistryCenterRepositoryFactory.newInstance(governanceConfig);
+ governanceFacade.init(repository,
yamlConfig.getRuleConfigurations().keySet());
initConfigurations(yamlConfig);
return loadProxyConfiguration();
}
@@ -67,7 +74,7 @@ public final class GovernanceBootstrapInitializer extends
AbstractBootstrapIniti
governanceFacade.onlineInstance();
} else {
governanceFacade.onlineInstance(getDataSourceConfigurationMap(ruleConfigs),
- getRuleConfigurations(ruleConfigs),
getGlobalRuleConfigurations(serverConfig.getRules()), serverConfig.getProps());
+ getRuleConfigurations(ruleConfigs),
getGlobalRuleConfigurations(serverConfig.getRules()), serverConfig.getProps(),
serverConfig.getGovernance().isOverwrite());
}
}
@@ -84,9 +91,9 @@ public final class GovernanceBootstrapInitializer extends
AbstractBootstrapIniti
return result;
}
- private Map<String, Collection<RuleConfiguration>>
getRuleConfigurations(final Map<String, YamlProxyRuleConfiguration>
yamlRuleConfigurations) {
+ private Map<String, Collection<RuleConfiguration>>
getRuleConfigurations(final Map<String, YamlProxyRuleConfiguration>
yamlRuleConfigs) {
YamlRuleConfigurationSwapperEngine swapperEngine = new
YamlRuleConfigurationSwapperEngine();
- return
yamlRuleConfigurations.entrySet().stream().collect(Collectors.toMap(Entry::getKey,
+ return
yamlRuleConfigs.entrySet().stream().collect(Collectors.toMap(Entry::getKey,
entry ->
swapperEngine.swapToRuleConfigurations(entry.getValue().getRules()), (oldValue,
currentValue) -> oldValue, LinkedHashMap::new));
}
@@ -118,7 +125,7 @@ public final class GovernanceBootstrapInitializer extends
AbstractBootstrapIniti
@Override
protected MetaDataContexts decorateMetaDataContexts(final MetaDataContexts
metaDataContexts) {
- return new GovernanceMetaDataContexts((StandardMetaDataContexts)
metaDataContexts, governanceFacade);
+ return new GovernanceMetaDataContexts((StandardMetaDataContexts)
metaDataContexts, governanceFacade, repository);
}
@Override
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-common/src/main/java/org/apache/shardingsphere/proxy/config/ProxyConfigurationLoader.java
b/shardingsphere-proxy/shardingsphere-proxy-common/src/main/java/org/apache/shardingsphere/proxy/config/ProxyConfigurationLoader.java
index 5b7f3c2..1f2502d 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-common/src/main/java/org/apache/shardingsphere/proxy/config/ProxyConfigurationLoader.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-common/src/main/java/org/apache/shardingsphere/proxy/config/ProxyConfigurationLoader.java
@@ -57,9 +57,9 @@ public final class ProxyConfigurationLoader {
public static YamlProxyConfiguration load(final String path) throws
IOException {
YamlProxyServerConfiguration serverConfig =
loadServerConfiguration(getResourceFile(String.join("/", path,
SERVER_CONFIG_FILE)));
File configPath = getResourceFile(path);
- Collection<YamlProxyRuleConfiguration> ruleConfigurations =
loadRuleConfigurations(configPath);
- Preconditions.checkState(!ruleConfigurations.isEmpty() || null !=
serverConfig.getGovernance(), "Can not find any valid rule configurations file
in path `%s`.", configPath.getPath());
- return new YamlProxyConfiguration(serverConfig,
ruleConfigurations.stream().collect(Collectors.toMap(
+ Collection<YamlProxyRuleConfiguration> ruleConfigs =
loadRuleConfigurations(configPath);
+ Preconditions.checkState(!ruleConfigs.isEmpty() || null !=
serverConfig.getGovernance(), "Can not find any valid rule configurations file
in path `%s`.", configPath.getPath());
+ return new YamlProxyConfiguration(serverConfig,
ruleConfigs.stream().collect(Collectors.toMap(
YamlProxyRuleConfiguration::getSchemaName, each -> each,
(oldValue, currentValue) -> oldValue, LinkedHashMap::new)));
}