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 0397269891a Refactor GenericSchemaManager (#33858)
0397269891a is described below

commit 0397269891a7a909630062839c938b8b213f091f
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Dec 1 13:19:53 2024 +0800

    Refactor GenericSchemaManager (#33858)
---
 .../schema/manager/GenericSchemaManager.java         | 20 ++++++++++----------
 .../schema/manager/GenericSchemaManagerTest.java     |  8 ++++----
 .../metadata/persist/MetaDataPersistService.java     | 15 ++++++---------
 .../metadata/persist/MetaDataPersistServiceTest.java |  8 ++++----
 4 files changed, 24 insertions(+), 27 deletions(-)

diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/manager/GenericSchemaManager.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/manager/GenericSchemaManager.java
index 4536a71d19d..6dc179580c0 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/manager/GenericSchemaManager.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/manager/GenericSchemaManager.java
@@ -34,21 +34,21 @@ import java.util.stream.Collectors;
 public final class GenericSchemaManager {
     
     /**
-     * Get to be added schemas.
+     * Get to be altered schemas with tables added.
      *
      * @param reloadDatabase reload database
      * @param currentDatabase current database
-     * @return to be added schemas
+     * @return to be altered schemas with tables added
      */
-    public static Collection<ShardingSphereSchema> getToBeAddedSchemas(final 
ShardingSphereDatabase reloadDatabase, final ShardingSphereDatabase 
currentDatabase) {
+    public static Collection<ShardingSphereSchema> 
getToBeAlteredSchemasWithTablesAdded(final ShardingSphereDatabase 
reloadDatabase, final ShardingSphereDatabase currentDatabase) {
         Collection<ShardingSphereSchema> result = new LinkedList<>();
         reloadDatabase.getAllSchemas().stream().filter(each -> 
!currentDatabase.containsSchema(each.getName())).forEach(result::add);
         reloadDatabase.getAllSchemas().stream().filter(each -> 
currentDatabase.containsSchema(each.getName())).collect(Collectors.toList())
-                .forEach(each -> result.add(getToBeAddedSchema(each, 
currentDatabase.getSchema(each.getName()))));
+                .forEach(each -> 
result.add(getToBeAlteredSchemaWithTablesAdded(each, 
currentDatabase.getSchema(each.getName()))));
         return result;
     }
     
-    private static ShardingSphereSchema getToBeAddedSchema(final 
ShardingSphereSchema reloadSchema, final ShardingSphereSchema currentSchema) {
+    private static ShardingSphereSchema 
getToBeAlteredSchemaWithTablesAdded(final ShardingSphereSchema reloadSchema, 
final ShardingSphereSchema currentSchema) {
         return new ShardingSphereSchema(currentSchema.getName(), 
getToBeAddedTables(reloadSchema, currentSchema), new LinkedList<>());
     }
     
@@ -64,20 +64,20 @@ public final class GenericSchemaManager {
     }
     
     /**
-     * Get to be dropped tables by schemas.
+     * Get to be altered schemas with tables dropped.
      *
      * @param reloadDatabase reload database
      * @param currentDatabase current database
-     * @return to be dropped table
+     * @return to be altered schemas with tables dropped
      */
-    public static Collection<ShardingSphereSchema> 
getToBeDroppedTablesBySchemas(final ShardingSphereDatabase reloadDatabase, 
final ShardingSphereDatabase currentDatabase) {
+    public static Collection<ShardingSphereSchema> 
getToBeAlteredSchemasWithTablesDropped(final ShardingSphereDatabase 
reloadDatabase, final ShardingSphereDatabase currentDatabase) {
         Collection<ShardingSphereSchema> result = new LinkedList<>();
         currentDatabase.getAllSchemas().stream().filter(each -> 
reloadDatabase.containsSchema(each.getName())).collect(Collectors.toMap(ShardingSphereSchema::getName,
 each -> each))
-                .forEach((key, value) -> 
result.add(getToBeDroppedTablesBySchema(reloadDatabase.getSchema(key), value)));
+                .forEach((key, value) -> 
result.add(getToBeAlteredSchemaWithTablesDropped(reloadDatabase.getSchema(key), 
value)));
         return result;
     }
     
-    private static ShardingSphereSchema getToBeDroppedTablesBySchema(final 
ShardingSphereSchema reloadSchema, final ShardingSphereSchema currentSchema) {
+    private static ShardingSphereSchema 
getToBeAlteredSchemaWithTablesDropped(final ShardingSphereSchema reloadSchema, 
final ShardingSphereSchema currentSchema) {
         return new ShardingSphereSchema(currentSchema.getName(), 
getToBeDroppedTables(reloadSchema, currentSchema), new LinkedList<>());
     }
     
diff --git 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/manager/GenericSchemaManagerTest.java
 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/manager/GenericSchemaManagerTest.java
index 36d907c0c9b..a55bfed6124 100644
--- 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/manager/GenericSchemaManagerTest.java
+++ 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/manager/GenericSchemaManagerTest.java
@@ -35,7 +35,7 @@ import static org.mockito.Mockito.when;
 class GenericSchemaManagerTest {
     
     @Test
-    void assertGetToBeAddedSchemas() {
+    void assertGetToBeAlteredSchemasWithTablesAdded() {
         ShardingSphereDatabase reloadDatabase = 
mock(ShardingSphereDatabase.class);
         
when(reloadDatabase.getAllSchemas()).thenReturn(Collections.singleton(new 
ShardingSphereSchema("foo_schema",
                 Collections.singleton(new ShardingSphereTable("foo_tbl", 
Collections.emptyList(), Collections.emptyList(), Collections.emptyList())), 
Collections.emptyList())));
@@ -44,21 +44,21 @@ class GenericSchemaManagerTest {
         
when(currentDatabase.getAllSchemas()).thenReturn(Collections.singleton(currentSchemas));
         when(currentDatabase.containsSchema("foo_schema")).thenReturn(true);
         
when(currentDatabase.getSchema("foo_schema")).thenReturn(currentSchemas);
-        Collection<ShardingSphereSchema> actual = 
GenericSchemaManager.getToBeAddedSchemas(reloadDatabase, currentDatabase);
+        Collection<ShardingSphereSchema> actual = 
GenericSchemaManager.getToBeAlteredSchemasWithTablesAdded(reloadDatabase, 
currentDatabase);
         assertThat(actual.size(), is(1));
         assertThat(actual.iterator().next().getAllTables().size(), is(1));
         assertTrue(actual.iterator().next().containsTable("foo_tbl"));
     }
     
     @Test
-    void assertGetToBeDroppedTablesBySchemas() {
+    void assertGetToBeAlteredSchemasWithTablesDropped() {
         ShardingSphereDatabase reloadDatabase = 
mock(ShardingSphereDatabase.class);
         when(reloadDatabase.containsSchema("foo_schema")).thenReturn(true);
         when(reloadDatabase.getSchema("foo_schema")).thenReturn(new 
ShardingSphereSchema("foo_schema", Collections.emptyList(), 
Collections.emptyList()));
         ShardingSphereDatabase currentDatabase = 
mock(ShardingSphereDatabase.class);
         
when(currentDatabase.getAllSchemas()).thenReturn(Collections.singleton(new 
ShardingSphereSchema("foo_schema",
                 Collections.singleton(new ShardingSphereTable("foo_tbl", 
Collections.emptyList(), Collections.emptyList(), Collections.emptyList())), 
Collections.emptyList())));
-        Collection<ShardingSphereSchema> actual = 
GenericSchemaManager.getToBeDroppedTablesBySchemas(reloadDatabase, 
currentDatabase);
+        Collection<ShardingSphereSchema> actual = 
GenericSchemaManager.getToBeAlteredSchemasWithTablesDropped(reloadDatabase, 
currentDatabase);
         assertThat(actual.size(), is(1));
         assertThat(actual.iterator().next().getAllTables().size(), is(1));
         assertTrue(actual.iterator().next().containsTable("foo_tbl"));
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 8267488ab96..8ac98009c1c 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
@@ -26,7 +26,6 @@ import 
org.apache.shardingsphere.infra.datasource.pool.props.creator.DataSourceP
 import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePoolProperties;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.manager.GenericSchemaManager;
-import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import 
org.apache.shardingsphere.metadata.persist.data.ShardingSphereDataPersistService;
@@ -149,10 +148,9 @@ public final class MetaDataPersistService {
      * @param currentDatabase current database
      */
     public void persistReloadDatabaseByAlter(final String databaseName, final 
ShardingSphereDatabase reloadDatabase, final ShardingSphereDatabase 
currentDatabase) {
-        Collection<ShardingSphereSchema> toBeDeletedSchemas = 
GenericSchemaManager.getToBeDroppedTablesBySchemas(reloadDatabase, 
currentDatabase);
-        Collection<ShardingSphereSchema> toBeAddedSchemas = 
GenericSchemaManager.getToBeAddedSchemas(reloadDatabase, currentDatabase);
-        toBeAddedSchemas.forEach(each -> 
databaseMetaDataFacade.getSchema().alterByRuleAltered(databaseName, each));
-        toBeDeletedSchemas.forEach(each -> 
databaseMetaDataFacade.getTable().drop(databaseName, each.getName(), 
each.getAllTables()));
+        
GenericSchemaManager.getToBeAlteredSchemasWithTablesAdded(reloadDatabase, 
currentDatabase).forEach(each -> 
databaseMetaDataFacade.getSchema().alterByRuleAltered(databaseName, each));
+        
GenericSchemaManager.getToBeAlteredSchemasWithTablesDropped(reloadDatabase, 
currentDatabase)
+                .forEach(each -> 
databaseMetaDataFacade.getTable().drop(databaseName, each.getName(), 
each.getAllTables()));
     }
     
     /**
@@ -163,9 +161,8 @@ public final class MetaDataPersistService {
      * @param currentDatabase current database
      */
     public void persistReloadDatabaseByDrop(final String databaseName, final 
ShardingSphereDatabase reloadDatabase, final ShardingSphereDatabase 
currentDatabase) {
-        Collection<ShardingSphereSchema> toBeAlterSchemas = 
GenericSchemaManager.getToBeDroppedTablesBySchemas(reloadDatabase, 
currentDatabase);
-        Collection<ShardingSphereSchema> toBeAddedSchemas = 
GenericSchemaManager.getToBeAddedSchemas(reloadDatabase, currentDatabase);
-        toBeAddedSchemas.forEach(each -> 
databaseMetaDataFacade.getSchema().alterByRuleDropped(databaseName, each));
-        toBeAlterSchemas.forEach(each -> 
databaseMetaDataFacade.getTable().drop(databaseName, each.getName(), 
each.getAllTables()));
+        
GenericSchemaManager.getToBeAlteredSchemasWithTablesAdded(reloadDatabase, 
currentDatabase).forEach(each -> 
databaseMetaDataFacade.getSchema().alterByRuleDropped(databaseName, each));
+        
GenericSchemaManager.getToBeAlteredSchemasWithTablesDropped(reloadDatabase, 
currentDatabase)
+                .forEach(each -> 
databaseMetaDataFacade.getTable().drop(databaseName, each.getName(), 
each.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 e7f0f6a1f62..54aecd03821 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
@@ -148,8 +148,8 @@ class MetaDataPersistServiceTest {
     void assertPersistReloadDatabaseByAlter() {
         ShardingSphereSchema toBeDeletedSchema = new 
ShardingSphereSchema("to_be_deleted");
         ShardingSphereSchema toBeAddedSchema = new 
ShardingSphereSchema("to_be_added");
-        when(GenericSchemaManager.getToBeDroppedTablesBySchemas(any(), 
any())).thenReturn(Collections.singleton(toBeDeletedSchema));
-        when(GenericSchemaManager.getToBeAddedSchemas(any(), 
any())).thenReturn(Collections.singleton(toBeAddedSchema));
+        
when(GenericSchemaManager.getToBeAlteredSchemasWithTablesDropped(any(), 
any())).thenReturn(Collections.singleton(toBeDeletedSchema));
+        when(GenericSchemaManager.getToBeAlteredSchemasWithTablesAdded(any(), 
any())).thenReturn(Collections.singleton(toBeAddedSchema));
         metaDataPersistService.persistReloadDatabaseByAlter("foo_db", 
mock(ShardingSphereDatabase.class), mock(ShardingSphereDatabase.class));
         
verify(databaseMetaDataFacade.getSchema()).alterByRuleAltered("foo_db", 
toBeAddedSchema);
         verify(databaseMetaDataFacade.getTable()).drop(eq("foo_db"), 
eq("to_be_deleted"), anyCollection());
@@ -159,8 +159,8 @@ class MetaDataPersistServiceTest {
     void assertPersistReloadDatabaseByDrop() {
         ShardingSphereSchema toBeDeletedSchema = new 
ShardingSphereSchema("to_be_deleted");
         ShardingSphereSchema toBeAlterSchema = new 
ShardingSphereSchema("to_be_altered");
-        when(GenericSchemaManager.getToBeDroppedTablesBySchemas(any(), 
any())).thenReturn(Collections.singleton(toBeDeletedSchema));
-        when(GenericSchemaManager.getToBeAddedSchemas(any(), 
any())).thenReturn(Collections.singleton(toBeAlterSchema));
+        
when(GenericSchemaManager.getToBeAlteredSchemasWithTablesDropped(any(), 
any())).thenReturn(Collections.singleton(toBeDeletedSchema));
+        when(GenericSchemaManager.getToBeAlteredSchemasWithTablesAdded(any(), 
any())).thenReturn(Collections.singleton(toBeAlterSchema));
         metaDataPersistService.persistReloadDatabaseByDrop("foo_db", 
mock(ShardingSphereDatabase.class), mock(ShardingSphereDatabase.class));
         
verify(databaseMetaDataFacade.getSchema()).alterByRuleDropped("foo_db", 
toBeAlterSchema);
         verify(databaseMetaDataFacade.getTable()).drop(eq("foo_db"), 
eq("to_be_deleted"), anyCollection());

Reply via email to