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 b14df6ceddb Refactor RuleItemAlteredBuildExecutor (#34861) b14df6ceddb is described below commit b14df6ceddb77aa290f9c91d1798cca4531c39f6 Author: Liang Zhang <zhangli...@apache.org> AuthorDate: Tue Mar 4 17:07:00 2025 +0800 Refactor RuleItemAlteredBuildExecutor (#34861) * Refactor RuleItemAlteredBuildExecutor * Refactor RuleItemAlteredBuildExecutor * Refactor RuleItemAlteredBuildExecutor * Refactor RuleItemAlteredBuildExecutor --- .../changed/executor/type/RuleItemAlteredBuildExecutor.java | 5 ++--- .../changed/executor/type/RuleItemDroppedBuildExecutor.java | 5 ++--- .../node/path/type/metadata/rule/DatabaseRuleNodePath.java | 5 +++-- .../path/type/metadata/rule/DatabaseRuleNodePathTest.java | 11 ++++++----- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/changed/executor/type/RuleItemAlteredBuildExecutor.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/changed/executor/type/RuleItemAlteredBuildExecutor.java index 72f571b8277..236137a727a 100644 --- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/changed/executor/type/RuleItemAlteredBuildExecutor.java +++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/changed/executor/type/RuleItemAlteredBuildExecutor.java @@ -18,7 +18,7 @@ package org.apache.shardingsphere.mode.metadata.changed.executor.type; import org.apache.shardingsphere.mode.metadata.changed.executor.RuleItemChangedBuildExecutor; -import org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathPattern; +import org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathSearcher; import org.apache.shardingsphere.mode.node.path.type.metadata.rule.DatabaseRuleItem; import org.apache.shardingsphere.mode.node.path.type.metadata.rule.DatabaseRuleNodePath; import org.apache.shardingsphere.mode.node.path.type.version.VersionNodePathParser; @@ -34,8 +34,7 @@ public final class RuleItemAlteredBuildExecutor implements RuleItemChangedBuildE @Override public Optional<DatabaseRuleNodePath> build(final DatabaseRuleNode databaseRuleNode, final String databaseName, final String path) { for (String each : databaseRuleNode.getNamedItems()) { - DatabaseRuleNodePath databaseRuleNodePath = new DatabaseRuleNodePath(databaseName, databaseRuleNode.getRuleType(), new DatabaseRuleItem(each, NodePathPattern.QUALIFIED_IDENTIFIER)); - Optional<String> itemName = new VersionNodePathParser(databaseRuleNodePath).findIdentifierByActiveVersionPath(path, 1); + Optional<String> itemName = NodePathSearcher.find(path, DatabaseRuleNodePath.createRuleItemNameSearchCriteria(databaseName, databaseRuleNode.getRuleType(), each)); if (itemName.isPresent()) { return Optional.of(new DatabaseRuleNodePath(databaseName, databaseRuleNode.getRuleType(), new DatabaseRuleItem(each, itemName.get()))); } diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/changed/executor/type/RuleItemDroppedBuildExecutor.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/changed/executor/type/RuleItemDroppedBuildExecutor.java index 884e7025ff7..96bd5e31ae5 100644 --- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/changed/executor/type/RuleItemDroppedBuildExecutor.java +++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/changed/executor/type/RuleItemDroppedBuildExecutor.java @@ -18,7 +18,6 @@ package org.apache.shardingsphere.mode.metadata.changed.executor.type; import org.apache.shardingsphere.mode.metadata.changed.executor.RuleItemChangedBuildExecutor; -import org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathPattern; import org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathSearcher; import org.apache.shardingsphere.mode.node.path.type.metadata.rule.DatabaseRuleItem; import org.apache.shardingsphere.mode.node.path.type.metadata.rule.DatabaseRuleNodePath; @@ -35,13 +34,13 @@ public final class RuleItemDroppedBuildExecutor implements RuleItemChangedBuildE @Override public Optional<DatabaseRuleNodePath> build(final DatabaseRuleNode databaseRuleNode, final String databaseName, final String path) { for (String each : databaseRuleNode.getNamedItems()) { - Optional<String> itemName = NodePathSearcher.find(path, DatabaseRuleNodePath.createRuleItemNameSearchCriteria(databaseRuleNode.getRuleType(), each)); + Optional<String> itemName = NodePathSearcher.find(path, DatabaseRuleNodePath.createRuleItemNameSearchCriteria(databaseName, databaseRuleNode.getRuleType(), each)); if (itemName.isPresent()) { return Optional.of(new DatabaseRuleNodePath(databaseName, databaseRuleNode.getRuleType(), new DatabaseRuleItem(each, itemName.get()))); } } for (String each : databaseRuleNode.getUniqueItems()) { - DatabaseRuleNodePath databaseRuleNodePath = new DatabaseRuleNodePath(NodePathPattern.IDENTIFIER, databaseRuleNode.getRuleType(), new DatabaseRuleItem(each)); + DatabaseRuleNodePath databaseRuleNodePath = new DatabaseRuleNodePath(databaseName, databaseRuleNode.getRuleType(), new DatabaseRuleItem(each)); if (new VersionNodePathParser(databaseRuleNodePath).isActiveVersionPath(path)) { return Optional.of(new DatabaseRuleNodePath(databaseName, databaseRuleNode.getRuleType(), new DatabaseRuleItem(each))); } diff --git a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/type/metadata/rule/DatabaseRuleNodePath.java b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/type/metadata/rule/DatabaseRuleNodePath.java index 30213b88eb9..f07d33227dc 100644 --- a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/type/metadata/rule/DatabaseRuleNodePath.java +++ b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/type/metadata/rule/DatabaseRuleNodePath.java @@ -60,11 +60,12 @@ public final class DatabaseRuleNodePath implements NodePath { /** * Create rule item name search criteria. * + * @param databaseName database name * @param ruleType rule type * @param ruleItemType rule item type * @return create search criteria */ - public static NodePathSearchCriteria createRuleItemNameSearchCriteria(final String ruleType, final String ruleItemType) { - return new NodePathSearchCriteria(new DatabaseRuleNodePath(NodePathPattern.IDENTIFIER, ruleType, new DatabaseRuleItem(ruleItemType, NodePathPattern.IDENTIFIER)), false, false, 2); + public static NodePathSearchCriteria createRuleItemNameSearchCriteria(final String databaseName, final String ruleType, final String ruleItemType) { + return new NodePathSearchCriteria(new DatabaseRuleNodePath(databaseName, ruleType, new DatabaseRuleItem(ruleItemType, NodePathPattern.QUALIFIED_IDENTIFIER)), false, true, 1); } } diff --git a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/metadata/rule/DatabaseRuleNodePathTest.java b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/metadata/rule/DatabaseRuleNodePathTest.java index ba0e42dbf1b..8b6efde82c7 100644 --- a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/metadata/rule/DatabaseRuleNodePathTest.java +++ b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/metadata/rule/DatabaseRuleNodePathTest.java @@ -59,10 +59,11 @@ class DatabaseRuleNodePathTest { @Test void assertCreateRuleItemNameSearchCriteria() { assertThat(NodePathSearcher.find("/metadata/foo_db/rules/foo_rule/foo_rule_item/item_value", - DatabaseRuleNodePath.createRuleItemNameSearchCriteria("foo_rule", "foo_rule_item")), is(Optional.of("item_value"))); - assertFalse(NodePathSearcher.find("/metadata/foo_db/rules/foo_rule/foo_rule_item", DatabaseRuleNodePath.createRuleItemNameSearchCriteria("foo_rule", "foo_rule_item")).isPresent()); - assertFalse(NodePathSearcher.find("/metadata/foo_db/rules/bar_rule/foo_rule_item/item_value", DatabaseRuleNodePath.createRuleItemNameSearchCriteria("foo_rule", "foo_rule_item")).isPresent()); - assertFalse(NodePathSearcher.find("/metadata/foo_db/rules/foo_rule/foo_rule_item/item_value/versions/0", - DatabaseRuleNodePath.createRuleItemNameSearchCriteria("foo_rule", "foo_rule_item")).isPresent()); + DatabaseRuleNodePath.createRuleItemNameSearchCriteria("foo_db", "foo_rule", "foo_rule_item")), is(Optional.of("item_value"))); + assertFalse(NodePathSearcher.find("/metadata/foo_db/rules/foo_rule/foo_rule_item", DatabaseRuleNodePath.createRuleItemNameSearchCriteria("foo_db", "foo_rule", "foo_rule_item")).isPresent()); + assertFalse(NodePathSearcher.find("/metadata/foo_db/rules/bar_rule/foo_rule_item/item_value", DatabaseRuleNodePath.createRuleItemNameSearchCriteria("foo_db", "foo_rule", "foo_rule_item")) + .isPresent()); + assertTrue(NodePathSearcher.find("/metadata/foo_db/rules/foo_rule/foo_rule_item/item_value/versions/0", + DatabaseRuleNodePath.createRuleItemNameSearchCriteria("foo_db", "foo_rule", "foo_rule_item")).isPresent()); } }