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 fe2d8e4c704 Refactor VersionNodePathGenerator.isActiveVersionPath 
(#34642)
fe2d8e4c704 is described below

commit fe2d8e4c70447eabbc4f4cc8cfeaeca7227f0652
Author: Liang Zhang <zhangli...@apache.org>
AuthorDate: Wed Feb 12 19:23:47 2025 +0800

    Refactor VersionNodePathGenerator.isActiveVersionPath (#34642)
    
    * Refactor VersionNodePathGenerator.isActiveVersionPath
    
    * Refactor VersionNodePathGenerator.isActiveVersionPath
---
 .../persist/config/RepositoryTuplePersistService.java         |  6 +-----
 .../mode/node/path/metadata/DatabaseMetaDataNodePath.java     | 11 -----------
 .../mode/node/path/version/VersionNodePathGenerator.java      | 10 ++++++++++
 .../mode/node/path/version/VersionNodePathGeneratorTest.java  |  8 ++++++++
 .../database/rule/RuleConfigurationChangedHandler.java        |  4 ++--
 5 files changed, 21 insertions(+), 18 deletions(-)

diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/config/RepositoryTuplePersistService.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/config/RepositoryTuplePersistService.java
index 4d67fcdf1ad..088bbef7ac4 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/config/RepositoryTuplePersistService.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/config/RepositoryTuplePersistService.java
@@ -25,7 +25,6 @@ import 
org.apache.shardingsphere.mode.spi.repository.PersistRepository;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.LinkedHashSet;
-import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
 /**
@@ -34,8 +33,6 @@ import java.util.stream.Collectors;
 @RequiredArgsConstructor
 public final class RepositoryTuplePersistService {
     
-    private static final String ACTIVE_VERSION_PATTERN = "/active_version$";
-    
     private final PersistRepository repository;
     
     /**
@@ -45,8 +42,7 @@ public final class RepositoryTuplePersistService {
      * @return loaded repository tuples
      */
     public Collection<RepositoryTuple> load(final String rootNode) {
-        Pattern pattern = Pattern.compile(ACTIVE_VERSION_PATTERN, 
Pattern.CASE_INSENSITIVE);
-        return loadNodes(rootNode).stream().filter(each -> 
pattern.matcher(each).find()).map(this::createRepositoryTuple).collect(Collectors.toList());
+        return 
loadNodes(rootNode).stream().filter(VersionNodePathGenerator::isActiveVersionPath).map(this::createRepositoryTuple).collect(Collectors.toList());
     }
     
     private Collection<String> loadNodes(final String rootNode) {
diff --git 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/DatabaseMetaDataNodePath.java
 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/DatabaseMetaDataNodePath.java
index 8e8d4c76da4..080f19817e9 100644
--- 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/DatabaseMetaDataNodePath.java
+++ 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/DatabaseMetaDataNodePath.java
@@ -35,8 +35,6 @@ public final class DatabaseMetaDataNodePath {
     
     private static final String SCHEMAS_NODE = "schemas";
     
-    private static final String ACTIVE_VERSION_NODE = "active_version";
-    
     /**
      * Get meta data root path.
      *
@@ -104,13 +102,4 @@ public final class DatabaseMetaDataNodePath {
         Matcher matcher = pattern.matcher(path);
         return matcher.find() ? Optional.of(matcher.group(2)) : 
Optional.empty();
     }
-    
-    /**
-     *  Is active version path.
-     * @param path path
-     * @return is active version path or not
-     */
-    public static boolean isActiveVersionPath(final String path) {
-        return path.endsWith(ACTIVE_VERSION_NODE);
-    }
 }
diff --git 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/version/VersionNodePathGenerator.java
 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/version/VersionNodePathGenerator.java
index fd17d259e3e..9752704501f 100644
--- 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/version/VersionNodePathGenerator.java
+++ 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/version/VersionNodePathGenerator.java
@@ -69,4 +69,14 @@ public final class VersionNodePathGenerator {
     public static String getVersionPath(final String activeVersionPath, final 
int activeVersion) {
         return String.join("/", activeVersionPath.replace(ACTIVE_VERSION, 
VERSIONS), String.valueOf(activeVersion));
     }
+    
+    /**
+     *  Is active version path.
+     *
+     * @param path path
+     * @return is active version path or not
+     */
+    public static boolean isActiveVersionPath(final String path) {
+        return path.endsWith(ACTIVE_VERSION);
+    }
 }
diff --git 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/version/VersionNodePathGeneratorTest.java
 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/version/VersionNodePathGeneratorTest.java
index 7d5fa15784e..751b3a60f2e 100644
--- 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/version/VersionNodePathGeneratorTest.java
+++ 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/version/VersionNodePathGeneratorTest.java
@@ -21,6 +21,8 @@ import org.junit.jupiter.api.Test;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 class VersionNodePathGeneratorTest {
     
@@ -43,4 +45,10 @@ class VersionNodePathGeneratorTest {
     void assertGetVersionPathFromActiveVersion() {
         
assertThat(VersionNodePathGenerator.getVersionPath("foo_rule/active_version", 
1), is("foo_rule/versions/1"));
     }
+    
+    @Test
+    void assertIsActiveVersionPath() {
+        
assertTrue(VersionNodePathGenerator.isActiveVersionPath("foo/active_version"));
+        
assertFalse(VersionNodePathGenerator.isActiveVersionPath("foo/versions"));
+    }
 }
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/RuleConfigurationChangedHandler.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/RuleConfigurationChangedHandler.java
index 0a05e618851..b493f4db279 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/RuleConfigurationChangedHandler.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/RuleConfigurationChangedHandler.java
@@ -24,7 +24,7 @@ import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.changed.RuleItemChangedBuilder;
 import 
org.apache.shardingsphere.mode.metadata.changed.executor.type.RuleItemAlteredBuildExecutor;
 import 
org.apache.shardingsphere.mode.metadata.changed.executor.type.RuleItemDroppedBuildExecutor;
-import 
org.apache.shardingsphere.mode.node.path.metadata.DatabaseMetaDataNodePath;
+import 
org.apache.shardingsphere.mode.node.path.version.VersionNodePathGenerator;
 import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterRuleItem;
 import org.apache.shardingsphere.mode.spi.rule.item.drop.DropRuleItem;
 
@@ -57,7 +57,7 @@ public final class RuleConfigurationChangedHandler {
             return;
         }
         if (Type.ADDED == event.getType() || Type.UPDATED == event.getType()) {
-            if (!DatabaseMetaDataNodePath.isActiveVersionPath(event.getKey())) 
{
+            if (!VersionNodePathGenerator.isActiveVersionPath(event.getKey())) 
{
                 return;
             }
             int version = Integer.parseInt(event.getValue());

Reply via email to