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 811c6f170ce Refactor features event & subscriber (#26528)
811c6f170ce is described below
commit 811c6f170cef9026cc1dfb66854e0283d4a5229c
Author: ChenJiaHao <[email protected]>
AuthorDate: Sun Jun 25 15:54:10 2023 +0800
Refactor features event & subscriber (#26528)
---
.../BroadcastRuleConfigurationEventBuilder.java | 13 +++++-------
.../event/config/DeleteBroadcastTableEvent.java | 4 ----
.../BroadcastConfigurationSubscriber.java | 3 ---
.../event/ShadowRuleConfigurationEventBuilder.java | 4 ++--
.../ShardingRuleConfigurationEventBuilder.java | 24 +++++++++++-----------
.../metadata/converter/ShardingNodeConverter.java | 12 +++++------
.../converter/ShardingNodeConverterTest.java | 6 +++---
7 files changed, 28 insertions(+), 38 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 97c38a666f8..eff7d33d6ee 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
@@ -40,21 +40,18 @@ public final class BroadcastRuleConfigurationEventBuilder
implements RuleConfigu
return Optional.empty();
}
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);
- }
+ return createBroadcastConfigEvent(databaseName, event);
}
return Optional.empty();
}
- private Optional<GovernanceEvent> createBroadcastConfigEvent(final String
databaseName, final String version, final DataChangedEvent event) {
+ private Optional<GovernanceEvent> createBroadcastConfigEvent(final String
databaseName, final DataChangedEvent event) {
if (Type.ADDED == event.getType()) {
- return Optional.of(new AddBroadcastTableEvent(databaseName,
event.getKey(), version));
+ return Optional.of(new AddBroadcastTableEvent(databaseName,
event.getKey(), event.getValue()));
}
if (Type.UPDATED == event.getType()) {
- return Optional.of(new AlterBroadcastTableEvent(databaseName,
event.getKey(), version));
+ return Optional.of(new AlterBroadcastTableEvent(databaseName,
event.getKey(), event.getValue()));
}
- return Optional.of(new DeleteBroadcastTableEvent(databaseName,
event.getKey(), version));
+ return Optional.of(new DeleteBroadcastTableEvent(databaseName));
}
}
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 30368d1ff36..bd624005d20 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
@@ -29,8 +29,4 @@ import
org.apache.shardingsphere.infra.rule.event.GovernanceEvent;
public final class DeleteBroadcastTableEvent implements GovernanceEvent {
private final String databaseName;
-
- private final String activeVersionKey;
-
- private final String activeVersion;
}
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 67fc992d6e8..438a257081c 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
@@ -103,9 +103,6 @@ public final class BroadcastConfigurationSubscriber
implements RuleConfiguration
*/
@Subscribe
public synchronized void renew(final DeleteBroadcastTableEvent event) {
- if
(!event.getActiveVersion().equals(instanceContext.getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
{
- return;
- }
ShardingSphereDatabase database =
databases.get(event.getDatabaseName());
BroadcastRuleConfiguration config =
database.getRuleMetaData().getSingleRule(BroadcastRule.class).getConfiguration();
config.getTables().clear();
diff --git
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/event/ShadowRuleConfigurationEventBuilder.java
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/event/ShadowRuleConfigurationEventBuilder.java
index 03ccd1d7d80..c243be18c75 100644
---
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/event/ShadowRuleConfigurationEventBuilder.java
+++
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/event/ShadowRuleConfigurationEventBuilder.java
@@ -48,11 +48,11 @@ public final class ShadowRuleConfigurationEventBuilder
implements RuleConfigurat
if (dataSourceName.isPresent() &&
!Strings.isNullOrEmpty(event.getValue())) {
return createShadowConfigEvent(databaseName, dataSourceName.get(),
event);
}
- Optional<String> tableName =
ShadowNodeConverter.getTableName(event.getKey());
+ Optional<String> tableName =
ShadowNodeConverter.getTableNameByActiveVersionPath(event.getKey());
if (tableName.isPresent() && !Strings.isNullOrEmpty(event.getValue()))
{
return createShadowTableConfigEvent(databaseName, tableName.get(),
event);
}
- Optional<String> algorithmName =
ShadowNodeConverter.getAlgorithmName(event.getKey());
+ Optional<String> algorithmName =
ShadowNodeConverter.getAlgorithmNameByActiveVersionPath(event.getKey());
if (algorithmName.isPresent() &&
!Strings.isNullOrEmpty(event.getValue())) {
return createShadowAlgorithmEvent(databaseName,
algorithmName.get(), event);
}
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/event/ShardingRuleConfigurationEventBuilder.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/event/ShardingRuleConfigurationEventBuilder.java
index a93f1f66dbb..a9c7444bf35 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/event/ShardingRuleConfigurationEventBuilder.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/event/ShardingRuleConfigurationEventBuilder.java
@@ -66,46 +66,46 @@ public final class ShardingRuleConfigurationEventBuilder
implements RuleConfigur
if (!ShardingNodeConverter.isShardingPath(event.getKey()) ||
Strings.isNullOrEmpty(event.getValue())) {
return Optional.empty();
}
- Optional<String> tableName =
ShardingNodeConverter.getTableName(event.getKey());
+ Optional<String> tableName =
ShardingNodeConverter.getTableNameByActiveVersionPath(event.getKey());
if (tableName.isPresent() && !Strings.isNullOrEmpty(event.getValue()))
{
return createShardingTableConfigEvent(databaseName,
tableName.get(), event);
}
- Optional<String> autoTableName =
ShardingNodeConverter.getAutoTableName(event.getKey());
+ Optional<String> autoTableName =
ShardingNodeConverter.getAutoTableNameByActiveVersionPath(event.getKey());
if (autoTableName.isPresent() &&
!Strings.isNullOrEmpty(event.getValue())) {
return createShardingAutoTableConfigEvent(databaseName,
autoTableName.get(), event);
}
- Optional<String> bindingTableName =
ShardingNodeConverter.getBindingTableName(event.getKey());
+ Optional<String> bindingTableName =
ShardingNodeConverter.getBindingTableNameByActiveVersionPath(event.getKey());
if (bindingTableName.isPresent() &&
!Strings.isNullOrEmpty(event.getValue())) {
return createShardingTableReferenceConfigEvent(databaseName,
bindingTableName.get(), event);
}
- if
(ShardingNodeConverter.isDefaultDatabaseStrategyPath(event.getKey()) &&
!Strings.isNullOrEmpty(event.getValue())) {
+ if
(ShardingNodeConverter.isDefaultDatabaseStrategyWithActiveVersionPath(event.getKey())
&& !Strings.isNullOrEmpty(event.getValue())) {
return createDefaultDatabaseStrategyConfigEvent(databaseName,
event);
}
- if (ShardingNodeConverter.isDefaultTableStrategyPath(event.getKey())
&& !Strings.isNullOrEmpty(event.getValue())) {
+ if
(ShardingNodeConverter.isDefaultTableStrategyWithActiveVersionPath(event.getKey())
&& !Strings.isNullOrEmpty(event.getValue())) {
return createDefaultTableStrategyConfigEvent(databaseName, event);
}
- if
(ShardingNodeConverter.isDefaultKeyGenerateStrategyPath(event.getKey()) &&
!Strings.isNullOrEmpty(event.getValue())) {
+ if
(ShardingNodeConverter.isDefaultKeyGenerateStrategyWithActiveVersionPath(event.getKey())
&& !Strings.isNullOrEmpty(event.getValue())) {
return createDefaultKeyGenerateStrategyConfigEvent(databaseName,
event);
}
- if (ShardingNodeConverter.isDefaultAuditStrategyPath(event.getKey())
&& !Strings.isNullOrEmpty(event.getValue())) {
+ if
(ShardingNodeConverter.isDefaultAuditStrategyWithActiveVersionPath(event.getKey())
&& !Strings.isNullOrEmpty(event.getValue())) {
return
createDefaultShardingAuditorStrategyConfigEvent(databaseName, event);
}
- if (ShardingNodeConverter.isDefaultShardingColumnPath(event.getKey())
&& !Strings.isNullOrEmpty(event.getValue())) {
+ if
(ShardingNodeConverter.isDefaultShardingColumnWithActiveVersionPath(event.getKey())
&& !Strings.isNullOrEmpty(event.getValue())) {
return createDefaultShardingColumnEvent(databaseName, event);
}
- Optional<String> algorithmName =
ShardingNodeConverter.getShardingAlgorithmName(event.getKey());
+ Optional<String> algorithmName =
ShardingNodeConverter.getShardingAlgorithmNameByActiveVersionPath(event.getKey());
if (algorithmName.isPresent() &&
!Strings.isNullOrEmpty(event.getValue())) {
return createShardingAlgorithmEvent(databaseName,
algorithmName.get(), event);
}
- Optional<String> keyGeneratorName =
ShardingNodeConverter.getKeyGeneratorName(event.getKey());
+ Optional<String> keyGeneratorName =
ShardingNodeConverter.getKeyGeneratorNameByActiveVersionPath(event.getKey());
if (keyGeneratorName.isPresent() &&
!Strings.isNullOrEmpty(event.getValue())) {
return createKeyGeneratorEvent(databaseName,
keyGeneratorName.get(), event);
}
- Optional<String> auditorName =
ShardingNodeConverter.getAuditorName(event.getKey());
+ Optional<String> auditorName =
ShardingNodeConverter.getAuditorNameByActiveVersionPath(event.getKey());
if (auditorName.isPresent() &&
!Strings.isNullOrEmpty(event.getValue())) {
return createAuditorEvent(databaseName, auditorName.get(), event);
}
- if (ShardingNodeConverter.isShardingCachePath(event.getKey()) &&
!Strings.isNullOrEmpty(event.getValue())) {
+ if
(ShardingNodeConverter.isShardingCacheWithActiveVersionPath(event.getKey()) &&
!Strings.isNullOrEmpty(event.getValue())) {
return createShardingCacheEvent(databaseName, event);
}
return Optional.empty();
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/converter/ShardingNodeConverter.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/converter/ShardingNodeConverter.java
index acf45795c1f..5e41668ebb9 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/converter/ShardingNodeConverter.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/converter/ShardingNodeConverter.java
@@ -505,36 +505,36 @@ public final class ShardingNodeConverter {
}
/**
- * Get sharding algorithm by active version path.
+ * Get sharding algorithm name by active version path.
*
* @param activeVersionPath active version path
* @return sharding algorithm version
*/
- public static Optional<String>
getShardingAlgorithmByActiveVersionPath(final String activeVersionPath) {
+ public static Optional<String>
getShardingAlgorithmNameByActiveVersionPath(final String activeVersionPath) {
Pattern pattern = Pattern.compile(RULES_NODE_PREFIX + ROOT_NODE + "/"
+ SHARDING_ALGORITHMS_NODE + RULE_ACTIVE_VERSION, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(activeVersionPath);
return matcher.find() ? Optional.of(matcher.group(3)) :
Optional.empty();
}
/**
- * Get key generator by active version path.
+ * Get key generator name by active version path.
*
* @param activeVersionPath active version path
* @return key generator version
*/
- public static Optional<String> getKeyGeneratorByActiveVersionPath(final
String activeVersionPath) {
+ public static Optional<String>
getKeyGeneratorNameByActiveVersionPath(final String activeVersionPath) {
Pattern pattern = Pattern.compile(RULES_NODE_PREFIX + ROOT_NODE + "/"
+ KEY_GENERATORS_NODE + RULE_ACTIVE_VERSION, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(activeVersionPath);
return matcher.find() ? Optional.of(matcher.group(3)) :
Optional.empty();
}
/**
- * Get auditor by active version path.
+ * Get auditor name by active version path.
*
* @param activeVersionPath active version path
* @return auditor version
*/
- public static Optional<String> getAuditorByActiveVersionPath(final String
activeVersionPath) {
+ public static Optional<String> getAuditorNameByActiveVersionPath(final
String activeVersionPath) {
Pattern pattern = Pattern.compile(RULES_NODE_PREFIX + ROOT_NODE + "/"
+ AUDITORS_NODE + RULE_ACTIVE_VERSION, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(activeVersionPath);
return matcher.find() ? Optional.of(matcher.group(3)) :
Optional.empty();
diff --git
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/metadata/converter/ShardingNodeConverterTest.java
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/metadata/converter/ShardingNodeConverterTest.java
index 51af7b819b0..b51a32e650e 100644
---
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/metadata/converter/ShardingNodeConverterTest.java
+++
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/metadata/converter/ShardingNodeConverterTest.java
@@ -208,21 +208,21 @@ class ShardingNodeConverterTest {
@Test
void assertGetShardingAlgorithmByActiveVersionPath() {
- Optional<String> actual =
ShardingNodeConverter.getShardingAlgorithmByActiveVersionPath("/metadata/foo_db/rules/sharding/algorithms/foo_table_algorithm/active_version");
+ Optional<String> actual =
ShardingNodeConverter.getShardingAlgorithmNameByActiveVersionPath("/metadata/foo_db/rules/sharding/algorithms/foo_table_algorithm/active_version");
assertTrue(actual.isPresent());
assertThat(actual.get(), is("foo_table_algorithm"));
}
@Test
void assertGetKeyGeneratorByActiveVersionPath() {
- Optional<String> actual =
ShardingNodeConverter.getKeyGeneratorByActiveVersionPath("/metadata/foo_db/rules/sharding/key_generators/foo_table_key_generator/active_version");
+ Optional<String> actual =
ShardingNodeConverter.getKeyGeneratorNameByActiveVersionPath("/metadata/foo_db/rules/sharding/key_generators/foo_table_key_generator/active_version");
assertTrue(actual.isPresent());
assertThat(actual.get(), is("foo_table_key_generator"));
}
@Test
void assertGetAuditorByActiveVersionPath() {
- Optional<String> actual =
ShardingNodeConverter.getAuditorByActiveVersionPath("/metadata/foo_db/rules/sharding/auditors/foo_table_auditor/active_version");
+ Optional<String> actual =
ShardingNodeConverter.getAuditorNameByActiveVersionPath("/metadata/foo_db/rules/sharding/auditors/foo_table_auditor/active_version");
assertTrue(actual.isPresent());
assertThat(actual.get(), is("foo_table_auditor"));
}