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 6e2d2d16470 Refactor MetaDataVersion (#34576)
6e2d2d16470 is described below

commit 6e2d2d16470a12410471a8a80c6bcbedf6d14647
Author: Liang Zhang <zhangli...@apache.org>
AuthorDate: Thu Feb 6 21:03:42 2025 +0800

    Refactor MetaDataVersion (#34576)
---
 .../infra/metadata/version/MetaDataVersion.java    | 30 +++++++++++-----------
 .../metadata/version/MetaDataVersionTest.java      | 12 ++++-----
 .../version/MetaDataVersionPersistService.java     |  4 +--
 .../database/DataSourceUnitPersistServiceTest.java |  4 +--
 .../database/DatabaseRulePersistServiceTest.java   |  6 ++---
 .../standalone/changed/RuleItemChangedBuilder.java |  2 +-
 .../type/RuleItemAlteredBuildExecutor.java         |  8 +++---
 .../type/RuleItemDroppedBuildExecutor.java         |  4 +--
 8 files changed, 35 insertions(+), 35 deletions(-)

diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/version/MetaDataVersion.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/version/MetaDataVersion.java
index 7d6d2684cf6..a303deb49a6 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/version/MetaDataVersion.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/version/MetaDataVersion.java
@@ -33,41 +33,41 @@ public final class MetaDataVersion {
     
     private static final String VERSIONS = "versions";
     
-    private final String key;
+    private final String path;
     
     private final Integer currentActiveVersion;
     
     private final Integer nextActiveVersion;
     
-    public MetaDataVersion(final String key) {
-        this(key, null, null);
+    public MetaDataVersion(final String path) {
+        this(path, null, null);
     }
     
     /**
-     * Get active version node path.
+     * Get active version path.
      *
      * @return path of active version node
      */
-    public String getActiveVersionNodePath() {
-        return String.join("/", key, ACTIVE_VERSION);
+    public String getActiveVersionPath() {
+        return String.join("/", path, ACTIVE_VERSION);
     }
     
     /**
-     * Get versions node path.
+     * Get versions path.
      *
-     * @param version version
-     * @return path of versions node
+     * @return path of versions
      */
-    public String getVersionsNodePath(final int version) {
-        return String.join("/", key, VERSIONS, String.valueOf(version));
+    public String getVersionsPath() {
+        return String.join("/", path, VERSIONS);
     }
     
     /**
-     * Get versions path.
+     * Get version path.
      *
-     * @return path of versions
+     * @param version version
+     * @return version path
      */
-    public String getVersionsPath() {
-        return String.join("/", key, VERSIONS);
+    public String getVersionPath(final int version) {
+        return String.join("/", getVersionsPath(), String.valueOf(version));
     }
 }
diff --git 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/version/MetaDataVersionTest.java
 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/version/MetaDataVersionTest.java
index e4f6ebe853a..71389546223 100644
--- 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/version/MetaDataVersionTest.java
+++ 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/version/MetaDataVersionTest.java
@@ -25,17 +25,17 @@ import static org.hamcrest.MatcherAssert.assertThat;
 class MetaDataVersionTest {
     
     @Test
-    void assertGetActiveVersionNodePath() {
-        assertThat(new MetaDataVersion("foo", 0, 
1).getActiveVersionNodePath(), is("foo/active_version"));
+    void assertGetActiveVersionPath() {
+        assertThat(new MetaDataVersion("foo", 0, 1).getActiveVersionPath(), 
is("foo/active_version"));
     }
     
     @Test
-    void assertGetVersionsNodePath() {
-        assertThat(new MetaDataVersion("foo", 0, 1).getVersionsNodePath(0), 
is("foo/versions/0"));
+    void assertGetVersionsPath() {
+        assertThat(new MetaDataVersion("foo", 0, 1).getVersionsPath(), 
is("foo/versions"));
     }
     
     @Test
-    void assertGetVersionsPath() {
-        assertThat(new MetaDataVersion("foo", 0, 1).getVersionsPath(), 
is("foo/versions"));
+    void assertGetVersionPath() {
+        assertThat(new MetaDataVersion("foo", 0, 1).getVersionPath(0), 
is("foo/versions/0"));
     }
 }
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/version/MetaDataVersionPersistService.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/version/MetaDataVersionPersistService.java
index 819254f2e93..a1323cee046 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/version/MetaDataVersionPersistService.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/version/MetaDataVersionPersistService.java
@@ -47,8 +47,8 @@ public final class MetaDataVersionPersistService {
             if 
(each.getNextActiveVersion().equals(each.getCurrentActiveVersion())) {
                 continue;
             }
-            repository.persist(each.getActiveVersionNodePath(), 
String.valueOf(each.getNextActiveVersion()));
-            getVersions(each.getVersionsPath()).stream().filter(version -> 
version < each.getNextActiveVersion()).forEach(version -> 
repository.delete(each.getVersionsNodePath(version)));
+            repository.persist(each.getActiveVersionPath(), 
String.valueOf(each.getNextActiveVersion()));
+            getVersions(each.getVersionsPath()).stream().filter(version -> 
version < each.getNextActiveVersion()).forEach(version -> 
repository.delete(each.getVersionPath(version)));
         }
     }
     
diff --git 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/config/database/DataSourceUnitPersistServiceTest.java
 
b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/config/database/DataSourceUnitPersistServiceTest.java
index 1388cb715b7..b5f95506adf 100644
--- 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/config/database/DataSourceUnitPersistServiceTest.java
+++ 
b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/config/database/DataSourceUnitPersistServiceTest.java
@@ -71,10 +71,10 @@ class DataSourceUnitPersistServiceTest {
         
when(repository.getChildrenKeys("/metadata/foo_db/data_sources/units/foo_ds/versions")).thenReturn(Collections.singletonList("10"));
         List<MetaDataVersion> actual = new 
ArrayList<>(persistService.persist("foo_db", dataSourcePropsMap));
         assertThat(actual.size(), is(2));
-        assertThat(actual.get(0).getActiveVersionNodePath(), 
is("/metadata/foo_db/data_sources/units/foo_ds/active_version"));
+        assertThat(actual.get(0).getActiveVersionPath(), 
is("/metadata/foo_db/data_sources/units/foo_ds/active_version"));
         assertThat(actual.get(0).getCurrentActiveVersion(), is(10));
         assertThat(actual.get(0).getNextActiveVersion(), is(11));
-        assertThat(actual.get(1).getActiveVersionNodePath(), 
is("/metadata/foo_db/data_sources/units/bar_ds/active_version"));
+        assertThat(actual.get(1).getActiveVersionPath(), 
is("/metadata/foo_db/data_sources/units/bar_ds/active_version"));
         assertNull(actual.get(1).getCurrentActiveVersion());
         assertThat(actual.get(1).getNextActiveVersion(), is(0));
     }
diff --git 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/config/database/DatabaseRulePersistServiceTest.java
 
b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/config/database/DatabaseRulePersistServiceTest.java
index 804edbd88ce..a42ef45a24e 100644
--- 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/config/database/DatabaseRulePersistServiceTest.java
+++ 
b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/config/database/DatabaseRulePersistServiceTest.java
@@ -66,7 +66,7 @@ class DatabaseRulePersistServiceTest {
     void assertPersistWithoutActiveVersion() {
         Collection<MetaDataVersion> actual = persistService.persist("foo_db", 
Arrays.asList(new MetaDataRuleConfigurationFixture("test"), new 
NoTupleRuleConfigurationFixture("test")));
         assertThat(actual.size(), is(1));
-        assertThat(actual.iterator().next().getKey(), 
is("/metadata/foo_db/rules/fixture/fixture"));
+        assertThat(actual.iterator().next().getActiveVersionPath(), 
is("/metadata/foo_db/rules/fixture/fixture/active_version"));
         assertNull(actual.iterator().next().getCurrentActiveVersion());
         assertThat(actual.iterator().next().getNextActiveVersion(), is(0));
     }
@@ -77,7 +77,7 @@ class DatabaseRulePersistServiceTest {
         
when(repository.getChildrenKeys("/metadata/foo_db/rules/fixture/fixture/versions")).thenReturn(Collections.singletonList("10"));
         Collection<MetaDataVersion> actual = persistService.persist("foo_db", 
Collections.singleton(new MetaDataRuleConfigurationFixture("test")));
         assertThat(actual.size(), is(1));
-        assertThat(actual.iterator().next().getKey(), 
is("/metadata/foo_db/rules/fixture/fixture"));
+        assertThat(actual.iterator().next().getActiveVersionPath(), 
is("/metadata/foo_db/rules/fixture/fixture/active_version"));
         assertThat(actual.iterator().next().getCurrentActiveVersion(), is(10));
         assertThat(actual.iterator().next().getNextActiveVersion(), is(11));
     }
@@ -92,7 +92,7 @@ class DatabaseRulePersistServiceTest {
     void assertDeleteWithRuleConfigurations() {
         Collection<MetaDataVersion> actual = persistService.delete("foo_db", 
Arrays.asList(new MetaDataRuleConfigurationFixture("test"), new 
NoTupleRuleConfigurationFixture("test")));
         assertThat(actual.size(), is(1));
-        assertThat(actual.iterator().next().getKey(), 
is("/metadata/foo_db/rules/fixture/fixture"));
+        assertThat(actual.iterator().next().getActiveVersionPath(), 
is("/metadata/foo_db/rules/fixture/fixture/active_version"));
         assertNull(actual.iterator().next().getCurrentActiveVersion());
         assertNull(actual.iterator().next().getNextActiveVersion());
     }
diff --git 
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/changed/RuleItemChangedBuilder.java
 
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/changed/RuleItemChangedBuilder.java
index 0a5a9121efe..60fba5d69b4 100644
--- 
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/changed/RuleItemChangedBuilder.java
+++ 
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/changed/RuleItemChangedBuilder.java
@@ -41,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(metaDataVersion.getActiveVersionNodePath()))
 {
+            if 
(!each.getRuleNodePath().getRoot().isValidatedPath(metaDataVersion.getActiveVersionPath()))
 {
                 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/type/RuleItemAlteredBuildExecutor.java
 
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/changed/executor/type/RuleItemAlteredBuildExecutor.java
index 9642a54248d..9c2e98af6ae 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
@@ -37,16 +37,16 @@ public final class RuleItemAlteredBuildExecutor implements 
RuleItemChangedBuildE
     @Override
     public Optional<AlterRuleItem> build(final RuleNodePath ruleNodePath, 
final String databaseName, final MetaDataVersion metaDataVersion) {
         for (Entry<String, NamedRuleItemNodePath> entry : 
ruleNodePath.getNamedItems().entrySet()) {
-            Optional<String> itemName = 
entry.getValue().getNameByActiveVersion(metaDataVersion.getActiveVersionNodePath());
+            Optional<String> itemName = 
entry.getValue().getNameByActiveVersion(metaDataVersion.getActiveVersionPath());
             if (itemName.isPresent()) {
                 return Optional.of(new AlterNamedRuleItem(databaseName,
-                        itemName.get(), 
metaDataVersion.getActiveVersionNodePath(), 
metaDataVersion.getNextActiveVersion(), ruleNodePath.getRoot().getRuleType() + 
"." + entry.getKey()));
+                        itemName.get(), 
metaDataVersion.getActiveVersionPath(), metaDataVersion.getNextActiveVersion(), 
ruleNodePath.getRoot().getRuleType() + "." + entry.getKey()));
             }
         }
         for (Entry<String, UniqueRuleItemNodePath> entry : 
ruleNodePath.getUniqueItems().entrySet()) {
-            if 
(entry.getValue().isActiveVersionPath(metaDataVersion.getActiveVersionNodePath()))
 {
+            if 
(entry.getValue().isActiveVersionPath(metaDataVersion.getActiveVersionPath())) {
                 return Optional.of(new AlterUniqueRuleItem(databaseName,
-                        metaDataVersion.getActiveVersionNodePath(), 
metaDataVersion.getNextActiveVersion(), ruleNodePath.getRoot().getRuleType() + 
"." + entry.getKey()));
+                        metaDataVersion.getActiveVersionPath(), 
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/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/changed/executor/type/RuleItemDroppedBuildExecutor.java
index 5d485a373a3..956b247cd2f 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
@@ -37,13 +37,13 @@ public final class RuleItemDroppedBuildExecutor implements 
RuleItemChangedBuildE
     @Override
     public Optional<DropRuleItem> build(final RuleNodePath ruleNodePath, final 
String databaseName, final MetaDataVersion metaDataVersion) {
         for (Entry<String, NamedRuleItemNodePath> entry : 
ruleNodePath.getNamedItems().entrySet()) {
-            Optional<String> itemName = 
entry.getValue().getNameByItemPath(metaDataVersion.getActiveVersionNodePath());
+            Optional<String> itemName = 
entry.getValue().getNameByItemPath(metaDataVersion.getActiveVersionPath());
             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(metaDataVersion.getActiveVersionNodePath()))
 {
+            if 
(entry.getValue().isActiveVersionPath(metaDataVersion.getActiveVersionPath())) {
                 return Optional.of(new DropUniqueRuleItem(databaseName, 
ruleNodePath.getRoot().getRuleType() + "." + entry.getKey()));
             }
         }

Reply via email to