This is an automated email from the ASF dual-hosted git repository.
zhaojinchao 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 c0a2e8db047 Refactor broadcast event & subscriber (#26479)
c0a2e8db047 is described below
commit c0a2e8db047a9725e81051af28f59a01cdf27ef4
Author: ChenJiaHao <[email protected]>
AuthorDate: Sat Jun 24 21:14:01 2023 +0800
Refactor broadcast event & subscriber (#26479)
---
.../event/BroadcastRuleConfigurationEventBuilder.java | 14 +++-----------
.../event/config/AddBroadcastTableEvent.java | 5 +----
.../event/config/AlterBroadcastTableEvent.java | 5 +----
.../event/config/DeleteBroadcastTableEvent.java | 2 +-
.../metadata/converter/BroadcastNodeConverter.java | 8 +++++---
.../subscriber/BroadcastConfigurationSubscriber.java | 19 ++++++++++++++-----
.../metadata/convert/BroadcastNodeConverterTest.java | 4 ++--
...adwriteSplittingRuleConfigurationEventBuilder.java | 12 ++++++------
.../AddReadwriteSplittingDataSourceEvent.java} | 4 ++--
.../AlterReadwriteSplittingDataSourceEvent.java} | 4 ++--
.../DeleteReadwriteSplittingDataSourceEvent.java} | 4 ++--
...va => ReadwriteSplittingDataSourceSubscriber.java} | 14 +++++++-------
...e.infra.rule.RuleConfigurationSubscribeCoordinator | 2 +-
.../persist/node/NewDatabaseMetaDataNode.java | 10 +++++-----
14 files changed, 52 insertions(+), 55 deletions(-)
diff --git
a/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/event/BroadcastRuleConfigurationEventBuilder.java
b/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/event/BroadcastRuleConfigurationEventBuilder.java
index eeac4f5d710..97c38a666f8 100644
---
a/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/event/BroadcastRuleConfigurationEventBuilder.java
+++
b/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/event/BroadcastRuleConfigurationEventBuilder.java
@@ -18,14 +18,11 @@
package org.apache.shardingsphere.broadcast.event;
import com.google.common.base.Strings;
-import
org.apache.shardingsphere.broadcast.api.config.BroadcastRuleConfiguration;
import org.apache.shardingsphere.broadcast.event.config.AddBroadcastTableEvent;
import
org.apache.shardingsphere.broadcast.event.config.AlterBroadcastTableEvent;
import
org.apache.shardingsphere.broadcast.event.config.DeleteBroadcastTableEvent;
import
org.apache.shardingsphere.broadcast.metadata.converter.BroadcastNodeConverter;
-import
org.apache.shardingsphere.broadcast.yaml.config.YamlBroadcastRuleConfiguration;
import org.apache.shardingsphere.infra.rule.event.GovernanceEvent;
-import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
import org.apache.shardingsphere.mode.event.DataChangedEvent;
import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
import org.apache.shardingsphere.mode.spi.RuleConfigurationEventBuilder;
@@ -42,7 +39,7 @@ public final class BroadcastRuleConfigurationEventBuilder
implements RuleConfigu
if (!BroadcastNodeConverter.isBroadcastPath(event.getKey()) ||
Strings.isNullOrEmpty(event.getValue())) {
return Optional.empty();
}
- if (BroadcastNodeConverter.isTablesPath(event.getKey()) &&
!Strings.isNullOrEmpty(event.getValue())) {
+ if (BroadcastNodeConverter.isTablesActiveVersionPath(event.getKey())
&& !Strings.isNullOrEmpty(event.getValue())) {
Optional<String> tablesVersion =
BroadcastNodeConverter.getTablesVersion(event.getKey());
if (tablesVersion.isPresent()) {
return createBroadcastConfigEvent(databaseName,
tablesVersion.get(), event);
@@ -53,16 +50,11 @@ public final class BroadcastRuleConfigurationEventBuilder
implements RuleConfigu
private Optional<GovernanceEvent> createBroadcastConfigEvent(final String
databaseName, final String version, final DataChangedEvent event) {
if (Type.ADDED == event.getType()) {
- return Optional.of(new AddBroadcastTableEvent(databaseName,
swapBroadcastTableRuleConfig(event.getValue()), event.getKey(), version));
+ return Optional.of(new AddBroadcastTableEvent(databaseName,
event.getKey(), version));
}
if (Type.UPDATED == event.getType()) {
- return Optional.of(new AlterBroadcastTableEvent(databaseName,
swapBroadcastTableRuleConfig(event.getValue()), event.getKey(), version));
+ return Optional.of(new AlterBroadcastTableEvent(databaseName,
event.getKey(), version));
}
return Optional.of(new DeleteBroadcastTableEvent(databaseName,
event.getKey(), version));
}
-
- private BroadcastRuleConfiguration swapBroadcastTableRuleConfig(final
String yamlContext) {
- YamlBroadcastRuleConfiguration yamlBroadcastRuleConfiguration =
YamlEngine.unmarshal(yamlContext, YamlBroadcastRuleConfiguration.class);
- return new
BroadcastRuleConfiguration(yamlBroadcastRuleConfiguration.getTables());
- }
}
diff --git
a/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/event/config/AddBroadcastTableEvent.java
b/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/event/config/AddBroadcastTableEvent.java
index 5a701ead7a5..2dd79d7bb9d 100644
---
a/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/event/config/AddBroadcastTableEvent.java
+++
b/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/event/config/AddBroadcastTableEvent.java
@@ -19,7 +19,6 @@ package org.apache.shardingsphere.broadcast.event.config;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
-import
org.apache.shardingsphere.broadcast.api.config.BroadcastRuleConfiguration;
import org.apache.shardingsphere.infra.rule.event.GovernanceEvent;
/**
@@ -31,9 +30,7 @@ public final class AddBroadcastTableEvent implements
GovernanceEvent {
private final String databaseName;
- private final BroadcastRuleConfiguration config;
-
private final String activeVersionKey;
- private final String version;
+ private final String activeVersion;
}
diff --git
a/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/event/config/AlterBroadcastTableEvent.java
b/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/event/config/AlterBroadcastTableEvent.java
index a16aa8e8975..3dfec080494 100644
---
a/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/event/config/AlterBroadcastTableEvent.java
+++
b/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/event/config/AlterBroadcastTableEvent.java
@@ -19,7 +19,6 @@ package org.apache.shardingsphere.broadcast.event.config;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
-import
org.apache.shardingsphere.broadcast.api.config.BroadcastRuleConfiguration;
import org.apache.shardingsphere.infra.rule.event.GovernanceEvent;
/**
@@ -31,9 +30,7 @@ public final class AlterBroadcastTableEvent implements
GovernanceEvent {
private final String databaseName;
- private final BroadcastRuleConfiguration config;
-
private final String activeVersionKey;
- private final String version;
+ private final String activeVersion;
}
diff --git
a/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/event/config/DeleteBroadcastTableEvent.java
b/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/event/config/DeleteBroadcastTableEvent.java
index 1e97aca73da..30368d1ff36 100644
---
a/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/event/config/DeleteBroadcastTableEvent.java
+++
b/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/event/config/DeleteBroadcastTableEvent.java
@@ -32,5 +32,5 @@ public final class DeleteBroadcastTableEvent implements
GovernanceEvent {
private final String activeVersionKey;
- private final String version;
+ private final String activeVersion;
}
diff --git
a/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/metadata/converter/BroadcastNodeConverter.java
b/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/metadata/converter/BroadcastNodeConverter.java
index faa188ff436..bfe53b51817 100644
---
a/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/metadata/converter/BroadcastNodeConverter.java
+++
b/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/metadata/converter/BroadcastNodeConverter.java
@@ -38,6 +38,8 @@ public final class BroadcastNodeConverter {
private static final String VERSION_PATH = "/([\\w\\-]+)/versions/(\\d+)";
+ private static final String RULE_ACTIVE_VERSION = "/active_version$";
+
/**
* Get tables path.
*
@@ -60,13 +62,13 @@ public final class BroadcastNodeConverter {
}
/**
- * Is broadcast tables path.
+ * Is broadcast tables active version path.
*
* @param rulePath rule path
* @return true or false
*/
- public static boolean isTablesPath(final String rulePath) {
- Pattern pattern = Pattern.compile(RULES_NODE_PREFIX + ROOT_NODE + "/"
+ TABLES_NODE + VERSION_PATH, Pattern.CASE_INSENSITIVE);
+ public static boolean isTablesActiveVersionPath(final String rulePath) {
+ Pattern pattern = Pattern.compile(RULES_NODE_PREFIX + ROOT_NODE + "/"
+ TABLES_NODE + RULE_ACTIVE_VERSION, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(rulePath);
return matcher.find();
}
diff --git
a/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/subscriber/BroadcastConfigurationSubscriber.java
b/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/subscriber/BroadcastConfigurationSubscriber.java
index caa843450e4..67fc992d6e8 100644
---
a/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/subscriber/BroadcastConfigurationSubscriber.java
+++
b/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/subscriber/BroadcastConfigurationSubscriber.java
@@ -24,9 +24,11 @@ import
org.apache.shardingsphere.broadcast.event.config.AddBroadcastTableEvent;
import
org.apache.shardingsphere.broadcast.event.config.AlterBroadcastTableEvent;
import
org.apache.shardingsphere.broadcast.event.config.DeleteBroadcastTableEvent;
import org.apache.shardingsphere.broadcast.rule.BroadcastRule;
+import
org.apache.shardingsphere.broadcast.yaml.config.YamlBroadcastRuleConfiguration;
import org.apache.shardingsphere.infra.instance.InstanceContext;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.rule.RuleConfigurationSubscribeCoordinator;
+import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
import
org.apache.shardingsphere.mode.event.config.DatabaseRuleConfigurationChangedEvent;
import java.util.Map;
@@ -57,11 +59,12 @@ public final class BroadcastConfigurationSubscriber
implements RuleConfiguration
*/
@Subscribe
public synchronized void renew(final AddBroadcastTableEvent event) {
- if
(!event.getVersion().equals(instanceContext.getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
{
+ if
(!event.getActiveVersion().equals(instanceContext.getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
{
return;
}
ShardingSphereDatabase database =
databases.get(event.getDatabaseName());
- BroadcastRuleConfiguration needToAddedConfig = event.getConfig();
+ BroadcastRuleConfiguration needToAddedConfig =
swapBroadcastTableRuleConfig(
+
instanceContext.getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
event.getActiveVersion()));
Optional<BroadcastRule> rule =
database.getRuleMetaData().findSingleRule(BroadcastRule.class);
BroadcastRuleConfiguration config;
if (rule.isPresent()) {
@@ -81,11 +84,12 @@ public final class BroadcastConfigurationSubscriber
implements RuleConfiguration
*/
@Subscribe
public synchronized void renew(final AlterBroadcastTableEvent event) {
- if
(!event.getVersion().equals(instanceContext.getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
{
+ if
(!event.getActiveVersion().equals(instanceContext.getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
{
return;
}
ShardingSphereDatabase database =
databases.get(event.getDatabaseName());
- BroadcastRuleConfiguration needToAlteredConfig = event.getConfig();
+ BroadcastRuleConfiguration needToAlteredConfig =
swapBroadcastTableRuleConfig(
+
instanceContext.getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
event.getActiveVersion()));
BroadcastRuleConfiguration config =
database.getRuleMetaData().getSingleRule(BroadcastRule.class).getConfiguration();
config.getTables().clear();
config.getTables().addAll(needToAlteredConfig.getTables());
@@ -99,7 +103,7 @@ public final class BroadcastConfigurationSubscriber
implements RuleConfiguration
*/
@Subscribe
public synchronized void renew(final DeleteBroadcastTableEvent event) {
- if
(!event.getVersion().equals(instanceContext.getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
{
+ if
(!event.getActiveVersion().equals(instanceContext.getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
{
return;
}
ShardingSphereDatabase database =
databases.get(event.getDatabaseName());
@@ -107,4 +111,9 @@ public final class BroadcastConfigurationSubscriber
implements RuleConfiguration
config.getTables().clear();
instanceContext.getEventBusContext().post(new
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
}
+
+ private BroadcastRuleConfiguration swapBroadcastTableRuleConfig(final
String yamlContext) {
+ YamlBroadcastRuleConfiguration yamlBroadcastRuleConfiguration =
YamlEngine.unmarshal(yamlContext, YamlBroadcastRuleConfiguration.class);
+ return new
BroadcastRuleConfiguration(yamlBroadcastRuleConfiguration.getTables());
+ }
}
diff --git
a/features/broadcast/core/src/main/test/org/apache/shardingsphere/broadcast/metadata/convert/BroadcastNodeConverterTest.java
b/features/broadcast/core/src/main/test/org/apache/shardingsphere/broadcast/metadata/convert/BroadcastNodeConverterTest.java
index 75ddee86d77..5087e3fcc9b 100644
---
a/features/broadcast/core/src/main/test/org/apache/shardingsphere/broadcast/metadata/convert/BroadcastNodeConverterTest.java
+++
b/features/broadcast/core/src/main/test/org/apache/shardingsphere/broadcast/metadata/convert/BroadcastNodeConverterTest.java
@@ -36,7 +36,7 @@ class BroadcastNodeConverterTest {
void assertCheckIsTargetRuleByRulePath() {
assertTrue(BroadcastNodeConverter.isBroadcastPath("/metadata/foo_db/rules/broadcast/tables"));
assertFalse(BroadcastNodeConverter.isBroadcastPath("/metadata/foo_db/rules/foo/tables/foo_table"));
-
assertTrue(BroadcastNodeConverter.isTablesPath("/metadata/foo_db/rules/broadcast/tables/versions/0"));
-
assertFalse(BroadcastNodeConverter.isTablesPath("/metadata/foo_db/rules/broadcast/tables/MD5"));
+
assertTrue(BroadcastNodeConverter.isTablesActiveVersionPath("/metadata/foo_db/rules/broadcast/tables/active_version"));
+
assertFalse(BroadcastNodeConverter.isTablesActiveVersionPath("/metadata/foo_db/rules/broadcast/tables/versions/0"));
}
}
diff --git
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/event/ReadwriteSplittingRuleConfigurationEventBuilder.java
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/event/ReadwriteSplittingRuleConfigurationEventBuilder.java
index acf75c969e7..14b270f1277 100644
---
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/event/ReadwriteSplittingRuleConfigurationEventBuilder.java
+++
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/event/ReadwriteSplittingRuleConfigurationEventBuilder.java
@@ -22,9 +22,9 @@ import
org.apache.shardingsphere.infra.rule.event.GovernanceEvent;
import org.apache.shardingsphere.mode.event.DataChangedEvent;
import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
import org.apache.shardingsphere.mode.spi.RuleConfigurationEventBuilder;
-import
org.apache.shardingsphere.readwritesplitting.event.config.AddReadwriteSplittingConfigurationEvent;
-import
org.apache.shardingsphere.readwritesplitting.event.config.AlterReadwriteSplittingConfigurationEvent;
-import
org.apache.shardingsphere.readwritesplitting.event.config.DeleteReadwriteSplittingConfigurationEvent;
+import
org.apache.shardingsphere.readwritesplitting.event.datasource.AddReadwriteSplittingDataSourceEvent;
+import
org.apache.shardingsphere.readwritesplitting.event.datasource.AlterReadwriteSplittingDataSourceEvent;
+import
org.apache.shardingsphere.readwritesplitting.event.datasource.DeleteReadwriteSplittingDataSourceEvent;
import
org.apache.shardingsphere.readwritesplitting.event.loadbalance.AlterLoadBalanceEvent;
import
org.apache.shardingsphere.readwritesplitting.event.loadbalance.DeleteLoadBalanceEvent;
import
org.apache.shardingsphere.readwritesplitting.metadata.converter.ReadwriteSplittingNodeConverter;
@@ -54,12 +54,12 @@ public final class
ReadwriteSplittingRuleConfigurationEventBuilder implements Ru
private Optional<GovernanceEvent>
createReadwriteSplittingConfigEvent(final String databaseName, final String
groupName, final DataChangedEvent event) {
if (Type.ADDED == event.getType()) {
- return Optional.of(new
AddReadwriteSplittingConfigurationEvent(databaseName, groupName,
event.getKey(), event.getValue()));
+ return Optional.of(new
AddReadwriteSplittingDataSourceEvent(databaseName, groupName, event.getKey(),
event.getValue()));
}
if (Type.UPDATED == event.getType()) {
- return Optional.of(new
AlterReadwriteSplittingConfigurationEvent(databaseName, groupName,
event.getKey(), event.getValue()));
+ return Optional.of(new
AlterReadwriteSplittingDataSourceEvent(databaseName, groupName, event.getKey(),
event.getValue()));
}
- return Optional.of(new
DeleteReadwriteSplittingConfigurationEvent(databaseName, groupName));
+ return Optional.of(new
DeleteReadwriteSplittingDataSourceEvent(databaseName, groupName));
}
private Optional<GovernanceEvent> createLoadBalanceEvent(final String
databaseName, final String loadBalancerName, final DataChangedEvent event) {
diff --git
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/event/config/AddReadwriteSplittingConfigurationEvent.java
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/event/datasource/AddReadwriteSplittingDataSourceEvent.java
similarity index 88%
rename from
features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/event/config/AddReadwriteSplittingConfigurationEvent.java
rename to
features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/event/datasource/AddReadwriteSplittingDataSourceEvent.java
index bd17e75f93e..3588005a6d6 100644
---
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/event/config/AddReadwriteSplittingConfigurationEvent.java
+++
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/event/datasource/AddReadwriteSplittingDataSourceEvent.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.readwritesplitting.event.config;
+package org.apache.shardingsphere.readwritesplitting.event.datasource;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
@@ -26,7 +26,7 @@ import
org.apache.shardingsphere.infra.rule.event.GovernanceEvent;
*/
@RequiredArgsConstructor
@Getter
-public final class AddReadwriteSplittingConfigurationEvent implements
GovernanceEvent {
+public final class AddReadwriteSplittingDataSourceEvent implements
GovernanceEvent {
private final String databaseName;
diff --git
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/event/config/AlterReadwriteSplittingConfigurationEvent.java
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/event/datasource/AlterReadwriteSplittingDataSourceEvent.java
similarity index 88%
rename from
features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/event/config/AlterReadwriteSplittingConfigurationEvent.java
rename to
features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/event/datasource/AlterReadwriteSplittingDataSourceEvent.java
index 094d7209cc2..5b07f5a9380 100644
---
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/event/config/AlterReadwriteSplittingConfigurationEvent.java
+++
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/event/datasource/AlterReadwriteSplittingDataSourceEvent.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.readwritesplitting.event.config;
+package org.apache.shardingsphere.readwritesplitting.event.datasource;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
@@ -26,7 +26,7 @@ import
org.apache.shardingsphere.infra.rule.event.GovernanceEvent;
*/
@RequiredArgsConstructor
@Getter
-public final class AlterReadwriteSplittingConfigurationEvent implements
GovernanceEvent {
+public final class AlterReadwriteSplittingDataSourceEvent implements
GovernanceEvent {
private final String databaseName;
diff --git
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/event/config/DeleteReadwriteSplittingConfigurationEvent.java
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/event/datasource/DeleteReadwriteSplittingDataSourceEvent.java
similarity index 87%
rename from
features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/event/config/DeleteReadwriteSplittingConfigurationEvent.java
rename to
features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/event/datasource/DeleteReadwriteSplittingDataSourceEvent.java
index 02ef1fe1e19..8a248970304 100644
---
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/event/config/DeleteReadwriteSplittingConfigurationEvent.java
+++
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/event/datasource/DeleteReadwriteSplittingDataSourceEvent.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.readwritesplitting.event.config;
+package org.apache.shardingsphere.readwritesplitting.event.datasource;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
@@ -26,7 +26,7 @@ import
org.apache.shardingsphere.infra.rule.event.GovernanceEvent;
*/
@RequiredArgsConstructor
@Getter
-public final class DeleteReadwriteSplittingConfigurationEvent implements
GovernanceEvent {
+public final class DeleteReadwriteSplittingDataSourceEvent implements
GovernanceEvent {
private final String databaseName;
diff --git
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/subscriber/ReadwriteSplittingConfigurationSubscriber.java
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/subscriber/ReadwriteSplittingDataSourceSubscriber.java
similarity index 92%
rename from
features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/subscriber/ReadwriteSplittingConfigurationSubscriber.java
rename to
features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/subscriber/ReadwriteSplittingDataSourceSubscriber.java
index d00c6941cf3..ca36fee008e 100644
---
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/subscriber/ReadwriteSplittingConfigurationSubscriber.java
+++
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/subscriber/ReadwriteSplittingDataSourceSubscriber.java
@@ -28,9 +28,9 @@ import
org.apache.shardingsphere.mode.event.config.DatabaseRuleConfigurationChan
import
org.apache.shardingsphere.readwritesplitting.api.ReadwriteSplittingRuleConfiguration;
import
org.apache.shardingsphere.readwritesplitting.api.rule.ReadwriteSplittingDataSourceRuleConfiguration;
import
org.apache.shardingsphere.readwritesplitting.api.transaction.TransactionalReadQueryStrategy;
-import
org.apache.shardingsphere.readwritesplitting.event.config.AddReadwriteSplittingConfigurationEvent;
-import
org.apache.shardingsphere.readwritesplitting.event.config.AlterReadwriteSplittingConfigurationEvent;
-import
org.apache.shardingsphere.readwritesplitting.event.config.DeleteReadwriteSplittingConfigurationEvent;
+import
org.apache.shardingsphere.readwritesplitting.event.datasource.AddReadwriteSplittingDataSourceEvent;
+import
org.apache.shardingsphere.readwritesplitting.event.datasource.AlterReadwriteSplittingDataSourceEvent;
+import
org.apache.shardingsphere.readwritesplitting.event.datasource.DeleteReadwriteSplittingDataSourceEvent;
import
org.apache.shardingsphere.readwritesplitting.rule.ReadwriteSplittingRule;
import
org.apache.shardingsphere.readwritesplitting.yaml.config.rule.YamlReadwriteSplittingDataSourceRuleConfiguration;
@@ -43,7 +43,7 @@ import java.util.Optional;
*/
@SuppressWarnings("UnstableApiUsage")
@RequiredArgsConstructor
-public final class ReadwriteSplittingConfigurationSubscriber implements
RuleConfigurationSubscribeCoordinator {
+public final class ReadwriteSplittingDataSourceSubscriber implements
RuleConfigurationSubscribeCoordinator {
private Map<String, ShardingSphereDatabase> databases;
@@ -62,7 +62,7 @@ public final class ReadwriteSplittingConfigurationSubscriber
implements RuleConf
* @param event add readwrite-splitting configuration event
*/
@Subscribe
- public synchronized void renew(final
AddReadwriteSplittingConfigurationEvent event) {
+ public synchronized void renew(final AddReadwriteSplittingDataSourceEvent
event) {
if
(!event.getActiveVersion().equals(instanceContext.getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
{
return;
}
@@ -87,7 +87,7 @@ public final class ReadwriteSplittingConfigurationSubscriber
implements RuleConf
* @param event alter readwrite-splitting configuration event
*/
@Subscribe
- public synchronized void renew(final
AlterReadwriteSplittingConfigurationEvent event) {
+ public synchronized void renew(final
AlterReadwriteSplittingDataSourceEvent event) {
if
(!event.getActiveVersion().equals(instanceContext.getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
{
return;
}
@@ -106,7 +106,7 @@ public final class
ReadwriteSplittingConfigurationSubscriber implements RuleConf
* @param event delete readwrite-splitting configuration event
*/
@Subscribe
- public synchronized void renew(final
DeleteReadwriteSplittingConfigurationEvent event) {
+ public synchronized void renew(final
DeleteReadwriteSplittingDataSourceEvent event) {
ShardingSphereDatabase database =
databases.get(event.getDatabaseName());
ReadwriteSplittingRuleConfiguration config =
(ReadwriteSplittingRuleConfiguration)
database.getRuleMetaData().getSingleRule(ReadwriteSplittingRule.class).getConfiguration();
config.getDataSources().removeIf(each ->
each.getName().equals(event.getGroupName()));
diff --git
a/features/readwrite-splitting/core/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.rule.RuleConfigurationSubscribeCoordinator
b/features/readwrite-splitting/core/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.rule.RuleConfigurationSubscribeCoordinator
index 9e8adc24813..bd22a8bd3eb 100644
---
a/features/readwrite-splitting/core/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.rule.RuleConfigurationSubscribeCoordinator
+++
b/features/readwrite-splitting/core/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.rule.RuleConfigurationSubscribeCoordinator
@@ -15,5 +15,5 @@
# limitations under the License.
#
-org.apache.shardingsphere.readwritesplitting.subscriber.ReadwriteSplittingConfigurationSubscriber
+org.apache.shardingsphere.readwritesplitting.subscriber.ReadwriteSplittingDataSourceSubscriber
org.apache.shardingsphere.readwritesplitting.subscriber.ReadwriteSplittingLoadBalanceSubscriber
diff --git
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/node/NewDatabaseMetaDataNode.java
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/node/NewDatabaseMetaDataNode.java
index 167f4033dab..61f9a456d83 100644
---
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/node/NewDatabaseMetaDataNode.java
+++
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/node/NewDatabaseMetaDataNode.java
@@ -48,7 +48,7 @@ public final class NewDatabaseMetaDataNode {
private static final String VERSIONS = "versions";
/**
- * Get data Sources node.
+ * Get data sources node.
*
* @param databaseName database name
* @return data sources node
@@ -58,7 +58,7 @@ public final class NewDatabaseMetaDataNode {
}
/**
- * Get data Source node.
+ * Get data source node.
*
* @param databaseName database name
* @param dataSourceName data source name
@@ -69,7 +69,7 @@ public final class NewDatabaseMetaDataNode {
}
/**
- * Get data Source node with version.
+ * Get data source node with version.
*
* @param databaseName database name
* @param dataSourceName data source name
@@ -81,7 +81,7 @@ public final class NewDatabaseMetaDataNode {
}
/**
- * Get data Source active version node.
+ * Get data source active version node.
*
* @param databaseName database name
* @param dataSourceName data source name
@@ -403,7 +403,7 @@ public final class NewDatabaseMetaDataNode {
* @return active version node
*/
public static String getVersionNodeByActiveVersionPath(final String
rulePath, final String activeVersion) {
- return rulePath.substring(0, rulePath.indexOf(ACTIVE_VERSION)) +
VERSIONS + "/" + activeVersion;
+ return rulePath.replace(ACTIVE_VERSION, VERSIONS) + "/" +
activeVersion;
}
private static String getMetaDataNodeNode() {