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