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 ae608958f03 Add DatabaseNodePathGenerator (#34681)
ae608958f03 is described below

commit ae608958f033e2311862bf37710f105a91ac4c55
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Feb 15 19:49:59 2025 +0800

    Add DatabaseNodePathGenerator (#34681)
    
    * Add DatabaseNodePathGenerator
    
    * Add DatabaseNodePathGenerator
---
 .../service/DatabaseMetaDataPersistService.java    |  6 ++---
 .../service/SchemaMetaDataPersistService.java      |  6 ++---
 .../mode/manager/ContextManagerTest.java           |  4 +--
 ...nerator.java => DatabaseNodePathGenerator.java} | 30 +++-------------------
 ...PathParser.java => DatabaseNodePathParser.java} | 26 ++++---------------
 ...r.java => SchemaMetaDataNodePathGenerator.java} | 22 +++++-----------
 ...rser.java => SchemaMetaDataNodePathParser.java} | 20 +++------------
 .../database/TableMetaDataNodePathGenerator.java   |  2 +-
 .../database/ViewMetaDataNodePathGenerator.java    |  2 +-
 ...est.java => DatabaseNodePathGeneratorTest.java} | 16 +++---------
 ...orTest.java => DatabaseNodePathParserTest.java} | 22 ++++++++--------
 ...va => SchemaMetaDataNodePathGeneratorTest.java} | 13 +++-------
 ....java => SchemaMetaDataNodePathParserTest.java} | 10 ++++----
 .../database/metadata/MetaDataChangedHandler.java  |  6 ++---
 .../type/DatabaseListenerChangedHandler.java       |  6 ++---
 .../listener/DataChangedEventListenerRegistry.java |  4 +--
 .../type/DatabaseMetaDataChangedListener.java      |  4 +--
 17 files changed, 60 insertions(+), 139 deletions(-)

diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/DatabaseMetaDataPersistService.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/DatabaseMetaDataPersistService.java
index acccf8b9df7..c3eedcd0ccf 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/DatabaseMetaDataPersistService.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/DatabaseMetaDataPersistService.java
@@ -18,8 +18,8 @@
 package org.apache.shardingsphere.mode.metadata.persist.metadata.service;
 
 import lombok.RequiredArgsConstructor;
+import 
org.apache.shardingsphere.mode.node.path.metadata.DatabaseNodePathGenerator;
 import org.apache.shardingsphere.mode.node.path.metadata.MetaDataNodePath;
-import 
org.apache.shardingsphere.mode.node.path.metadata.database.DatabaseMetaDataNodePathGenerator;
 import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
 
 import java.util.Collection;
@@ -38,7 +38,7 @@ public final class DatabaseMetaDataPersistService {
      * @param databaseName to be added database name
      */
     public void add(final String databaseName) {
-        
repository.persist(DatabaseMetaDataNodePathGenerator.getDatabasePath(databaseName),
 "");
+        
repository.persist(DatabaseNodePathGenerator.getDatabasePath(databaseName), "");
     }
     
     /**
@@ -47,7 +47,7 @@ public final class DatabaseMetaDataPersistService {
      * @param databaseName to be dropped database name
      */
     public void drop(final String databaseName) {
-        
repository.delete(DatabaseMetaDataNodePathGenerator.getDatabasePath(databaseName));
+        
repository.delete(DatabaseNodePathGenerator.getDatabasePath(databaseName));
     }
     
     /**
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/SchemaMetaDataPersistService.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/SchemaMetaDataPersistService.java
index d52e81de981..f05825395aa 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/SchemaMetaDataPersistService.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/SchemaMetaDataPersistService.java
@@ -20,7 +20,7 @@ package 
org.apache.shardingsphere.mode.metadata.persist.metadata.service;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.manager.GenericSchemaManager;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
 import 
org.apache.shardingsphere.mode.metadata.persist.version.MetaDataVersionPersistService;
-import 
org.apache.shardingsphere.mode.node.path.metadata.database.DatabaseMetaDataNodePathGenerator;
+import 
org.apache.shardingsphere.mode.node.path.metadata.database.SchemaMetaDataNodePathGenerator;
 import 
org.apache.shardingsphere.mode.node.path.metadata.database.TableMetaDataNodePathGenerator;
 import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
 
@@ -62,7 +62,7 @@ public final class SchemaMetaDataPersistService {
      * @param schemaName to be dropped schema name
      */
     public void drop(final String databaseName, final String schemaName) {
-        
repository.delete(DatabaseMetaDataNodePathGenerator.getSchemaPath(databaseName, 
schemaName));
+        
repository.delete(SchemaMetaDataNodePathGenerator.getSchemaPath(databaseName, 
schemaName));
     }
     
     /**
@@ -112,7 +112,7 @@ public final class SchemaMetaDataPersistService {
      * @return schemas
      */
     public Collection<ShardingSphereSchema> load(final String databaseName) {
-        return 
repository.getChildrenKeys(DatabaseMetaDataNodePathGenerator.getSchemaRootPath(databaseName)).stream()
+        return 
repository.getChildrenKeys(SchemaMetaDataNodePathGenerator.getRootPath(databaseName)).stream()
                 .map(each -> new ShardingSphereSchema(each, 
tableMetaDataPersistService.load(databaseName, each), 
viewMetaDataPersistService.load(databaseName, 
each))).collect(Collectors.toList());
     }
 }
