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 <[email protected]>
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());