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 e9cc399b6a3 Use VersionNodePath on other NodePath (#34580)
e9cc399b6a3 is described below

commit e9cc399b6a36f756269b724d1269484824691723
Author: Liang Zhang <zhangli...@apache.org>
AuthorDate: Thu Feb 6 23:39:35 2025 +0800

    Use VersionNodePath on other NodePath (#34580)
    
    * Use VersionNodePath on other NodePath
    
    * Use VersionNodePath on other NodePath
    
    * Use VersionNodePath on other NodePath
    
    * Use VersionNodePath on other NodePath
    
    * Use VersionNodePath on other NodePath
    
    * Use VersionNodePath on other NodePath
    
    * Use VersionNodePath on other NodePath
---
 .../node/path/config/GlobalPropertiesNodePath.java | 11 +++-----
 .../mode/node/path/config/GlobalRuleNodePath.java  | 11 +++-----
 .../config/rule/item/NamedRuleItemNodePath.java    | 31 ++++++++++++----------
 .../config/rule/item/UniqueRuleItemNodePath.java   | 15 ++++++-----
 .../path/metadata/DataSourceMetaDataNodePath.java  | 15 +++++------
 .../metadata/DatabaseRuleMetaDataNodePath.java     | 11 +++-----
 .../node/path/metadata/TableMetaDataNodePath.java  |  9 +++----
 .../node/path/metadata/ViewMetaDataNodePath.java   | 11 +++-----
 .../tuple/YamlRepositoryTupleSwapperEngine.java    |  4 +--
 .../node/path/config/GlobalRuleNodePathTest.java   | 20 ++++++++++++++
 .../node/path/config/rule/RuleNodePathTest.java    |  2 +-
 .../rule/item/NamedRuleItemNodePathTest.java       | 26 +++++++++++-------
 .../rule/RuleConfigurationChangedHandler.java      |  4 +--
 .../type/RuleItemAlteredBuildExecutor.java         |  2 +-
 .../type/RuleItemDroppedBuildExecutor.java         |  2 +-
 15 files changed, 93 insertions(+), 81 deletions(-)

diff --git 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/config/GlobalPropertiesNodePath.java
 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/config/GlobalPropertiesNodePath.java
index 3b692b66bec..cee9de2e574 100644
--- 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/config/GlobalPropertiesNodePath.java
+++ 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/config/GlobalPropertiesNodePath.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.mode.node.path.config;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
+import org.apache.shardingsphere.mode.node.path.version.VersionNodePath;
 
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -31,10 +32,6 @@ public final class GlobalPropertiesNodePath {
     
     private static final String ROOT_NODE = "/props";
     
-    private static final String VERSIONS_NODE = "versions";
-    
-    private static final String ACTIVE_VERSION_NODE = "active_version";
-    
     /**
      * Get properties path.
      *
@@ -50,7 +47,7 @@ public final class GlobalPropertiesNodePath {
      * @return properties version root path
      */
     public static String getVersionRootPath() {
-        return String.join("/", getRootPath(), VERSIONS_NODE);
+        return new VersionNodePath(getRootPath()).getVersionsPath();
     }
     
     /**
@@ -60,7 +57,7 @@ public final class GlobalPropertiesNodePath {
      * @return properties version path
      */
     public static String getVersionPath(final int version) {
-        return String.join("/", getVersionRootPath(), String.valueOf(version));
+        return new VersionNodePath(getRootPath()).getVersionPath(version);
     }
     
     /**
@@ -69,7 +66,7 @@ public final class GlobalPropertiesNodePath {
      * @return properties active version path
      */
     public static String getActiveVersionPath() {
-        return String.join("/", getRootPath(), ACTIVE_VERSION_NODE);
+        return new VersionNodePath(getRootPath()).getActiveVersionPath();
     }
     
     /**
diff --git 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/config/GlobalRuleNodePath.java
 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/config/GlobalRuleNodePath.java
index 525478a6681..7bcc64e35f5 100644
--- 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/config/GlobalRuleNodePath.java
+++ 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/config/GlobalRuleNodePath.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.mode.node.path.config;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
+import org.apache.shardingsphere.mode.node.path.version.VersionNodePath;
 
 import java.util.Optional;
 import java.util.regex.Matcher;
@@ -32,10 +33,6 @@ public final class GlobalRuleNodePath {
     
     private static final String ROOT_NODE = "/rules";
     
-    private static final String VERSIONS_NODE = "versions";
-    
-    private static final String ACTIVE_VERSION_NODE = "active_version";
-    
     private static final String IDENTIFIER_PATTERN = "(\\w+)";
     
     private static final String VERSION_PATTERN = "(\\d+)";
@@ -66,7 +63,7 @@ public final class GlobalRuleNodePath {
      * @return global rule version root path
      */
     public static String getVersionRootPath(final String ruleTypeName) {
-        return String.join("/", getRulePath(ruleTypeName), VERSIONS_NODE);
+        return new 
VersionNodePath(getRulePath(ruleTypeName)).getVersionsPath();
     }
     
     /**
@@ -77,7 +74,7 @@ public final class GlobalRuleNodePath {
      * @return global rule version path
      */
     public static String getVersionPath(final String ruleTypeName, final int 
version) {
-        return String.join("/", getVersionRootPath(ruleTypeName), 
String.valueOf(version));
+        return new 
VersionNodePath(getRulePath(ruleTypeName)).getVersionPath(version);
     }
     
     /**
@@ -87,7 +84,7 @@ public final class GlobalRuleNodePath {
      * @return global rule active version path
      */
     public static String getActiveVersionPath(final String ruleTypeName) {
-        return String.join("/", getRulePath(ruleTypeName), 
ACTIVE_VERSION_NODE);
+        return new 
VersionNodePath(getRulePath(ruleTypeName)).getActiveVersionPath();
     }
     
     /**
diff --git 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/config/rule/item/NamedRuleItemNodePath.java
 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/config/rule/item/NamedRuleItemNodePath.java
index 76c90905aba..b5e4f2852b3 100644
--- 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/config/rule/item/NamedRuleItemNodePath.java
+++ 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/config/rule/item/NamedRuleItemNodePath.java
@@ -18,6 +18,7 @@
 package org.apache.shardingsphere.mode.node.path.config.rule.item;
 
 import 
org.apache.shardingsphere.mode.node.path.config.rule.root.RuleRootNodePath;
+import org.apache.shardingsphere.mode.node.path.version.VersionNodePath;
 
 import java.util.Optional;
 import java.util.regex.Matcher;
@@ -28,9 +29,9 @@ import java.util.regex.Pattern;
  */
 public final class NamedRuleItemNodePath {
     
-    private static final String NAME = "/([\\w\\-]+)/versions/\\d+$";
+    private static final String IDENTIFIER_PATTERN = "([\\w\\-]+)";
     
-    private static final String ACTIVE_VERSION = 
"/([\\w\\-]+)/active_version$";
+    private static final String VERSION_PATTERN = "(\\d+)";
     
     private final String type;
     
@@ -42,9 +43,11 @@ public final class NamedRuleItemNodePath {
     
     public NamedRuleItemNodePath(final RuleRootNodePath rootNodePath, final 
String type) {
         this.type = type;
-        namePathPattern = Pattern.compile(rootNodePath.getNodePrefix() + type 
+ NAME);
-        activeVersionPathPattern = 
Pattern.compile(rootNodePath.getNodePrefix() + type + ACTIVE_VERSION);
-        itemPathPattern = Pattern.compile(rootNodePath.getNodePrefix() + type 
+ "/([\\w\\-]+)$");
+        String pattern = String.join("/", rootNodePath.getNodePrefix() + type, 
IDENTIFIER_PATTERN);
+        VersionNodePath versionNodePath = new VersionNodePath(pattern);
+        namePathPattern = Pattern.compile(String.join("/", 
versionNodePath.getVersionsPath(), VERSION_PATTERN));
+        activeVersionPathPattern = 
Pattern.compile(versionNodePath.getActiveVersionPath() + "$");
+        itemPathPattern = Pattern.compile(pattern + "$");
     }
     
     /**
@@ -58,34 +61,34 @@ public final class NamedRuleItemNodePath {
     }
     
     /**
-     * Get rule item name.
+     * Find rule item name.
      *
      * @param path path
-     * @return got item rule name
+     * @return found item rule name
      */
-    public Optional<String> getName(final String path) {
+    public Optional<String> findName(final String path) {
         Matcher matcher = namePathPattern.matcher(path);
         return matcher.find() ? Optional.of(matcher.group(1)) : 
Optional.empty();
     }
     
     /**
-     * Get rule item name by active version.
+     * Find rule item name by active version.
      *
      * @param path path
-     * @return got rule item name
+     * @return found rule item name
      */
-    public Optional<String> getNameByActiveVersion(final String path) {
+    public Optional<String> findNameByActiveVersion(final String path) {
         Matcher matcher = activeVersionPathPattern.matcher(path);
         return matcher.find() ? Optional.of(matcher.group(1)) : 
Optional.empty();
     }
     
     /**
-     * Get rule item name by item path.
+     * Find rule item name by item path.
      *
      * @param path path
-     * @return got rule item name
+     * @return found rule item name
      */
-    public Optional<String> getNameByItemPath(final String path) {
+    public Optional<String> findNameByItemPath(final String path) {
         Matcher matcher = itemPathPattern.matcher(path);
         return matcher.find() ? Optional.of(matcher.group(1)) : 
Optional.empty();
     }
diff --git 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/config/rule/item/UniqueRuleItemNodePath.java
 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/config/rule/item/UniqueRuleItemNodePath.java
index c8de8a19dee..585405bcd65 100644
--- 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/config/rule/item/UniqueRuleItemNodePath.java
+++ 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/config/rule/item/UniqueRuleItemNodePath.java
@@ -18,6 +18,7 @@
 package org.apache.shardingsphere.mode.node.path.config.rule.item;
 
 import 
org.apache.shardingsphere.mode.node.path.config.rule.root.RuleRootNodePath;
+import org.apache.shardingsphere.mode.node.path.version.VersionNodePath;
 
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -27,9 +28,7 @@ import java.util.regex.Pattern;
  */
 public final class UniqueRuleItemNodePath {
     
-    private static final String VERSIONS = "/versions/\\d+$";
-    
-    private static final String ACTIVE_VERSION = "/active_version$";
+    private static final String VERSION_PATTERN = "(\\d+)";
     
     private final String parentNode;
     
@@ -42,15 +41,17 @@ public final class UniqueRuleItemNodePath {
     public UniqueRuleItemNodePath(final RuleRootNodePath ruleRootNodePath, 
final String type) {
         parentNode = null;
         this.type = type;
-        pathPattern = Pattern.compile(ruleRootNodePath.getNodePrefix() + type 
+ VERSIONS);
-        activeVersionPathPattern = 
Pattern.compile(ruleRootNodePath.getNodePrefix() + type + ACTIVE_VERSION);
+        VersionNodePath versionNodePath = new 
VersionNodePath(ruleRootNodePath.getNodePrefix() + type);
+        pathPattern = Pattern.compile(String.join("/", 
versionNodePath.getVersionsPath(), VERSION_PATTERN));
+        activeVersionPathPattern = 
Pattern.compile(versionNodePath.getActiveVersionPath() + "$");
     }
     
     public UniqueRuleItemNodePath(final RuleRootNodePath ruleRootNodePath, 
final String parentNode, final String type) {
         this.parentNode = parentNode;
         this.type = type;
-        pathPattern = Pattern.compile(ruleRootNodePath.getNodePrefix() + 
parentNode + "/" + type + VERSIONS);
-        activeVersionPathPattern = 
Pattern.compile(ruleRootNodePath.getNodePrefix() + parentNode + "/" + type + 
ACTIVE_VERSION);
+        VersionNodePath versionNodePath = new 
VersionNodePath(ruleRootNodePath.getNodePrefix() + parentNode + "/" + type);
+        pathPattern = Pattern.compile(String.join("/", 
versionNodePath.getVersionsPath(), VERSION_PATTERN));
+        activeVersionPathPattern = 
Pattern.compile(versionNodePath.getActiveVersionPath() + "$");
     }
     
     /**
diff --git 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/DataSourceMetaDataNodePath.java
 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/DataSourceMetaDataNodePath.java
index 3f603240b06..8ced51bd191 100644
--- 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/DataSourceMetaDataNodePath.java
+++ 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/DataSourceMetaDataNodePath.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.mode.node.path.metadata;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
+import org.apache.shardingsphere.mode.node.path.version.VersionNodePath;
 
 import java.util.Optional;
 import java.util.regex.Matcher;
@@ -38,10 +39,6 @@ public final class DataSourceMetaDataNodePath {
     
     private static final String UNITS_NODE = "units";
     
-    private static final String VERSIONS_NODE = "versions";
-    
-    private static final String ACTIVE_VERSION_NODE = "active_version";
-    
     private static final String IDENTIFIER_PATTERN = "([\\w\\-]+)";
     
     /**
@@ -105,7 +102,7 @@ public final class DataSourceMetaDataNodePath {
      * @return storage unit version path
      */
     public static String getStorageUnitVersionPath(final String databaseName, 
final String storageUnitName, final int version) {
-        return String.join("/", getStorageUnitVersionsPath(databaseName, 
storageUnitName), String.valueOf(version));
+        return new VersionNodePath(String.join("/", 
getStorageUnitsPath(databaseName), storageUnitName)).getVersionPath(version);
     }
     
     /**
@@ -116,7 +113,7 @@ public final class DataSourceMetaDataNodePath {
      * @return storage unit versions path
      */
     public static String getStorageUnitVersionsPath(final String databaseName, 
final String dataSourceName) {
-        return String.join("/", getStorageUnitsPath(databaseName), 
dataSourceName, VERSIONS_NODE);
+        return new VersionNodePath(String.join("/", 
getStorageUnitsPath(databaseName), dataSourceName)).getVersionsPath();
     }
     
     /**
@@ -127,7 +124,7 @@ public final class DataSourceMetaDataNodePath {
      * @return storage unit active version path
      */
     public static String getStorageUnitActiveVersionPath(final String 
databaseName, final String dataSourceName) {
-        return String.join("/", getStorageUnitsPath(databaseName), 
dataSourceName, ACTIVE_VERSION_NODE);
+        return new VersionNodePath(String.join("/", 
getStorageUnitsPath(databaseName), dataSourceName)).getActiveVersionPath();
     }
     
     /**
@@ -138,7 +135,7 @@ public final class DataSourceMetaDataNodePath {
      * @return storage node versions path
      */
     public static String getStorageNodeVersionsPath(final String databaseName, 
final String storageNodeName) {
-        return String.join("/", getStorageNodesPath(databaseName), 
storageNodeName, VERSIONS_NODE);
+        return new VersionNodePath(String.join("/", 
getStorageNodesPath(databaseName), storageNodeName)).getVersionsPath();
     }
     
     /**
@@ -149,7 +146,7 @@ public final class DataSourceMetaDataNodePath {
      * @return storage node active version path
      */
     public static String getStorageNodeActiveVersionPath(final String 
databaseName, final String storageNodeName) {
-        return String.join("/", getStorageNodesPath(databaseName), 
storageNodeName, ACTIVE_VERSION_NODE);
+        return new VersionNodePath(String.join("/", 
getStorageNodesPath(databaseName), storageNodeName)).getActiveVersionPath();
     }
     
     /**
diff --git 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/DatabaseRuleMetaDataNodePath.java
 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/DatabaseRuleMetaDataNodePath.java
index 984e171665e..765875cca2a 100644
--- 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/DatabaseRuleMetaDataNodePath.java
+++ 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/DatabaseRuleMetaDataNodePath.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.mode.node.path.metadata;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
+import org.apache.shardingsphere.mode.node.path.version.VersionNodePath;
 
 /**
  * Database rule meta data node path.
@@ -30,10 +31,6 @@ public final class DatabaseRuleMetaDataNodePath {
     
     private static final String RULE_NODE = "rules";
     
-    private static final String VERSIONS_NODE = "versions";
-    
-    private static final String ACTIVE_VERSION_NODE = "active_version";
-    
     /**
      * Get database root path.
      *
@@ -76,7 +73,7 @@ public final class DatabaseRuleMetaDataNodePath {
      * @return database rule versions path
      */
     public static String getVersionsPath(final String databaseName, final 
String ruleTypeName, final String key) {
-        return String.join("/", getRulePath(databaseName, ruleTypeName, key), 
VERSIONS_NODE);
+        return new VersionNodePath(getRulePath(databaseName, ruleTypeName, 
key)).getVersionsPath();
     }
     
     /**
@@ -89,7 +86,7 @@ public final class DatabaseRuleMetaDataNodePath {
      * @return database rule next version
      */
     public static String getVersionPath(final String databaseName, final 
String ruleTypeName, final String key, final int version) {
-        return String.join("/", getVersionsPath(databaseName, ruleTypeName, 
key), String.valueOf(version));
+        return new VersionNodePath(getRulePath(databaseName, ruleTypeName, 
key)).getVersionPath(version);
     }
     
     /**
@@ -101,6 +98,6 @@ public final class DatabaseRuleMetaDataNodePath {
      * @return database rule active version path
      */
     public static String getActiveVersionPath(final String databaseName, final 
String ruleTypeName, final String key) {
-        return String.join("/", getRulePath(databaseName, ruleTypeName, key), 
ACTIVE_VERSION_NODE);
+        return new VersionNodePath(getRulePath(databaseName, ruleTypeName, 
key)).getActiveVersionPath();
     }
 }
diff --git 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/TableMetaDataNodePath.java
 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/TableMetaDataNodePath.java
index 57c82685521..2c5b6494eb6 100644
--- 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/TableMetaDataNodePath.java
+++ 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/TableMetaDataNodePath.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.mode.node.path.metadata;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
+import org.apache.shardingsphere.mode.node.path.version.VersionNodePath;
 
 import java.util.Optional;
 import java.util.regex.Matcher;
@@ -32,10 +33,6 @@ public final class TableMetaDataNodePath {
     
     private static final String TABLES_NODE = "tables";
     
-    private static final String VERSIONS_NODE = "versions";
-    
-    private static final String ACTIVE_VERSION_NODE = "active_version";
-    
     private static final String IDENTIFIER_PATTERN = "([\\w\\-]+)";
     
     /**
@@ -70,7 +67,7 @@ public final class TableMetaDataNodePath {
      * @return tables active version path
      */
     public static String getTableActiveVersionPath(final String databaseName, 
final String schemaName, final String tableName) {
-        return String.join("/", getTablePath(databaseName, schemaName, 
tableName), ACTIVE_VERSION_NODE);
+        return new VersionNodePath(getTablePath(databaseName, schemaName, 
tableName)).getActiveVersionPath();
     }
     
     /**
@@ -82,7 +79,7 @@ public final class TableMetaDataNodePath {
      * @return tables versions path
      */
     public static String getTableVersionsPath(final String databaseName, final 
String schemaName, final String tableName) {
-        return String.join("/", getTablePath(databaseName, schemaName, 
tableName), VERSIONS_NODE);
+        return new VersionNodePath(getTablePath(databaseName, schemaName, 
tableName)).getVersionsPath();
     }
     
     /**
diff --git 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/ViewMetaDataNodePath.java
 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/ViewMetaDataNodePath.java
index 91d467756a8..c5820e9bd32 100644
--- 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/ViewMetaDataNodePath.java
+++ 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/ViewMetaDataNodePath.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.mode.node.path.metadata;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
+import org.apache.shardingsphere.mode.node.path.version.VersionNodePath;
 
 import java.util.Optional;
 import java.util.regex.Matcher;
@@ -32,10 +33,6 @@ public final class ViewMetaDataNodePath {
     
     private static final String VIEWS_NODE = "views";
     
-    private static final String VERSIONS_NODE = "versions";
-    
-    private static final String ACTIVE_VERSION_NODE = "active_version";
-    
     private static final String IDENTIFIER_PATTERN = "([\\w\\-]+)";
     
     /**
@@ -70,7 +67,7 @@ public final class ViewMetaDataNodePath {
      * @return view active version path
      */
     public static String getViewActiveVersionPath(final String databaseName, 
final String schemaName, final String viewName) {
-        return String.join("/", getViewPath(databaseName, schemaName, 
viewName), ACTIVE_VERSION_NODE);
+        return new VersionNodePath(getViewPath(databaseName, schemaName, 
viewName)).getActiveVersionPath();
     }
     
     /**
@@ -82,7 +79,7 @@ public final class ViewMetaDataNodePath {
      * @return view versions path
      */
     public static String getViewVersionsPath(final String databaseName, final 
String schemaName, final String viewName) {
-        return String.join("/", getViewPath(databaseName, schemaName, 
viewName), VERSIONS_NODE);
+        return new VersionNodePath(getViewPath(databaseName, schemaName, 
viewName)).getVersionsPath();
     }
     
     /**
@@ -95,7 +92,7 @@ public final class ViewMetaDataNodePath {
      * @return view version path
      */
     public static String getViewVersionPath(final String databaseName, final 
String schemaName, final String viewName, final int version) {
-        return String.join("/", getViewVersionsPath(databaseName, schemaName, 
viewName), String.valueOf(version));
+        return new VersionNodePath(getViewPath(databaseName, schemaName, 
viewName)).getVersionPath(version);
     }
     
     /**
diff --git 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/tuple/YamlRepositoryTupleSwapperEngine.java
 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/tuple/YamlRepositoryTupleSwapperEngine.java
index 6cc5926d466..44607e65b98 100644
--- 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/tuple/YamlRepositoryTupleSwapperEngine.java
+++ 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/tuple/YamlRepositoryTupleSwapperEngine.java
@@ -202,12 +202,12 @@ public final class YamlRepositoryTupleSwapperEngine {
         String tupleName = getTupleName(field);
         RepositoryTupleKeyListNameGenerator tupleKeyListNameGenerator = 
field.getAnnotation(RepositoryTupleKeyListNameGenerator.class);
         if (null != tupleKeyListNameGenerator && fieldValue instanceof 
Collection) {
-            
ruleNodePath.getNamedItem(tupleName).getName(repositoryTuple.getKey()).ifPresent(optional
 -> ((Collection) fieldValue).add(repositoryTuple.getValue()));
+            
ruleNodePath.getNamedItem(tupleName).findName(repositoryTuple.getKey()).ifPresent(optional
 -> ((Collection) fieldValue).add(repositoryTuple.getValue()));
             return;
         }
         if (fieldValue instanceof Map) {
             Class<?> valueClass = (Class) ((ParameterizedType) 
field.getGenericType()).getActualTypeArguments()[1];
-            
ruleNodePath.getNamedItem(tupleName).getName(repositoryTuple.getKey())
+            
ruleNodePath.getNamedItem(tupleName).findName(repositoryTuple.getKey())
                     .ifPresent(optional -> ((Map) fieldValue).put(optional, 
YamlEngine.unmarshal(repositoryTuple.getValue(), valueClass)));
             return;
         }
diff --git 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/config/GlobalRuleNodePathTest.java
 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/config/GlobalRuleNodePathTest.java
index 781fa7c5816..8c0de9913d5 100644
--- 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/config/GlobalRuleNodePathTest.java
+++ 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/config/GlobalRuleNodePathTest.java
@@ -23,6 +23,7 @@ import java.util.Optional;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
 class GlobalRuleNodePathTest {
@@ -52,10 +53,29 @@ class GlobalRuleNodePathTest {
         assertThat(GlobalRuleNodePath.getActiveVersionPath("foo_rule"), 
is("/rules/foo_rule/active_version"));
     }
     
+    @Test
+    void assertFindRuleTypeNameFromActiveVersion() {
+        Optional<String> actual = 
GlobalRuleNodePath.findRuleTypeNameFromActiveVersion("/rules/foo_rule/active_version");
+        assertTrue(actual.isPresent());
+        assertThat(actual.get(), is("foo_rule"));
+    }
+    
+    @Test
+    void assertNotFindRuleTypeNameFromActiveVersion() {
+        Optional<String> actual = 
GlobalRuleNodePath.findRuleTypeNameFromActiveVersion("/rules/foo_rule/active_version/xxx");
+        assertFalse(actual.isPresent());
+    }
+    
     @Test
     void assertFindVersion() {
         Optional<String> actual = GlobalRuleNodePath.findVersion("foo_rule", 
"/rules/foo_rule/versions/0");
         assertTrue(actual.isPresent());
         assertThat(actual.get(), is("0"));
     }
+    
+    @Test
+    void assertNotFindVersion() {
+        Optional<String> actual = GlobalRuleNodePath.findVersion("foo_rule", 
"/rules/foo_rule/versions/0/xxx");
+        assertFalse(actual.isPresent());
+    }
 }
diff --git 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/config/rule/RuleNodePathTest.java
 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/config/rule/RuleNodePathTest.java
index 5b977e424af..82567756d4a 100644
--- 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/config/rule/RuleNodePathTest.java
+++ 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/config/rule/RuleNodePathTest.java
@@ -46,7 +46,7 @@ class RuleNodePathTest {
     void assertGetNamedItem() {
         NamedRuleItemNodePath namedRulePath = 
ruleNodePath.getNamedItem("tables");
         assertThat(namedRulePath.getPath("foo_tbl"), is("tables/foo_tbl"));
-        Optional<String> path = 
namedRulePath.getName("/metadata/foo_db/rules/foo/tables/foo_tbl/versions/0");
+        Optional<String> path = 
namedRulePath.findName("/metadata/foo_db/rules/foo/tables/foo_tbl/versions/0");
         assertTrue(path.isPresent());
         assertThat(path.get(), is("foo_tbl"));
     }
diff --git 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/config/rule/item/NamedRuleItemNodePathTest.java
 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/config/rule/item/NamedRuleItemNodePathTest.java
index 6a95cc0f0f3..7f104b8ec89 100644
--- 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/config/rule/item/NamedRuleItemNodePathTest.java
+++ 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/config/rule/item/NamedRuleItemNodePathTest.java
@@ -37,34 +37,40 @@ class NamedRuleItemNodePathTest {
     }
     
     @Test
-    void assertGetName() {
-        Optional<String> actual = 
converter.getName("/metadata/foo_db/rules/foo/tables/foo_tbl/versions/0");
+    void assertFindName() {
+        Optional<String> actual = 
converter.findName("/metadata/foo_db/rules/foo/tables/foo_tbl/versions/0");
         assertTrue(actual.isPresent());
         assertThat(actual.get(), is("foo_tbl"));
     }
     
     @Test
-    void assertGetNameWithInvalidPath() {
-        
assertFalse(converter.getName("/metadata/foo_db/rules/bar/tables/foo_tbl/versions/0").isPresent());
+    void assertFindNameWithInvalidPath() {
+        
assertFalse(converter.findName("/metadata/foo_db/rules/bar/tables/foo_tbl/versions/0").isPresent());
     }
     
     @Test
-    void assertGetNameByActiveVersion() {
-        Optional<String> actual = 
converter.getNameByActiveVersion("/metadata/foo_db/rules/foo/tables/foo_tbl/active_version");
+    void assertFindNameByActiveVersion() {
+        Optional<String> actual = 
converter.findNameByActiveVersion("/metadata/foo_db/rules/foo/tables/foo_tbl/active_version");
         assertTrue(actual.isPresent());
         assertThat(actual.get(), is("foo_tbl"));
     }
     
     @Test
-    void assertGetNameByActiveVersionWhenNotFound() {
-        Optional<String> actual = converter.getNameByActiveVersion("/invalid");
+    void assertFindNameByActiveVersionWhenNotFound() {
+        Optional<String> actual = 
converter.findNameByActiveVersion("/invalid");
         assertFalse(actual.isPresent());
     }
     
     @Test
-    void assertGetNameByItemPath() {
-        Optional<String> actual = 
converter.getNameByItemPath("/metadata/foo_db/rules/foo/tables/foo_tbl");
+    void assertFindNameByItemPath() {
+        Optional<String> actual = 
converter.findNameByItemPath("/metadata/foo_db/rules/foo/tables/foo_tbl");
         assertTrue(actual.isPresent());
         assertThat(actual.get(), is("foo_tbl"));
     }
+    
+    @Test
+    void assertNotFindNameByItemPath() {
+        Optional<String> actual = 
converter.findNameByItemPath("/metadata/foo_db/rules/foo/tables/foo_tbl/xxx");
+        assertFalse(actual.isPresent());
+    }
 }
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 d67d40368bb..8d9e23be09b 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
@@ -92,10 +92,10 @@ public final class RuleConfigurationChangedHandler {
     
     private Optional<String> getItemName(final DataChangedEvent event, final 
NamedRuleItemNodePath ruleItemNodePath) {
         if (Type.ADDED == event.getType() || Type.UPDATED == event.getType()) {
-            return ruleItemNodePath.getNameByActiveVersion(event.getKey());
+            return ruleItemNodePath.findNameByActiveVersion(event.getKey());
         }
         if (Type.DELETED == event.getType()) {
-            return ruleItemNodePath.getNameByItemPath(event.getKey());
+            return ruleItemNodePath.findNameByItemPath(event.getKey());
         }
         return Optional.empty();
     }
diff --git 
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/changed/executor/type/RuleItemAlteredBuildExecutor.java
 
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/changed/executor/type/RuleItemAlteredBuildExecutor.java
index eae8e56db86..387cd437a30 100644
--- 
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/changed/executor/type/RuleItemAlteredBuildExecutor.java
+++ 
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/changed/executor/type/RuleItemAlteredBuildExecutor.java
@@ -39,7 +39,7 @@ public final class RuleItemAlteredBuildExecutor implements 
RuleItemChangedBuildE
     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().getNameByActiveVersion(activeVersionPath);
+            Optional<String> itemName = 
entry.getValue().findNameByActiveVersion(activeVersionPath);
             if (itemName.isPresent()) {
                 return Optional.of(
                         new AlterNamedRuleItem(databaseName, itemName.get(), 
activeVersionPath, metaDataVersion.getNextActiveVersion(), 
ruleNodePath.getRoot().getRuleType() + "." + entry.getKey()));
diff --git 
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/changed/executor/type/RuleItemDroppedBuildExecutor.java
 
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/changed/executor/type/RuleItemDroppedBuildExecutor.java
index 39a323ba038..c07cd93d117 100644
--- 
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/changed/executor/type/RuleItemDroppedBuildExecutor.java
+++ 
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/changed/executor/type/RuleItemDroppedBuildExecutor.java
@@ -39,7 +39,7 @@ public final class RuleItemDroppedBuildExecutor implements 
RuleItemChangedBuildE
     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().getNameByItemPath(activeVersionPath);
+            Optional<String> itemName = 
entry.getValue().findNameByItemPath(activeVersionPath);
             if (itemName.isPresent()) {
                 return Optional.of(new DropNamedRuleItem(databaseName, 
itemName.get(), ruleNodePath.getRoot().getRuleType() + "." + entry.getKey()));
             }


Reply via email to