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();

Reply via email to