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;
}