This is an automated email from the ASF dual-hosted git repository.

zhangliang 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 220a45a6497 Refactor TableChangedHandler and ViewChangedHandler 
(#34899)
220a45a6497 is described below

commit 220a45a6497cdee9250d3d2edef393f139287f84
Author: Liang Zhang <zhangli...@apache.org>
AuthorDate: Thu Mar 6 13:37:55 2025 +0800

    Refactor TableChangedHandler and ViewChangedHandler (#34899)
---
 .../database/datasource/StorageNodeChangedHandler.java |  8 ++++----
 .../database/datasource/StorageUnitChangedHandler.java | 18 ++++++++----------
 .../handler/database/metadata/TableChangedHandler.java | 16 +++++++---------
 .../handler/database/metadata/ViewChangedHandler.java  | 16 +++++++---------
 4 files changed, 26 insertions(+), 32 deletions(-)

diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/datasource/StorageNodeChangedHandler.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/datasource/StorageNodeChangedHandler.java
index 13bd71182c3..d58909f989f 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/datasource/StorageNodeChangedHandler.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/datasource/StorageNodeChangedHandler.java
@@ -44,10 +44,10 @@ public final class StorageNodeChangedHandler implements 
DatabaseChangedHandler {
         String storageNodeName = NodePathSearcher.get(event.getKey(), 
StorageNodeNodePath.createStorageNodeSearchCriteria(databaseName));
         switch (event.getType()) {
             case ADDED:
-                handleRegistered(databaseName, storageNodeName, event);
+                handleRegistered(databaseName, storageNodeName);
                 break;
             case UPDATED:
-                handleAltered(databaseName, storageNodeName, event);
+                handleAltered(databaseName, storageNodeName);
                 break;
             case DELETED:
                 handleUnregistered(databaseName, storageNodeName);
@@ -57,11 +57,11 @@ public final class StorageNodeChangedHandler implements 
DatabaseChangedHandler {
         }
     }
     
-    private void handleRegistered(final String databaseName, final String 
storageNodeName, final DataChangedEvent event) {
+    private void handleRegistered(final String databaseName, final String 
storageNodeName) {
         // TODO
     }
     
-    private void handleAltered(final String databaseName, final String 
storageNodeName, final DataChangedEvent event) {
+    private void handleAltered(final String databaseName, final String 
storageNodeName) {
         // TODO
     }
     
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/datasource/StorageUnitChangedHandler.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/datasource/StorageUnitChangedHandler.java
index 5d8f70461f3..a7ede48f68e 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/datasource/StorageUnitChangedHandler.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/datasource/StorageUnitChangedHandler.java
@@ -54,10 +54,14 @@ public final class StorageUnitChangedHandler implements 
DatabaseChangedHandler {
         String storageUnitName = NodePathSearcher.get(event.getKey(), 
StorageUnitNodePath.createStorageUnitSearchCriteria(databaseName));
         switch (event.getType()) {
             case ADDED:
-                handleRegistered(databaseName, storageUnitName, event);
+                if (activeVersionChecker.checkSame(event)) {
+                    handleRegistered(databaseName, storageUnitName);
+                }
                 break;
             case UPDATED:
-                handleAltered(databaseName, storageUnitName, event);
+                if (activeVersionChecker.checkSame(event)) {
+                    handleAltered(databaseName, storageUnitName);
+                }
                 break;
             case DELETED:
                 handleUnregistered(databaseName, storageUnitName);
@@ -67,18 +71,12 @@ public final class StorageUnitChangedHandler implements 
DatabaseChangedHandler {
         }
     }
     
-    private void handleRegistered(final String databaseName, final String 
storageUnitName, final DataChangedEvent event) {
-        if (!activeVersionChecker.checkSame(event)) {
-            return;
-        }
+    private void handleRegistered(final String databaseName, final String 
storageUnitName) {
         DataSourcePoolProperties dataSourcePoolProps = 
contextManager.getPersistServiceFacade().getMetaDataPersistFacade().getDataSourceUnitService().load(databaseName,
 storageUnitName);
         
contextManager.getMetaDataContextManager().getStorageUnitManager().register(databaseName,
 Collections.singletonMap(storageUnitName, dataSourcePoolProps));
     }
     
-    private void handleAltered(final String databaseName, final String 
storageUnitName, final DataChangedEvent event) {
-        if (!activeVersionChecker.checkSame(event)) {
-            return;
-        }
+    private void handleAltered(final String databaseName, final String 
storageUnitName) {
         DataSourcePoolProperties dataSourcePoolProps = 
contextManager.getPersistServiceFacade().getMetaDataPersistFacade().getDataSourceUnitService().load(databaseName,
 storageUnitName);
         
contextManager.getMetaDataContextManager().getStorageUnitManager().alter(databaseName,
 Collections.singletonMap(storageUnitName, dataSourcePoolProps));
     }
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/TableChangedHandler.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/TableChangedHandler.java
index 922a59e5ffe..5929be9001b 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/TableChangedHandler.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/TableChangedHandler.java
@@ -53,31 +53,29 @@ public final class TableChangedHandler implements 
DatabaseChangedHandler {
     @Override
     public void handle(final String databaseName, final DataChangedEvent 
event) {
         String schemaName = NodePathSearcher.get(event.getKey(), 
TableMetadataNodePath.createSchemaSearchCriteria(databaseName, true));
+        String tableName = NodePathSearcher.get(event.getKey(), 
TableMetadataNodePath.createTableSearchCriteria(databaseName, schemaName));
         switch (event.getType()) {
             case ADDED:
             case UPDATED:
-                handleCreatedOrAltered(databaseName, schemaName, event);
+                if (activeVersionChecker.checkSame(event)) {
+                    handleCreatedOrAltered(databaseName, schemaName, 
tableName);
+                }
                 break;
             case DELETED:
-                handleDropped(databaseName, schemaName, event);
+                handleDropped(databaseName, schemaName, tableName);
                 break;
             default:
                 break;
         }
     }
     
-    private void handleCreatedOrAltered(final String databaseName, final 
String schemaName, final DataChangedEvent event) {
-        String tableName = NodePathSearcher.get(event.getKey(), 
TableMetadataNodePath.createTableSearchCriteria(databaseName, schemaName));
-        if (!activeVersionChecker.checkSame(event)) {
-            return;
-        }
+    private void handleCreatedOrAltered(final String databaseName, final 
String schemaName, final String tableName) {
         ShardingSphereTable table = 
contextManager.getPersistServiceFacade().getMetaDataPersistFacade().getDatabaseMetaDataFacade().getTable().load(databaseName,
 schemaName, tableName);
         
contextManager.getMetaDataContextManager().getDatabaseMetaDataManager().alterTable(databaseName,
 schemaName, table);
         statisticsRefreshEngine.asyncRefresh();
     }
     
-    private void handleDropped(final String databaseName, final String 
schemaName, final DataChangedEvent event) {
-        String tableName = NodePathSearcher.get(event.getKey(), 
TableMetadataNodePath.createTableSearchCriteria(databaseName, schemaName));
+    private void handleDropped(final String databaseName, final String 
schemaName, final String tableName) {
         
contextManager.getMetaDataContextManager().getDatabaseMetaDataManager().dropTable(databaseName,
 schemaName, tableName);
         statisticsRefreshEngine.asyncRefresh();
     }
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/ViewChangedHandler.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/ViewChangedHandler.java
index a28981a4010..39335ed5f7d 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/ViewChangedHandler.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/ViewChangedHandler.java
@@ -54,31 +54,29 @@ public final class ViewChangedHandler implements 
DatabaseChangedHandler {
     @Override
     public void handle(final String databaseName, final DataChangedEvent 
event) {
         String schemaName = NodePathSearcher.get(event.getKey(), 
TableMetadataNodePath.createSchemaSearchCriteria(databaseName, true));
+        String viewName = NodePathSearcher.get(event.getKey(), 
ViewMetadataNodePath.createViewSearchCriteria(databaseName, schemaName));
         switch (event.getType()) {
             case ADDED:
             case UPDATED:
-                handleCreatedOrAltered(databaseName, schemaName, event);
+                if (activeVersionChecker.checkSame(event)) {
+                    handleCreatedOrAltered(databaseName, schemaName, viewName);
+                }
                 break;
             case DELETED:
-                handleDropped(databaseName, schemaName, event);
+                handleDropped(databaseName, schemaName, viewName);
                 break;
             default:
                 break;
         }
     }
     
-    private void handleCreatedOrAltered(final String databaseName, final 
String schemaName, final DataChangedEvent event) {
-        String viewName = NodePathSearcher.get(event.getKey(), 
ViewMetadataNodePath.createViewSearchCriteria(databaseName, schemaName));
-        if (!activeVersionChecker.checkSame(event)) {
-            return;
-        }
+    private void handleCreatedOrAltered(final String databaseName, final 
String schemaName, final String viewName) {
         ShardingSphereView view = 
contextManager.getPersistServiceFacade().getMetaDataPersistFacade().getDatabaseMetaDataFacade().getView().load(databaseName,
 schemaName, viewName);
         
contextManager.getMetaDataContextManager().getDatabaseMetaDataManager().alterView(databaseName,
 schemaName, view);
         statisticsRefreshEngine.asyncRefresh();
     }
     
-    private void handleDropped(final String databaseName, final String 
schemaName, final DataChangedEvent event) {
-        String viewName = NodePathSearcher.get(event.getKey(), 
ViewMetadataNodePath.createViewSearchCriteria(databaseName, schemaName));
+    private void handleDropped(final String databaseName, final String 
schemaName, final String viewName) {
         
contextManager.getMetaDataContextManager().getDatabaseMetaDataManager().dropView(databaseName,
 schemaName, viewName);
         statisticsRefreshEngine.asyncRefresh();
     }

Reply via email to