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 c706ccef675 Refactor ViewMetaDataNodePath.getVersionNodePath() (#34586)
c706ccef675 is described below

commit c706ccef675af2220995f390d9fbb9776d74c298
Author: Liang Zhang <zhangli...@apache.org>
AuthorDate: Fri Feb 7 12:09:22 2025 +0800

    Refactor ViewMetaDataNodePath.getVersionNodePath() (#34586)
    
    * Refactor ViewMetaDataNodePath.getVersionNodePath()
    
    * Refactor ViewMetaDataNodePath.getVersionNodePath()
---
 .../service/ViewMetaDataPersistService.java        | 12 ++++----
 .../node/path/metadata/ViewMetaDataNodePath.java   | 35 ++++------------------
 .../path/metadata/ViewMetaDataNodePathTest.java    | 16 +++-------
 3 files changed, 16 insertions(+), 47 deletions(-)

diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/ViewMetaDataPersistService.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/ViewMetaDataPersistService.java
index a0cbf179016..9085f7ef08c 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/ViewMetaDataPersistService.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/ViewMetaDataPersistService.java
@@ -65,7 +65,8 @@ public final class ViewMetaDataPersistService {
      */
     public ShardingSphereView load(final String databaseName, final String 
schemaName, final String viewName) {
         Integer activeVersion = getActiveVersion(databaseName, schemaName, 
viewName);
-        String view = 
repository.query(ViewMetaDataNodePath.getViewVersionPath(databaseName, 
schemaName, viewName, null == activeVersion ? MetaDataVersion.DEFAULT_VERSION : 
activeVersion));
+        String view =
+                
repository.query(ViewMetaDataNodePath.getVersionNodePath(databaseName, 
schemaName, viewName).getVersionPath(null == activeVersion ? 
MetaDataVersion.DEFAULT_VERSION : activeVersion));
         return swapper.swapToObject(YamlEngine.unmarshal(view, 
YamlShardingSphereView.class));
     }
     
@@ -80,10 +81,11 @@ public final class ViewMetaDataPersistService {
         Collection<MetaDataVersion> metaDataVersions = new LinkedList<>();
         for (ShardingSphereView each : views) {
             String viewName = each.getName().toLowerCase();
-            int nextActiveVersion = 
metaDataVersionPersistService.getNextVersion(ViewMetaDataNodePath.getViewVersionsPath(databaseName,
 schemaName, viewName));
-            
repository.persist(ViewMetaDataNodePath.getViewVersionPath(databaseName, 
schemaName, viewName, nextActiveVersion), 
YamlEngine.marshal(swapper.swapToYamlConfiguration(each)));
+            int nextActiveVersion = 
metaDataVersionPersistService.getNextVersion(ViewMetaDataNodePath.getVersionNodePath(databaseName,
 schemaName, viewName).getVersionsPath());
+            
repository.persist(ViewMetaDataNodePath.getVersionNodePath(databaseName, 
schemaName, viewName).getVersionPath(nextActiveVersion),
+                    YamlEngine.marshal(swapper.swapToYamlConfiguration(each)));
             if (null == getActiveVersion(databaseName, schemaName, viewName)) {
-                
repository.persist(ViewMetaDataNodePath.getViewActiveVersionPath(databaseName, 
schemaName, viewName), String.valueOf(MetaDataVersion.DEFAULT_VERSION));
+                
repository.persist(ViewMetaDataNodePath.getVersionNodePath(databaseName, 
schemaName, viewName).getVersionsPath(), 
String.valueOf(MetaDataVersion.DEFAULT_VERSION));
             }
             metaDataVersions.add(new 
MetaDataVersion(ViewMetaDataNodePath.getViewPath(databaseName, schemaName, 
viewName), getActiveVersion(databaseName, schemaName, viewName), 
nextActiveVersion));
         }
@@ -91,7 +93,7 @@ public final class ViewMetaDataPersistService {
     }
     
     private Integer getActiveVersion(final String databaseName, final String 
schemaName, final String viewName) {
-        String value = 
repository.query(ViewMetaDataNodePath.getViewActiveVersionPath(databaseName, 
schemaName, viewName));
+        String value = 
repository.query(ViewMetaDataNodePath.getVersionNodePath(databaseName, 
schemaName, viewName).getActiveVersionPath());
         return Strings.isNullOrEmpty(value) ? null : Integer.parseInt(value);
     }
     
diff --git 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/ViewMetaDataNodePath.java
 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/ViewMetaDataNodePath.java
index c5820e9bd32..5c207e47ef4 100644
--- 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/ViewMetaDataNodePath.java
+++ 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/ViewMetaDataNodePath.java
@@ -59,40 +59,15 @@ public final class ViewMetaDataNodePath {
     }
     
     /**
-     * Get view active version path.
+     * Get view version node path.
      *
      * @param databaseName database name
      * @param schemaName schema name
      * @param viewName view name
-     * @return view active version path
+     * @return view version node path
      */
-    public static String getViewActiveVersionPath(final String databaseName, 
final String schemaName, final String viewName) {
-        return new VersionNodePath(getViewPath(databaseName, schemaName, 
viewName)).getActiveVersionPath();
-    }
-    
-    /**
-     * Get view versions path.
-     *
-     * @param databaseName database name
-     * @param schemaName schema name
-     * @param viewName view name
-     * @return view versions path
-     */
-    public static String getViewVersionsPath(final String databaseName, final 
String schemaName, final String viewName) {
-        return new VersionNodePath(getViewPath(databaseName, schemaName, 
viewName)).getVersionsPath();
-    }
-    
-    /**
-     * Get view version path.
-     *
-     * @param databaseName database name
-     * @param schemaName schema name
-     * @param viewName view name
-     * @param version version
-     * @return view version path
-     */
-    public static String getViewVersionPath(final String databaseName, final 
String schemaName, final String viewName, final int version) {
-        return new VersionNodePath(getViewPath(databaseName, schemaName, 
viewName)).getVersionPath(version);
+    public static VersionNodePath getVersionNodePath(final String 
databaseName, final String schemaName, final String viewName) {
+        return new VersionNodePath(getViewPath(databaseName, schemaName, 
viewName));
     }
     
     /**
@@ -124,7 +99,7 @@ public final class ViewMetaDataNodePath {
      * @return view name
      */
     public static Optional<String> findViewNameByActiveVersionPath(final 
String path) {
-        Pattern pattern = 
Pattern.compile(getViewActiveVersionPath(IDENTIFIER_PATTERN, 
IDENTIFIER_PATTERN, IDENTIFIER_PATTERN), Pattern.CASE_INSENSITIVE);
+        Pattern pattern = 
Pattern.compile(getVersionNodePath(IDENTIFIER_PATTERN, IDENTIFIER_PATTERN, 
IDENTIFIER_PATTERN).getActiveVersionPath(), Pattern.CASE_INSENSITIVE);
         Matcher matcher = pattern.matcher(path);
         return matcher.find() ? Optional.of(matcher.group(3)) : 
Optional.empty();
     }
diff --git 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/ViewMetaDataNodePathTest.java
 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/ViewMetaDataNodePathTest.java
index de1e92ce0b1..a2535e530a8 100644
--- 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/ViewMetaDataNodePathTest.java
+++ 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/ViewMetaDataNodePathTest.java
@@ -39,18 +39,10 @@ class ViewMetaDataNodePathTest {
     }
     
     @Test
-    void assertGetViewActiveVersionPath() {
-        assertThat(ViewMetaDataNodePath.getViewActiveVersionPath("foo_db", 
"foo_schema", "foo_view"), 
is("/metadata/foo_db/schemas/foo_schema/views/foo_view/active_version"));
-    }
-    
-    @Test
-    void assertGetViewVersionsPath() {
-        assertThat(ViewMetaDataNodePath.getViewVersionsPath("foo_db", 
"foo_schema", "foo_view"), 
is("/metadata/foo_db/schemas/foo_schema/views/foo_view/versions"));
-    }
-    
-    @Test
-    void assertGetViewVersionPath() {
-        assertThat(ViewMetaDataNodePath.getViewVersionPath("foo_db", 
"foo_schema", "foo_view", 0), 
is("/metadata/foo_db/schemas/foo_schema/views/foo_view/versions/0"));
+    void assertGetVersionNodePath() {
+        assertThat(ViewMetaDataNodePath.getVersionNodePath("foo_db", 
"foo_schema", "foo_view").getActiveVersionPath(), 
is("/metadata/foo_db/schemas/foo_schema/views/foo_view/active_version"));
+        assertThat(ViewMetaDataNodePath.getVersionNodePath("foo_db", 
"foo_schema", "foo_view").getVersionsPath(), 
is("/metadata/foo_db/schemas/foo_schema/views/foo_view/versions"));
+        assertThat(ViewMetaDataNodePath.getVersionNodePath("foo_db", 
"foo_schema", "foo_view").getVersionPath(0), 
is("/metadata/foo_db/schemas/foo_schema/views/foo_view/versions/0"));
     }
     
     @Test

Reply via email to