You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2023/06/20 02:11:02 UTC

[shardingsphere] branch master updated: Add version to global rule event (#26438)

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 ccb05ee193b Add version to global rule event (#26438)
ccb05ee193b is described below

commit ccb05ee193b78e00eeabb56cf8a77d47af2925eb
Author: ZhangCheng <ch...@apache.org>
AuthorDate: Tue Jun 20 10:10:56 2023 +0800

    Add version to global rule event (#26438)
---
 .../rule/global/event/AlterGlobalRuleConfigurationEvent.java |  4 ++++
 .../global/event/DeleteGlobalRuleConfigurationEvent.java     |  4 ++++
 .../event/AuthorityRuleConfigurationEventBuilder.java        | 12 ++++++++----
 .../core/event/GlobalClockRuleConfigurationEventBuilder.java | 12 ++++++++----
 .../logging/event/LoggingRuleConfigurationEventBuilder.java  | 12 ++++++++----
 .../single/event/SingleRuleConfigurationEventBuilder.java    | 12 ++++++++----
 .../event/SQLFederationRuleConfigurationEventBuilder.java    | 12 ++++++++----
 .../parser/event/SQLParserRuleConfigurationEventBuilder.java | 12 ++++++++----
 .../event/SQLTranslatorConfigurationEventBuilder.java        | 12 ++++++++----
 .../traffic/event/TrafficRuleConfigurationEventBuilder.java  | 12 ++++++++----
 .../event/TransactionRuleConfigurationEventBuilder.java      | 12 ++++++++----
 11 files changed, 80 insertions(+), 36 deletions(-)

diff --git a/infra/common/src/main/java/org/apache/shardingsphere/infra/config/rule/global/event/AlterGlobalRuleConfigurationEvent.java b/infra/common/src/main/java/org/apache/shardingsphere/infra/config/rule/global/event/AlterGlobalRuleConfigurationEvent.java
index 71d25214634..62c27a8780f 100644
--- a/infra/common/src/main/java/org/apache/shardingsphere/infra/config/rule/global/event/AlterGlobalRuleConfigurationEvent.java
+++ b/infra/common/src/main/java/org/apache/shardingsphere/infra/config/rule/global/event/AlterGlobalRuleConfigurationEvent.java
@@ -32,4 +32,8 @@ public final class AlterGlobalRuleConfigurationEvent implements GovernanceEvent
     private final RuleConfiguration config;
     
     private final String ruleSimpleName;
+    
+    private final String versionKey;
+    
+    private final int version;
 }
diff --git a/infra/common/src/main/java/org/apache/shardingsphere/infra/config/rule/global/event/DeleteGlobalRuleConfigurationEvent.java b/infra/common/src/main/java/org/apache/shardingsphere/infra/config/rule/global/event/DeleteGlobalRuleConfigurationEvent.java
index 0b269d5c9a4..e3512b0dfbe 100644
--- a/infra/common/src/main/java/org/apache/shardingsphere/infra/config/rule/global/event/DeleteGlobalRuleConfigurationEvent.java
+++ b/infra/common/src/main/java/org/apache/shardingsphere/infra/config/rule/global/event/DeleteGlobalRuleConfigurationEvent.java
@@ -29,4 +29,8 @@ import org.apache.shardingsphere.infra.rule.event.GovernanceEvent;
 public final class DeleteGlobalRuleConfigurationEvent implements GovernanceEvent {
     
     private final String ruleSimpleName;
+    
+    private final String versionKey;
+    
+    private final int version;
 }
diff --git a/kernel/authority/core/src/main/java/org/apache/shardingsphere/authority/event/AuthorityRuleConfigurationEventBuilder.java b/kernel/authority/core/src/main/java/org/apache/shardingsphere/authority/event/AuthorityRuleConfigurationEventBuilder.java
index 0f4077e829a..19156f96667 100644
--- a/kernel/authority/core/src/main/java/org/apache/shardingsphere/authority/event/AuthorityRuleConfigurationEventBuilder.java
+++ b/kernel/authority/core/src/main/java/org/apache/shardingsphere/authority/event/AuthorityRuleConfigurationEventBuilder.java
@@ -47,14 +47,18 @@ public final class AuthorityRuleConfigurationEventBuilder implements GlobalRuleC
         if (!GlobalRuleNodeConverter.isExpectedRuleName(AUTHORITY, event.getKey()) || Strings.isNullOrEmpty(event.getValue())) {
             return Optional.empty();
         }
-        return buildEvent(event);
+        Optional<String> version = GlobalRuleNodeConverter.getVersion(AUTHORITY, event.getKey());
+        if (version.isPresent() && !Strings.isNullOrEmpty(event.getValue())) {
+            return buildEvent(event, Integer.parseInt(version.get()));
+        }
+        return Optional.empty();
     }
     
-    private Optional<GovernanceEvent> buildEvent(final DataChangedEvent event) {
+    private Optional<GovernanceEvent> buildEvent(final DataChangedEvent event, final int version) {
         if (Type.ADDED == event.getType() || Type.UPDATED == event.getType()) {
-            return Optional.of(new AlterGlobalRuleConfigurationEvent(swapToConfig(event.getValue()), RULE_TYPE));
+            return Optional.of(new AlterGlobalRuleConfigurationEvent(swapToConfig(event.getValue()), RULE_TYPE, event.getKey(), version));
         }
-        return Optional.of(new DeleteGlobalRuleConfigurationEvent(RULE_TYPE));
+        return Optional.of(new DeleteGlobalRuleConfigurationEvent(RULE_TYPE, event.getKey(), version));
     }
     
     private AuthorityRuleConfiguration swapToConfig(final String yamlContext) {
diff --git a/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/core/event/GlobalClockRuleConfigurationEventBuilder.java b/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/core/event/GlobalClockRuleConfigurationEventBuilder.java
index d293668117a..09ad07a890c 100644
--- a/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/core/event/GlobalClockRuleConfigurationEventBuilder.java
+++ b/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/core/event/GlobalClockRuleConfigurationEventBuilder.java
@@ -47,14 +47,18 @@ public final class GlobalClockRuleConfigurationEventBuilder implements GlobalRul
         if (!GlobalRuleNodeConverter.isExpectedRuleName(GLOBAL_CLOCK, event.getKey()) || Strings.isNullOrEmpty(event.getValue())) {
             return Optional.empty();
         }
-        return buildEvent(event);
+        Optional<String> version = GlobalRuleNodeConverter.getVersion(GLOBAL_CLOCK, event.getKey());
+        if (version.isPresent() && !Strings.isNullOrEmpty(event.getValue())) {
+            return buildEvent(event, Integer.parseInt(version.get()));
+        }
+        return Optional.empty();
     }
     
-    private Optional<GovernanceEvent> buildEvent(final DataChangedEvent event) {
+    private Optional<GovernanceEvent> buildEvent(final DataChangedEvent event, final int version) {
         if (Type.ADDED == event.getType() || Type.UPDATED == event.getType()) {
-            return Optional.of(new AlterGlobalRuleConfigurationEvent(swapToConfig(event.getValue()), RULE_TYPE));
+            return Optional.of(new AlterGlobalRuleConfigurationEvent(swapToConfig(event.getValue()), RULE_TYPE, event.getKey(), version));
         }
-        return Optional.of(new DeleteGlobalRuleConfigurationEvent(RULE_TYPE));
+        return Optional.of(new DeleteGlobalRuleConfigurationEvent(RULE_TYPE, event.getKey(), version));
     }
     
     private GlobalClockRuleConfiguration swapToConfig(final String yamlContext) {
diff --git a/kernel/logging/core/src/main/java/org/apache/shardingsphere/logging/event/LoggingRuleConfigurationEventBuilder.java b/kernel/logging/core/src/main/java/org/apache/shardingsphere/logging/event/LoggingRuleConfigurationEventBuilder.java
index f57fad241d3..2ba642d2a9e 100644
--- a/kernel/logging/core/src/main/java/org/apache/shardingsphere/logging/event/LoggingRuleConfigurationEventBuilder.java
+++ b/kernel/logging/core/src/main/java/org/apache/shardingsphere/logging/event/LoggingRuleConfigurationEventBuilder.java
@@ -47,14 +47,18 @@ public final class LoggingRuleConfigurationEventBuilder implements GlobalRuleCon
         if (!GlobalRuleNodeConverter.isExpectedRuleName(LOGGING, event.getKey()) || Strings.isNullOrEmpty(event.getValue())) {
             return Optional.empty();
         }
-        return buildEvent(event);
+        Optional<String> version = GlobalRuleNodeConverter.getVersion(LOGGING, event.getKey());
+        if (version.isPresent() && !Strings.isNullOrEmpty(event.getValue())) {
+            return buildEvent(event, Integer.parseInt(version.get()));
+        }
+        return Optional.empty();
     }
     
-    private Optional<GovernanceEvent> buildEvent(final DataChangedEvent event) {
+    private Optional<GovernanceEvent> buildEvent(final DataChangedEvent event, final int version) {
         if (Type.ADDED == event.getType() || Type.UPDATED == event.getType()) {
-            return Optional.of(new AlterGlobalRuleConfigurationEvent(swapToConfig(event.getValue()), RULE_TYPE));
+            return Optional.of(new AlterGlobalRuleConfigurationEvent(swapToConfig(event.getValue()), RULE_TYPE, event.getKey(), version));
         }
-        return Optional.of(new DeleteGlobalRuleConfigurationEvent(RULE_TYPE));
+        return Optional.of(new DeleteGlobalRuleConfigurationEvent(RULE_TYPE, event.getKey(), version));
     }
     
     private LoggingRuleConfiguration swapToConfig(final String yamlContext) {
diff --git a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/event/SingleRuleConfigurationEventBuilder.java b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/event/SingleRuleConfigurationEventBuilder.java
index 5df029863a9..26113ded3cf 100644
--- a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/event/SingleRuleConfigurationEventBuilder.java
+++ b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/event/SingleRuleConfigurationEventBuilder.java
@@ -47,14 +47,18 @@ public final class SingleRuleConfigurationEventBuilder implements RuleConfigurat
         if (!GlobalRuleNodeConverter.isExpectedRuleName(SINGLE, event.getKey()) || Strings.isNullOrEmpty(event.getValue())) {
             return Optional.empty();
         }
-        return buildEvent(databaseName, event);
+        Optional<String> version = GlobalRuleNodeConverter.getVersion(SINGLE, event.getKey());
+        if (version.isPresent() && !Strings.isNullOrEmpty(event.getValue())) {
+            return buildEvent(event, Integer.parseInt(version.get()));
+        }
+        return Optional.empty();
     }
     
-    private Optional<GovernanceEvent> buildEvent(final String databaseName, final DataChangedEvent event) {
+    private Optional<GovernanceEvent> buildEvent(final DataChangedEvent event, final int version) {
         if (Type.ADDED == event.getType() || Type.UPDATED == event.getType()) {
-            return Optional.of(new AlterGlobalRuleConfigurationEvent(swapToConfig(event.getValue()), RULE_TYPE));
+            return Optional.of(new AlterGlobalRuleConfigurationEvent(swapToConfig(event.getValue()), RULE_TYPE, event.getKey(), version));
         }
-        return Optional.of(new DeleteGlobalRuleConfigurationEvent(RULE_TYPE));
+        return Optional.of(new DeleteGlobalRuleConfigurationEvent(RULE_TYPE, event.getKey(), version));
     }
     
     private SingleRuleConfiguration swapToConfig(final String yamlContext) {
diff --git a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/event/SQLFederationRuleConfigurationEventBuilder.java b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/event/SQLFederationRuleConfigurationEventBuilder.java
index dd9522b4c35..c1d833fc9a3 100644
--- a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/event/SQLFederationRuleConfigurationEventBuilder.java
+++ b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/event/SQLFederationRuleConfigurationEventBuilder.java
@@ -47,14 +47,18 @@ public final class SQLFederationRuleConfigurationEventBuilder implements GlobalR
         if (!GlobalRuleNodeConverter.isExpectedRuleName(SQL_FEDERATION, event.getKey()) || Strings.isNullOrEmpty(event.getValue())) {
             return Optional.empty();
         }
-        return buildEvent(event);
+        Optional<String> version = GlobalRuleNodeConverter.getVersion(SQL_FEDERATION, event.getKey());
+        if (version.isPresent() && !Strings.isNullOrEmpty(event.getValue())) {
+            return buildEvent(event, Integer.parseInt(version.get()));
+        }
+        return Optional.empty();
     }
     
-    private Optional<GovernanceEvent> buildEvent(final DataChangedEvent event) {
+    private Optional<GovernanceEvent> buildEvent(final DataChangedEvent event, final int version) {
         if (Type.ADDED == event.getType() || Type.UPDATED == event.getType()) {
-            return Optional.of(new AlterGlobalRuleConfigurationEvent(swapToConfig(event.getValue()), RULE_TYPE));
+            return Optional.of(new AlterGlobalRuleConfigurationEvent(swapToConfig(event.getValue()), RULE_TYPE, event.getKey(), version));
         }
-        return Optional.of(new DeleteGlobalRuleConfigurationEvent(RULE_TYPE));
+        return Optional.of(new DeleteGlobalRuleConfigurationEvent(RULE_TYPE, event.getKey(), version));
     }
     
     private SQLFederationRuleConfiguration swapToConfig(final String yamlContext) {
diff --git a/kernel/sql-parser/core/src/main/java/org/apache/shardingsphere/parser/event/SQLParserRuleConfigurationEventBuilder.java b/kernel/sql-parser/core/src/main/java/org/apache/shardingsphere/parser/event/SQLParserRuleConfigurationEventBuilder.java
index 6ef8f5d332f..299f137acef 100644
--- a/kernel/sql-parser/core/src/main/java/org/apache/shardingsphere/parser/event/SQLParserRuleConfigurationEventBuilder.java
+++ b/kernel/sql-parser/core/src/main/java/org/apache/shardingsphere/parser/event/SQLParserRuleConfigurationEventBuilder.java
@@ -47,14 +47,18 @@ public final class SQLParserRuleConfigurationEventBuilder implements GlobalRuleC
         if (!GlobalRuleNodeConverter.isExpectedRuleName(SQL_PARSER, event.getKey()) || Strings.isNullOrEmpty(event.getValue())) {
             return Optional.empty();
         }
-        return buildEvent(event);
+        Optional<String> version = GlobalRuleNodeConverter.getVersion(SQL_PARSER, event.getKey());
+        if (version.isPresent() && !Strings.isNullOrEmpty(event.getValue())) {
+            return buildEvent(event, Integer.parseInt(version.get()));
+        }
+        return Optional.empty();
     }
     
-    private Optional<GovernanceEvent> buildEvent(final DataChangedEvent event) {
+    private Optional<GovernanceEvent> buildEvent(final DataChangedEvent event, final int version) {
         if (Type.ADDED == event.getType() || Type.UPDATED == event.getType()) {
-            return Optional.of(new AlterGlobalRuleConfigurationEvent(swapToConfig(event.getValue()), RULE_TYPE));
+            return Optional.of(new AlterGlobalRuleConfigurationEvent(swapToConfig(event.getValue()), RULE_TYPE, event.getKey(), version));
         }
-        return Optional.of(new DeleteGlobalRuleConfigurationEvent(RULE_TYPE));
+        return Optional.of(new DeleteGlobalRuleConfigurationEvent(RULE_TYPE, event.getKey(), version));
     }
     
     private SQLParserRuleConfiguration swapToConfig(final String yamlContext) {
diff --git a/kernel/sql-translator/core/src/main/java/org/apache/shardingsphere/sqltranslator/event/SQLTranslatorConfigurationEventBuilder.java b/kernel/sql-translator/core/src/main/java/org/apache/shardingsphere/sqltranslator/event/SQLTranslatorConfigurationEventBuilder.java
index b04ea347e39..3e58ed9b7e0 100644
--- a/kernel/sql-translator/core/src/main/java/org/apache/shardingsphere/sqltranslator/event/SQLTranslatorConfigurationEventBuilder.java
+++ b/kernel/sql-translator/core/src/main/java/org/apache/shardingsphere/sqltranslator/event/SQLTranslatorConfigurationEventBuilder.java
@@ -47,14 +47,18 @@ public final class SQLTranslatorConfigurationEventBuilder implements GlobalRuleC
         if (!GlobalRuleNodeConverter.isExpectedRuleName(SQL_TRANSLATOR, event.getKey()) || Strings.isNullOrEmpty(event.getValue())) {
             return Optional.empty();
         }
-        return buildEvent(event);
+        Optional<String> version = GlobalRuleNodeConverter.getVersion(SQL_TRANSLATOR, event.getKey());
+        if (version.isPresent() && !Strings.isNullOrEmpty(event.getValue())) {
+            return buildEvent(event, Integer.parseInt(version.get()));
+        }
+        return Optional.empty();
     }
     
-    private Optional<GovernanceEvent> buildEvent(final DataChangedEvent event) {
+    private Optional<GovernanceEvent> buildEvent(final DataChangedEvent event, final int version) {
         if (Type.ADDED == event.getType() || Type.UPDATED == event.getType()) {
-            return Optional.of(new AlterGlobalRuleConfigurationEvent(swapToConfig(event.getValue()), RULE_TYPE));
+            return Optional.of(new AlterGlobalRuleConfigurationEvent(swapToConfig(event.getValue()), RULE_TYPE, event.getKey(), version));
         }
-        return Optional.of(new DeleteGlobalRuleConfigurationEvent(RULE_TYPE));
+        return Optional.of(new DeleteGlobalRuleConfigurationEvent(RULE_TYPE, event.getKey(), version));
     }
     
     private SQLTranslatorRuleConfiguration swapToConfig(final String yamlContext) {
diff --git a/kernel/traffic/core/src/main/java/org/apache/shardingsphere/traffic/event/TrafficRuleConfigurationEventBuilder.java b/kernel/traffic/core/src/main/java/org/apache/shardingsphere/traffic/event/TrafficRuleConfigurationEventBuilder.java
index e397d791c8a..1e8d1df6bc2 100644
--- a/kernel/traffic/core/src/main/java/org/apache/shardingsphere/traffic/event/TrafficRuleConfigurationEventBuilder.java
+++ b/kernel/traffic/core/src/main/java/org/apache/shardingsphere/traffic/event/TrafficRuleConfigurationEventBuilder.java
@@ -47,14 +47,18 @@ public final class TrafficRuleConfigurationEventBuilder implements GlobalRuleCon
         if (!GlobalRuleNodeConverter.isExpectedRuleName(TRAFFIC, event.getKey()) || Strings.isNullOrEmpty(event.getValue())) {
             return Optional.empty();
         }
-        return buildEvent(event);
+        Optional<String> version = GlobalRuleNodeConverter.getVersion(TRAFFIC, event.getKey());
+        if (version.isPresent() && !Strings.isNullOrEmpty(event.getValue())) {
+            return buildEvent(event, Integer.parseInt(version.get()));
+        }
+        return Optional.empty();
     }
     
-    private Optional<GovernanceEvent> buildEvent(final DataChangedEvent event) {
+    private Optional<GovernanceEvent> buildEvent(final DataChangedEvent event, final int version) {
         if (Type.ADDED == event.getType() || Type.UPDATED == event.getType()) {
-            return Optional.of(new AlterGlobalRuleConfigurationEvent(swapToConfig(event.getValue()), RULE_TYPE));
+            return Optional.of(new AlterGlobalRuleConfigurationEvent(swapToConfig(event.getValue()), RULE_TYPE, event.getKey(), version));
         }
-        return Optional.of(new DeleteGlobalRuleConfigurationEvent(RULE_TYPE));
+        return Optional.of(new DeleteGlobalRuleConfigurationEvent(RULE_TYPE, event.getKey(), version));
     }
     
     private TrafficRuleConfiguration swapToConfig(final String yamlContext) {
diff --git a/kernel/transaction/core/src/main/java/org/apache/shardingsphere/transaction/event/TransactionRuleConfigurationEventBuilder.java b/kernel/transaction/core/src/main/java/org/apache/shardingsphere/transaction/event/TransactionRuleConfigurationEventBuilder.java
index 98f4576376c..535dd8c7cea 100644
--- a/kernel/transaction/core/src/main/java/org/apache/shardingsphere/transaction/event/TransactionRuleConfigurationEventBuilder.java
+++ b/kernel/transaction/core/src/main/java/org/apache/shardingsphere/transaction/event/TransactionRuleConfigurationEventBuilder.java
@@ -47,14 +47,18 @@ public final class TransactionRuleConfigurationEventBuilder implements GlobalRul
         if (!GlobalRuleNodeConverter.isExpectedRuleName(TRANSACTION, event.getKey()) || Strings.isNullOrEmpty(event.getValue())) {
             return Optional.empty();
         }
-        return buildEvent(event);
+        Optional<String> version = GlobalRuleNodeConverter.getVersion(TRANSACTION, event.getKey());
+        if (version.isPresent() && !Strings.isNullOrEmpty(event.getValue())) {
+            return buildEvent(event, Integer.parseInt(version.get()));
+        }
+        return Optional.empty();
     }
     
-    private Optional<GovernanceEvent> buildEvent(final DataChangedEvent event) {
+    private Optional<GovernanceEvent> buildEvent(final DataChangedEvent event, final int version) {
         if (Type.ADDED == event.getType() || Type.UPDATED == event.getType()) {
-            return Optional.of(new AlterGlobalRuleConfigurationEvent(swapToConfig(event.getValue()), RULE_TYPE));
+            return Optional.of(new AlterGlobalRuleConfigurationEvent(swapToConfig(event.getValue()), RULE_TYPE, event.getKey(), version));
         }
-        return Optional.of(new DeleteGlobalRuleConfigurationEvent(RULE_TYPE));
+        return Optional.of(new DeleteGlobalRuleConfigurationEvent(RULE_TYPE, event.getKey(), version));
     }
     
     private TransactionRuleConfiguration swapToConfig(final String yamlContext) {