You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2025/03/04 09:07:07 UTC
(shardingsphere) branch master updated: Refactor RuleItemAlteredBuildExecutor (#34861)
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 <zh...@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());
}
}