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 46b31c5f2a3 Add NodePathSearcher.get() (#34897)
46b31c5f2a3 is described below

commit 46b31c5f2a3f55ae18d8359b20e65db1d0957123
Author: Liang Zhang <[email protected]>
AuthorDate: Thu Mar 6 12:20:48 2025 +0800

    Add NodePathSearcher.get() (#34897)
---
 .../path/engine/searcher/NodePathSearcher.java     | 13 +++++++-
 .../database/TableMetadataNodePathTest.java        | 10 +++---
 .../database/ViewMetadataNodePathTest.java         |  4 +--
 .../metadata/rule/DatabaseRuleNodePathTest.java    |  6 ++--
 .../metadata/storage/StorageNodeNodePathTest.java  |  4 +--
 .../metadata/storage/StorageUnitNodePathTest.java  |  4 +--
 .../type/node/compute/label/LabelNodePathTest.java |  4 +--
 .../process/KillProcessTriggerNodePathTest.java    |  9 ++----
 .../ShowProcessListTriggerNodePathTest.java        | 10 +++---
 .../node/compute/status/OnlineNodePathTest.java    |  6 ++--
 .../node/compute/status/StatusNodePathTest.java    |  4 +--
 .../workerid/ComputeNodeWorkerIDNodePathTest.java  |  4 +--
 .../storage/QualifiedDataSourceNodePathTest.java   |  6 ++--
 .../DatabaseListenerCoordinatorNodePathTest.java   |  4 +--
 .../statistics/StatisticsDataNodePathTest.java     | 37 +++++++++++-----------
 .../datasource/StorageNodeChangedHandler.java      | 13 +++-----
 .../datasource/StorageUnitChangedHandler.java      | 12 +++----
 .../database/metadata/SchemaChangedHandler.java    | 11 ++-----
 .../database/metadata/TableChangedHandler.java     | 17 +++-------
 .../database/metadata/ViewChangedHandler.java      | 13 +++-----
 .../global/type/ComputeNodeOnlineHandler.java      |  2 +-
 21 files changed, 75 insertions(+), 118 deletions(-)

diff --git 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/engine/searcher/NodePathSearcher.java
 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/engine/searcher/NodePathSearcher.java
index efab306f0e6..5dd9e083d29 100644
--- 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/engine/searcher/NodePathSearcher.java
+++ 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/engine/searcher/NodePathSearcher.java
@@ -47,7 +47,18 @@ public final class NodePathSearcher {
     }
     
     /**
-     * Whether to matched path.
+     * Get node segment.
+     *
+     * @param path to be searched path
+     * @param criteria node path search criteria
+     * @return got node segment
+     */
+    public static String get(final String path, final NodePathSearchCriteria 
criteria) {
+        return find(path, criteria).orElseThrow(() -> new 
IllegalArgumentException(String.format("Can not find node segment in path: %s", 
path)));
+    }
+    
+    /**
+     * Whether to match the path.
      *
      * @param path to be searched path
      * @param criteria node path search criteria
diff --git 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/metadata/database/TableMetadataNodePathTest.java
 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/metadata/database/TableMetadataNodePathTest.java
index 8b5f8d52101..0b141cf4b1c 100644
--- 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/metadata/database/TableMetadataNodePathTest.java
+++ 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/metadata/database/TableMetadataNodePathTest.java
@@ -22,8 +22,6 @@ import 
org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathSearcher
 import org.apache.shardingsphere.mode.node.path.type.version.VersionNodePath;
 import org.junit.jupiter.api.Test;
 
-import java.util.Optional;
-
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -49,22 +47,22 @@ class TableMetadataNodePathTest {
     
     @Test
     void assertCreateDatabaseSearchCriteria() {
-        
assertThat(NodePathSearcher.find("/metadata/foo_db/schemas/foo_schema", 
TableMetadataNodePath.createDatabaseSearchCriteria()), 
is(Optional.of("foo_db")));
+        assertThat(NodePathSearcher.get("/metadata/foo_db/schemas/foo_schema", 
TableMetadataNodePath.createDatabaseSearchCriteria()), is("foo_db"));
         assertFalse(NodePathSearcher.find("/xxx/foo_db/schemas/foo_schema", 
TableMetadataNodePath.createDatabaseSearchCriteria()).isPresent());
     }
     
     @Test
     void assertCreateSchemaSearchCriteria() {
-        
assertThat(NodePathSearcher.find("/metadata/foo_db/schemas/foo_schema", 
TableMetadataNodePath.createSchemaSearchCriteria("foo_db", false)), 
is(Optional.of("foo_schema")));
+        assertThat(NodePathSearcher.get("/metadata/foo_db/schemas/foo_schema", 
TableMetadataNodePath.createSchemaSearchCriteria("foo_db", false)), 
is("foo_schema"));
+        
assertThat(NodePathSearcher.get("/metadata/foo_db/schemas/foo_schema/tables", 
TableMetadataNodePath.createSchemaSearchCriteria("foo_db", true)), 
is("foo_schema"));
         
assertFalse(NodePathSearcher.find("/metadata/foo_db/schemas/foo_schema/tables", 
TableMetadataNodePath.createSchemaSearchCriteria("foo_db", false)).isPresent());
-        
assertThat(NodePathSearcher.find("/metadata/foo_db/schemas/foo_schema/tables", 
TableMetadataNodePath.createSchemaSearchCriteria("foo_db", true)), 
is(Optional.of("foo_schema")));
         
assertFalse(NodePathSearcher.find("/xxx/foo_db/schemas/foo_schema/tables", 
TableMetadataNodePath.createSchemaSearchCriteria("foo_db", true)).isPresent());
         
assertFalse(NodePathSearcher.find("/metadata/bar_db/schemas/foo_schema", 
TableMetadataNodePath.createSchemaSearchCriteria("foo_db", false)).isPresent());
     }
     
     @Test
     void assertCreateTableSearchCriteria() {
-        
assertThat(NodePathSearcher.find("/metadata/foo_db/schemas/foo_schema/tables/foo_tbl",
 TableMetadataNodePath.createTableSearchCriteria("foo_db", "foo_schema")), 
is(Optional.of("foo_tbl")));
+        
assertThat(NodePathSearcher.get("/metadata/foo_db/schemas/foo_schema/tables/foo_tbl",
 TableMetadataNodePath.createTableSearchCriteria("foo_db", "foo_schema")), 
is("foo_tbl"));
         
assertFalse(NodePathSearcher.find("/xxx/foo_db/schemas/foo_schema/tables/foo_tbl",
 TableMetadataNodePath.createTableSearchCriteria("foo_db", 
"foo_schema")).isPresent());
         
assertTrue(NodePathSearcher.isMatchedPath("/metadata/foo_db/schemas/foo_schema/tables/foo_tbl",
 TableMetadataNodePath.createTableSearchCriteria("foo_db", "foo_schema")));
         
assertTrue(NodePathSearcher.isMatchedPath("/metadata/foo_db/schemas/foo_schema/tables/foo_tbl/versions/0",
 TableMetadataNodePath.createTableSearchCriteria("foo_db", "foo_schema")));
diff --git 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/metadata/database/ViewMetadataNodePathTest.java
 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/metadata/database/ViewMetadataNodePathTest.java
index 1359874ba5b..5ba8525a93a 100644
--- 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/metadata/database/ViewMetadataNodePathTest.java
+++ 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/metadata/database/ViewMetadataNodePathTest.java
@@ -22,8 +22,6 @@ import 
org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathSearcher
 import org.apache.shardingsphere.mode.node.path.type.version.VersionNodePath;
 import org.junit.jupiter.api.Test;
 
-import java.util.Optional;
-
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -49,7 +47,7 @@ class ViewMetadataNodePathTest {
     
     @Test
     void assertCreateViewSearchCriteria() {
-        
assertThat(NodePathSearcher.find("/metadata/foo_db/schemas/foo_schema/views/foo_view",
 ViewMetadataNodePath.createViewSearchCriteria()), is(Optional.of("foo_view")));
+        
assertThat(NodePathSearcher.get("/metadata/foo_db/schemas/foo_schema/views/foo_view",
 ViewMetadataNodePath.createViewSearchCriteria()), is("foo_view"));
         
assertFalse(NodePathSearcher.find("/xxx/foo_db/schemas/foo_schema/views/foo_view",
 ViewMetadataNodePath.createViewSearchCriteria()).isPresent());
         
assertTrue(NodePathSearcher.isMatchedPath("/metadata/foo_db/schemas/foo_schema/views/foo_view",
 ViewMetadataNodePath.createViewSearchCriteria()));
         
assertFalse(NodePathSearcher.isMatchedPath("/metadata/foo_db/schemas/foo_schema/views/foo_view/versions/0",
 ViewMetadataNodePath.createViewSearchCriteria()));
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 0ccac8eb7a1..f8c349fc4df 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
@@ -22,8 +22,6 @@ import 
org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathSearcher
 import org.apache.shardingsphere.mode.node.path.type.version.VersionNodePath;
 import org.junit.jupiter.api.Test;
 
-import java.util.Optional;
-
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -51,8 +49,8 @@ class DatabaseRuleNodePathTest {
     
     @Test
     void assertCreateRuleItemNameSearchCriteria() {
-        
assertThat(NodePathSearcher.find("/metadata/foo_db/rules/foo_rule/foo_rule_item/item_value",
-                
DatabaseRuleNodePath.createRuleItemNameSearchCriteria("foo_db", "foo_rule", 
"foo_rule_item", false)), is(Optional.of("item_value")));
+        
assertThat(NodePathSearcher.get("/metadata/foo_db/rules/foo_rule/foo_rule_item/item_value",
+                
DatabaseRuleNodePath.createRuleItemNameSearchCriteria("foo_db", "foo_rule", 
"foo_rule_item", false)), is("item_value"));
         
assertFalse(NodePathSearcher.find("/metadata/foo_db/rules/foo_rule/foo_rule_item",
                 
DatabaseRuleNodePath.createRuleItemNameSearchCriteria("foo_db", "foo_rule", 
"foo_rule_item", false)).isPresent());
         
assertFalse(NodePathSearcher.find("/metadata/foo_db/rules/bar_rule/foo_rule_item/item_value",
diff --git 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/metadata/storage/StorageNodeNodePathTest.java
 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/metadata/storage/StorageNodeNodePathTest.java
index 0f8aeac99c8..c590671766a 100644
--- 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/metadata/storage/StorageNodeNodePathTest.java
+++ 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/metadata/storage/StorageNodeNodePathTest.java
@@ -21,8 +21,6 @@ import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerat
 import 
org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathSearcher;
 import org.junit.jupiter.api.Test;
 
-import java.util.Optional;
-
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -37,7 +35,7 @@ class StorageNodeNodePathTest {
     
     @Test
     void assertCreateStorageNodeSearchCriteria() {
-        
assertThat(NodePathSearcher.find("/metadata/foo_db/data_sources/nodes/foo_ds", 
StorageNodeNodePath.createStorageNodeSearchCriteria("foo_db")), 
is(Optional.of("foo_ds")));
+        
assertThat(NodePathSearcher.get("/metadata/foo_db/data_sources/nodes/foo_ds", 
StorageNodeNodePath.createStorageNodeSearchCriteria("foo_db")), is("foo_ds"));
         
assertFalse(NodePathSearcher.find("/xxx/foo_db/data_sources/nodes/foo_ds", 
StorageNodeNodePath.createStorageNodeSearchCriteria("foo_db")).isPresent());
         
assertFalse(NodePathSearcher.find("/metadata/bar_db/data_sources/nodes/foo_ds", 
StorageNodeNodePath.createStorageNodeSearchCriteria("foo_db")).isPresent());
     }
diff --git 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/metadata/storage/StorageUnitNodePathTest.java
 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/metadata/storage/StorageUnitNodePathTest.java
index c197d38c6f4..951b50b9ff9 100644
--- 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/metadata/storage/StorageUnitNodePathTest.java
+++ 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/metadata/storage/StorageUnitNodePathTest.java
@@ -21,8 +21,6 @@ import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerat
 import 
org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathSearcher;
 import org.junit.jupiter.api.Test;
 
-import java.util.Optional;
-
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -37,7 +35,7 @@ class StorageUnitNodePathTest {
     
     @Test
     void assertCreateStorageUnitSearchCriteria() {
-        
assertThat(NodePathSearcher.find("/metadata/foo_db/data_sources/units/foo_ds", 
StorageUnitNodePath.createStorageUnitSearchCriteria("foo_db")), 
is(Optional.of("foo_ds")));
+        
assertThat(NodePathSearcher.get("/metadata/foo_db/data_sources/units/foo_ds", 
StorageUnitNodePath.createStorageUnitSearchCriteria("foo_db")), is("foo_ds"));
         
assertFalse(NodePathSearcher.find("/xxx/foo_db/data_sources/units/foo_ds", 
StorageUnitNodePath.createStorageUnitSearchCriteria("foo_db")).isPresent());
         
assertFalse(NodePathSearcher.find("/metadata/bar_db/data_sources/units/foo_ds", 
StorageUnitNodePath.createStorageUnitSearchCriteria("foo_db")).isPresent());
     }
diff --git 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/node/compute/label/LabelNodePathTest.java
 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/node/compute/label/LabelNodePathTest.java
index 521ad4b4770..7eab8023cec 100644
--- 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/node/compute/label/LabelNodePathTest.java
+++ 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/node/compute/label/LabelNodePathTest.java
@@ -21,8 +21,6 @@ import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerat
 import 
org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathSearcher;
 import org.junit.jupiter.api.Test;
 
-import java.util.Optional;
-
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 
@@ -35,6 +33,6 @@ class LabelNodePathTest {
     
     @Test
     void assertCreateInstanceIdSearchCriteria() {
-        
assertThat(NodePathSearcher.find("/nodes/compute_nodes/labels/foo_instance_id", 
LabelNodePath.createInstanceIdSearchCriteria()), 
is(Optional.of("foo_instance_id")));
+        
assertThat(NodePathSearcher.get("/nodes/compute_nodes/labels/foo_instance_id", 
LabelNodePath.createInstanceIdSearchCriteria()), is("foo_instance_id"));
     }
 }
diff --git 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/node/compute/process/KillProcessTriggerNodePathTest.java
 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/node/compute/process/KillProcessTriggerNodePathTest.java
index 57377945529..887f827a04d 100644
--- 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/node/compute/process/KillProcessTriggerNodePathTest.java
+++ 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/node/compute/process/KillProcessTriggerNodePathTest.java
@@ -21,8 +21,6 @@ import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerat
 import 
org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathSearcher;
 import org.junit.jupiter.api.Test;
 
-import java.util.Optional;
-
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -39,8 +37,8 @@ class KillProcessTriggerNodePathTest {
     
     @Test
     void assertCreateInstanceIdSearchCriteria() {
-        
assertThat(NodePathSearcher.find("/nodes/compute_nodes/kill_process_trigger/foo_instance_id:foo_process_id",
-                KillProcessTriggerNodePath.createInstanceIdSearchCriteria()), 
is(Optional.of("foo_instance_id")));
+        
assertThat(NodePathSearcher.get("/nodes/compute_nodes/kill_process_trigger/foo_instance_id:foo_process_id",
+                KillProcessTriggerNodePath.createInstanceIdSearchCriteria()), 
is("foo_instance_id"));
         
assertFalse(NodePathSearcher.find("/nodes/compute_nodes/kill_process_trigger/foo_instance_id",
 KillProcessTriggerNodePath.createInstanceIdSearchCriteria()).isPresent());
         
assertTrue(NodePathSearcher.isMatchedPath("/nodes/compute_nodes/kill_process_trigger/foo_instance_id:foo_process_id",
 KillProcessTriggerNodePath.createInstanceIdSearchCriteria()));
         
assertFalse(NodePathSearcher.isMatchedPath("/nodes/compute_nodes/kill_process_trigger/foo_instance_id",
 KillProcessTriggerNodePath.createInstanceIdSearchCriteria()));
@@ -48,8 +46,7 @@ class KillProcessTriggerNodePathTest {
     
     @Test
     void assertCreateProcessIdSearchCriteria() {
-        
assertThat(NodePathSearcher.find("/nodes/compute_nodes/kill_process_trigger/foo_instance_id:foo_process_id",
-                KillProcessTriggerNodePath.createProcessIdSearchCriteria()), 
is(Optional.of("foo_process_id")));
+        
assertThat(NodePathSearcher.get("/nodes/compute_nodes/kill_process_trigger/foo_instance_id:foo_process_id",
 KillProcessTriggerNodePath.createProcessIdSearchCriteria()), 
is("foo_process_id"));
         
assertFalse(NodePathSearcher.find("/nodes/compute_nodes/kill_process_trigger/foo_instance_id",
 KillProcessTriggerNodePath.createProcessIdSearchCriteria()).isPresent());
         
assertTrue(NodePathSearcher.isMatchedPath("/nodes/compute_nodes/kill_process_trigger/foo_instance_id:foo_process_id",
 KillProcessTriggerNodePath.createProcessIdSearchCriteria()));
         
assertFalse(NodePathSearcher.isMatchedPath("/nodes/compute_nodes/kill_process_trigger/foo_instance_id",
 KillProcessTriggerNodePath.createProcessIdSearchCriteria()));
diff --git 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/node/compute/process/ShowProcessListTriggerNodePathTest.java
 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/node/compute/process/ShowProcessListTriggerNodePathTest.java
index b46479d0264..fec9c39c553 100644
--- 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/node/compute/process/ShowProcessListTriggerNodePathTest.java
+++ 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/node/compute/process/ShowProcessListTriggerNodePathTest.java
@@ -21,8 +21,6 @@ import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerat
 import 
org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathSearcher;
 import org.junit.jupiter.api.Test;
 
-import java.util.Optional;
-
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -39,8 +37,8 @@ class ShowProcessListTriggerNodePathTest {
     
     @Test
     void assertCreateInstanceIdSearchCriteria() {
-        
assertThat(NodePathSearcher.find("/nodes/compute_nodes/show_process_list_trigger/foo_instance_id:foo_process_id",
-                
ShowProcessListTriggerNodePath.createInstanceIdSearchCriteria()), 
is(Optional.of("foo_instance_id")));
+        
assertThat(NodePathSearcher.get("/nodes/compute_nodes/show_process_list_trigger/foo_instance_id:foo_process_id",
+                
ShowProcessListTriggerNodePath.createInstanceIdSearchCriteria()), 
is("foo_instance_id"));
         
assertFalse(NodePathSearcher.find("/nodes/compute_nodes/show_process_list_trigger/foo_instance_id",
 ShowProcessListTriggerNodePath.createInstanceIdSearchCriteria()).isPresent());
         
assertTrue(NodePathSearcher.isMatchedPath("/nodes/compute_nodes/show_process_list_trigger/foo_instance_id:foo_process_id",
 ShowProcessListTriggerNodePath.createInstanceIdSearchCriteria()));
         
assertFalse(NodePathSearcher.isMatchedPath("/nodes/compute_nodes/show_process_list_trigger/foo_instance_id",
 ShowProcessListTriggerNodePath.createInstanceIdSearchCriteria()));
@@ -48,8 +46,8 @@ class ShowProcessListTriggerNodePathTest {
     
     @Test
     void assertCreateProcessIdSearchCriteria() {
-        
assertThat(NodePathSearcher.find("/nodes/compute_nodes/show_process_list_trigger/foo_instance_id:foo_process_id",
-                
ShowProcessListTriggerNodePath.createProcessIdSearchCriteria()), 
is(Optional.of("foo_process_id")));
+        
assertThat(NodePathSearcher.get("/nodes/compute_nodes/show_process_list_trigger/foo_instance_id:foo_process_id",
+                
ShowProcessListTriggerNodePath.createProcessIdSearchCriteria()), 
is("foo_process_id"));
         
assertFalse(NodePathSearcher.find("/nodes/compute_nodes/show_process_list_trigger/foo_instance_id",
 ShowProcessListTriggerNodePath.createProcessIdSearchCriteria()).isPresent());
         
assertTrue(NodePathSearcher.isMatchedPath("/nodes/compute_nodes/show_process_list_trigger/foo_instance_id:foo_process_id",
 ShowProcessListTriggerNodePath.createProcessIdSearchCriteria()));
         
assertFalse(NodePathSearcher.isMatchedPath("/nodes/compute_nodes/show_process_list_trigger/foo_instance_id",
 ShowProcessListTriggerNodePath.createProcessIdSearchCriteria()));
diff --git 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/node/compute/status/OnlineNodePathTest.java
 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/node/compute/status/OnlineNodePathTest.java
index e2adeb4b2ca..cc3142ca59d 100644
--- 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/node/compute/status/OnlineNodePathTest.java
+++ 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/node/compute/status/OnlineNodePathTest.java
@@ -22,8 +22,6 @@ import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerat
 import 
org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathSearcher;
 import org.junit.jupiter.api.Test;
 
-import java.util.Optional;
-
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -40,13 +38,13 @@ class OnlineNodePathTest {
     
     @Test
     void assertCreateInstanceTypeSearchCriteria() {
-        
assertThat(NodePathSearcher.find("/nodes/compute_nodes/online/jdbc/foo_instance_id",
 OnlineNodePath.createInstanceTypeSearchCriteria()), is(Optional.of("jdbc")));
+        
assertThat(NodePathSearcher.get("/nodes/compute_nodes/online/jdbc/foo_instance_id",
 OnlineNodePath.createInstanceTypeSearchCriteria()), is("jdbc"));
         assertFalse(NodePathSearcher.find("/nodes/compute_nodes/online/jdbc", 
OnlineNodePath.createInstanceTypeSearchCriteria()).isPresent());
     }
     
     @Test
     void assertCreateInstanceIdSearchCriteria() {
-        
assertThat(NodePathSearcher.find("/nodes/compute_nodes/online/jdbc/foo_instance_id",
 OnlineNodePath.createInstanceIdSearchCriteria()), 
is(Optional.of("foo_instance_id")));
+        
assertThat(NodePathSearcher.get("/nodes/compute_nodes/online/jdbc/foo_instance_id",
 OnlineNodePath.createInstanceIdSearchCriteria()), is("foo_instance_id"));
         assertFalse(NodePathSearcher.find("/nodes/compute_nodes/online/jdbc", 
OnlineNodePath.createInstanceIdSearchCriteria()).isPresent());
         
assertTrue(NodePathSearcher.isMatchedPath("/nodes/compute_nodes/online/proxy/foo_instance_id",
 OnlineNodePath.createInstanceIdSearchCriteria()));
         
assertFalse(NodePathSearcher.isMatchedPath("/nodes/compute_nodes/online/proxy", 
OnlineNodePath.createInstanceIdSearchCriteria()));
diff --git 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/node/compute/status/StatusNodePathTest.java
 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/node/compute/status/StatusNodePathTest.java
index bd73ece3674..d06cd575c36 100644
--- 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/node/compute/status/StatusNodePathTest.java
+++ 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/node/compute/status/StatusNodePathTest.java
@@ -21,8 +21,6 @@ import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerat
 import 
org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathSearcher;
 import org.junit.jupiter.api.Test;
 
-import java.util.Optional;
-
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 
@@ -36,6 +34,6 @@ class StatusNodePathTest {
     
     @Test
     void assertCreateInstanceIdSearchCriteria() {
-        
assertThat(NodePathSearcher.find("/nodes/compute_nodes/status/foo_instance_id", 
StatusNodePath.createInstanceIdSearchCriteria()), 
is(Optional.of("foo_instance_id")));
+        
assertThat(NodePathSearcher.get("/nodes/compute_nodes/status/foo_instance_id", 
StatusNodePath.createInstanceIdSearchCriteria()), is("foo_instance_id"));
     }
 }
diff --git 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/node/compute/workerid/ComputeNodeWorkerIDNodePathTest.java
 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/node/compute/workerid/ComputeNodeWorkerIDNodePathTest.java
index 3abecbcdcbe..5497414d996 100644
--- 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/node/compute/workerid/ComputeNodeWorkerIDNodePathTest.java
+++ 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/node/compute/workerid/ComputeNodeWorkerIDNodePathTest.java
@@ -21,8 +21,6 @@ import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerat
 import 
org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathSearcher;
 import org.junit.jupiter.api.Test;
 
-import java.util.Optional;
-
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 
@@ -35,6 +33,6 @@ class ComputeNodeWorkerIDNodePathTest {
     
     @Test
     void assertCreateInstanceIdSearchCriteria() {
-        
assertThat(NodePathSearcher.find("/nodes/compute_nodes/worker_id/foo_instance_id",
 ComputeNodeWorkerIDNodePath.createInstanceIdSearchCriteria()), 
is(Optional.of("foo_instance_id")));
+        
assertThat(NodePathSearcher.get("/nodes/compute_nodes/worker_id/foo_instance_id",
 ComputeNodeWorkerIDNodePath.createInstanceIdSearchCriteria()), 
is("foo_instance_id"));
     }
 }
diff --git 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/node/storage/QualifiedDataSourceNodePathTest.java
 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/node/storage/QualifiedDataSourceNodePathTest.java
index 5775003eb12..07f18015734 100644
--- 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/node/storage/QualifiedDataSourceNodePathTest.java
+++ 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/node/storage/QualifiedDataSourceNodePathTest.java
@@ -22,8 +22,6 @@ import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerat
 import 
org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathSearcher;
 import org.junit.jupiter.api.Test;
 
-import java.util.Optional;
-
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -39,8 +37,8 @@ class QualifiedDataSourceNodePathTest {
     
     @Test
     void assertCreateQualifiedDataSourceSearchCriteria() {
-        
assertThat(NodePathSearcher.find("/nodes/qualified_data_sources/replica_query_db.readwrite_ds.replica_ds_0",
 QualifiedDataSourceNodePath.createQualifiedDataSourceSearchCriteria()),
-                is(Optional.of("replica_query_db.readwrite_ds.replica_ds_0")));
+        
assertThat(NodePathSearcher.get("/nodes/qualified_data_sources/replica_query_db.readwrite_ds.replica_ds_0",
 QualifiedDataSourceNodePath.createQualifiedDataSourceSearchCriteria()),
+                is("replica_query_db.readwrite_ds.replica_ds_0"));
         assertFalse(NodePathSearcher.find("/nodes/xxx/", 
QualifiedDataSourceNodePath.createQualifiedDataSourceSearchCriteria()).isPresent());
     }
 }
diff --git 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/state/DatabaseListenerCoordinatorNodePathTest.java
 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/state/DatabaseListenerCoordinatorNodePathTest.java
index 9a3f21f5c46..e05adae6ced 100644
--- 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/state/DatabaseListenerCoordinatorNodePathTest.java
+++ 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/state/DatabaseListenerCoordinatorNodePathTest.java
@@ -21,8 +21,6 @@ import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerat
 import 
org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathSearcher;
 import org.junit.jupiter.api.Test;
 
-import java.util.Optional;
-
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -37,7 +35,7 @@ class DatabaseListenerCoordinatorNodePathTest {
     
     @Test
     void assertCreateDatabaseSearchCriteria() {
-        
assertThat(NodePathSearcher.find("/states/database_listener_coordinator/foo_db",
 DatabaseListenerCoordinatorNodePath.createDatabaseSearchCriteria()), 
is(Optional.of("foo_db")));
+        
assertThat(NodePathSearcher.get("/states/database_listener_coordinator/foo_db", 
DatabaseListenerCoordinatorNodePath.createDatabaseSearchCriteria()), 
is("foo_db"));
         
assertFalse(NodePathSearcher.find("/states/database_listener_coordinator", 
DatabaseListenerCoordinatorNodePath.createDatabaseSearchCriteria()).isPresent());
     }
 }
diff --git 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/statistics/StatisticsDataNodePathTest.java
 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/statistics/StatisticsDataNodePathTest.java
index 8f718cd2bfd..8e4d66d1745 100644
--- 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/statistics/StatisticsDataNodePathTest.java
+++ 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/type/statistics/StatisticsDataNodePathTest.java
@@ -21,10 +21,9 @@ import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerat
 import 
org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathSearcher;
 import org.junit.jupiter.api.Test;
 
-import java.util.Optional;
-
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertFalse;
 
 class StatisticsDataNodePathTest {
     
@@ -43,34 +42,34 @@ class StatisticsDataNodePathTest {
     
     @Test
     void assertCreateDatabaseSearchCriteria() {
-        assertThat(NodePathSearcher.find("/statistics/databases/foo_db", 
StatisticsDataNodePath.createDatabaseSearchCriteria(false)), 
is(Optional.of("foo_db")));
-        assertThat(NodePathSearcher.find("/statistics/databases", 
StatisticsDataNodePath.createDatabaseSearchCriteria(false)), 
is(Optional.empty()));
-        assertThat(NodePathSearcher.find("/statistics/databases/foo_db", 
StatisticsDataNodePath.createDatabaseSearchCriteria(true)), 
is(Optional.of("foo_db")));
-        
assertThat(NodePathSearcher.find("/statistics/databases/foo_db/schemas/db_schema",
 StatisticsDataNodePath.createDatabaseSearchCriteria(true)), 
is(Optional.of("foo_db")));
-        assertThat(NodePathSearcher.find("/statistics/databases", 
StatisticsDataNodePath.createDatabaseSearchCriteria(true)), 
is(Optional.empty()));
+        assertThat(NodePathSearcher.get("/statistics/databases/foo_db", 
StatisticsDataNodePath.createDatabaseSearchCriteria(false)), is("foo_db"));
+        assertThat(NodePathSearcher.get("/statistics/databases/foo_db", 
StatisticsDataNodePath.createDatabaseSearchCriteria(true)), is("foo_db"));
+        
assertThat(NodePathSearcher.get("/statistics/databases/foo_db/schemas/db_schema",
 StatisticsDataNodePath.createDatabaseSearchCriteria(true)), is("foo_db"));
+        assertFalse(NodePathSearcher.find("/statistics/databases", 
StatisticsDataNodePath.createDatabaseSearchCriteria(false)).isPresent());
+        assertFalse(NodePathSearcher.find("/statistics/databases", 
StatisticsDataNodePath.createDatabaseSearchCriteria(true)).isPresent());
     }
     
     @Test
     void assertCreateSchemaSearchCriteria() {
-        
assertThat(NodePathSearcher.find("/statistics/databases/foo_db/schemas/foo_schema",
 StatisticsDataNodePath.createSchemaSearchCriteria(false)), 
is(Optional.of("foo_schema")));
-        assertThat(NodePathSearcher.find("/statistics/databases/foo_db", 
StatisticsDataNodePath.createSchemaSearchCriteria(false)), 
is(Optional.empty()));
-        
assertThat(NodePathSearcher.find("/statistics/databases/foo_db/schemas/foo_schema",
 StatisticsDataNodePath.createSchemaSearchCriteria(true)), 
is(Optional.of("foo_schema")));
-        
assertThat(NodePathSearcher.find("/statistics/databases/foo_db/schemas/foo_schema/tables/foo_tbl",
 StatisticsDataNodePath.createSchemaSearchCriteria(true)), 
is(Optional.of("foo_schema")));
-        assertThat(NodePathSearcher.find("/statistics/databases/foo_db", 
StatisticsDataNodePath.createSchemaSearchCriteria(true)), is(Optional.empty()));
+        
assertThat(NodePathSearcher.get("/statistics/databases/foo_db/schemas/foo_schema",
 StatisticsDataNodePath.createSchemaSearchCriteria(false)), is("foo_schema"));
+        
assertThat(NodePathSearcher.get("/statistics/databases/foo_db/schemas/foo_schema",
 StatisticsDataNodePath.createSchemaSearchCriteria(true)), is("foo_schema"));
+        
assertThat(NodePathSearcher.get("/statistics/databases/foo_db/schemas/foo_schema/tables/foo_tbl",
 StatisticsDataNodePath.createSchemaSearchCriteria(true)), is("foo_schema"));
+        assertFalse(NodePathSearcher.find("/statistics/databases/foo_db", 
StatisticsDataNodePath.createSchemaSearchCriteria(false)).isPresent());
+        assertFalse(NodePathSearcher.find("/statistics/databases/foo_db", 
StatisticsDataNodePath.createSchemaSearchCriteria(true)).isPresent());
     }
     
     @Test
     void assertCreateTableSearchCriteria() {
-        
assertThat(NodePathSearcher.find("/statistics/databases/foo_db/schemas/foo_schema/tables/tbl_name",
 StatisticsDataNodePath.createTableSearchCriteria(false)), 
is(Optional.of("tbl_name")));
-        
assertThat(NodePathSearcher.find("/statistics/databases/foo_db/schemas/foo_schema",
 StatisticsDataNodePath.createTableSearchCriteria(false)), 
is(Optional.empty()));
-        
assertThat(NodePathSearcher.find("/statistics/databases/foo_db/schemas/foo_schema/tables/tbl_name",
 StatisticsDataNodePath.createTableSearchCriteria(true)), 
is(Optional.of("tbl_name")));
-        
assertThat(NodePathSearcher.find("/statistics/databases/foo_db/schemas/foo_schema/tables/tbl_name/key",
 StatisticsDataNodePath.createTableSearchCriteria(true)), 
is(Optional.of("tbl_name")));
-        
assertThat(NodePathSearcher.find("/statistics/databases/foo_db/schemas/foo_schema/tables",
 StatisticsDataNodePath.createTableSearchCriteria(true)), is(Optional.empty()));
+        
assertThat(NodePathSearcher.get("/statistics/databases/foo_db/schemas/foo_schema/tables/tbl_name",
 StatisticsDataNodePath.createTableSearchCriteria(false)), is("tbl_name"));
+        
assertThat(NodePathSearcher.get("/statistics/databases/foo_db/schemas/foo_schema/tables/tbl_name",
 StatisticsDataNodePath.createTableSearchCriteria(true)), is("tbl_name"));
+        
assertThat(NodePathSearcher.get("/statistics/databases/foo_db/schemas/foo_schema/tables/tbl_name/key",
 StatisticsDataNodePath.createTableSearchCriteria(true)), is("tbl_name"));
+        
assertFalse(NodePathSearcher.find("/statistics/databases/foo_db/schemas/foo_schema",
 StatisticsDataNodePath.createTableSearchCriteria(false)).isPresent());
+        
assertFalse(NodePathSearcher.find("/statistics/databases/foo_db/schemas/foo_schema/tables",
 StatisticsDataNodePath.createTableSearchCriteria(true)).isPresent());
     }
     
     @Test
     void assertCreateRowUniqueKeySearchCriteria() {
-        
assertThat(NodePathSearcher.find("/statistics/databases/foo_db/schemas/foo_schema/tables/tbl_name/key",
 StatisticsDataNodePath.createRowUniqueKeySearchCriteria()), 
is(Optional.of("key")));
-        
assertThat(NodePathSearcher.find("/statistics/databases/foo_db/schemas/foo_schema/tables/tbl_name",
 StatisticsDataNodePath.createRowUniqueKeySearchCriteria()), 
is(Optional.empty()));
+        
assertThat(NodePathSearcher.get("/statistics/databases/foo_db/schemas/foo_schema/tables/tbl_name/key",
 StatisticsDataNodePath.createRowUniqueKeySearchCriteria()), is("key"));
+        
assertFalse(NodePathSearcher.find("/statistics/databases/foo_db/schemas/foo_schema/tables/tbl_name",
 StatisticsDataNodePath.createRowUniqueKeySearchCriteria()).isPresent());
     }
 }
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/datasource/StorageNodeChangedHandler.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/datasource/StorageNodeChangedHandler.java
index 2ed08a5c486..13bd71182c3 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/datasource/StorageNodeChangedHandler.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/datasource/StorageNodeChangedHandler.java
@@ -26,8 +26,6 @@ import 
org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathSearcher
 import 
org.apache.shardingsphere.mode.node.path.type.metadata.storage.StorageNodeNodePath;
 import 
org.apache.shardingsphere.mode.node.path.type.version.VersionNodePathParser;
 
-import java.util.Optional;
-
 /**
  * Storage node changed handler.
  */
@@ -43,19 +41,16 @@ public final class StorageNodeChangedHandler implements 
DatabaseChangedHandler {
     
     @Override
     public void handle(final String databaseName, final DataChangedEvent 
event) {
-        Optional<String> storageNodeName = 
NodePathSearcher.find(event.getKey(), 
StorageNodeNodePath.createStorageNodeSearchCriteria(databaseName));
-        if (!storageNodeName.isPresent()) {
-            return;
-        }
+        String storageNodeName = NodePathSearcher.get(event.getKey(), 
StorageNodeNodePath.createStorageNodeSearchCriteria(databaseName));
         switch (event.getType()) {
             case ADDED:
-                handleRegistered(databaseName, storageNodeName.get(), event);
+                handleRegistered(databaseName, storageNodeName, event);
                 break;
             case UPDATED:
-                handleAltered(databaseName, storageNodeName.get(), event);
+                handleAltered(databaseName, storageNodeName, event);
                 break;
             case DELETED:
-                handleUnregistered(databaseName, storageNodeName.get());
+                handleUnregistered(databaseName, storageNodeName);
                 break;
             default:
                 break;
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/datasource/StorageUnitChangedHandler.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/datasource/StorageUnitChangedHandler.java
index 8bf41ff720d..5d8f70461f3 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/datasource/StorageUnitChangedHandler.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/datasource/StorageUnitChangedHandler.java
@@ -29,7 +29,6 @@ import 
org.apache.shardingsphere.mode.node.path.type.metadata.storage.StorageUni
 import 
org.apache.shardingsphere.mode.node.path.type.version.VersionNodePathParser;
 
 import java.util.Collections;
-import java.util.Optional;
 
 /**
  * Storage unit changed handler.
@@ -52,19 +51,16 @@ public final class StorageUnitChangedHandler implements 
DatabaseChangedHandler {
     
     @Override
     public void handle(final String databaseName, final DataChangedEvent 
event) {
-        Optional<String> storageUnitName = 
NodePathSearcher.find(event.getKey(), 
StorageUnitNodePath.createStorageUnitSearchCriteria(databaseName));
-        if (!storageUnitName.isPresent()) {
-            return;
-        }
+        String storageUnitName = NodePathSearcher.get(event.getKey(), 
StorageUnitNodePath.createStorageUnitSearchCriteria(databaseName));
         switch (event.getType()) {
             case ADDED:
-                handleRegistered(databaseName, storageUnitName.get(), event);
+                handleRegistered(databaseName, storageUnitName, event);
                 break;
             case UPDATED:
-                handleAltered(databaseName, storageUnitName.get(), event);
+                handleAltered(databaseName, storageUnitName, event);
                 break;
             case DELETED:
-                handleUnregistered(databaseName, storageUnitName.get());
+                handleUnregistered(databaseName, storageUnitName);
                 break;
             default:
                 break;
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/SchemaChangedHandler.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/SchemaChangedHandler.java
index c502eaf98da..08558f3d1d2 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/SchemaChangedHandler.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/SchemaChangedHandler.java
@@ -24,8 +24,6 @@ import 
org.apache.shardingsphere.mode.metadata.refresher.statistics.StatisticsRe
 import 
org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathSearcher;
 import 
org.apache.shardingsphere.mode.node.path.type.metadata.database.TableMetadataNodePath;
 
-import java.util.Optional;
-
 /**
  * Schema changed handler.
  */
@@ -47,17 +45,14 @@ public final class SchemaChangedHandler implements 
DatabaseChangedHandler {
     
     @Override
     public void handle(final String databaseName, final DataChangedEvent 
event) {
-        Optional<String> schemaName = NodePathSearcher.find(event.getKey(), 
TableMetadataNodePath.createSchemaSearchCriteria(databaseName, false));
-        if (!schemaName.isPresent()) {
-            return;
-        }
+        String schemaName = NodePathSearcher.get(event.getKey(), 
TableMetadataNodePath.createSchemaSearchCriteria(databaseName, false));
         switch (event.getType()) {
             case ADDED:
             case UPDATED:
-                handleCreated(databaseName, schemaName.get());
+                handleCreated(databaseName, schemaName);
                 break;
             case DELETED:
-                handleDropped(databaseName, schemaName.get());
+                handleDropped(databaseName, schemaName);
                 break;
             default:
                 break;
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/TableChangedHandler.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/TableChangedHandler.java
index ebdea649fad..922a59e5ffe 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/TableChangedHandler.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/TableChangedHandler.java
@@ -28,8 +28,6 @@ import 
org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathSearcher
 import 
org.apache.shardingsphere.mode.node.path.type.metadata.database.TableMetadataNodePath;
 import 
org.apache.shardingsphere.mode.node.path.type.version.VersionNodePathParser;
 
-import java.util.Optional;
-
 /**
  * Table changed handler.
  */
@@ -54,17 +52,14 @@ public final class TableChangedHandler implements 
DatabaseChangedHandler {
     
     @Override
     public void handle(final String databaseName, final DataChangedEvent 
event) {
-        Optional<String> schemaName = NodePathSearcher.find(event.getKey(), 
TableMetadataNodePath.createSchemaSearchCriteria(databaseName, true));
-        if (!schemaName.isPresent()) {
-            return;
-        }
+        String schemaName = NodePathSearcher.get(event.getKey(), 
TableMetadataNodePath.createSchemaSearchCriteria(databaseName, true));
         switch (event.getType()) {
             case ADDED:
             case UPDATED:
-                handleCreatedOrAltered(databaseName, schemaName.get(), event);
+                handleCreatedOrAltered(databaseName, schemaName, event);
                 break;
             case DELETED:
-                handleDropped(databaseName, schemaName.get(), event);
+                handleDropped(databaseName, schemaName, event);
                 break;
             default:
                 break;
@@ -72,8 +67,7 @@ public final class TableChangedHandler implements 
DatabaseChangedHandler {
     }
     
     private void handleCreatedOrAltered(final String databaseName, final 
String schemaName, final DataChangedEvent event) {
-        String tableName = NodePathSearcher.find(event.getKey(), 
TableMetadataNodePath.createTableSearchCriteria(databaseName, schemaName))
-                .orElseThrow(() -> new IllegalStateException("Table name not 
found."));
+        String tableName = NodePathSearcher.get(event.getKey(), 
TableMetadataNodePath.createTableSearchCriteria(databaseName, schemaName));
         if (!activeVersionChecker.checkSame(event)) {
             return;
         }
@@ -83,8 +77,7 @@ public final class TableChangedHandler implements 
DatabaseChangedHandler {
     }
     
     private void handleDropped(final String databaseName, final String 
schemaName, final DataChangedEvent event) {
-        String tableName = NodePathSearcher.find(event.getKey(), 
TableMetadataNodePath.createTableSearchCriteria(databaseName, schemaName))
-                .orElseThrow(() -> new IllegalStateException("Table name not 
found."));
+        String tableName = NodePathSearcher.get(event.getKey(), 
TableMetadataNodePath.createTableSearchCriteria(databaseName, schemaName));
         
contextManager.getMetaDataContextManager().getDatabaseMetaDataManager().dropTable(databaseName,
 schemaName, tableName);
         statisticsRefreshEngine.asyncRefresh();
     }
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/ViewChangedHandler.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/ViewChangedHandler.java
index d52d073c77b..e8bcae053ac 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/ViewChangedHandler.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/ViewChangedHandler.java
@@ -29,8 +29,6 @@ import 
org.apache.shardingsphere.mode.node.path.type.metadata.database.TableMeta
 import 
org.apache.shardingsphere.mode.node.path.type.metadata.database.ViewMetadataNodePath;
 import 
org.apache.shardingsphere.mode.node.path.type.version.VersionNodePathParser;
 
-import java.util.Optional;
-
 /**
  * View changed handler.
  */
@@ -56,15 +54,12 @@ public final class ViewChangedHandler implements 
DatabaseChangedHandler {
     
     @Override
     public void handle(final String databaseName, final DataChangedEvent 
event) {
-        Optional<String> schemaName = NodePathSearcher.find(event.getKey(), 
TableMetadataNodePath.createSchemaSearchCriteria(databaseName, true));
-        if (!schemaName.isPresent()) {
-            return;
-        }
+        String schemaName = NodePathSearcher.get(event.getKey(), 
TableMetadataNodePath.createSchemaSearchCriteria(databaseName, true));
         if ((Type.ADDED == event.getType() || Type.UPDATED == event.getType())
                 && new VersionNodePathParser(new 
ViewMetadataNodePath()).isActiveVersionPath(event.getKey())) {
-            handleCreatedOrAltered(databaseName, schemaName.get(), event);
+            handleCreatedOrAltered(databaseName, schemaName, event);
         } else if (Type.DELETED == event.getType() && 
NodePathSearcher.isMatchedPath(event.getKey(), 
ViewMetadataNodePath.createViewSearchCriteria())) {
-            handleDropped(databaseName, schemaName.get(), event);
+            handleDropped(databaseName, schemaName, event);
         }
     }
     
@@ -80,7 +75,7 @@ public final class ViewChangedHandler implements 
DatabaseChangedHandler {
     }
     
     private void handleDropped(final String databaseName, final String 
schemaName, final DataChangedEvent event) {
-        String viewName = NodePathSearcher.find(event.getKey(), 
ViewMetadataNodePath.createViewSearchCriteria()).orElseThrow(() -> new 
IllegalStateException("View name not found."));
+        String viewName = NodePathSearcher.get(event.getKey(), 
ViewMetadataNodePath.createViewSearchCriteria());
         
contextManager.getMetaDataContextManager().getDatabaseMetaDataManager().dropView(databaseName,
 schemaName, viewName);
         statisticsRefreshEngine.asyncRefresh();
     }
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/type/ComputeNodeOnlineHandler.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/type/ComputeNodeOnlineHandler.java
index bd4bb2142e0..7874874ff49 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/type/ComputeNodeOnlineHandler.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/type/ComputeNodeOnlineHandler.java
@@ -56,7 +56,7 @@ public final class ComputeNodeOnlineHandler implements 
GlobalDataChangedEventHan
         if (!NodePathSearcher.isMatchedPath(event.getKey(), 
OnlineNodePath.createInstanceIdSearchCriteria())) {
             return;
         }
-        InstanceType instanceType = 
InstanceType.valueOf(NodePathSearcher.find(event.getKey(), 
OnlineNodePath.createInstanceTypeSearchCriteria()).orElse("").toUpperCase());
+        InstanceType instanceType = 
InstanceType.valueOf(NodePathSearcher.get(event.getKey(), 
OnlineNodePath.createInstanceTypeSearchCriteria()).toUpperCase());
         String instanceId = NodePathSearcher.find(event.getKey(), 
OnlineNodePath.createInstanceIdSearchCriteria()).orElse("");
         ComputeNodeData computeNodeData = new 
YamlComputeNodeDataSwapper().swapToObject(YamlEngine.unmarshal(event.getValue(),
 YamlComputeNodeData.class));
         InstanceMetaData instanceMetaData = 
InstanceMetaDataFactory.create(instanceId, instanceType, computeNodeData);

Reply via email to