diff --git 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
 
b/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
index 566f7a72b34..dc0f32e038f 100644
--- 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
+++ 
b/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
@@ -38,7 +38,7 @@ import 
org.apache.shardingsphere.infra.rule.attribute.RuleAttributes;
 import 
org.apache.shardingsphere.infra.rule.attribute.datanode.MutableDataNodeRuleAttribute;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
-import 
org.apache.shardingsphere.mode.node.path.metadata.database.DatabaseMetaDataNodePathGenerator;
+import 
org.apache.shardingsphere.mode.node.path.metadata.database.SchemaMetaDataNodePathGenerator;
 import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
 import org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource;
 import org.junit.jupiter.api.BeforeEach;
@@ -146,7 +146,7 @@ class ContextManagerTest {
         
when(metaDataContexts.getMetaData().getDatabase("foo_db").getName()).thenReturn("foo_db");
         ShardingSphereDatabase database = mockDatabase();
         contextManager.reloadSchema(database, "foo_schema", "foo_ds");
-        
verify(contextManager.getPersistServiceFacade().getRepository()).delete(DatabaseMetaDataNodePathGenerator.getSchemaPath("foo_db",
 "foo_schema"));
+        
verify(contextManager.getPersistServiceFacade().getRepository()).delete(SchemaMetaDataNodePathGenerator.getSchemaPath("foo_db",
 "foo_schema"));
     }
     
     @Test
diff --git 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/database/DatabaseMetaDataNodePathGenerator.java
 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/DatabaseNodePathGenerator.java
