未验证 提交 c11bfff3 编写于 作者: Z Zhang Yonglun 提交者: GitHub

#7318, add governance updater (#7979)

上级 d666bbf6
......@@ -90,6 +90,18 @@ public final class GovernanceFacade implements AutoCloseable {
listenerManager.init();
}
/**
* Update configurations.
*
* @param dataSourceConfigMap schema data source configuration map
* @param schemaRuleMap schema rule map
*/
public void updateConfigurations(final Map<String, Map<String, DataSourceConfiguration>> dataSourceConfigMap, final Map<String, Collection<RuleConfiguration>> schemaRuleMap) {
for (Entry<String, Map<String, DataSourceConfiguration>> entry : dataSourceConfigMap.entrySet()) {
configCenter.persistConfigurations(entry.getKey(), dataSourceConfigMap.get(entry.getKey()), schemaRuleMap.get(entry.getKey()), true);
}
}
@Override
public void close() {
repositoryFacade.close();
......
......@@ -30,6 +30,7 @@ import org.apache.shardingsphere.infra.context.schema.SchemaContexts;
import org.apache.shardingsphere.infra.config.datasource.DataSourceParameter;
import org.apache.shardingsphere.infra.yaml.swapper.YamlRuleConfigurationSwapperEngine;
import org.apache.shardingsphere.proxy.config.ProxyConfiguration;
import org.apache.shardingsphere.proxy.config.ProxyConfigurationUpdater;
import org.apache.shardingsphere.proxy.config.YamlProxyConfiguration;
import org.apache.shardingsphere.proxy.config.util.DataSourceParameterConverter;
import org.apache.shardingsphere.proxy.config.yaml.YamlProxyRuleConfiguration;
......@@ -48,7 +49,7 @@ import java.util.stream.Collectors;
*/
public final class GovernanceBootstrapInitializer extends AbstractBootstrapInitializer {
private final GovernanceFacade governanceFacade = new GovernanceFacade();
private final GovernanceFacade governanceFacade = ProxyConfigurationUpdater.getGovernanceFacade();
@Override
protected ProxyConfiguration getProxyConfiguration(final YamlProxyConfiguration yamlConfig) {
......
......@@ -37,6 +37,11 @@
<artifactId>shardingsphere-governance-core-common</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-governance-core-facade</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-infra-context</artifactId>
......
/*
* 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.proxy.config;
import org.apache.shardingsphere.governance.core.facade.GovernanceFacade;
import org.apache.shardingsphere.infra.config.RuleConfiguration;
import org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration;
import java.util.Collection;
import java.util.Map;
/**
* Proxy configuration updater.
*/
public final class ProxyConfigurationUpdater {
private static final GovernanceFacade GOVERNANCE_FACADE = new GovernanceFacade();
/**
* Get governance facade.
*
* @return governance facade
*/
public static GovernanceFacade getGovernanceFacade() {
return GOVERNANCE_FACADE;
}
/**
* Update configurations.
*
* @param dataSourceConfigMap data source config map
* @param schemaRuleMap schema rule map
*/
public static void update(final Map<String, Map<String, DataSourceConfiguration>> dataSourceConfigMap, final Map<String, Collection<RuleConfiguration>> schemaRuleMap) {
GOVERNANCE_FACADE.updateConfigurations(dataSourceConfigMap, schemaRuleMap);
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册