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 8a28139 Move schemaMetaDataService from RegistryCenter to
ConfigCenter (#11376)
8a28139 is described below
commit 8a281393c4bbb4673a8b7b38fb74b68cbf7324d2
Author: Liang Zhang <[email protected]>
AuthorDate: Mon Jul 19 01:19:47 2021 +0800
Move schemaMetaDataService from RegistryCenter to ConfigCenter (#11376)
* Add SchemaMetaDataRegistrySubscriber into RegistryCenter
* Move schemaMetaDataService from RegistryCenter to ConfigCenter
* Fix test case
---
.../metadata/GovernanceMetaDataContexts.java | 8 ++++----
.../metadata/GovernanceMetaDataContextsTest.java | 21 +++++++--------------
.../governance/core/GovernanceFacade.java | 2 +-
.../governance/core/registry/RegistryCenter.java | 6 ++----
.../infra/config/persist/ConfigCenter.java | 8 ++++++--
.../impl/GovernanceBootstrapInitializer.java | 2 +-
6 files changed, 21 insertions(+), 26 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 ff6d5da..51b947c 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
@@ -106,7 +106,7 @@ public final class GovernanceMetaDataContexts implements
MetaDataContexts {
}
private void persistMetaData() {
- metaDataContexts.getMetaDataMap().forEach((key, value) ->
governanceFacade.getRegistryCenter().getSchemaService().persist(key,
value.getSchema()));
+ metaDataContexts.getMetaDataMap().forEach((key, value) ->
governanceFacade.getConfigCenter().getSchemaMetaDataService().persist(key,
value.getSchema()));
}
private ShardingSphereLock createShardingSphereLock() {
@@ -185,7 +185,7 @@ public final class GovernanceMetaDataContexts implements
MetaDataContexts {
metaDataContexts.getOptimizeContextFactory().getSchemaMetadatas().getSchemas().put(event.getSchemaName(),
new FederateSchemaMetadata(event.getSchemaName(),
metaData.getSchema().getTables()));
metaDataContexts = new StandardMetaDataContexts(metaDataMap,
metaDataContexts.getGlobalRuleMetaData(), metaDataContexts.getExecutorEngine(),
metaDataContexts.getProps(),
metaDataContexts.getOptimizeContextFactory());
-
governanceFacade.getRegistryCenter().getSchemaService().persist(event.getSchemaName(),
metaDataContexts.getMetaDataMap().get(event.getSchemaName()).getSchema());
+
governanceFacade.getConfigCenter().getSchemaMetaDataService().persist(event.getSchemaName(),
metaDataContexts.getMetaDataMap().get(event.getSchemaName()).getSchema());
ShardingSphereEventBus.getInstance().post(new
DataSourceChangeCompletedEvent(event.getSchemaName(),
metaDataContexts.getMetaDataMap().get(event.getSchemaName()).getResource().getDatabaseType(),
metaDataMap.get(event.getSchemaName()).getResource().getDataSources()));
}
@@ -202,7 +202,7 @@ public final class GovernanceMetaDataContexts implements
MetaDataContexts {
metaDataContexts.getOptimizeContextFactory().getSchemaMetadatas().getSchemas().remove(event.getSchemaName());
metaDataContexts = new StandardMetaDataContexts(
metaDataMap, metaDataContexts.getGlobalRuleMetaData(),
metaDataContexts.getExecutorEngine(), metaDataContexts.getProps(),
metaDataContexts.getOptimizeContextFactory());
-
governanceFacade.getRegistryCenter().getSchemaService().delete(event.getSchemaName());
+
governanceFacade.getConfigCenter().getSchemaMetaDataService().delete(event.getSchemaName());
}
/**
@@ -265,7 +265,7 @@ public final class GovernanceMetaDataContexts implements
MetaDataContexts {
Map<String, ShardingSphereMetaData> newMetaDataMap =
getNewMetaData(schemaName, metaData);
metaDataContexts = new StandardMetaDataContexts(newMetaDataMap,
metaDataContexts.getGlobalRuleMetaData(), metaDataContexts.getExecutorEngine(),
metaDataContexts.getProps(),
metaDataContexts.getOptimizeContextFactory());
-
governanceFacade.getRegistryCenter().getSchemaService().persist(schemaName,
newMetaDataMap.get(schemaName).getSchema());
+
governanceFacade.getConfigCenter().getSchemaMetaDataService().persist(schemaName,
newMetaDataMap.get(schemaName).getSchema());
}
/**
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 bc33a39..e5d891c 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
@@ -21,8 +21,6 @@ import
org.apache.shardingsphere.authority.api.config.AuthorityRuleConfiguration
import org.apache.shardingsphere.authority.rule.AuthorityRule;
import
org.apache.shardingsphere.governance.context.authority.listener.event.AuthorityChangedEvent;
import org.apache.shardingsphere.governance.core.GovernanceFacade;
-import org.apache.shardingsphere.infra.config.persist.ConfigCenter;
-import org.apache.shardingsphere.governance.core.registry.RegistryCenter;
import
org.apache.shardingsphere.governance.core.registry.config.event.datasource.DataSourceChangedEvent;
import
org.apache.shardingsphere.governance.core.registry.config.event.props.PropertiesChangedEvent;
import
org.apache.shardingsphere.governance.core.registry.config.event.rule.GlobalRuleConfigurationsChangedEvent;
@@ -35,6 +33,7 @@ import
org.apache.shardingsphere.governance.core.schema.GovernanceSchema;
import org.apache.shardingsphere.infra.config.RuleConfiguration;
import
org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmConfiguration;
import
org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration;
+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;
@@ -72,7 +71,6 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -88,9 +86,6 @@ public final class GovernanceMetaDataContextsTest {
private ConfigCenter configCenter;
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
- private RegistryCenter registryCenter;
-
- @Mock(answer = Answers.RETURNS_DEEP_STUBS)
private ShardingSphereMetaData metaData;
private GovernanceMetaDataContexts governanceMetaDataContexts;
@@ -101,10 +96,8 @@ public final class GovernanceMetaDataContextsTest {
@Before
public void setUp() {
when(governanceFacade.getConfigCenter()).thenReturn(configCenter);
- when(governanceFacade.getRegistryCenter()).thenReturn(registryCenter);
-
when(registryCenter.getDataSourceStatusService().loadDisabledDataSources("schema")).thenReturn(Collections.singletonList("schema.ds_1"));
- 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);
}
private Map<String, ShardingSphereMetaData> createMetaDataMap() {
@@ -118,9 +111,9 @@ public final class GovernanceMetaDataContextsTest {
}
private OptimizeContextFactory mockOptimizeContextFactory() {
- OptimizeContextFactory optimizeContextFactory =
mock(OptimizeContextFactory.class, RETURNS_DEEP_STUBS);
- when(optimizeContextFactory.getSchemaMetadatas()).thenReturn(new
FederateSchemaMetadatas(new HashMap<>()));
- return optimizeContextFactory;
+ OptimizeContextFactory result = mock(OptimizeContextFactory.class);
+ when(result.getSchemaMetadatas()).thenReturn(new
FederateSchemaMetadatas(new HashMap<>()));
+ return result;
}
@Test
@@ -219,7 +212,7 @@ public final class GovernanceMetaDataContextsTest {
}
@Test
- public void assertGlobalRuleConfigurationsChanged() throws SQLException {
+ public void assertGlobalRuleConfigurationsChanged() {
GlobalRuleConfigurationsChangedEvent event = new
GlobalRuleConfigurationsChangedEvent(getChangedGlobalRuleConfigurations());
governanceMetaDataContexts.renew(event);
assertThat(governanceMetaDataContexts.getGlobalRuleMetaData(),
not(globalRuleMetaData));
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 27255ae..9d2ebd3 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
@@ -63,7 +63,7 @@ public final class GovernanceFacade implements AutoCloseable {
configCenter = new ConfigCenter(repository);
registryCenter = new RegistryCenter(repository);
listenerFactory = new GovernanceWatcherFactory(repository,
- Stream.of(registryCenter.getSchemaService().loadAllNames(),
schemaNames).flatMap(Collection::stream).distinct().collect(Collectors.toList()));
+
Stream.of(configCenter.getSchemaMetaDataService().loadAllNames(),
schemaNames).flatMap(Collection::stream).distinct().collect(Collectors.toList()));
}
/**
diff --git
a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/registry/RegistryCenter.java
b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/registry/RegistryCenter.java
index 677fe65..660c9a3 100644
---
a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/registry/RegistryCenter.java
+++
b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/registry/RegistryCenter.java
@@ -24,7 +24,7 @@ import
org.apache.shardingsphere.governance.core.registry.cache.subscriber.Scali
import
org.apache.shardingsphere.governance.core.registry.config.subscriber.DataSourceRegistrySubscriber;
import
org.apache.shardingsphere.governance.core.registry.config.subscriber.GlobalRuleRegistrySubscriber;
import
org.apache.shardingsphere.governance.core.registry.config.subscriber.SchemaRuleRegistrySubscriber;
-import
org.apache.shardingsphere.infra.config.persist.service.SchemaMetaDataPersistService;
+import
org.apache.shardingsphere.governance.core.registry.metadata.subscriber.SchemaMetaDataRegistrySubscriber;
import
org.apache.shardingsphere.governance.core.registry.process.subscriber.ProcessRegistrySubscriber;
import
org.apache.shardingsphere.governance.core.registry.state.service.DataSourceStatusRegistryService;
import
org.apache.shardingsphere.governance.core.registry.state.service.InstanceStatusRegistryService;
@@ -39,8 +39,6 @@ public final class RegistryCenter {
private final String instanceId;
- private final SchemaMetaDataPersistService schemaService;
-
private final DataSourceStatusRegistryService dataSourceStatusService;
private final InstanceStatusRegistryService instanceStatusService;
@@ -49,7 +47,6 @@ public final class RegistryCenter {
public RegistryCenter(final RegistryCenterRepository repository) {
instanceId = GovernanceInstance.getInstance().getId();
- schemaService = new SchemaMetaDataPersistService(repository);
dataSourceStatusService = new
DataSourceStatusRegistryService(repository);
instanceStatusService = new InstanceStatusRegistryService(repository);
lockService = new LockRegistryService(repository);
@@ -58,6 +55,7 @@ public final class RegistryCenter {
private void createSubscribers(final RegistryCenterRepository repository) {
new DataSourceRegistrySubscriber(repository);
+ new SchemaMetaDataRegistrySubscriber(repository);
new GlobalRuleRegistrySubscriber(repository);
new SchemaRuleRegistrySubscriber(repository);
new DataSourceStatusRegistrySubscriber(repository);
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/config/persist/ConfigCenter.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/config/persist/ConfigCenter.java
index f7f26e7..5532527 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/config/persist/ConfigCenter.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/config/persist/ConfigCenter.java
@@ -18,13 +18,14 @@
package org.apache.shardingsphere.infra.config.persist;
import lombok.Getter;
+import org.apache.shardingsphere.infra.config.RuleConfiguration;
+import
org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration;
import
org.apache.shardingsphere.infra.config.persist.repository.ConfigCenterRepository;
+import
org.apache.shardingsphere.infra.config.persist.service.SchemaMetaDataPersistService;
import
org.apache.shardingsphere.infra.config.persist.service.impl.DataSourcePersistService;
import
org.apache.shardingsphere.infra.config.persist.service.impl.GlobalRulePersistService;
import
org.apache.shardingsphere.infra.config.persist.service.impl.PropertiesPersistService;
import
org.apache.shardingsphere.infra.config.persist.service.impl.SchemaRulePersistService;
-import org.apache.shardingsphere.infra.config.RuleConfiguration;
-import
org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration;
import java.util.Collection;
import java.util.Map;
@@ -39,6 +40,8 @@ public final class ConfigCenter {
private final DataSourcePersistService dataSourceService;
+ private final SchemaMetaDataPersistService schemaMetaDataService;
+
private final SchemaRulePersistService schemaRuleService;
private final GlobalRulePersistService globalRuleService;
@@ -47,6 +50,7 @@ public final class ConfigCenter {
public ConfigCenter(final ConfigCenterRepository repository) {
dataSourceService = new DataSourcePersistService(repository);
+ schemaMetaDataService = new SchemaMetaDataPersistService(repository);
schemaRuleService = new SchemaRulePersistService(repository);
globalRuleService = new GlobalRulePersistService(repository);
propsService = new PropertiesPersistService(repository);
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 98ad1a0..d832e64 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
@@ -95,7 +95,7 @@ public final class GovernanceBootstrapInitializer extends
AbstractBootstrapIniti
}
private ProxyConfiguration loadProxyConfiguration() {
- Collection<String> schemaNames =
governanceFacade.getRegistryCenter().getSchemaService().loadAllNames();
+ Collection<String> schemaNames =
governanceFacade.getConfigCenter().getSchemaMetaDataService().loadAllNames();
Map<String, Map<String, DataSourceParameter>> schemaDataSources =
loadDataSourceParametersMap(schemaNames);
Map<String, Collection<RuleConfiguration>> schemaRules =
loadSchemaRules(schemaNames);
Properties props =
governanceFacade.getConfigCenter().getPropsService().load();