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 a5389f531f0 Refactor SchemaMetaDataPersistService (#33853)
a5389f531f0 is described below
commit a5389f531f024608f329bdd27330dd71f2a08b7e
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Nov 30 22:36:31 2024 +0800
Refactor SchemaMetaDataPersistService (#33853)
* Refactor SchemaMetaDataPersistService
* Refactor SchemaMetaDataPersistService
---
.../shardingsphere/metadata/persist/MetaDataPersistService.java | 2 +-
.../service/metadata/schema/SchemaMetaDataPersistService.java | 5 ++---
.../metadata/persist/MetaDataPersistServiceTest.java | 2 +-
.../service/metadata/schema/SchemaMetaDataPersistServiceTest.java | 4 +++-
.../cluster/persist/ClusterMetaDataManagerPersistService.java | 8 ++++----
5 files changed, 11 insertions(+), 10 deletions(-)
diff --git
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/MetaDataPersistService.java
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/MetaDataPersistService.java
index 602af68f127..7736249fdaf 100644
---
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/MetaDataPersistService.java
+++
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/MetaDataPersistService.java
@@ -165,7 +165,7 @@ public final class MetaDataPersistService {
public void persistReloadDatabaseByDrop(final String databaseName, final
ShardingSphereDatabase reloadDatabase, final ShardingSphereDatabase
currentDatabase) {
Map<String, ShardingSphereSchema> toBeAlterSchemas =
GenericSchemaManager.getToBeDroppedTablesBySchemas(reloadDatabase.getSchemas(),
currentDatabase.getSchemas());
Map<String, ShardingSphereSchema> toBeAddedSchemas =
GenericSchemaManager.getToBeAddedTablesBySchemas(reloadDatabase.getSchemas(),
currentDatabase.getSchemas());
- toBeAddedSchemas.forEach((key, value) ->
databaseMetaDataFacade.getSchema().alterByRuleDropped(databaseName, key,
value));
+ toBeAddedSchemas.forEach((key, value) ->
databaseMetaDataFacade.getSchema().alterByRuleDropped(databaseName, value));
toBeAlterSchemas.forEach((key, value) ->
databaseMetaDataFacade.getTable().drop(databaseName, key,
value.getAllTables()));
}
}
diff --git
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/metadata/schema/SchemaMetaDataPersistService.java
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/metadata/schema/SchemaMetaDataPersistService.java
index ce0cc30628b..b4fa2340d9b 100644
---
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/metadata/schema/SchemaMetaDataPersistService.java
+++
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/metadata/schema/SchemaMetaDataPersistService.java
@@ -102,11 +102,10 @@ public final class SchemaMetaDataPersistService {
* Alter schema by rule dropped.
*
* @param databaseName database name
- * @param schemaName schema name
* @param schema to be altered schema
*/
- public void alterByRuleDropped(final String databaseName, final String
schemaName, final ShardingSphereSchema schema) {
- tableMetaDataPersistService.persist(databaseName, schemaName,
schema.getAllTables());
+ public void alterByRuleDropped(final String databaseName, final
ShardingSphereSchema schema) {
+ tableMetaDataPersistService.persist(databaseName, schema.getName(),
schema.getAllTables());
}
/**
diff --git
a/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/MetaDataPersistServiceTest.java
b/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/MetaDataPersistServiceTest.java
index a67484567a5..6d3d2bd19e7 100644
---
a/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/MetaDataPersistServiceTest.java
+++
b/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/MetaDataPersistServiceTest.java
@@ -161,7 +161,7 @@ class MetaDataPersistServiceTest {
when(GenericSchemaManager.getToBeDroppedTablesBySchemas(any(),
any())).thenReturn(Collections.singletonMap("to_be_deleted",
toBeDeletedSchema));
when(GenericSchemaManager.getToBeAddedTablesBySchemas(any(),
any())).thenReturn(Collections.singletonMap("to_be_altered", toBeAlterSchema));
metaDataPersistService.persistReloadDatabaseByDrop("foo_db",
mock(ShardingSphereDatabase.class), mock(ShardingSphereDatabase.class));
-
verify(databaseMetaDataFacade.getSchema()).alterByRuleDropped("foo_db",
"to_be_altered", toBeAlterSchema);
+
verify(databaseMetaDataFacade.getSchema()).alterByRuleDropped("foo_db",
toBeAlterSchema);
verify(databaseMetaDataFacade.getTable()).drop("foo_db",
"to_be_deleted", Collections.emptyList());
}
}
diff --git
a/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/service/metadata/schema/SchemaMetaDataPersistServiceTest.java
b/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/service/metadata/schema/SchemaMetaDataPersistServiceTest.java
index abea1cc14cc..874868fc708 100644
---
a/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/service/metadata/schema/SchemaMetaDataPersistServiceTest.java
+++
b/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/service/metadata/schema/SchemaMetaDataPersistServiceTest.java
@@ -143,7 +143,9 @@ class SchemaMetaDataPersistServiceTest {
@Test
void assertAlterByRefreshByDropConfiguration() {
- persistService.alterByRuleDropped("foo_db", "foo_schema",
mock(ShardingSphereSchema.class));
+ ShardingSphereSchema schema = mock(ShardingSphereSchema.class);
+ when(schema.getName()).thenReturn("foo_schema");
+ persistService.alterByRuleDropped("foo_db", schema);
verify(tableMetaDataPersistService).persist(eq("foo_db"),
eq("foo_schema"), anyCollection());
}
}
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/ClusterMetaDataManagerPersistService.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/ClusterMetaDataManagerPersistService.java
index 903d86224aa..e4acdfa08ad 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/ClusterMetaDataManagerPersistService.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/ClusterMetaDataManagerPersistService.java
@@ -180,8 +180,8 @@ public final class ClusterMetaDataManagerPersistService
implements MetaDataManag
}
private void afterStorageUnitsAltered(final String databaseName, final
MetaDataContexts originalMetaDataContexts, final MetaDataContexts
reloadMetaDataContexts) {
-
reloadMetaDataContexts.getMetaData().getDatabase(databaseName).getSchemas().forEach((schemaName,
schema) -> metaDataPersistService.getDatabaseMetaDataFacade()
-
.getSchema().alterByRuleAltered(reloadMetaDataContexts.getMetaData().getDatabase(databaseName).getName(),
schema));
+
reloadMetaDataContexts.getMetaData().getDatabase(databaseName).getSchemas().values().forEach(each
-> metaDataPersistService.getDatabaseMetaDataFacade()
+
.getSchema().alterByRuleAltered(reloadMetaDataContexts.getMetaData().getDatabase(databaseName).getName(),
each));
Optional.ofNullable(reloadMetaDataContexts.getStatistics().getDatabaseData().get(databaseName))
.ifPresent(optional ->
optional.getSchemaData().forEach((schemaName, schemaData) ->
metaDataPersistService.getShardingSphereDataPersistService()
.persist(originalMetaDataContexts.getMetaData().getDatabases().get(databaseName.toLowerCase()),
schemaName, schemaData)));
@@ -190,8 +190,8 @@ public final class ClusterMetaDataManagerPersistService
implements MetaDataManag
}
private void afterStorageUnitsDropped(final String databaseName, final
MetaDataContexts originalMetaDataContexts, final MetaDataContexts
reloadMetaDataContexts) {
-
reloadMetaDataContexts.getMetaData().getDatabase(databaseName).getSchemas().forEach((schemaName,
schema) -> metaDataPersistService.getDatabaseMetaDataFacade()
-
.getSchema().alterByRuleDropped(reloadMetaDataContexts.getMetaData().getDatabase(databaseName).getName(),
schemaName, schema));
+
reloadMetaDataContexts.getMetaData().getDatabase(databaseName).getSchemas().values().forEach(each
-> metaDataPersistService.getDatabaseMetaDataFacade()
+
.getSchema().alterByRuleDropped(reloadMetaDataContexts.getMetaData().getDatabase(databaseName).getName(),
each));
Optional.ofNullable(reloadMetaDataContexts.getStatistics().getDatabaseData().get(databaseName))
.ifPresent(optional ->
optional.getSchemaData().forEach((schemaName, schemaData) ->
metaDataPersistService.getShardingSphereDataPersistService()
.persist(originalMetaDataContexts.getMetaData().getDatabases().get(databaseName.toLowerCase()),
schemaName, schemaData)));