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

jiangmaolin 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 0df1e10998b Move RuleItemChangedBuilder to mode core (#34590)
0df1e10998b is described below

commit 0df1e10998b79de934c3da74c54429a3882393f0
Author: Haoran Meng <menghaora...@gmail.com>
AuthorDate: Fri Feb 7 18:24:03 2025 +0800

    Move RuleItemChangedBuilder to mode core (#34590)
    
    * Move RuleItemChangedBuilder to mode core
    
    * Fix ViewMetaDataPersistServiceTest
---
 .../metadata}/changed/RuleItemChangedBuilder.java  |  7 +-
 .../executor/RuleItemChangedBuildExecutor.java     |  2 +-
 .../type/RuleItemAlteredBuildExecutor.java         | 16 ++---
 .../type/RuleItemDroppedBuildExecutor.java         | 10 ++-
 .../service/ViewMetaDataPersistService.java        |  2 +-
 .../metadata/ViewMetaDataPersistServiceTest.java   |  2 -
 .../path/metadata/DatabaseMetaDataNodePath.java    |  9 +++
 .../rule/RuleConfigurationChangedHandler.java      | 78 ++++++++--------------
 .../rule/type/NamedRuleItemChangedHandler.java     | 56 ----------------
 .../rule/type/UniqueRuleItemChangedHandler.java    | 55 ---------------
 .../StandaloneMetaDataManagerPersistService.java   |  6 +-
 ...tandaloneMetaDataManagerPersistServiceTest.java |  2 +-
 12 files changed, 57 insertions(+), 188 deletions(-)

diff --git 
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/changed/RuleItemChangedBuilder.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/changed/RuleItemChangedBuilder.java
similarity index 86%
rename from 
mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/changed/RuleItemChangedBuilder.java
rename to 
mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/changed/RuleItemChangedBuilder.java
index 8480bfc7541..34d969f0762 100644
--- 
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/changed/RuleItemChangedBuilder.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/changed/RuleItemChangedBuilder.java
@@ -15,12 +15,11 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.mode.manager.standalone.changed;
+package org.apache.shardingsphere.mode.metadata.changed;
 
 import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion;
 import org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader;
-import 
org.apache.shardingsphere.mode.manager.standalone.changed.executor.RuleItemChangedBuildExecutor;
-import org.apache.shardingsphere.mode.node.path.version.VersionNodePath;
+import 
org.apache.shardingsphere.mode.metadata.changed.executor.RuleItemChangedBuildExecutor;
 import org.apache.shardingsphere.mode.node.spi.RuleNodePathProvider;
 import org.apache.shardingsphere.mode.spi.rule.item.RuleChangedItem;
 
@@ -42,7 +41,7 @@ public final class RuleItemChangedBuilder {
      */
     public <T extends RuleChangedItem> Optional<T> build(final String 
databaseName, final MetaDataVersion metaDataVersion, final 
RuleItemChangedBuildExecutor<T> executor) {
         for (RuleNodePathProvider each : 
ShardingSphereServiceLoader.getServiceInstances(RuleNodePathProvider.class)) {
-            if (!each.getRuleNodePath().getRoot().isValidatedPath(new 
VersionNodePath(metaDataVersion.getPath()).getActiveVersionPath())) {
+            if 
(!each.getRuleNodePath().getRoot().isValidatedPath(metaDataVersion.getPath())) {
                 continue;
             }
             Optional<T> result = executor.build(each.getRuleNodePath(), 
databaseName, metaDataVersion);
diff --git 
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/changed/executor/RuleItemChangedBuildExecutor.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/changed/executor/RuleItemChangedBuildExecutor.java
similarity index 95%
rename from 
mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/changed/executor/RuleItemChangedBuildExecutor.java
rename to 
mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/changed/executor/RuleItemChangedBuildExecutor.java
index a0a5e89c2bc..0a8a2038366 100644
--- 
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/changed/executor/RuleItemChangedBuildExecutor.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/changed/executor/RuleItemChangedBuildExecutor.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.mode.manager.standalone.changed.executor;
+package org.apache.shardingsphere.mode.metadata.changed.executor;
 
 import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion;
 import org.apache.shardingsphere.mode.node.path.config.rule.RuleNodePath;
diff --git 
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/changed/executor/type/RuleItemAlteredBuildExecutor.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/changed/executor/type/RuleItemAlteredBuildExecutor.java
similarity index 77%
rename from 
mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/changed/executor/type/RuleItemAlteredBuildExecutor.java
rename to 
mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/changed/executor/type/RuleItemAlteredBuildExecutor.java
index 387cd437a30..171c93f22a6 100644
--- 
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/changed/executor/type/RuleItemAlteredBuildExecutor.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/changed/executor/type/RuleItemAlteredBuildExecutor.java
@@ -15,14 +15,13 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.mode.manager.standalone.changed.executor.type;
+package org.apache.shardingsphere.mode.metadata.changed.executor.type;
 
 import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion;
-import 
org.apache.shardingsphere.mode.manager.standalone.changed.executor.RuleItemChangedBuildExecutor;
+import 
org.apache.shardingsphere.mode.metadata.changed.executor.RuleItemChangedBuildExecutor;
 import org.apache.shardingsphere.mode.node.path.config.rule.RuleNodePath;
 import 
org.apache.shardingsphere.mode.node.path.config.rule.item.NamedRuleItemNodePath;
 import 
org.apache.shardingsphere.mode.node.path.config.rule.item.UniqueRuleItemNodePath;
-import org.apache.shardingsphere.mode.node.path.version.VersionNodePath;
 import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
 import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterRuleItem;
 import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterUniqueRuleItem;
@@ -37,17 +36,18 @@ public final class RuleItemAlteredBuildExecutor implements 
RuleItemChangedBuildE
     
     @Override
     public Optional<AlterRuleItem> build(final RuleNodePath ruleNodePath, 
final String databaseName, final MetaDataVersion metaDataVersion) {
-        String activeVersionPath = new 
VersionNodePath(metaDataVersion.getPath()).getActiveVersionPath();
         for (Entry<String, NamedRuleItemNodePath> entry : 
ruleNodePath.getNamedItems().entrySet()) {
-            Optional<String> itemName = 
entry.getValue().findNameByActiveVersion(activeVersionPath);
+            Optional<String> itemName = 
entry.getValue().findNameByActiveVersion(metaDataVersion.getPath());
             if (itemName.isPresent()) {
                 return Optional.of(
-                        new AlterNamedRuleItem(databaseName, itemName.get(), 
activeVersionPath, metaDataVersion.getNextActiveVersion(), 
ruleNodePath.getRoot().getRuleType() + "." + entry.getKey()));
+                        new AlterNamedRuleItem(databaseName, itemName.get(), 
metaDataVersion.getPath(),
+                                metaDataVersion.getNextActiveVersion(), 
ruleNodePath.getRoot().getRuleType() + "." + entry.getKey()));
             }
         }
         for (Entry<String, UniqueRuleItemNodePath> entry : 
ruleNodePath.getUniqueItems().entrySet()) {
-            if (entry.getValue().isActiveVersionPath(activeVersionPath)) {
-                return Optional.of(new AlterUniqueRuleItem(databaseName, 
activeVersionPath, metaDataVersion.getNextActiveVersion(), 
ruleNodePath.getRoot().getRuleType() + "." + entry.getKey()));
+            if 
(entry.getValue().isActiveVersionPath(metaDataVersion.getPath())) {
+                return Optional.of(new AlterUniqueRuleItem(databaseName, 
metaDataVersion.getPath(),
+                        metaDataVersion.getNextActiveVersion(), 
ruleNodePath.getRoot().getRuleType() + "." + entry.getKey()));
             }
         }
         return Optional.empty();
diff --git 
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/changed/executor/type/RuleItemDroppedBuildExecutor.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/changed/executor/type/RuleItemDroppedBuildExecutor.java
similarity index 83%
rename from 
mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/changed/executor/type/RuleItemDroppedBuildExecutor.java
rename to 
mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/changed/executor/type/RuleItemDroppedBuildExecutor.java
index c07cd93d117..dc7b583fc03 100644
--- 
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/changed/executor/type/RuleItemDroppedBuildExecutor.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/changed/executor/type/RuleItemDroppedBuildExecutor.java
@@ -15,14 +15,13 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.mode.manager.standalone.changed.executor.type;
+package org.apache.shardingsphere.mode.metadata.changed.executor.type;
 
 import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion;
-import 
org.apache.shardingsphere.mode.manager.standalone.changed.executor.RuleItemChangedBuildExecutor;
+import 
org.apache.shardingsphere.mode.metadata.changed.executor.RuleItemChangedBuildExecutor;
 import org.apache.shardingsphere.mode.node.path.config.rule.RuleNodePath;
 import 
org.apache.shardingsphere.mode.node.path.config.rule.item.NamedRuleItemNodePath;
 import 
org.apache.shardingsphere.mode.node.path.config.rule.item.UniqueRuleItemNodePath;
-import org.apache.shardingsphere.mode.node.path.version.VersionNodePath;
 import org.apache.shardingsphere.mode.spi.rule.item.drop.DropNamedRuleItem;
 import org.apache.shardingsphere.mode.spi.rule.item.drop.DropRuleItem;
 import org.apache.shardingsphere.mode.spi.rule.item.drop.DropUniqueRuleItem;
@@ -37,15 +36,14 @@ public final class RuleItemDroppedBuildExecutor implements 
RuleItemChangedBuildE
     
     @Override
     public Optional<DropRuleItem> build(final RuleNodePath ruleNodePath, final 
String databaseName, final MetaDataVersion metaDataVersion) {
-        String activeVersionPath = new 
VersionNodePath(metaDataVersion.getPath()).getActiveVersionPath();
         for (Entry<String, NamedRuleItemNodePath> entry : 
ruleNodePath.getNamedItems().entrySet()) {
-            Optional<String> itemName = 
entry.getValue().findNameByItemPath(activeVersionPath);
+            Optional<String> itemName = 
entry.getValue().findNameByItemPath(metaDataVersion.getPath());
             if (itemName.isPresent()) {
                 return Optional.of(new DropNamedRuleItem(databaseName, 
itemName.get(), ruleNodePath.getRoot().getRuleType() + "." + entry.getKey()));
             }
         }
         for (Entry<String, UniqueRuleItemNodePath> entry : 
ruleNodePath.getUniqueItems().entrySet()) {
-            if (entry.getValue().isActiveVersionPath(activeVersionPath)) {
+            if 
(entry.getValue().isActiveVersionPath(metaDataVersion.getPath())) {
                 return Optional.of(new DropUniqueRuleItem(databaseName, 
ruleNodePath.getRoot().getRuleType() + "." + entry.getKey()));
             }
         }
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/ViewMetaDataPersistService.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/ViewMetaDataPersistService.java
index 9085f7ef08c..4751115512f 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/ViewMetaDataPersistService.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/ViewMetaDataPersistService.java
@@ -85,7 +85,7 @@ public final class ViewMetaDataPersistService {
             
repository.persist(ViewMetaDataNodePath.getVersionNodePath(databaseName, 
schemaName, viewName).getVersionPath(nextActiveVersion),
                     YamlEngine.marshal(swapper.swapToYamlConfiguration(each)));
             if (null == getActiveVersion(databaseName, schemaName, viewName)) {
-                
repository.persist(ViewMetaDataNodePath.getVersionNodePath(databaseName, 
schemaName, viewName).getVersionsPath(), 
String.valueOf(MetaDataVersion.DEFAULT_VERSION));
+                
repository.persist(ViewMetaDataNodePath.getVersionNodePath(databaseName, 
schemaName, viewName).getActiveVersionPath(), 
String.valueOf(MetaDataVersion.DEFAULT_VERSION));
             }
             metaDataVersions.add(new 
MetaDataVersion(ViewMetaDataNodePath.getViewPath(databaseName, schemaName, 
viewName), getActiveVersion(databaseName, schemaName, viewName), 
nextActiveVersion));
         }
diff --git 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/metadata/ViewMetaDataPersistServiceTest.java
 
b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/metadata/ViewMetaDataPersistServiceTest.java
index 5a0d54da0ce..5e6fc31ed25 100644
--- 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/metadata/ViewMetaDataPersistServiceTest.java
+++ 
b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/metadata/ViewMetaDataPersistServiceTest.java
@@ -22,7 +22,6 @@ import 
org.apache.shardingsphere.mode.metadata.persist.metadata.service.ViewMeta
 import 
org.apache.shardingsphere.mode.metadata.persist.version.MetaDataVersionPersistService;
 import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
 import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.Mock;
@@ -37,7 +36,6 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
-@Disabled("fix unit test by haorangdia")
 @ExtendWith(MockitoExtension.class)
 class ViewMetaDataPersistServiceTest {
     
diff --git 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/DatabaseMetaDataNodePath.java
 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/DatabaseMetaDataNodePath.java
index 959b1a4eda5..5dc4c465d12 100644
--- 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/DatabaseMetaDataNodePath.java
+++ 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/DatabaseMetaDataNodePath.java
@@ -117,4 +117,13 @@ public final class DatabaseMetaDataNodePath {
         Matcher matcher = pattern.matcher(path);
         return matcher.find() ? Optional.of(matcher.group(2)) : 
Optional.empty();
     }
+    
+    /**
+     *  Is active version path.
+     * @param path path
+     * @return is active version path or not
+     */
+    public static boolean isActiveVersionPath(final String path) {
+        return path.endsWith(ACTIVE_VERSION_NODE);
+    }
 }
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/RuleConfigurationChangedHandler.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/RuleConfigurationChangedHandler.java
index 8d9e23be09b..971fed72397 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/RuleConfigurationChangedHandler.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/RuleConfigurationChangedHandler.java
@@ -18,19 +18,18 @@
 package 
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.database.rule;
 
 import com.google.common.base.Strings;
-import org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader;
+import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion;
 import org.apache.shardingsphere.mode.event.DataChangedEvent;
 import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
 import org.apache.shardingsphere.mode.manager.ContextManager;
-import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.database.rule.type.NamedRuleItemChangedHandler;
-import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.database.rule.type.UniqueRuleItemChangedHandler;
-import org.apache.shardingsphere.mode.node.path.config.rule.RuleNodePath;
-import 
org.apache.shardingsphere.mode.node.path.config.rule.item.NamedRuleItemNodePath;
-import 
org.apache.shardingsphere.mode.node.path.config.rule.item.UniqueRuleItemNodePath;
-import org.apache.shardingsphere.mode.node.spi.RuleNodePathProvider;
+import org.apache.shardingsphere.mode.metadata.changed.RuleItemChangedBuilder;
+import 
org.apache.shardingsphere.mode.metadata.changed.executor.type.RuleItemAlteredBuildExecutor;
+import 
org.apache.shardingsphere.mode.metadata.changed.executor.type.RuleItemDroppedBuildExecutor;
+import 
org.apache.shardingsphere.mode.node.path.metadata.DatabaseMetaDataNodePath;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropRuleItem;
 
 import java.sql.SQLException;
-import java.util.Map.Entry;
 import java.util.Optional;
 
 /**
@@ -38,13 +37,13 @@ import java.util.Optional;
  */
 public final class RuleConfigurationChangedHandler {
     
-    private final NamedRuleItemChangedHandler namedRuleItemChangedHandler;
+    private final ContextManager contextManager;
     
-    private final UniqueRuleItemChangedHandler uniqueRuleItemChangedHandler;
+    private final RuleItemChangedBuilder ruleItemChangedBuilder;
     
     public RuleConfigurationChangedHandler(final ContextManager 
contextManager) {
-        namedRuleItemChangedHandler = new 
NamedRuleItemChangedHandler(contextManager);
-        uniqueRuleItemChangedHandler = new 
UniqueRuleItemChangedHandler(contextManager);
+        this.contextManager = contextManager;
+        ruleItemChangedBuilder = new RuleItemChangedBuilder();
     }
     
     /**
@@ -52,51 +51,28 @@ public final class RuleConfigurationChangedHandler {
      *
      * @param databaseName database name
      * @param event data changed event
-     * @throws SQLException SQL Exception
+     * @throws SQLException SQL exception
      */
     public void handle(final String databaseName, final DataChangedEvent 
event) throws SQLException {
-        for (RuleNodePathProvider each : 
ShardingSphereServiceLoader.getServiceInstances(RuleNodePathProvider.class)) {
-            if (handle(each.getRuleNodePath(), databaseName, event)) {
+        if (Type.DELETED != event.getType() && 
Strings.isNullOrEmpty(event.getValue())) {
+            return;
+        }
+        if (Type.ADDED == event.getType() || Type.UPDATED == event.getType()) {
+            if (!DatabaseMetaDataNodePath.isActiveVersionPath(event.getKey())) 
{
                 return;
             }
-        }
-    }
-    
-    private boolean handle(final RuleNodePath ruleNodePath, final String 
databaseName, final DataChangedEvent event) throws SQLException {
-        if (!ruleNodePath.getRoot().isValidatedPath(event.getKey()) || 
Type.DELETED != event.getType() && Strings.isNullOrEmpty(event.getValue())) {
-            return false;
-        }
-        return handleNamedRuleItems(ruleNodePath, databaseName, event) || 
handleUniqueRuleItems(ruleNodePath, databaseName, event);
-    }
-    
-    private boolean handleNamedRuleItems(final RuleNodePath ruleNodePath, 
final String databaseName, final DataChangedEvent event) throws SQLException {
-        for (Entry<String, NamedRuleItemNodePath> entry : 
ruleNodePath.getNamedItems().entrySet()) {
-            Optional<String> itemName = getItemName(event, entry.getValue());
-            if (itemName.isPresent()) {
-                namedRuleItemChangedHandler.handle(ruleNodePath, databaseName, 
itemName.get(), entry.getKey(), event);
-                return true;
+            int version = Integer.parseInt(event.getValue());
+            Optional<AlterRuleItem> alterRuleItem = 
ruleItemChangedBuilder.build(databaseName, new MetaDataVersion(event.getKey(), 
version, version),
+                    new RuleItemAlteredBuildExecutor());
+            if (alterRuleItem.isPresent()) {
+                
contextManager.getMetaDataContextManager().getDatabaseRuleItemManager().alter(alterRuleItem.get());
             }
-        }
-        return false;
-    }
-    
-    private boolean handleUniqueRuleItems(final RuleNodePath ruleNodePath, 
final String databaseName, final DataChangedEvent event) throws SQLException {
-        for (Entry<String, UniqueRuleItemNodePath> entry : 
ruleNodePath.getUniqueItems().entrySet()) {
-            if (entry.getValue().isActiveVersionPath(event.getKey())) {
-                uniqueRuleItemChangedHandler.handle(ruleNodePath, 
databaseName, entry.getKey(), event);
-                return true;
+        } else if (Type.DELETED == event.getType()) {
+            Optional<DropRuleItem> dropRuleItem = 
ruleItemChangedBuilder.build(databaseName, new MetaDataVersion(event.getKey()),
+                    new RuleItemDroppedBuildExecutor());
+            if (dropRuleItem.isPresent()) {
+                
contextManager.getMetaDataContextManager().getDatabaseRuleItemManager().drop(dropRuleItem.get());
             }
         }
-        return false;
-    }
-    
-    private Optional<String> getItemName(final DataChangedEvent event, final 
NamedRuleItemNodePath ruleItemNodePath) {
-        if (Type.ADDED == event.getType() || Type.UPDATED == event.getType()) {
-            return ruleItemNodePath.findNameByActiveVersion(event.getKey());
-        }
-        if (Type.DELETED == event.getType()) {
-            return ruleItemNodePath.findNameByItemPath(event.getKey());
-        }
-        return Optional.empty();
     }
 }
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/type/NamedRuleItemChangedHandler.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/type/NamedRuleItemChangedHandler.java
deleted file mode 100644
index 68f7a8da07a..00000000000
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/type/NamedRuleItemChangedHandler.java
+++ /dev/null
@@ -1,56 +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.mode.manager.cluster.dispatch.handler.database.rule.type;
-
-import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.mode.event.DataChangedEvent;
-import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
-import org.apache.shardingsphere.mode.manager.ContextManager;
-import org.apache.shardingsphere.mode.node.path.config.rule.RuleNodePath;
-import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.spi.rule.item.drop.DropNamedRuleItem;
-
-import java.sql.SQLException;
-
-/**
- * Named rule item changed handler.
- */
-@RequiredArgsConstructor
-public final class NamedRuleItemChangedHandler {
-    
-    private final ContextManager contextManager;
-    
-    /**
-     * Handle named rule item changed.
-     *
-     * @param ruleNodePath rule node path
-     * @param databaseName database name
-     * @param itemName item name
-     * @param path path
-     * @param event data changed event
-     * @throws SQLException SQL Exception
-     */
-    public void handle(final RuleNodePath ruleNodePath, final String 
databaseName, final String itemName, final String path, final DataChangedEvent 
event) throws SQLException {
-        String type = ruleNodePath.getRoot().getRuleType() + "." + path;
-        if (Type.ADDED == event.getType() || Type.UPDATED == event.getType()) {
-            
contextManager.getMetaDataContextManager().getDatabaseRuleItemManager().alter(new
 AlterNamedRuleItem(databaseName, itemName, event.getKey(), 
Integer.parseInt(event.getValue()), type));
-        } else if (Type.DELETED == event.getType()) {
-            
contextManager.getMetaDataContextManager().getDatabaseRuleItemManager().drop(new
 DropNamedRuleItem(databaseName, itemName, type));
-        }
-    }
-}
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/type/UniqueRuleItemChangedHandler.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/type/UniqueRuleItemChangedHandler.java
deleted file mode 100644
index 5342bcb1ff9..00000000000
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/type/UniqueRuleItemChangedHandler.java
+++ /dev/null
@@ -1,55 +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.mode.manager.cluster.dispatch.handler.database.rule.type;
-
-import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.mode.event.DataChangedEvent;
-import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
-import org.apache.shardingsphere.mode.manager.ContextManager;
-import org.apache.shardingsphere.mode.node.path.config.rule.RuleNodePath;
-import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterUniqueRuleItem;
-import org.apache.shardingsphere.mode.spi.rule.item.drop.DropUniqueRuleItem;
-
-import java.sql.SQLException;
-
-/**
- * Unique rule item changed handler.
- */
-@RequiredArgsConstructor
-public final class UniqueRuleItemChangedHandler {
-    
-    private final ContextManager contextManager;
-    
-    /**
-     * Handle unique rule item changed.
-     *
-     * @param ruleNodePath rule node path
-     * @param databaseName database name
-     * @param path path
-     * @param event data changed event
-     * @throws SQLException SQL Exception
-     */
-    public void handle(final RuleNodePath ruleNodePath, final String 
databaseName, final String path, final DataChangedEvent event) throws 
SQLException {
-        String type = ruleNodePath.getRoot().getRuleType() + "." + path;
-        if (Type.ADDED == event.getType() || Type.UPDATED == event.getType()) {
-            
contextManager.getMetaDataContextManager().getDatabaseRuleItemManager().alter(new
 AlterUniqueRuleItem(databaseName, event.getKey(), 
Integer.parseInt(event.getValue()), type));
-        } else if (Type.DELETED == event.getType()) {
-            
contextManager.getMetaDataContextManager().getDatabaseRuleItemManager().drop(new
 DropUniqueRuleItem(databaseName, type));
-        }
-    }
-}
diff --git 
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.java
 
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.java
index b01180083cc..00839c4e4c6 100644
--- 
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.java
+++ 
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.java
@@ -30,9 +30,9 @@ import 
org.apache.shardingsphere.infra.metadata.version.MetaDataVersion;
 import org.apache.shardingsphere.infra.rule.scope.GlobalRule;
 import 
org.apache.shardingsphere.infra.rule.scope.GlobalRule.GlobalRuleChangedType;
 import 
org.apache.shardingsphere.infra.spi.type.ordered.cache.OrderedServicesCache;
-import 
org.apache.shardingsphere.mode.manager.standalone.changed.RuleItemChangedBuilder;
-import 
org.apache.shardingsphere.mode.manager.standalone.changed.executor.type.RuleItemAlteredBuildExecutor;
-import 
org.apache.shardingsphere.mode.manager.standalone.changed.executor.type.RuleItemDroppedBuildExecutor;
+import org.apache.shardingsphere.mode.metadata.changed.RuleItemChangedBuilder;
+import 
org.apache.shardingsphere.mode.metadata.changed.executor.type.RuleItemAlteredBuildExecutor;
+import 
org.apache.shardingsphere.mode.metadata.changed.executor.type.RuleItemDroppedBuildExecutor;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.factory.MetaDataContextsFactory;
 import org.apache.shardingsphere.mode.metadata.manager.MetaDataContextManager;
diff --git 
a/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistServiceTest.java
 
b/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistServiceTest.java
index f03036b59e0..62d166328f0 100644
--- 
a/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistServiceTest.java
+++ 
b/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistServiceTest.java
@@ -27,7 +27,7 @@ import 
org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
 import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion;
-import 
org.apache.shardingsphere.mode.manager.standalone.changed.RuleItemChangedBuilder;
+import org.apache.shardingsphere.mode.metadata.changed.RuleItemChangedBuilder;
 import org.apache.shardingsphere.mode.metadata.manager.MetaDataContextManager;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistFacade;
 import 
org.apache.shardingsphere.mode.metadata.persist.metadata.DatabaseMetaDataPersistFacade;

Reply via email to