|
37 | 37 | import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
|
38 | 38 | import org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereDatabaseData;
|
39 | 39 | import org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereSchemaData;
|
40 |
| -import org.apache.shardingsphere.infra.rule.ShardingSphereRule; |
41 | 40 | import org.apache.shardingsphere.infra.rule.builder.global.GlobalRulesBuilder;
|
42 |
| -import org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader; |
43 | 41 | import org.apache.shardingsphere.mode.manager.ContextManagerBuilderParameter;
|
44 |
| -import org.apache.shardingsphere.mode.metadata.decorator.RuleConfigurationPersistDecorateEngine; |
45 | 42 | import org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory;
|
46 | 43 | import org.apache.shardingsphere.mode.metadata.factory.InternalMetaDataFactory;
|
47 | 44 | import org.apache.shardingsphere.mode.metadata.manager.SwitchingResource;
|
48 | 45 | import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
|
49 |
| -import org.apache.shardingsphere.mode.spi.RuleConfigurationPersistDecorator; |
50 | 46 |
|
51 | 47 | import javax.sql.DataSource;
|
52 | 48 | import java.sql.SQLException;
|
53 | 49 | import java.util.Collection;
|
54 |
| -import java.util.Collections; |
55 | 50 | import java.util.LinkedHashMap;
|
56 | 51 | import java.util.Map;
|
57 | 52 | import java.util.Map.Entry;
|
@@ -98,9 +93,7 @@ private static MetaDataContexts createByRepository(final MetaDataPersistService
|
98 | 93 | Collection<RuleConfiguration> globalRuleConfigs = persistService.getGlobalRuleService().load();
|
99 | 94 | ConfigurationProperties props = new ConfigurationProperties(persistService.getPropsService().load());
|
100 | 95 | Map<String, ShardingSphereDatabase> databases = InternalMetaDataFactory.create(persistService, effectiveDatabaseConfigs, props, instanceContext);
|
101 |
| - MetaDataContexts result = newMetaDataContexts(persistService, param, globalRuleConfigs, databases, props); |
102 |
| - restoreRules(result, instanceContext); |
103 |
| - return result; |
| 96 | + return newMetaDataContexts(persistService, param, globalRuleConfigs, databases, props); |
104 | 97 | }
|
105 | 98 |
|
106 | 99 | private static MetaDataContexts newMetaDataContexts(final MetaDataPersistService persistService, final ContextManagerBuilderParameter param,
|
@@ -139,25 +132,10 @@ private static void closeGeneratedDataSources(final String databaseName, final M
|
139 | 132 | }
|
140 | 133 | }
|
141 | 134 |
|
142 |
| - @SuppressWarnings({"unchecked", "rawtypes"}) |
143 |
| - private static void restoreRules(final MetaDataContexts metaDataContexts, final ComputeNodeInstanceContext instanceContext) { |
144 |
| - if (!instanceContext.getModeConfiguration().isCluster()) { |
145 |
| - return; |
146 |
| - } |
147 |
| - for (RuleConfigurationPersistDecorator each : ShardingSphereServiceLoader.getServiceInstances(RuleConfigurationPersistDecorator.class)) { |
148 |
| - ShardingSphereRule rule = metaDataContexts.getMetaData().getGlobalRuleMetaData().getSingleRule(each.getRuleType()); |
149 |
| - metaDataContexts.getMetaData().getGlobalRuleMetaData().getRules().removeIf(eachRule -> each.getRuleType() == eachRule.getClass()); |
150 |
| - RuleConfiguration restoredRuleConfig = each.restore(rule.getConfiguration()); |
151 |
| - ShardingSphereRule rebuiltRule = GlobalRulesBuilder.buildRules( |
152 |
| - Collections.singleton(restoredRuleConfig), metaDataContexts.getMetaData().getAllDatabases(), metaDataContexts.getMetaData().getProps()).iterator().next(); |
153 |
| - metaDataContexts.getMetaData().getGlobalRuleMetaData().getRules().add(rebuiltRule); |
154 |
| - } |
155 |
| - } |
156 |
| - |
157 |
| - private static void persistDatabaseConfigurations(final MetaDataContexts metadataContexts, final ContextManagerBuilderParameter param, final MetaDataPersistService persistService, |
158 |
| - final ComputeNodeInstanceContext instanceContext) { |
159 |
| - RuleConfigurationPersistDecorateEngine ruleConfigPersistDecorateEngine = new RuleConfigurationPersistDecorateEngine(instanceContext); |
160 |
| - persistService.persistGlobalRuleConfiguration(ruleConfigPersistDecorateEngine.decorate(metadataContexts.getMetaData().getGlobalRuleMetaData().getConfigurations()), param.getProps()); |
| 135 | + private static void persistDatabaseConfigurations(final MetaDataContexts metadataContexts, |
| 136 | + final ContextManagerBuilderParameter param, final MetaDataPersistService persistService, final ComputeNodeInstanceContext instanceContext) { |
| 137 | + Collection<RuleConfiguration> globalRuleConfigs = metadataContexts.getMetaData().getGlobalRuleMetaData().getConfigurations(); |
| 138 | + persistService.persistGlobalRuleConfiguration(globalRuleConfigs, param.getProps()); |
161 | 139 | for (Entry<String, ? extends DatabaseConfiguration> entry : param.getDatabaseConfigs().entrySet()) {
|
162 | 140 | String databaseName = entry.getKey();
|
163 | 141 | persistService.persistConfigurations(entry.getKey(), entry.getValue(),
|
|
0 commit comments