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

chengzhang 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 9374ce6c72c Refactor MetaDataVersion (#31329)
9374ce6c72c is described below

commit 9374ce6c72c7f40f0e4f2d25675e652aec642037
Author: Liang Zhang <[email protected]>
AuthorDate: Tue May 21 18:00:45 2024 +0800

    Refactor MetaDataVersion (#31329)
---
 .../infra/metadata/version/MetaDataVersion.java    | 20 +++++++++++
 .../metadata/version/MetaDataVersionTest.java}     | 42 ++++++++--------------
 .../version/MetaDataVersionPersistService.java     |  8 ++---
 3 files changed, 37 insertions(+), 33 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 d2c7cae8296..3f1c9d2d4ee 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
@@ -32,6 +32,8 @@ public final class MetaDataVersion {
     
     private static final String ACTIVE_VERSION = "active_version";
     
+    private static final String VERSIONS = "versions";
+    
     private final String key;
     
     private final String currentActiveVersion;
@@ -44,6 +46,24 @@ public final class MetaDataVersion {
         nextActiveVersion = "";
     }
     
+    /**
+     * Get active version node path.
+     *
+     * @return path of active version node
+     */
+    public String getActiveVersionNodePath() {
+        return String.join("/", key, ACTIVE_VERSION);
+    }
+    
+    /**
+     * Get versions node path.
+     *
+     * @return path of versions node
+     */
+    public String getVersionsNodePath() {
+        return String.join("/", key, VERSIONS, currentActiveVersion);
+    }
+    
     /**
      * Get active version keys.
      *
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/version/MetaDataVersion.java
 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/version/MetaDataVersionTest.java
similarity index 53%
copy from 
infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/version/MetaDataVersion.java
copy to 
infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/version/MetaDataVersionTest.java
index d2c7cae8296..dda82a83f5d 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/version/MetaDataVersion.java
+++ 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/version/MetaDataVersionTest.java
@@ -17,39 +17,27 @@
 
 package org.apache.shardingsphere.infra.metadata.version;
 
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
+import org.junit.jupiter.api.Test;
 
 import java.util.Arrays;
-import java.util.Collection;
 
-/**
- * Meta data version.
- */
-@RequiredArgsConstructor
-@Getter
-public final class MetaDataVersion {
-    
-    private static final String ACTIVE_VERSION = "active_version";
-    
-    private final String key;
-    
-    private final String currentActiveVersion;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+class MetaDataVersionTest {
     
-    private final String nextActiveVersion;
+    @Test
+    void assertGetActiveVersionNodePath() {
+        assertThat(new MetaDataVersion("foo", "0", 
"1").getActiveVersionNodePath(), is("foo/active_version"));
+    }
     
-    public MetaDataVersion(final String key) {
-        this.key = key;
-        currentActiveVersion = "";
-        nextActiveVersion = "";
+    @Test
+    void assertGetVersionsNodePath() {
+        assertThat(new MetaDataVersion("foo", "0", "1").getVersionsNodePath(), 
is("foo/versions/0"));
     }
     
-    /**
-     * Get active version keys.
-     *
-     * @return active version keys
-     */
-    public Collection<String> getActiveVersionKeys() {
-        return Arrays.asList(String.join("/", key, ACTIVE_VERSION), 
String.join("/", key, ACTIVE_VERSION, currentActiveVersion));
+    @Test
+    void assertGetActiveVersionKeys() {
+        assertThat(new MetaDataVersion("foo", "0", 
"1").getActiveVersionKeys(), is(Arrays.asList("foo/active_version", 
"foo/active_version/0")));
     }
 }
diff --git 
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/version/MetaDataVersionPersistService.java
 
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/version/MetaDataVersionPersistService.java
index 92c1690107f..15d18245192 100644
--- 
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/version/MetaDataVersionPersistService.java
+++ 
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/version/MetaDataVersionPersistService.java
@@ -30,10 +30,6 @@ import java.util.Collection;
 @RequiredArgsConstructor
 public final class MetaDataVersionPersistService implements 
MetaDataVersionBasedPersistService {
     
-    private static final String ACTIVE_VERSION = "/active_version";
-    
-    private static final String VERSIONS = "/versions/";
-    
     private final PersistRepository repository;
     
     @Override
@@ -42,8 +38,8 @@ public final class MetaDataVersionPersistService implements 
MetaDataVersionBased
             if 
(each.getNextActiveVersion().equals(each.getCurrentActiveVersion())) {
                 continue;
             }
-            repository.persist(each.getKey() + ACTIVE_VERSION, 
each.getNextActiveVersion());
-            repository.delete(each.getKey() + VERSIONS + 
each.getCurrentActiveVersion());
+            repository.persist(each.getActiveVersionNodePath(), 
each.getNextActiveVersion());
+            repository.delete(each.getVersionsNodePath());
         }
     }
     

Reply via email to