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")); } }