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 3d34954ba90 Remove useless SchemaMetaDataPersistService (#32983)
3d34954ba90 is described below

commit 3d34954ba9000047e327ade3244d1df2f7eff9a7
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Sep 24 21:01:54 2024 +0800

    Remove useless SchemaMetaDataPersistService (#32983)
    
    * Remove useless SchemaMetaDataPersistService
    
    * Remove useless SchemaMetaDataPersistService
---
 .../schema/SchemaMetaDataPersistService.java       | 63 ---------------------
 .../schema/TableMetaDataPersistService.java        | 43 +++++++++++---
 .../service/schema/ViewMetaDataPersistService.java | 66 +++++++++++++++-------
 .../schema/TableMetaDataPersistServiceTest.java    |  8 +--
 ...st.java => ViewMetaDataPersistServiceTest.java} | 44 +++++++--------
 .../dispatch/MetaDataChangedSubscriber.java        | 10 ++--
 .../dispatch/MetaDataChangedSubscriberTest.java    |  6 +-
 7 files changed, 111 insertions(+), 129 deletions(-)

diff --git 
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/schema/SchemaMetaDataPersistService.java
 
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/schema/SchemaMetaDataPersistService.java
deleted file mode 100644
index f4730264307..00000000000
--- 
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/schema/SchemaMetaDataPersistService.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.metadata.persist.service.schema;
-
-/**
- * Schema meta data persist service.
- *
- * @param <T> type of schema
- */
-public interface SchemaMetaDataPersistService<T> {
-    
-    /**
-     * Persist meta data.
-     *
-     * @param databaseName database name
-     * @param schemaName schema name
-     * @param schema schema meta data
-     */
-    void persist(String databaseName, String schemaName, T schema);
-    
-    /**
-     * Load schema meta data.
-     *
-     * @param databaseName database name
-     * @param schemaName schema name
-     * @return schema meta data
-     */
-    T load(String databaseName, String schemaName);
-    
-    /**
-     * Load schema meta data.
-     *
-     * @param databaseName database name
-     * @param schemaName schema name
-     * @param name name
-     * @return schema meta data
-     */
-    T load(String databaseName, String schemaName, String name);
-    
-    /**
-     * Delete table or view.
-     *
-     * @param databaseName database name
-     * @param schemaName schema name
-     * @param name table or view name
-     */
-    void delete(String databaseName, String schemaName, String name);
-}
diff --git 
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/schema/TableMetaDataPersistService.java
 
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/schema/TableMetaDataPersistService.java
index 3df33a65db5..067d2df29fb 100644
--- 
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/schema/TableMetaDataPersistService.java
+++ 
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/schema/TableMetaDataPersistService.java
@@ -17,6 +17,7 @@
 
 package org.apache.shardingsphere.metadata.persist.service.schema;
 
+import com.google.common.base.Preconditions;
 import com.google.common.base.Strings;
 import lombok.RequiredArgsConstructor;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
@@ -29,7 +30,6 @@ import 
org.apache.shardingsphere.metadata.persist.service.version.MetaDataVersio
 import org.apache.shardingsphere.mode.spi.PersistRepository;
 
 import java.util.Collection;
-import java.util.Collections;
 import java.util.LinkedHashMap;
 import java.util.LinkedList;
 import java.util.List;
@@ -41,13 +41,19 @@ import java.util.Optional;
  * Table meta data persist service.
  */
 @RequiredArgsConstructor
-public final class TableMetaDataPersistService implements 
SchemaMetaDataPersistService<Map<String, ShardingSphereTable>> {
+public final class TableMetaDataPersistService {
     
     private final PersistRepository repository;
     
     private final MetaDataVersionPersistService metaDataVersionPersistService;
     
-    @Override
+    /**
+     * Persist tables.
+     *
+     * @param databaseName database name
+     * @param schemaName schema name
+     * @param tables tables
+     */
     public void persist(final String databaseName, final String schemaName, 
final Map<String, ShardingSphereTable> tables) {
         Collection<MetaDataVersion> metaDataVersions = new LinkedList<>();
         for (Entry<String, ShardingSphereTable> entry : tables.entrySet()) {
@@ -70,7 +76,13 @@ public final class TableMetaDataPersistService implements 
SchemaMetaDataPersistS
         return 
repository.query(TableMetaDataNode.getTableActiveVersionNode(databaseName, 
schemaName, tableName));
     }
     
-    @Override
+    /**
+     * Load tables.
+     *
+     * @param databaseName database name
+     * @param schemaName schema name
+     * @return loaded tables
+     */
     public Map<String, ShardingSphereTable> load(final String databaseName, 
final String schemaName) {
         List<String> tableNames = 
repository.getChildrenKeys(TableMetaDataNode.getMetaDataTablesNode(databaseName,
 schemaName));
         Map<String, ShardingSphereTable> result = new 
LinkedHashMap<>(tableNames.size(), 1F);
@@ -80,9 +92,18 @@ public final class TableMetaDataPersistService implements 
SchemaMetaDataPersistS
         return result;
     }
     
-    @Override
-    public Map<String, ShardingSphereTable> load(final String databaseName, 
final String schemaName, final String tableName) {
-        return getTableMetaData(databaseName, schemaName, 
tableName).map(optional -> Collections.singletonMap(tableName.toLowerCase(), 
optional)).orElse(Collections.emptyMap());
+    /**
+     * Load table.
+     *
+     * @param databaseName database name
+     * @param schemaName schema name
+     * @param tableName table name
+     * @return loaded table
+     */
+    public ShardingSphereTable load(final String databaseName, final String 
schemaName, final String tableName) {
+        Optional<ShardingSphereTable> result = getTableMetaData(databaseName, 
schemaName, tableName);
+        Preconditions.checkState(result.isPresent());
+        return result.get();
     }
     
     private Optional<ShardingSphereTable> getTableMetaData(final String 
databaseName, final String schemaName, final String tableName) {
@@ -91,7 +112,13 @@ public final class TableMetaDataPersistService implements 
SchemaMetaDataPersistS
         return Strings.isNullOrEmpty(tableContent) ? Optional.empty() : 
Optional.of(new 
YamlTableSwapper().swapToObject(YamlEngine.unmarshal(tableContent, 
YamlShardingSphereTable.class)));
     }
     
-    @Override
+    /**
+     * Delete table.
+     *
+     * @param databaseName database name
+     * @param schemaName schema name
+     * @param tableName table name
+     */
     public void delete(final String databaseName, final String schemaName, 
final String tableName) {
         repository.delete(TableMetaDataNode.getTableNode(databaseName, 
schemaName, tableName.toLowerCase()));
     }
diff --git 
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/schema/ViewMetaDataPersistService.java
 
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/schema/ViewMetaDataPersistService.java
index ad92b615d4f..021eb34b6ee 100644
--- 
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/schema/ViewMetaDataPersistService.java
+++ 
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/schema/ViewMetaDataPersistService.java
@@ -17,6 +17,7 @@
 
 package org.apache.shardingsphere.metadata.persist.service.schema;
 
+import com.google.common.base.Preconditions;
 import com.google.common.base.Strings;
 import lombok.RequiredArgsConstructor;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereView;
@@ -29,24 +30,30 @@ import 
org.apache.shardingsphere.metadata.persist.service.version.MetaDataVersio
 import org.apache.shardingsphere.mode.spi.PersistRepository;
 
 import java.util.Collection;
-import java.util.Collections;
 import java.util.LinkedHashMap;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Optional;
 
 /**
  * View meta data persist service.
  */
 @RequiredArgsConstructor
-public final class ViewMetaDataPersistService implements 
SchemaMetaDataPersistService<Map<String, ShardingSphereView>> {
+public final class ViewMetaDataPersistService {
     
     private final PersistRepository repository;
     
     private final MetaDataVersionPersistService metaDataVersionPersistService;
     
-    @Override
+    /**
+     * Persist views.
+     *
+     * @param databaseName database name
+     * @param schemaName schema name
+     * @param views views
+     */
     public void persist(final String databaseName, final String schemaName, 
final Map<String, ShardingSphereView> views) {
         Collection<MetaDataVersion> metaDataVersions = new LinkedList<>();
         for (Entry<String, ShardingSphereView> entry : views.entrySet()) {
@@ -67,30 +74,49 @@ public final class ViewMetaDataPersistService implements 
SchemaMetaDataPersistSe
         return 
repository.query(ViewMetaDataNode.getViewActiveVersionNode(databaseName, 
schemaName, viewName));
     }
     
-    @Override
+    /**
+     * Load views.
+     *
+     * @param databaseName database name
+     * @param schemaName schema name
+     * @return loaded views
+     */
     public Map<String, ShardingSphereView> load(final String databaseName, 
final String schemaName) {
-        Collection<String> viewNames = 
repository.getChildrenKeys(ViewMetaDataNode.getMetaDataViewsNode(databaseName, 
schemaName));
-        return viewNames.isEmpty() ? Collections.emptyMap() : 
getViewMetaDataByViewNames(databaseName, schemaName, viewNames);
+        List<String> viewNames = 
repository.getChildrenKeys(ViewMetaDataNode.getMetaDataViewsNode(databaseName, 
schemaName));
+        Map<String, ShardingSphereView> result = new 
LinkedHashMap<>(viewNames.size(), 1F);
+        for (String each : viewNames) {
+            getViewMetaData(databaseName, schemaName, each).ifPresent(optional 
-> result.put(each.toLowerCase(), optional));
+        }
+        return result;
     }
     
-    @Override
-    public Map<String, ShardingSphereView> load(final String databaseName, 
final String schemaName, final String viewName) {
-        return getViewMetaDataByViewNames(databaseName, schemaName, 
Collections.singletonList(viewName));
+    /**
+     * Load view.
+     *
+     * @param databaseName database name
+     * @param schemaName schema name
+     * @param viewName view name
+     * @return loaded view
+     */
+    public ShardingSphereView load(final String databaseName, final String 
schemaName, final String viewName) {
+        Optional<ShardingSphereView> result = getViewMetaData(databaseName, 
schemaName, viewName);
+        Preconditions.checkState(result.isPresent());
+        return result.get();
     }
     
-    private Map<String, ShardingSphereView> getViewMetaDataByViewNames(final 
String databaseName, final String schemaName, final Collection<String> 
viewNames) {
-        Map<String, ShardingSphereView> result = new 
LinkedHashMap<>(viewNames.size(), 1F);
-        viewNames.forEach(each -> {
-            String view = 
repository.query(ViewMetaDataNode.getViewVersionNode(databaseName, schemaName, 
each,
-                    
repository.query(ViewMetaDataNode.getViewActiveVersionNode(databaseName, 
schemaName, each))));
-            if (!Strings.isNullOrEmpty(view)) {
-                result.put(each.toLowerCase(), new 
YamlViewSwapper().swapToObject(YamlEngine.unmarshal(view, 
YamlShardingSphereView.class)));
-            }
-        });
-        return result;
+    private Optional<ShardingSphereView> getViewMetaData(final String 
databaseName, final String schemaName, final String viewName) {
+        String view = 
repository.query(ViewMetaDataNode.getViewVersionNode(databaseName, schemaName, 
viewName,
+                
repository.query(ViewMetaDataNode.getViewActiveVersionNode(databaseName, 
schemaName, viewName))));
+        return Strings.isNullOrEmpty(view) ? Optional.empty() : 
Optional.of(new YamlViewSwapper().swapToObject(YamlEngine.unmarshal(view, 
YamlShardingSphereView.class)));
     }
     
-    @Override
+    /**
+     * Delete view.
+     *
+     * @param databaseName database name
+     * @param schemaName schema name
+     * @param viewName view name
+     */
     public void delete(final String databaseName, final String schemaName, 
final String viewName) {
         repository.delete(ViewMetaDataNode.getViewNode(databaseName, 
schemaName, viewName.toLowerCase()));
     }
diff --git 
a/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/service/schema/TableMetaDataPersistServiceTest.java
 
b/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/service/schema/TableMetaDataPersistServiceTest.java
index 355cbb9064c..49b332d09eb 100644
--- 
a/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/service/schema/TableMetaDataPersistServiceTest.java
+++ 
b/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/service/schema/TableMetaDataPersistServiceTest.java
@@ -18,7 +18,6 @@
 package org.apache.shardingsphere.metadata.persist.service.schema;
 
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
-import 
org.apache.shardingsphere.metadata.persist.node.metadata.TableMetaDataNode;
 import 
org.apache.shardingsphere.metadata.persist.service.version.MetaDataVersionPersistService;
 import org.apache.shardingsphere.mode.spi.PersistRepository;
 import org.junit.jupiter.api.BeforeEach;
@@ -81,14 +80,13 @@ class TableMetaDataPersistServiceTest {
     void assertLoadWithTable() {
         
when(repository.query("/metadata/foo_db/schemas/foo_schema/tables/foo_tbl/active_version")).thenReturn("0");
         
when(repository.query("/metadata/foo_db/schemas/foo_schema/tables/foo_tbl/versions/0")).thenReturn("{name:
 foo_tbl}");
-        Map<String, ShardingSphereTable> actual = 
persistService.load("foo_db", "foo_schema", "foo_tbl");
-        assertThat(actual.size(), is(1));
-        assertThat(actual.get("foo_tbl").getName(), is("foo_tbl"));
+        ShardingSphereTable actual = persistService.load("foo_db", 
"foo_schema", "foo_tbl");
+        assertThat(actual.getName(), is("foo_tbl"));
     }
     
     @Test
     void assertDelete() {
         persistService.delete("foo_db", "foo_schema", "foo_tbl");
-        verify(repository).delete(TableMetaDataNode.getTableNode("foo_db", 
"foo_schema", "foo_tbl"));
+        
verify(repository).delete("/metadata/foo_db/schemas/foo_schema/tables/foo_tbl");
     }
 }
diff --git 
a/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/service/schema/TableMetaDataPersistServiceTest.java
 
b/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/service/schema/ViewMetaDataPersistServiceTest.java
similarity index 65%
copy from 
kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/service/schema/TableMetaDataPersistServiceTest.java
copy to 
kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/service/schema/ViewMetaDataPersistServiceTest.java
index 355cbb9064c..fc10c4abad7 100644
--- 
a/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/service/schema/TableMetaDataPersistServiceTest.java
+++ 
b/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/service/schema/ViewMetaDataPersistServiceTest.java
@@ -17,8 +17,7 @@
 
 package org.apache.shardingsphere.metadata.persist.service.schema;
 
-import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
-import 
org.apache.shardingsphere.metadata.persist.node.metadata.TableMetaDataNode;
+import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereView;
 import 
org.apache.shardingsphere.metadata.persist.service.version.MetaDataVersionPersistService;
 import org.apache.shardingsphere.mode.spi.PersistRepository;
 import org.junit.jupiter.api.BeforeEach;
@@ -39,9 +38,9 @@ import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 @ExtendWith(MockitoExtension.class)
-class TableMetaDataPersistServiceTest {
+class ViewMetaDataPersistServiceTest {
     
-    private TableMetaDataPersistService persistService;
+    private ViewMetaDataPersistService persistService;
     
     @Mock
     private PersistRepository repository;
@@ -51,44 +50,43 @@ class TableMetaDataPersistServiceTest {
     
     @BeforeEach
     void setUp() {
-        persistService = new TableMetaDataPersistService(repository, 
metaDataVersionPersistService);
+        persistService = new ViewMetaDataPersistService(repository, 
metaDataVersionPersistService);
     }
     
     @Test
     void assertPersist() {
-        persistService.persist("foo_db", "foo_schema", 
Collections.singletonMap("foo_tbl", mock(ShardingSphereTable.class)));
-        
verify(repository).persist("/metadata/foo_db/schemas/foo_schema/tables/foo_tbl/versions/0",
 "{}" + System.lineSeparator());
-        
verify(repository).persist("/metadata/foo_db/schemas/foo_schema/tables/foo_tbl/active_version",
 "0");
+        persistService.persist("foo_db", "foo_schema", 
Collections.singletonMap("foo_view", mock(ShardingSphereView.class)));
+        
verify(repository).persist("/metadata/foo_db/schemas/foo_schema/views/foo_view/versions/0",
 "{}" + System.lineSeparator());
+        
verify(repository).persist("/metadata/foo_db/schemas/foo_schema/views/foo_view/active_version",
 "0");
         verify(metaDataVersionPersistService).switchActiveVersion(any());
     }
     
     @Test
-    void assertLoadWithEmptyTables() {
+    void assertLoadWithEmptyViews() {
         assertTrue(persistService.load("foo_db", "foo_schema").isEmpty());
     }
     
     @Test
-    void assertLoadWithTables() {
-        
when(repository.getChildrenKeys("/metadata/foo_db/schemas/foo_schema/tables")).thenReturn(Collections.singletonList("foo_tbl"));
-        
when(repository.query("/metadata/foo_db/schemas/foo_schema/tables/foo_tbl/active_version")).thenReturn("0");
-        
when(repository.query("/metadata/foo_db/schemas/foo_schema/tables/foo_tbl/versions/0")).thenReturn("{name:
 foo_tbl}");
-        Map<String, ShardingSphereTable> actual = 
persistService.load("foo_db", "foo_schema");
+    void assertLoadWithViews() {
+        
when(repository.getChildrenKeys("/metadata/foo_db/schemas/foo_schema/views")).thenReturn(Collections.singletonList("foo_view"));
+        
when(repository.query("/metadata/foo_db/schemas/foo_schema/views/foo_view/active_version")).thenReturn("0");
+        
when(repository.query("/metadata/foo_db/schemas/foo_schema/views/foo_view/versions/0")).thenReturn("{name:
 foo_view}");
+        Map<String, ShardingSphereView> actual = persistService.load("foo_db", 
"foo_schema");
         assertThat(actual.size(), is(1));
-        assertThat(actual.get("foo_tbl").getName(), is("foo_tbl"));
+        assertThat(actual.get("foo_view").getName(), is("foo_view"));
     }
     
     @Test
-    void assertLoadWithTable() {
-        
when(repository.query("/metadata/foo_db/schemas/foo_schema/tables/foo_tbl/active_version")).thenReturn("0");
-        
when(repository.query("/metadata/foo_db/schemas/foo_schema/tables/foo_tbl/versions/0")).thenReturn("{name:
 foo_tbl}");
-        Map<String, ShardingSphereTable> actual = 
persistService.load("foo_db", "foo_schema", "foo_tbl");
-        assertThat(actual.size(), is(1));
-        assertThat(actual.get("foo_tbl").getName(), is("foo_tbl"));
+    void assertLoadWithView() {
+        
when(repository.query("/metadata/foo_db/schemas/foo_schema/views/foo_view/active_version")).thenReturn("0");
+        
when(repository.query("/metadata/foo_db/schemas/foo_schema/views/foo_view/versions/0")).thenReturn("{name:
 foo_view}");
+        ShardingSphereView actual = persistService.load("foo_db", 
"foo_schema", "foo_view");
+        assertThat(actual.getName(), is("foo_view"));
     }
     
     @Test
     void assertDelete() {
-        persistService.delete("foo_db", "foo_schema", "foo_tbl");
-        verify(repository).delete(TableMetaDataNode.getTableNode("foo_db", 
"foo_schema", "foo_tbl"));
+        persistService.delete("foo_db", "foo_schema", "foo_view");
+        
verify(repository).delete("/metadata/foo_db/schemas/foo_schema/views/foo_view");
     }
 }
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/MetaDataChangedSubscriber.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/MetaDataChangedSubscriber.java
index f6ae7c6f754..1aa97490bc1 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/MetaDataChangedSubscriber.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/MetaDataChangedSubscriber.java
@@ -35,8 +35,6 @@ import 
org.apache.shardingsphere.mode.manager.cluster.lock.GlobalLockPersistServ
 import 
org.apache.shardingsphere.mode.metadata.refresher.ShardingSphereStatisticsRefreshEngine;
 import 
org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository;
 
-import java.util.Map;
-
 /**
  * Meta data changed subscriber.
  */
@@ -84,9 +82,9 @@ public final class MetaDataChangedSubscriber implements 
EventSubscriber {
         Preconditions.checkArgument(event.getActiveVersion().equals(
                 
contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService().getActiveVersionByFullPath(event.getActiveVersionKey())),
                 "Invalid active version: %s of key: %s", 
event.getActiveVersion(), event.getActiveVersionKey());
-        Map<String, ShardingSphereTable> tables = 
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataService().getTableMetaDataPersistService()
+        ShardingSphereTable table = 
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataService().getTableMetaDataPersistService()
                 .load(event.getDatabaseName(), event.getSchemaName(), 
event.getTableName());
-        
contextManager.getMetaDataContextManager().getSchemaMetaDataManager().alterSchema(event.getDatabaseName(),
 event.getSchemaName(), tables.values().iterator().next(), null);
+        
contextManager.getMetaDataContextManager().getSchemaMetaDataManager().alterSchema(event.getDatabaseName(),
 event.getSchemaName(), table, null);
         refreshShardingSphereStatisticsData();
     }
     
@@ -111,9 +109,9 @@ public final class MetaDataChangedSubscriber implements 
EventSubscriber {
         Preconditions.checkArgument(event.getActiveVersion().equals(
                 
contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService().getActiveVersionByFullPath(event.getActiveVersionKey())),
                 "Invalid active version: %s of key: %s", 
event.getActiveVersion(), event.getActiveVersionKey());
-        Map<String, ShardingSphereView> views = 
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataService().getViewMetaDataPersistService()
+        ShardingSphereView view = 
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataService().getViewMetaDataPersistService()
                 .load(event.getDatabaseName(), event.getSchemaName(), 
event.getViewName());
-        
contextManager.getMetaDataContextManager().getSchemaMetaDataManager().alterSchema(event.getDatabaseName(),
 event.getSchemaName(), null, views.values().iterator().next());
+        
contextManager.getMetaDataContextManager().getSchemaMetaDataManager().alterSchema(event.getDatabaseName(),
 event.getSchemaName(), null, view);
         refreshShardingSphereStatisticsData();
     }
     
diff --git 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/MetaDataChangedSubscriberTest.java
 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/MetaDataChangedSubscriberTest.java
index f54401f38b7..fbc0033dbaa 100644
--- 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/MetaDataChangedSubscriberTest.java
+++ 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/MetaDataChangedSubscriberTest.java
@@ -38,8 +38,6 @@ import org.mockito.junit.jupiter.MockitoExtension;
 import org.mockito.junit.jupiter.MockitoSettings;
 import org.mockito.quality.Strictness;
 
-import java.util.Collections;
-
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -80,7 +78,7 @@ class MetaDataChangedSubscriberTest {
         
when(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService().getActiveVersionByFullPath("key")).thenReturn("value");
         ShardingSphereTable table = mock(ShardingSphereTable.class);
         
when(contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataService().getTableMetaDataPersistService().load("foo_db",
 "foo_schema", "foo_tbl"))
-                .thenReturn(Collections.singletonMap("foo_tbl", table));
+                .thenReturn(table);
         subscriber.renew(new CreateOrAlterTableEvent("foo_db", "foo_schema", 
"foo_tbl", "key", "value"));
         
verify(contextManager.getMetaDataContextManager().getSchemaMetaDataManager()).alterSchema("foo_db",
 "foo_schema", table, null);
     }
@@ -96,7 +94,7 @@ class MetaDataChangedSubscriberTest {
         
when(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService().getActiveVersionByFullPath("key")).thenReturn("value");
         ShardingSphereView view = mock(ShardingSphereView.class);
         
when(contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataService().getViewMetaDataPersistService().load("foo_db",
 "foo_schema", "foo_view"))
-                .thenReturn(Collections.singletonMap("foo_view", view));
+                .thenReturn(view);
         subscriber.renew(new CreateOrAlterViewEvent("foo_db", "foo_schema", 
"foo_view", "key", "value"));
         
verify(contextManager.getMetaDataContextManager().getSchemaMetaDataManager()).alterSchema("foo_db",
 "foo_schema", null, view);
     }

Reply via email to