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 46df19432f5 Refactor DatabaseRuleMetaDataNodePath.getVersionNodePath() 
(#34583)
46df19432f5 is described below

commit 46df19432f5f60876b019e200bd133fc111c6560
Author: Liang Zhang <zhangli...@apache.org>
AuthorDate: Fri Feb 7 11:23:32 2025 +0800

    Refactor DatabaseRuleMetaDataNodePath.getVersionNodePath() (#34583)
---
 .../database/DatabaseRulePersistService.java       |  8 +++---
 .../metadata/DatabaseRuleMetaDataNodePath.java     | 33 +++-------------------
 .../metadata/DatabaseRuleMetaDataNodePathTest.java | 16 +++--------
 3 files changed, 12 insertions(+), 45 deletions(-)

diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/config/database/DatabaseRulePersistService.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/config/database/DatabaseRulePersistService.java
index 5a5d8ca7adb..52ed8e9b8c0 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/config/database/DatabaseRulePersistService.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/config/database/DatabaseRulePersistService.java
@@ -90,10 +90,10 @@ public final class DatabaseRulePersistService {
     private Collection<MetaDataVersion> persistDataNodes(final String 
databaseName, final String ruleName, final Collection<RepositoryTuple> 
repositoryTuples) {
         Collection<MetaDataVersion> result = new LinkedList<>();
         for (RepositoryTuple each : repositoryTuples) {
-            int nextVersion = 
metaDataVersionPersistService.getNextVersion(DatabaseRuleMetaDataNodePath.getVersionsPath(databaseName,
 ruleName, each.getKey()));
-            
repository.persist(DatabaseRuleMetaDataNodePath.getVersionPath(databaseName, 
ruleName, each.getKey(), nextVersion), each.getValue());
+            int nextVersion = 
metaDataVersionPersistService.getNextVersion(DatabaseRuleMetaDataNodePath.getVersionNodePath(databaseName,
 ruleName, each.getKey()).getVersionsPath());
+            
repository.persist(DatabaseRuleMetaDataNodePath.getVersionNodePath(databaseName,
 ruleName, each.getKey()).getVersionPath(nextVersion), each.getValue());
             if (null == getActiveVersion(databaseName, ruleName, 
each.getKey())) {
-                
repository.persist(DatabaseRuleMetaDataNodePath.getActiveVersionPath(databaseName,
 ruleName, each.getKey()), String.valueOf(MetaDataVersion.DEFAULT_VERSION));
+                
repository.persist(DatabaseRuleMetaDataNodePath.getVersionNodePath(databaseName,
 ruleName, each.getKey()).getActiveVersionPath(), 
String.valueOf(MetaDataVersion.DEFAULT_VERSION));
             }
             result.add(new 
MetaDataVersion(DatabaseRuleMetaDataNodePath.getRulePath(databaseName, 
ruleName, each.getKey()), getActiveVersion(databaseName, ruleName, 
each.getKey()), nextVersion));
         }
@@ -101,7 +101,7 @@ public final class DatabaseRulePersistService {
     }
     
     private Integer getActiveVersion(final String databaseName, final String 
ruleName, final String key) {
-        String value = 
repository.query(DatabaseRuleMetaDataNodePath.getActiveVersionPath(databaseName,
 ruleName, key));
+        String value = 
repository.query(DatabaseRuleMetaDataNodePath.getVersionNodePath(databaseName, 
ruleName, key).getActiveVersionPath());
         return Strings.isNullOrEmpty(value) ? null : Integer.parseInt(value);
     }
     
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 765875cca2a..dcbdac43dfd 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
@@ -65,39 +65,14 @@ public final class DatabaseRuleMetaDataNodePath {
     }
     
     /**
-     * Get database rule versions path.
+     * Get global rule version node path.
      *
      * @param databaseName database name
      * @param ruleTypeName rule type name
      * @param key key
-     * @return database rule versions path
+     * @return global rule version node path
      */
-    public static String getVersionsPath(final String databaseName, final 
String ruleTypeName, final String key) {
-        return new VersionNodePath(getRulePath(databaseName, ruleTypeName, 
key)).getVersionsPath();
-    }
-    
-    /**
-     * Get database rule version path.
-     *
-     * @param databaseName database name
-     * @param ruleTypeName rule type name
-     * @param key key
-     * @param version version
-     * @return database rule next version
-     */
-    public static String getVersionPath(final String databaseName, final 
String ruleTypeName, final String key, final int version) {
-        return new VersionNodePath(getRulePath(databaseName, ruleTypeName, 
key)).getVersionPath(version);
-    }
-    
-    /**
-     * Get database rule active version path.
-     *
-     * @param databaseName database name
-     * @param ruleTypeName rule type name
-     * @param key key
-     * @return database rule active version path
-     */
-    public static String getActiveVersionPath(final String databaseName, final 
String ruleTypeName, final String key) {
-        return new VersionNodePath(getRulePath(databaseName, ruleTypeName, 
key)).getActiveVersionPath();
+    public static VersionNodePath getVersionNodePath(final String 
databaseName, final String ruleTypeName, final String key) {
+        return new VersionNodePath(getRulePath(databaseName, ruleTypeName, 
key));
     }
 }
diff --git 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/DatabaseRuleMetaDataNodePathTest.java
 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/DatabaseRuleMetaDataNodePathTest.java
index e5ae9215866..d065326ca67 100644
--- 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/DatabaseRuleMetaDataNodePathTest.java
+++ 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/DatabaseRuleMetaDataNodePathTest.java
@@ -40,17 +40,9 @@ class DatabaseRuleMetaDataNodePathTest {
     }
     
     @Test
-    void assertGetVersionsPath() {
-        assertThat(DatabaseRuleMetaDataNodePath.getVersionsPath("foo_db", 
"sharding", "foo_key"), is("/metadata/foo_db/rules/sharding/foo_key/versions"));
-    }
-    
-    @Test
-    void assertGetVersionPath() {
-        assertThat(DatabaseRuleMetaDataNodePath.getVersionPath("foo_db", 
"foo_rule", "foo_tbl", 1), 
is("/metadata/foo_db/rules/foo_rule/foo_tbl/versions/1"));
-    }
-    
-    @Test
-    void assertGetActiveVersionPath() {
-        assertThat(DatabaseRuleMetaDataNodePath.getActiveVersionPath("foo_db", 
"foo_rule", "foo_tbl"), 
is("/metadata/foo_db/rules/foo_rule/foo_tbl/active_version"));
+    void assertGetVersionNodePath() {
+        assertThat(DatabaseRuleMetaDataNodePath.getVersionNodePath("foo_db", 
"sharding", "foo_key").getActiveVersionPath(), 
is("/metadata/foo_db/rules/sharding/foo_key/active_version"));
+        assertThat(DatabaseRuleMetaDataNodePath.getVersionNodePath("foo_db", 
"sharding", "foo_key").getVersionsPath(), 
is("/metadata/foo_db/rules/sharding/foo_key/versions"));
+        assertThat(DatabaseRuleMetaDataNodePath.getVersionNodePath("foo_db", 
"sharding", "foo_key").getVersionPath(0), 
is("/metadata/foo_db/rules/sharding/foo_key/versions/0"));
     }
 }

Reply via email to