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