This is an automated email from the ASF dual-hosted git repository.
panjuan 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 2f801b0da01 Remove CreateRuleItemEvent (#26735)
2f801b0da01 is described below
commit 2f801b0da010a0d3bd539e9405908642d9c08d1d
Author: Liang Zhang <[email protected]>
AuthorDate: Mon Jul 3 06:34:01 2023 +0800
Remove CreateRuleItemEvent (#26735)
---
.../subscriber/BroadcastTableSubscriber.java | 4 +-
.../encrypt/subscriber/EncryptTableSubscriber.java | 38 +++++++++++------
.../mask/subscriber/MaskTableSubscriber.java | 4 +-
.../ReadwriteSplittingDataSourceSubscriber.java | 8 ++--
.../ReadwriteSplittingLoadBalanceSubscriber.java | 4 +-
.../subscriber/ShadowAlgorithmSubscriber.java | 4 +-
.../subscriber/ShadowDataSourceSubscriber.java | 8 ++--
.../shadow/subscriber/ShadowTableSubscriber.java | 4 +-
.../subscriber/ShardingCacheSubscriber.java | 4 +-
.../ShardingDefaultStrategySubscriber.java | 16 ++++----
.../rule/create/CreateNamedRuleItemEvent.java | 37 -----------------
.../event/rule/create/CreateRuleItemEvent.java | 26 ------------
.../rule/create/CreateUniqueRuleItemEvent.java | 35 ----------------
.../config/global/NewPropertiesPersistService.java | 4 +-
.../SingleRuleConfigurationDecorator.java | 5 +--
.../single/subscriber/SingleTableSubscriber.java | 48 +++++++++++-----------
.../storage/service/StorageNodeStatusService.java | 6 +--
17 files changed, 83 insertions(+), 172 deletions(-)
diff --git
a/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/subscriber/BroadcastTableSubscriber.java
b/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/subscriber/BroadcastTableSubscriber.java
index 99ffc843bef..90d8da5488e 100644
---
a/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/subscriber/BroadcastTableSubscriber.java
+++
b/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/subscriber/BroadcastTableSubscriber.java
@@ -51,8 +51,8 @@ public final class BroadcastTableSubscriber implements
RuleChangedSubscriber {
if
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
{
return;
}
- String yamlContext =
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
event.getActiveVersion());
- BroadcastRuleConfiguration toBeChangedConfig = new
BroadcastRuleConfiguration(YamlEngine.unmarshal(yamlContext,
YamlBroadcastRuleConfiguration.class).getTables());
+ String yamlContent =
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
event.getActiveVersion());
+ BroadcastRuleConfiguration toBeChangedConfig = new
BroadcastRuleConfiguration(YamlEngine.unmarshal(yamlContent,
YamlBroadcastRuleConfiguration.class).getTables());
ShardingSphereDatabase database =
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
Optional<BroadcastRule> rule =
database.getRuleMetaData().findSingleRule(BroadcastRule.class);
BroadcastRuleConfiguration config;
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/subscriber/EncryptTableSubscriber.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/subscriber/EncryptTableSubscriber.java
index 477060bf86f..654e075127c 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/subscriber/EncryptTableSubscriber.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/subscriber/EncryptTableSubscriber.java
@@ -54,16 +54,11 @@ public final class EncryptTableSubscriber implements
RuleChangedSubscriber {
if
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
{
return;
}
- ShardingSphereDatabase database =
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
String yamlContent =
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
event.getActiveVersion());
- EncryptTableRuleConfiguration toBeChangedConfig = new
YamlEncryptTableRuleConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
YamlEncryptTableRuleConfiguration.class));
- EncryptRuleConfiguration config =
database.getRuleMetaData().findSingleRule(EncryptRule.class)
- .map(optional ->
getEncryptRuleConfiguration((EncryptRuleConfiguration)
optional.getConfiguration()))
- .orElseGet(() -> new EncryptRuleConfiguration(new
LinkedList<>(), new LinkedHashMap<>()));
- // TODO refactor DistSQL to only persist config
- config.getTables().removeIf(each ->
each.getName().equals(toBeChangedConfig.getName()));
- config.getTables().add(toBeChangedConfig);
- contextManager.getInstanceContext().getEventBusContext().post(new
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
+ EncryptTableRuleConfiguration toBeChangedConfig =
getToBeChangedConfiguration(yamlContent);
+ ShardingSphereDatabase database =
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
+ EncryptRuleConfiguration changedConfig =
getChangedConfiguration(toBeChangedConfig, database);
+ contextManager.getInstanceContext().getEventBusContext().post(new
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), changedConfig));
}
/**
@@ -77,12 +72,31 @@ public final class EncryptTableSubscriber implements
RuleChangedSubscriber {
return;
}
ShardingSphereDatabase database =
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
- EncryptRuleConfiguration config = (EncryptRuleConfiguration)
database.getRuleMetaData().getSingleRule(EncryptRule.class).getConfiguration();
- config.getTables().removeIf(each ->
each.getName().equals(event.getItemName()));
- contextManager.getInstanceContext().getEventBusContext().post(new
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
+ EncryptRuleConfiguration droppedConfig =
getDroppedConfiguration(database, event.getItemName());
+ contextManager.getInstanceContext().getEventBusContext().post(new
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), droppedConfig));
+ }
+
+ private EncryptTableRuleConfiguration getToBeChangedConfiguration(final
String yamlContent) {
+ return new
YamlEncryptTableRuleConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
YamlEncryptTableRuleConfiguration.class));
+ }
+
+ private EncryptRuleConfiguration getChangedConfiguration(final
EncryptTableRuleConfiguration toBeChangedConfig, final ShardingSphereDatabase
database) {
+ EncryptRuleConfiguration config =
database.getRuleMetaData().findSingleRule(EncryptRule.class)
+ .map(optional ->
getEncryptRuleConfiguration((EncryptRuleConfiguration)
optional.getConfiguration()))
+ .orElseGet(() -> new EncryptRuleConfiguration(new
LinkedList<>(), new LinkedHashMap<>()));
+ // TODO refactor DistSQL to only persist config
+ config.getTables().removeIf(each ->
each.getName().equals(toBeChangedConfig.getName()));
+ config.getTables().add(toBeChangedConfig);
+ return config;
}
private EncryptRuleConfiguration getEncryptRuleConfiguration(final
EncryptRuleConfiguration config) {
return null == config.getTables() ? new EncryptRuleConfiguration(new
LinkedList<>(), config.getEncryptors()) : config;
}
+
+ private EncryptRuleConfiguration getDroppedConfiguration(final
ShardingSphereDatabase database, final String itemName) {
+ EncryptRuleConfiguration result = (EncryptRuleConfiguration)
database.getRuleMetaData().getSingleRule(EncryptRule.class).getConfiguration();
+ result.getTables().removeIf(each -> each.getName().equals(itemName));
+ return result;
+ }
}
diff --git
a/features/mask/core/src/main/java/org/apache/shardingsphere/mask/subscriber/MaskTableSubscriber.java
b/features/mask/core/src/main/java/org/apache/shardingsphere/mask/subscriber/MaskTableSubscriber.java
index 3d3345fa101..1c778696ff2 100644
---
a/features/mask/core/src/main/java/org/apache/shardingsphere/mask/subscriber/MaskTableSubscriber.java
+++
b/features/mask/core/src/main/java/org/apache/shardingsphere/mask/subscriber/MaskTableSubscriber.java
@@ -54,8 +54,8 @@ public final class MaskTableSubscriber implements
RuleChangedSubscriber {
if
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
{
return;
}
- String yamlContext =
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
event.getActiveVersion());
- MaskTableRuleConfiguration toBeChangedConfig = new
YamlMaskTableRuleConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContext,
YamlMaskTableRuleConfiguration.class));
+ String yamlContent =
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
event.getActiveVersion());
+ MaskTableRuleConfiguration toBeChangedConfig = new
YamlMaskTableRuleConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
YamlMaskTableRuleConfiguration.class));
ShardingSphereDatabase database =
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
MaskRuleConfiguration config = getConfiguration(database,
toBeChangedConfig);
contextManager.getInstanceContext().getEventBusContext().post(new
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
diff --git
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/subscriber/ReadwriteSplittingDataSourceSubscriber.java
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/subscriber/ReadwriteSplittingDataSourceSubscriber.java
index d1c89c7bcb3..972f53f5537 100644
---
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/subscriber/ReadwriteSplittingDataSourceSubscriber.java
+++
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/subscriber/ReadwriteSplittingDataSourceSubscriber.java
@@ -57,8 +57,8 @@ public final class ReadwriteSplittingDataSourceSubscriber
implements RuleChanged
if
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
{
return;
}
- String yamlContext =
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
event.getActiveVersion());
- ReadwriteSplittingDataSourceRuleConfiguration toBeChangedConfig =
swapDataSource(event.getItemName(), yamlContext);
+ String yamlContent =
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
event.getActiveVersion());
+ ReadwriteSplittingDataSourceRuleConfiguration toBeChangedConfig =
swapDataSource(event.getItemName(), yamlContent);
ShardingSphereDatabase database =
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
ReadwriteSplittingRuleConfiguration config =
getConfiguration(database, toBeChangedConfig);
contextManager.getInstanceContext().getEventBusContext().post(new
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
@@ -102,8 +102,8 @@ public final class ReadwriteSplittingDataSourceSubscriber
implements RuleChanged
return result;
}
- private ReadwriteSplittingDataSourceRuleConfiguration swapDataSource(final
String name, final String yamlContext) {
- YamlReadwriteSplittingDataSourceRuleConfiguration
yamlDataSourceRuleConfig = YamlEngine.unmarshal(yamlContext,
YamlReadwriteSplittingDataSourceRuleConfiguration.class);
+ private ReadwriteSplittingDataSourceRuleConfiguration swapDataSource(final
String name, final String yamlContent) {
+ YamlReadwriteSplittingDataSourceRuleConfiguration
yamlDataSourceRuleConfig = YamlEngine.unmarshal(yamlContent,
YamlReadwriteSplittingDataSourceRuleConfiguration.class);
return new ReadwriteSplittingDataSourceRuleConfiguration(name,
yamlDataSourceRuleConfig.getWriteDataSourceName(),
yamlDataSourceRuleConfig.getReadDataSourceNames(),
getTransactionalReadQueryStrategy(yamlDataSourceRuleConfig),
yamlDataSourceRuleConfig.getLoadBalancerName());
}
diff --git
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/subscriber/ReadwriteSplittingLoadBalanceSubscriber.java
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/subscriber/ReadwriteSplittingLoadBalanceSubscriber.java
index 038c129956e..c501021386c 100644
---
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/subscriber/ReadwriteSplittingLoadBalanceSubscriber.java
+++
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/subscriber/ReadwriteSplittingLoadBalanceSubscriber.java
@@ -98,7 +98,7 @@ public final class ReadwriteSplittingLoadBalanceSubscriber
implements RuleChange
return result;
}
- private AlgorithmConfiguration swapToAlgorithmConfig(final String
yamlContext) {
- return new
YamlAlgorithmConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContext,
YamlAlgorithmConfiguration.class));
+ private AlgorithmConfiguration swapToAlgorithmConfig(final String
yamlContent) {
+ return new
YamlAlgorithmConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
YamlAlgorithmConfiguration.class));
}
}
diff --git
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/ShadowAlgorithmSubscriber.java
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/ShadowAlgorithmSubscriber.java
index e6d3d0d9865..216a6588f17 100644
---
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/ShadowAlgorithmSubscriber.java
+++
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/ShadowAlgorithmSubscriber.java
@@ -82,7 +82,7 @@ public final class ShadowAlgorithmSubscriber implements
RuleChangedSubscriber {
contextManager.getInstanceContext().getEventBusContext().post(new
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
}
- private AlgorithmConfiguration swapToAlgorithmConfig(final String
yamlContext) {
- return new
YamlAlgorithmConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContext,
YamlAlgorithmConfiguration.class));
+ private AlgorithmConfiguration swapToAlgorithmConfig(final String
yamlContent) {
+ return new
YamlAlgorithmConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
YamlAlgorithmConfiguration.class));
}
}
diff --git
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/ShadowDataSourceSubscriber.java
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/ShadowDataSourceSubscriber.java
index d00e76d8455..cdf1dba2d91 100644
---
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/ShadowDataSourceSubscriber.java
+++
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/ShadowDataSourceSubscriber.java
@@ -50,8 +50,8 @@ public final class ShadowDataSourceSubscriber implements
RuleChangedSubscriber {
if
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
{
return;
}
- String yamlContext =
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
event.getActiveVersion());
- ShadowDataSourceConfiguration toBeChangedConfig =
swapShadowDataSourceRuleConfig(event.getItemName(), yamlContext);
+ String yamlContent =
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
event.getActiveVersion());
+ ShadowDataSourceConfiguration toBeChangedConfig =
swapShadowDataSourceRuleConfig(event.getItemName(), yamlContent);
ShardingSphereDatabase database =
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
ShadowRuleConfiguration config =
database.getRuleMetaData().findSingleRule(ShadowRule.class)
.map(optional -> (ShadowRuleConfiguration)
optional.getConfiguration()).orElseGet(ShadowRuleConfiguration::new);
@@ -77,8 +77,8 @@ public final class ShadowDataSourceSubscriber implements
RuleChangedSubscriber {
contextManager.getInstanceContext().getEventBusContext().post(new
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
}
- private ShadowDataSourceConfiguration swapShadowDataSourceRuleConfig(final
String dataSourceName, final String yamlContext) {
- YamlShadowDataSourceConfiguration yamlConfig =
YamlEngine.unmarshal(yamlContext, YamlShadowDataSourceConfiguration.class);
+ private ShadowDataSourceConfiguration swapShadowDataSourceRuleConfig(final
String dataSourceName, final String yamlContent) {
+ YamlShadowDataSourceConfiguration yamlConfig =
YamlEngine.unmarshal(yamlContent, YamlShadowDataSourceConfiguration.class);
return new ShadowDataSourceConfiguration(dataSourceName,
yamlConfig.getProductionDataSourceName(), yamlConfig.getShadowDataSourceName());
}
}
diff --git
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/ShadowTableSubscriber.java
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/ShadowTableSubscriber.java
index 9846f2d5cf2..64016c5aa97 100644
---
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/ShadowTableSubscriber.java
+++
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/ShadowTableSubscriber.java
@@ -51,8 +51,8 @@ public final class ShadowTableSubscriber implements
RuleChangedSubscriber {
if
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
{
return;
}
- String yamlContext =
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
event.getActiveVersion());
- ShadowTableConfiguration toBeChangedConfig = new
YamlShadowTableConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContext,
YamlShadowTableConfiguration.class));
+ String yamlContent =
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
event.getActiveVersion());
+ ShadowTableConfiguration toBeChangedConfig = new
YamlShadowTableConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
YamlShadowTableConfiguration.class));
ShardingSphereDatabase database =
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
ShadowRuleConfiguration config =
database.getRuleMetaData().findSingleRule(ShadowRule.class)
.map(optional -> (ShadowRuleConfiguration)
optional.getConfiguration()).orElseGet(ShadowRuleConfiguration::new);
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheSubscriber.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheSubscriber.java
index ccef12146bd..9a049fa75b3 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheSubscriber.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheSubscriber.java
@@ -51,8 +51,8 @@ public final class ShardingCacheSubscriber implements
RuleChangedSubscriber {
if
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
{
return;
}
- String yamlContext =
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
event.getActiveVersion());
- ShardingCacheConfiguration toBeChangedConfig = new
YamlShardingCacheConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContext,
YamlShardingCacheConfiguration.class));
+ String yamlContent =
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
event.getActiveVersion());
+ ShardingCacheConfiguration toBeChangedConfig = new
YamlShardingCacheConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
YamlShardingCacheConfiguration.class));
ShardingSphereDatabase database =
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
ShardingRuleConfiguration config =
database.getRuleMetaData().findSingleRule(ShardingRule.class)
.map(optional -> (ShardingRuleConfiguration)
optional.getConfiguration()).orElseGet(ShardingRuleConfiguration::new);
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingDefaultStrategySubscriber.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingDefaultStrategySubscriber.java
index 52bac4c16e2..a2d040348c5 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingDefaultStrategySubscriber.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingDefaultStrategySubscriber.java
@@ -65,8 +65,8 @@ public final class ShardingDefaultStrategySubscriber
implements RuleChangedSubsc
if
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
{
return;
}
- String yamlContext =
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
event.getActiveVersion());
- ShardingStrategyConfiguration toBeChangedConfig = new
YamlShardingStrategyConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContext,
YamlShardingStrategyConfiguration.class));
+ String yamlContent =
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
event.getActiveVersion());
+ ShardingStrategyConfiguration toBeChangedConfig = new
YamlShardingStrategyConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
YamlShardingStrategyConfiguration.class));
ShardingSphereDatabase database =
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
ShardingRuleConfiguration config =
database.getRuleMetaData().findSingleRule(ShardingRule.class)
.map(optional -> (ShardingRuleConfiguration)
optional.getConfiguration()).orElseGet(ShardingRuleConfiguration::new);
@@ -100,8 +100,8 @@ public final class ShardingDefaultStrategySubscriber
implements RuleChangedSubsc
if
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
{
return;
}
- String yamlContext =
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
event.getActiveVersion());
- ShardingStrategyConfiguration toBeChangedConfig = new
YamlShardingStrategyConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContext,
YamlShardingStrategyConfiguration.class));
+ String yamlContent =
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
event.getActiveVersion());
+ ShardingStrategyConfiguration toBeChangedConfig = new
YamlShardingStrategyConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
YamlShardingStrategyConfiguration.class));
ShardingSphereDatabase database =
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
ShardingRuleConfiguration config =
database.getRuleMetaData().findSingleRule(ShardingRule.class)
.map(optional -> (ShardingRuleConfiguration)
optional.getConfiguration()).orElseGet(ShardingRuleConfiguration::new);
@@ -135,9 +135,9 @@ public final class ShardingDefaultStrategySubscriber
implements RuleChangedSubsc
if
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
{
return;
}
- String yamlContext =
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
event.getActiveVersion());
+ String yamlContent =
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
event.getActiveVersion());
KeyGenerateStrategyConfiguration toBeChangedConfig = new
YamlKeyGenerateStrategyConfigurationSwapper().swapToObject(
- YamlEngine.unmarshal(yamlContext,
YamlKeyGenerateStrategyConfiguration.class));
+ YamlEngine.unmarshal(yamlContent,
YamlKeyGenerateStrategyConfiguration.class));
ShardingSphereDatabase database =
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
ShardingRuleConfiguration config =
database.getRuleMetaData().findSingleRule(ShardingRule.class)
.map(optional -> (ShardingRuleConfiguration)
optional.getConfiguration()).orElseGet(ShardingRuleConfiguration::new);
@@ -171,9 +171,9 @@ public final class ShardingDefaultStrategySubscriber
implements RuleChangedSubsc
if
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
{
return;
}
- String yamlContext =
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
event.getActiveVersion());
+ String yamlContent =
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
event.getActiveVersion());
ShardingAuditStrategyConfiguration toBeChangedConfig = new
YamlShardingAuditStrategyConfigurationSwapper().swapToObject(
- YamlEngine.unmarshal(yamlContext,
YamlShardingAuditStrategyConfiguration.class));
+ YamlEngine.unmarshal(yamlContent,
YamlShardingAuditStrategyConfiguration.class));
ShardingSphereDatabase database =
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
ShardingRuleConfiguration config =
database.getRuleMetaData().findSingleRule(ShardingRule.class)
.map(optional -> (ShardingRuleConfiguration)
optional.getConfiguration()).orElseGet(ShardingRuleConfiguration::new);
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/event/rule/create/CreateNamedRuleItemEvent.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/event/rule/create/CreateNamedRuleItemEvent.java
deleted file mode 100644
index 526a8b60e2d..00000000000
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/event/rule/create/CreateNamedRuleItemEvent.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * 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.infra.rule.event.rule.create;
-
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-
-/**
- * Create named rule item event.
- */
-@RequiredArgsConstructor
-@Getter
-public class CreateNamedRuleItemEvent implements CreateRuleItemEvent {
-
- private final String databaseName;
-
- private final String itemName;
-
- private final String activeVersionKey;
-
- private final String activeVersion;
-}
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/event/rule/create/CreateRuleItemEvent.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/event/rule/create/CreateRuleItemEvent.java
deleted file mode 100644
index 82c781777e0..00000000000
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/event/rule/create/CreateRuleItemEvent.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * 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.infra.rule.event.rule.create;
-
-import org.apache.shardingsphere.infra.rule.event.rule.RuleItemChangedEvent;
-
-/**
- * Create rule item event.
- */
-public interface CreateRuleItemEvent extends RuleItemChangedEvent {
-}
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/event/rule/create/CreateUniqueRuleItemEvent.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/event/rule/create/CreateUniqueRuleItemEvent.java
deleted file mode 100644
index ee083630ba9..00000000000
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/event/rule/create/CreateUniqueRuleItemEvent.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * 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.infra.rule.event.rule.create;
-
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-
-/**
- * Create unique rule item event.
- */
-@RequiredArgsConstructor
-@Getter
-public class CreateUniqueRuleItemEvent implements CreateRuleItemEvent {
-
- private final String databaseName;
-
- private final String activeVersionKey;
-
- private final String activeVersion;
-}
diff --git
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/global/NewPropertiesPersistService.java
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/global/NewPropertiesPersistService.java
index 97270411402..46e475cdd02 100644
---
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/global/NewPropertiesPersistService.java
+++
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/global/NewPropertiesPersistService.java
@@ -66,8 +66,8 @@ public final class NewPropertiesPersistService implements
GlobalPersistService<P
@Override
public Properties load() {
- String yamlContext =
repository.getDirectly(NewGlobalNode.getPropsVersionNode(getActiveVersion()));
- return Strings.isNullOrEmpty(yamlContext) ? new Properties() :
YamlEngine.unmarshal(yamlContext, Properties.class);
+ String yamlContent =
repository.getDirectly(NewGlobalNode.getPropsVersionNode(getActiveVersion()));
+ return Strings.isNullOrEmpty(yamlContent) ? new Properties() :
YamlEngine.unmarshal(yamlContent, Properties.class);
}
private String getActiveVersion() {
diff --git
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/decorator/SingleRuleConfigurationDecorator.java
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/decorator/SingleRuleConfigurationDecorator.java
index 8633bb69d4a..5c751a1971a 100644
---
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/decorator/SingleRuleConfigurationDecorator.java
+++
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/decorator/SingleRuleConfigurationDecorator.java
@@ -49,10 +49,7 @@ public final class SingleRuleConfigurationDecorator
implements RuleConfiguration
@Override
public SingleRuleConfiguration decorate(final String databaseName, final
Map<String, DataSource> dataSources,
final
Collection<ShardingSphereRule> builtRules, final SingleRuleConfiguration
ruleConfig) {
- SingleRuleConfiguration result = new SingleRuleConfiguration();
- result.getTables().addAll(decorateTables(databaseName, dataSources,
new LinkedList<>(builtRules), ruleConfig.getTables()));
-
ruleConfig.getDefaultDataSource().ifPresent(result::setDefaultDataSource);
- return result;
+ return new SingleRuleConfiguration(decorateTables(databaseName,
dataSources, new LinkedList<>(builtRules), ruleConfig.getTables()),
ruleConfig.getDefaultDataSource().orElse(null));
}
private Collection<String> decorateTables(final String databaseName, final
Map<String, DataSource> dataSources, final Collection<ShardingSphereRule>
builtRules, final Collection<String> tables) {
diff --git
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/subscriber/SingleTableSubscriber.java
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/subscriber/SingleTableSubscriber.java
index f343a21778f..e7fd27523d5 100644
---
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/subscriber/SingleTableSubscriber.java
+++
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/subscriber/SingleTableSubscriber.java
@@ -29,8 +29,7 @@ import
org.apache.shardingsphere.single.event.config.AlterSingleTableEvent;
import org.apache.shardingsphere.single.event.config.DropSingleTableEvent;
import org.apache.shardingsphere.single.rule.SingleRule;
import
org.apache.shardingsphere.single.yaml.config.pojo.YamlSingleRuleConfiguration;
-
-import java.util.Optional;
+import
org.apache.shardingsphere.single.yaml.config.swapper.YamlSingleRuleConfigurationSwapper;
/**
* Single table subscriber.
@@ -51,19 +50,11 @@ public final class SingleTableSubscriber implements
RuleChangedSubscriber {
if
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
{
return;
}
- String yamlContext =
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
event.getActiveVersion());
- SingleRuleConfiguration toBeChangedConfig =
swapSingleTableRuleConfig(yamlContext);
+ String yamlContent =
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
event.getActiveVersion());
+ SingleRuleConfiguration toBeChangedConfig =
getToBeChangedConfiguration(yamlContent);
ShardingSphereDatabase database =
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
- Optional<SingleRule> rule =
database.getRuleMetaData().findSingleRule(SingleRule.class);
- SingleRuleConfiguration config;
- if (rule.isPresent()) {
- config = rule.get().getConfiguration();
- config.getTables().clear();
- config.getTables().addAll(toBeChangedConfig.getTables());
- } else {
- config = new
SingleRuleConfiguration(toBeChangedConfig.getTables(),
toBeChangedConfig.getDefaultDataSource().orElse(null));
- }
- contextManager.getInstanceContext().getEventBusContext().post(new
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
+ SingleRuleConfiguration changedConfig =
getChangedConfiguration(toBeChangedConfig, database);
+ contextManager.getInstanceContext().getEventBusContext().post(new
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), changedConfig));
}
/**
@@ -77,19 +68,26 @@ public final class SingleTableSubscriber implements
RuleChangedSubscriber {
return;
}
ShardingSphereDatabase database =
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
- SingleRuleConfiguration config =
database.getRuleMetaData().getSingleRule(SingleRule.class).getConfiguration();
- config.getTables().clear();
- config.setDefaultDataSource(null);
- contextManager.getInstanceContext().getEventBusContext().post(new
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
+ SingleRuleConfiguration droppedConfig =
getDroppedConfiguration(database);
+ contextManager.getInstanceContext().getEventBusContext().post(new
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), droppedConfig));
}
- private SingleRuleConfiguration swapSingleTableRuleConfig(final String
yamlContent) {
- SingleRuleConfiguration result = new SingleRuleConfiguration();
- YamlSingleRuleConfiguration yamlSingleRuleConfig =
YamlEngine.unmarshal(yamlContent, YamlSingleRuleConfiguration.class);
- if (null != yamlSingleRuleConfig.getTables()) {
- result.getTables().addAll(yamlSingleRuleConfig.getTables());
- }
-
result.setDefaultDataSource(yamlSingleRuleConfig.getDefaultDataSource());
+ private SingleRuleConfiguration getToBeChangedConfiguration(final String
yamlContent) {
+ return new
YamlSingleRuleConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
YamlSingleRuleConfiguration.class));
+ }
+
+ private SingleRuleConfiguration getChangedConfiguration(final
SingleRuleConfiguration toBeChangedConfig, final ShardingSphereDatabase
database) {
+ SingleRuleConfiguration result =
database.getRuleMetaData().findSingleRule(SingleRule.class).map(SingleRule::getConfiguration).orElseGet(SingleRuleConfiguration::new);
+ result.getTables().clear();
+ result.getTables().addAll(toBeChangedConfig.getTables());
+ toBeChangedConfig.getDefaultDataSource().ifPresent(optional ->
result.setDefaultDataSource(toBeChangedConfig.getDefaultDataSource().get()));
+ return result;
+ }
+
+ private SingleRuleConfiguration getDroppedConfiguration(final
ShardingSphereDatabase database) {
+ SingleRuleConfiguration result =
database.getRuleMetaData().getSingleRule(SingleRule.class).getConfiguration();
+ result.getTables().clear();
+ result.setDefaultDataSource(null);
return result;
}
}
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/status/storage/service/StorageNodeStatusService.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/status/storage/service/StorageNodeStatusService.java
index 79ba7039b04..a2f0710c295 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/status/storage/service/StorageNodeStatusService.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/status/storage/service/StorageNodeStatusService.java
@@ -47,9 +47,9 @@ public final class StorageNodeStatusService {
Collection<String> storageNodes =
repository.getChildrenKeys(StorageNode.getRootPath());
Map<String, StorageNodeDataSource> result = new
HashMap<>(storageNodes.size(), 1F);
storageNodes.forEach(each -> {
- String yamlContext =
repository.getDirectly(StorageNode.getStorageNodesDataSourcePath(each));
- if (!Strings.isNullOrEmpty(yamlContext)) {
- result.put(each, new
YamlStorageNodeDataSourceSwapper().swapToObject(YamlEngine.unmarshal(yamlContext,
YamlStorageNodeDataSource.class)));
+ String yamlContent =
repository.getDirectly(StorageNode.getStorageNodesDataSourcePath(each));
+ if (!Strings.isNullOrEmpty(yamlContent)) {
+ result.put(each, new
YamlStorageNodeDataSourceSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
YamlStorageNodeDataSource.class)));
}
});
return result;