similarity index 56%
copy from 
mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/database/DatabaseMetaDataNodePathGenerator.java
copy to 
mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/DatabaseNodePathGenerator.java
index 07c0dd5a94b..3d7fd839c4f 100644
--- 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/database/DatabaseMetaDataNodePathGenerator.java
+++ 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/DatabaseNodePathGenerator.java
@@ -15,19 +15,16 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.mode.node.path.metadata.database;
+package org.apache.shardingsphere.mode.node.path.metadata;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
-import org.apache.shardingsphere.mode.node.path.metadata.MetaDataNodePath;
 
 /**
- * Database meta data node path generator.
+ * Database node path generator.
  */
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class DatabaseMetaDataNodePathGenerator {
-    
-    private static final String SCHEMAS_NODE = "schemas";
+public final class DatabaseNodePathGenerator {
     
     /**
      * Get database path.
@@ -38,25 +35,4 @@ public final class DatabaseMetaDataNodePathGenerator {
     public static String getDatabasePath(final String databaseName) {
         return String.join("/", MetaDataNodePath.ROOT_NODE, databaseName);
     }
-    
-    /**
-     * Get schema root path.
-     *
-     * @param databaseName database name
-     * @return schema root path
-     */
-    public static String getSchemaRootPath(final String databaseName) {
-        return String.join("/", getDatabasePath(databaseName), SCHEMAS_NODE);
-    }
-    
-    /**
-     * Get schema path.
-     *
-     * @param databaseName database name
-     * @param schemaName schema name
-     * @return schema path
-     */
-    public static String getSchemaPath(final String databaseName, final String 
schemaName) {
-        return String.join("/", getSchemaRootPath(databaseName), schemaName);
-    }
 }
diff --git 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/database/DatabaseMetaDataNodePathParser.java
 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/DatabaseNodePathParser.java
similarity index 54%
copy from 
mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/database/DatabaseMetaDataNodePathParser.java
copy to 
mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/DatabaseNodePathParser.java
index 5436cc9cf24..7d32f153e01 100644
--- 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/database/DatabaseMetaDataNodePathParser.java
+++ 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/DatabaseNodePathParser.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.mode.node.path.metadata.database;
+package org.apache.shardingsphere.mode.node.path.metadata;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
@@ -26,36 +26,20 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 /**
- * Database meta data node path parser.
+ * Database node path parser.
  */
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class DatabaseMetaDataNodePathParser {
+public final class DatabaseNodePathParser {
     
     /**
      * Find database name.
      *
      * @param path path
-     * @param containsChildPath whether contains child path
      * @return found database name
      */
-    public static Optional<String> findDatabaseName(final String path, final 
boolean containsChildPath) {
-        String endPattern = containsChildPath ? "?" : "$";
-        Pattern pattern = 
Pattern.compile(DatabaseMetaDataNodePathGenerator.getDatabasePath(NodePathPattern.IDENTIFIER)
 + endPattern, Pattern.CASE_INSENSITIVE);
+    public static Optional<String> findDatabaseName(final String path) {
+        Pattern pattern = 
Pattern.compile(DatabaseNodePathGenerator.getDatabasePath(NodePathPattern.IDENTIFIER)
 + "?", Pattern.CASE_INSENSITIVE);
         Matcher matcher = pattern.matcher(path);
         return matcher.find() ? Optional.of(matcher.group(1)) : 
Optional.empty();
     }
-    
-    /**
-     * Find qualified schema.
-     *
-     * @param path path
-     * @param containsChildPath whether contains child path
-     * @return found qualified schema
-     */
-    public static Optional<String> findSchemaName(final String path, final 
boolean containsChildPath) {
-        String endPattern = containsChildPath ? "?" : "$";
-        Pattern pattern = 
Pattern.compile(DatabaseMetaDataNodePathGenerator.getSchemaPath(NodePathPattern.IDENTIFIER,
 NodePathPattern.IDENTIFIER) + endPattern, Pattern.CASE_INSENSITIVE);
-        Matcher matcher = pattern.matcher(path);
-        return matcher.find() ? Optional.of(matcher.group(2)) : 
Optional.empty();
-    }
 }
diff --git 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/database/DatabaseMetaDataNodePathGenerator.java
 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/database/SchemaMetaDataNodePathGenerator.java
similarity index 68%
rename from 
mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/database/DatabaseMetaDataNodePathGenerator.java
rename to 
mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/database/SchemaMetaDataNodePathGenerator.java
index 07c0dd5a94b..f843299bb90 100644
--- 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/database/DatabaseMetaDataNodePathGenerator.java
+++ 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/database/SchemaMetaDataNodePathGenerator.java
@@ -19,34 +19,24 @@ package 
org.apache.shardingsphere.mode.node.path.metadata.database;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
-import org.apache.shardingsphere.mode.node.path.metadata.MetaDataNodePath;
+import 
org.apache.shardingsphere.mode.node.path.metadata.DatabaseNodePathGenerator;
 
 /**
- * Database meta data node path generator.
+ * Schema meta data node path generator.
  */
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class DatabaseMetaDataNodePathGenerator {
+public final class SchemaMetaDataNodePathGenerator {
     
     private static final String SCHEMAS_NODE = "schemas";
     
-    /**
-     * Get database path.
-     *
-     * @param databaseName database name
-     * @return database path
-     */
-    public static String getDatabasePath(final String databaseName) {
-        return String.join("/", MetaDataNodePath.ROOT_NODE, databaseName);
-    }
-    
     /**
      * Get schema root path.
      *
      * @param databaseName database name
      * @return schema root path
      */
-    public static String getSchemaRootPath(final String databaseName) {
-        return String.join("/", getDatabasePath(databaseName), SCHEMAS_NODE);
+    public static String getRootPath(final String databaseName) {
+        return String.join("/", 
DatabaseNodePathGenerator.getDatabasePath(databaseName), SCHEMAS_NODE);
     }
     
     /**
@@ -57,6 +47,6 @@ public final class DatabaseMetaDataNodePathGenerator {
      * @return schema path
      */
     public static String getSchemaPath(final String databaseName, final String 
schemaName) {
-        return String.join("/", getSchemaRootPath(databaseName), schemaName);
+        return String.join("/", getRootPath(databaseName), schemaName);
     }
 }
diff --git 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/database/DatabaseMetaDataNodePathParser.java
 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/database/SchemaMetaDataNodePathParser.java
similarity index 64%
rename from 
mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/database/DatabaseMetaDataNodePathParser.java
rename to 
mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/database/SchemaMetaDataNodePathParser.java
index 5436cc9cf24..8f222dd6225 100644
--- 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/database/DatabaseMetaDataNodePathParser.java
+++ 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/database/SchemaMetaDataNodePathParser.java
@@ -26,24 +26,10 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 /**
- * Database meta data node path parser.
+ * Schema meta data node path parser.
  */
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class DatabaseMetaDataNodePathParser {
-    
-    /**
-     * Find database name.
-     *
-     * @param path path
-     * @param containsChildPath whether contains child path
-     * @return found database name
-     */
-    public static Optional<String> findDatabaseName(final String path, final 
boolean containsChildPath) {
-        String endPattern = containsChildPath ? "?" : "$";
-        Pattern pattern = 
Pattern.compile(DatabaseMetaDataNodePathGenerator.getDatabasePath(NodePathPattern.IDENTIFIER)
 + endPattern, Pattern.CASE_INSENSITIVE);
-        Matcher matcher = pattern.matcher(path);
-        return matcher.find() ? Optional.of(matcher.group(1)) : 
Optional.empty();
-    }
+public final class SchemaMetaDataNodePathParser {
     
     /**
      * Find qualified schema.
@@ -54,7 +40,7 @@ public final class DatabaseMetaDataNodePathParser {
      */
     public static Optional<String> findSchemaName(final String path, final 
boolean containsChildPath) {
         String endPattern = containsChildPath ? "?" : "$";
-        Pattern pattern = 
Pattern.compile(DatabaseMetaDataNodePathGenerator.getSchemaPath(NodePathPattern.IDENTIFIER,
 NodePathPattern.IDENTIFIER) + endPattern, Pattern.CASE_INSENSITIVE);
+        Pattern pattern = 
Pattern.compile(SchemaMetaDataNodePathGenerator.getSchemaPath(NodePathPattern.IDENTIFIER,
 NodePathPattern.IDENTIFIER) + endPattern, Pattern.CASE_INSENSITIVE);
         Matcher matcher = pattern.matcher(path);
         return matcher.find() ? Optional.of(matcher.group(2)) : 
Optional.empty();
     }
diff --git 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/database/TableMetaDataNodePathGenerator.java
 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/database/TableMetaDataNodePathGenerator.java
index 9829d26c4e6..b0933d3dad2 100644
--- 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/database/TableMetaDataNodePathGenerator.java
+++ 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/database/TableMetaDataNodePathGenerator.java
@@ -37,7 +37,7 @@ public final class TableMetaDataNodePathGenerator {
      * @return table root path
      */
     public static String getTableRootPath(final String databaseName, final 
String schemaName) {
-        return String.join("/", 
DatabaseMetaDataNodePathGenerator.getSchemaPath(databaseName, schemaName), 
TABLES_NODE);
+        return String.join("/", 
SchemaMetaDataNodePathGenerator.getSchemaPath(databaseName, schemaName), 
TABLES_NODE);
     }
     
     /**
diff --git 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/database/ViewMetaDataNodePathGenerator.java
 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/database/ViewMetaDataNodePathGenerator.java
index 0c9c5b3d7d3..f621bd57413 100644
--- 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/database/ViewMetaDataNodePathGenerator.java
+++ 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/database/ViewMetaDataNodePathGenerator.java
@@ -37,7 +37,7 @@ public final class ViewMetaDataNodePathGenerator {
      * @return view root path
      */
     public static String getViewRootPath(final String databaseName, final 
String schemaName) {
-        return String.join("/", 
DatabaseMetaDataNodePathGenerator.getSchemaPath(databaseName, schemaName), 
VIEWS_NODE);
+        return String.join("/", 
SchemaMetaDataNodePathGenerator.getSchemaPath(databaseName, schemaName), 
VIEWS_NODE);
     }
     
     /**
diff --git 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/database/DatabaseMetaDataNodePathGeneratorTest.java
 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/DatabaseNodePathGeneratorTest.java
similarity index 63%
copy from 
mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/database/DatabaseMetaDataNodePathGeneratorTest.java
copy to 
mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/DatabaseNodePathGeneratorTest.java
index b20d3437b80..f5114f3f57e 100644
--- 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/database/DatabaseMetaDataNodePathGeneratorTest.java
+++ 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/DatabaseNodePathGeneratorTest.java
@@ -15,27 +15,17 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.mode.node.path.metadata.database;
+package org.apache.shardingsphere.mode.node.path.metadata;
 
 import org.junit.jupiter.api.Test;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 
-class DatabaseMetaDataNodePathGeneratorTest {
+class DatabaseNodePathGeneratorTest {
     
     @Test
     void assertGetDatabasePath() {
-        
assertThat(DatabaseMetaDataNodePathGenerator.getDatabasePath("foo_db"), 
is("/metadata/foo_db"));
-    }
-    
-    @Test
-    void assertGetSchemaRootPath() {
-        
assertThat(DatabaseMetaDataNodePathGenerator.getSchemaRootPath("foo_db"), 
is("/metadata/foo_db/schemas"));
-    }
-    
-    @Test
-    void assertGetSchemaPath() {
-        assertThat(DatabaseMetaDataNodePathGenerator.getSchemaPath("foo_db", 
"foo_schema"), is("/metadata/foo_db/schemas/foo_schema"));
+        assertThat(DatabaseNodePathGenerator.getDatabasePath("foo_db"), 
is("/metadata/foo_db"));
     }
 }
diff --git 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/database/DatabaseMetaDataNodePathGeneratorTest.java
 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/DatabaseNodePathParserTest.java
similarity index 62%
copy from 
mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/database/DatabaseMetaDataNodePathGeneratorTest.java
copy to 
mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/DatabaseNodePathParserTest.java
index b20d3437b80..64ed7184db7 100644
--- 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/database/DatabaseMetaDataNodePathGeneratorTest.java
+++ 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/DatabaseNodePathParserTest.java
@@ -15,27 +15,27 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.mode.node.path.metadata.database;
+package org.apache.shardingsphere.mode.node.path.metadata;
 
 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 DatabaseMetaDataNodePathGeneratorTest {
-    
-    @Test
-    void assertGetDatabasePath() {
-        
assertThat(DatabaseMetaDataNodePathGenerator.getDatabasePath("foo_db"), 
is("/metadata/foo_db"));
-    }
+class DatabaseNodePathParserTest {
     
     @Test
-    void assertGetSchemaRootPath() {
-        
assertThat(DatabaseMetaDataNodePathGenerator.getSchemaRootPath("foo_db"), 
is("/metadata/foo_db/schemas"));
+    void assertFindDatabaseName() {
+        Optional<String> actual = 
DatabaseNodePathParser.findDatabaseName("/metadata/foo_db/schemas/foo_schema");
+        assertThat(actual, is(Optional.of("foo_db")));
     }
     
     @Test
-    void assertGetSchemaPath() {
-        assertThat(DatabaseMetaDataNodePathGenerator.getSchemaPath("foo_db", 
"foo_schema"), is("/metadata/foo_db/schemas/foo_schema"));
+    void assertNotFindDatabaseName() {
+        Optional<String> actual = 
DatabaseNodePathParser.findDatabaseName("/xxx/foo_db/schemas/foo_schema");
+        assertFalse(actual.isPresent());
     }
 }
diff --git 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/database/DatabaseMetaDataNodePathGeneratorTest.java
 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/database/SchemaMetaDataNodePathGeneratorTest.java
similarity index 68%
rename from 
mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/database/DatabaseMetaDataNodePathGeneratorTest.java
rename to 
mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/database/SchemaMetaDataNodePathGeneratorTest.java
index b20d3437b80..37cd4cf9fd1 100644
--- 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/database/DatabaseMetaDataNodePathGeneratorTest.java
+++ 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/database/SchemaMetaDataNodePathGeneratorTest.java
@@ -22,20 +22,15 @@ import org.junit.jupiter.api.Test;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 
-class DatabaseMetaDataNodePathGeneratorTest {
+class SchemaMetaDataNodePathGeneratorTest {
     
     @Test
-    void assertGetDatabasePath() {
-        
assertThat(DatabaseMetaDataNodePathGenerator.getDatabasePath("foo_db"), 
is("/metadata/foo_db"));
-    }
-    
-    @Test
-    void assertGetSchemaRootPath() {
-        
assertThat(DatabaseMetaDataNodePathGenerator.getSchemaRootPath("foo_db"), 
is("/metadata/foo_db/schemas"));
+    void assertGetRootPath() {
+        assertThat(SchemaMetaDataNodePathGenerator.getRootPath("foo_db"), 
is("/metadata/foo_db/schemas"));
     }
     
     @Test
     void assertGetSchemaPath() {
-        assertThat(DatabaseMetaDataNodePathGenerator.getSchemaPath("foo_db", 
"foo_schema"), is("/metadata/foo_db/schemas/foo_schema"));
+        assertThat(SchemaMetaDataNodePathGenerator.getSchemaPath("foo_db", 
"foo_schema"), is("/metadata/foo_db/schemas/foo_schema"));
     }
 }
diff --git 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/database/DatabaseMetaDataNodePathParserTest.java
 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/database/SchemaMetaDataNodePathParserTest.java
similarity index 75%
rename from 
mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/database/DatabaseMetaDataNodePathParserTest.java
rename to 
mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/database/SchemaMetaDataNodePathParserTest.java
index af72eafc170..d776e1653cf 100644
--- 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/database/DatabaseMetaDataNodePathParserTest.java
+++ 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/database/SchemaMetaDataNodePathParserTest.java
@@ -26,31 +26,31 @@ import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
-class DatabaseMetaDataNodePathParserTest {
+class SchemaMetaDataNodePathParserTest {
     
     @Test
     void assertFindSchemaNameWithNotContainsChildPath() {
-        Optional<String> actual = 
DatabaseMetaDataNodePathParser.findSchemaName("/metadata/foo_db/schemas/foo_schema",
 false);
+        Optional<String> actual = 
SchemaMetaDataNodePathParser.findSchemaName("/metadata/foo_db/schemas/foo_schema",
 false);
         assertTrue(actual.isPresent());
         assertThat(actual.get(), is("foo_schema"));
     }
     
     @Test
     void assertNotFindSchemaNameWithNotContainsChildPath() {
-        Optional<String> actual = 
DatabaseMetaDataNodePathParser.findSchemaName("/metadata/foo_db/schemas/foo_schema/tables",
 false);
+        Optional<String> actual = 
SchemaMetaDataNodePathParser.findSchemaName("/metadata/foo_db/schemas/foo_schema/tables",
 false);
         assertFalse(actual.isPresent());
     }
     
     @Test
     void assertFindSchemaNameWithContainsChildPath() {
-        Optional<String> actual = 
DatabaseMetaDataNodePathParser.findSchemaName("/metadata/foo_db/schemas/foo_schema/tables",
 true);
+        Optional<String> actual = 
SchemaMetaDataNodePathParser.findSchemaName("/metadata/foo_db/schemas/foo_schema/tables",
 true);
         assertTrue(actual.isPresent());
         assertThat(actual.get(), is("foo_schema"));
     }
     
     @Test
     void assertNotFindSchemaNameWithContainsChildPath() {
-        Optional<String> actual = 
DatabaseMetaDataNodePathParser.findSchemaName("/xxx/foo_db/schemas/foo_schema/tables",
 true);
+        Optional<String> actual = 
SchemaMetaDataNodePathParser.findSchemaName("/xxx/foo_db/schemas/foo_schema/tables",
 true);
         assertFalse(actual.isPresent());
     }
 }
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/MetaDataChangedHandler.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/MetaDataChangedHandler.java
index a08ebbc8946..4a4a088da3b 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/MetaDataChangedHandler.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/MetaDataChangedHandler.java
@@ -25,7 +25,7 @@ import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.database.
 import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.database.metadata.type.StorageUnitChangedHandler;
 import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.database.metadata.type.TableChangedHandler;
 import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.database.metadata.type.ViewChangedHandler;
-import 
org.apache.shardingsphere.mode.node.path.metadata.database.DatabaseMetaDataNodePathParser;
+import 
org.apache.shardingsphere.mode.node.path.metadata.database.SchemaMetaDataNodePathParser;
 import 
org.apache.shardingsphere.mode.node.path.metadata.database.TableMetaDataNodePathParser;
 import 
org.apache.shardingsphere.mode.node.path.metadata.database.ViewMetaDataNodePathParser;
 import 
org.apache.shardingsphere.mode.node.path.metadata.storage.DataSourceMetaDataNodePathParser;
@@ -64,12 +64,12 @@ public final class MetaDataChangedHandler {
      */
     public boolean handle(final String databaseName, final DataChangedEvent 
event) {
         String eventKey = event.getKey();
-        Optional<String> schemaName = 
DatabaseMetaDataNodePathParser.findSchemaName(eventKey, false);
+        Optional<String> schemaName = 
SchemaMetaDataNodePathParser.findSchemaName(eventKey, false);
         if (schemaName.isPresent()) {
             handleSchemaChanged(databaseName, schemaName.get(), event);
             return true;
         }
-        schemaName = DatabaseMetaDataNodePathParser.findSchemaName(eventKey, 
true);
+        schemaName = SchemaMetaDataNodePathParser.findSchemaName(eventKey, 
true);
         if (schemaName.isPresent() && isTableMetaDataChanged(eventKey)) {
             handleTableChanged(databaseName, schemaName.get(), event);
             return true;
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/type/DatabaseListenerChangedHandler.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/type/DatabaseListenerChangedHandler.java
index e673117ce0f..df19a15cde7 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/type/DatabaseListenerChangedHandler.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/type/DatabaseListenerChangedHandler.java
@@ -26,7 +26,7 @@ import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.listener.type.Dat
 import 
org.apache.shardingsphere.mode.manager.cluster.persist.coordinator.database.ClusterDatabaseListenerCoordinatorType;
 import 
org.apache.shardingsphere.mode.manager.cluster.persist.coordinator.database.ClusterDatabaseListenerPersistCoordinator;
 import 
org.apache.shardingsphere.mode.metadata.refresher.statistics.StatisticsRefreshEngine;
-import 
org.apache.shardingsphere.mode.node.path.metadata.database.DatabaseMetaDataNodePathGenerator;
+import 
org.apache.shardingsphere.mode.node.path.metadata.DatabaseNodePathGenerator;
 import org.apache.shardingsphere.mode.node.path.state.StatesNodePathGenerator;
 import org.apache.shardingsphere.mode.node.path.state.StatesNodePathParser;
 import 
org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository;
@@ -57,10 +57,10 @@ public final class DatabaseListenerChangedHandler 
implements GlobalDataChangedEv
     private static void handle(final ContextManager contextManager, final 
String databaseName, final ClusterDatabaseListenerCoordinatorType 
clusterDatabaseListenerCoordinatorType) {
         ClusterPersistRepository repository = (ClusterPersistRepository) 
contextManager.getPersistServiceFacade().getRepository();
         if (ClusterDatabaseListenerCoordinatorType.CREATE == 
clusterDatabaseListenerCoordinatorType) {
-            
repository.watch(DatabaseMetaDataNodePathGenerator.getDatabasePath(databaseName),
 new DatabaseMetaDataChangedListener(contextManager));
+            
repository.watch(DatabaseNodePathGenerator.getDatabasePath(databaseName), new 
DatabaseMetaDataChangedListener(contextManager));
             
contextManager.getMetaDataContextManager().getDatabaseMetaDataManager().addDatabase(databaseName);
         } else if (ClusterDatabaseListenerCoordinatorType.DROP == 
clusterDatabaseListenerCoordinatorType) {
-            
repository.removeDataListener(DatabaseMetaDataNodePathGenerator.getDatabasePath(databaseName));
+            
repository.removeDataListener(DatabaseNodePathGenerator.getDatabasePath(databaseName));
             
contextManager.getMetaDataContextManager().getDatabaseMetaDataManager().dropDatabase(databaseName);
         }
         new 
ClusterDatabaseListenerPersistCoordinator(repository).delete(databaseName);
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/listener/DataChangedEventListenerRegistry.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/listener/DataChangedEventListenerRegistry.java
index 7b69e65d71e..b842848b2cd 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/listener/DataChangedEventListenerRegistry.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/listener/DataChangedEventListenerRegistry.java
@@ -22,7 +22,7 @@ import org.apache.shardingsphere.mode.manager.ContextManager;
 import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.GlobalDataChangedEventHandler;
 import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.listener.type.DatabaseMetaDataChangedListener;
 import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.listener.type.GlobalMetaDataChangedListener;
-import 
org.apache.shardingsphere.mode.node.path.metadata.database.DatabaseMetaDataNodePathGenerator;
+import 
org.apache.shardingsphere.mode.node.path.metadata.DatabaseNodePathGenerator;
 import 
org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository;
 
 import java.util.Collection;
@@ -53,7 +53,7 @@ public final class DataChangedEventListenerRegistry {
     }
     
     private void registerDatabaseListeners(final String databaseName) {
-        
repository.watch(DatabaseMetaDataNodePathGenerator.getDatabasePath(databaseName),
 new DatabaseMetaDataChangedListener(contextManager));
+        
repository.watch(DatabaseNodePathGenerator.getDatabasePath(databaseName), new 
DatabaseMetaDataChangedListener(contextManager));
     }
     
     private void registerGlobalHandlers(final GlobalDataChangedEventHandler 
handler) {
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/listener/type/DatabaseMetaDataChangedListener.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/listener/type/DatabaseMetaDataChangedListener.java
index 5f8979885ac..0dd037cf2b2 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/listener/type/DatabaseMetaDataChangedListener.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/listener/type/DatabaseMetaDataChangedListener.java
@@ -24,7 +24,7 @@ import org.apache.shardingsphere.mode.event.DataChangedEvent;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.database.metadata.MetaDataChangedHandler;
 import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.database.rule.RuleConfigurationChangedHandler;
-import 
org.apache.shardingsphere.mode.node.path.metadata.database.DatabaseMetaDataNodePathParser;
+import 
org.apache.shardingsphere.mode.node.path.metadata.DatabaseNodePathParser;
 import 
org.apache.shardingsphere.mode.repository.cluster.listener.DataChangedEventListener;
 
 import java.sql.SQLException;
@@ -40,7 +40,7 @@ public final class DatabaseMetaDataChangedListener implements 
DataChangedEventLi
     
     @Override
     public void onChange(final DataChangedEvent event) {
-        Optional<String> databaseName = 
DatabaseMetaDataNodePathParser.findDatabaseName(event.getKey(), true);
+        Optional<String> databaseName = 
DatabaseNodePathParser.findDatabaseName(event.getKey());
         if (!databaseName.isPresent()) {
             return;
         }


Reply via email to