This is an automated email from the ASF dual-hosted git repository.

duanzhengqiang 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 c1349eb2086 Remove GlobalPersistService and 
DatabaseBasedPersistService (#31382)
c1349eb2086 is described below

commit c1349eb208616d2e2501abf511de0fa1f95f8647
Author: Liang Zhang <[email protected]>
AuthorDate: Sat May 25 14:04:26 2024 +0800

    Remove GlobalPersistService and DatabaseBasedPersistService (#31382)
    
    * Remove GlobalPersistService
    
    * Remove DatabaseBasedPersistService
    
    * Remove DatabaseBasedPersistService
---
 .../metadata/persist/MetaDataPersistService.java   |  6 +-
 .../DataSourceNodePersistService.java              | 80 ++++++++++++++-------
 .../DataSourceUnitPersistService.java              | 60 ++++++++++++----
 .../database/DatabaseBasedPersistService.java      | 83 ----------------------
 .../{rule => }/DatabaseRulePersistService.java     | 64 ++++++++++++-----
 .../config/global/GlobalPersistService.java        | 54 --------------
 .../config/global/GlobalRulePersistService.java    | 41 +++++++----
 .../config/global/PropertiesPersistService.java    | 27 ++++---
 .../persist/MetaDataPersistServiceTest.java        |  4 +-
 .../mode/metadata/MetaDataContextsFactoryTest.java |  2 +-
 .../ClusterMetaDataManagerPersistService.java      |  4 +-
 .../StandaloneMetaDataManagerPersistService.java   | 15 ++--
 12 files changed, 207 insertions(+), 233 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 bff9f0e43e2..fe3845d89f2 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
@@ -27,9 +27,9 @@ import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePo
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import 
org.apache.shardingsphere.metadata.persist.data.ShardingSphereDataPersistService;
-import 
org.apache.shardingsphere.metadata.persist.service.config.database.datasource.DataSourceNodePersistService;
-import 
org.apache.shardingsphere.metadata.persist.service.config.database.datasource.DataSourceUnitPersistService;
-import 
org.apache.shardingsphere.metadata.persist.service.config.database.rule.DatabaseRulePersistService;
+import 
org.apache.shardingsphere.metadata.persist.service.config.database.DataSourceNodePersistService;
+import 
org.apache.shardingsphere.metadata.persist.service.config.database.DataSourceUnitPersistService;
+import 
org.apache.shardingsphere.metadata.persist.service.config.database.DatabaseRulePersistService;
 import 
org.apache.shardingsphere.metadata.persist.service.config.global.GlobalRulePersistService;
 import 
org.apache.shardingsphere.metadata.persist.service.config.global.PropertiesPersistService;
 import 
org.apache.shardingsphere.metadata.persist.service.database.DatabaseMetaDataPersistService;
diff --git 
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/database/datasource/DataSourceNodePersistService.java
 
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/database/DataSourceNodePersistService.java
similarity index 83%
rename from 
kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/database/datasource/DataSourceNodePersistService.java
rename to 
kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/database/DataSourceNodePersistService.java
index e532f5251ea..a1d28fec617 100644
--- 
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/database/datasource/DataSourceNodePersistService.java
+++ 
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/database/DataSourceNodePersistService.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.metadata.persist.service.config.database.datasource;
+package org.apache.shardingsphere.metadata.persist.service.config.database;
 
 import com.google.common.base.Strings;
 import lombok.RequiredArgsConstructor;
@@ -24,7 +24,6 @@ import 
org.apache.shardingsphere.infra.metadata.version.MetaDataVersion;
 import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
 import 
org.apache.shardingsphere.infra.yaml.config.swapper.resource.YamlDataSourceConfigurationSwapper;
 import 
org.apache.shardingsphere.metadata.persist.node.metadata.DataSourceMetaDataNode;
-import 
org.apache.shardingsphere.metadata.persist.service.config.database.DatabaseBasedPersistService;
 import org.apache.shardingsphere.mode.spi.PersistRepository;
 
 import java.util.Collection;
@@ -38,26 +37,17 @@ import java.util.Map.Entry;
  * Data source node persist service.
  */
 @RequiredArgsConstructor
-public final class DataSourceNodePersistService implements 
DatabaseBasedPersistService<Map<String, DataSourcePoolProperties>> {
+public final class DataSourceNodePersistService {
     
     private final PersistRepository repository;
     
-    @Override
-    public void persist(final String databaseName, final Map<String, 
DataSourcePoolProperties> dataSourceConfigs) {
-        for (Entry<String, DataSourcePoolProperties> entry : 
dataSourceConfigs.entrySet()) {
-            String activeVersion = getDataSourceActiveVersion(databaseName, 
entry.getKey());
-            List<String> versions = 
repository.getChildrenKeys(DataSourceMetaDataNode.getDataSourceNodeVersionsNode(databaseName,
 entry.getKey()));
-            
repository.persist(DataSourceMetaDataNode.getDataSourceNodeVersionNode(databaseName,
 entry.getKey(), versions.isEmpty()
-                    ? MetaDataVersion.DEFAULT_VERSION
-                    : String.valueOf(Integer.parseInt(versions.get(0)) + 1)), 
YamlEngine.marshal(new 
YamlDataSourceConfigurationSwapper().swapToMap(entry.getValue())));
-            if (Strings.isNullOrEmpty(activeVersion)) {
-                
repository.persist(DataSourceMetaDataNode.getDataSourceNodeActiveVersionNode(databaseName,
 entry.getKey()), MetaDataVersion.DEFAULT_VERSION);
-            }
-        }
-    }
-    
+    /**
+     * Load data source pool configurations.
+     *
+     * @param databaseName database name
+     * @return data source pool configurations
+     */
     @SuppressWarnings("unchecked")
-    @Override
     public Map<String, DataSourcePoolProperties> load(final String 
databaseName) {
         Collection<String> childrenKeys = 
repository.getChildrenKeys(DataSourceMetaDataNode.getDataSourceNodesNode(databaseName));
         Map<String, DataSourcePoolProperties> result = new 
LinkedHashMap<>(childrenKeys.size(), 1F);
@@ -70,8 +60,14 @@ public final class DataSourceNodePersistService implements 
DatabaseBasedPersistS
         return result;
     }
     
+    /**
+     * Load data source pool configurations.
+     *
+     * @param databaseName database name
+     * @param name name
+     * @return data source pool configurations
+     */
     @SuppressWarnings("unchecked")
-    @Override
     public Map<String, DataSourcePoolProperties> load(final String 
databaseName, final String name) {
         Map<String, DataSourcePoolProperties> result = new LinkedHashMap<>(1, 
1F);
         String dataSourceValue = 
repository.query(DataSourceMetaDataNode.getDataSourceNodeVersionNode(databaseName,
 name, getDataSourceActiveVersion(databaseName, name)));
@@ -81,12 +77,42 @@ public final class DataSourceNodePersistService implements 
DatabaseBasedPersistS
         return result;
     }
     
-    @Override
-    public void delete(final String databaseName, final String name) {
-        
repository.delete(DataSourceMetaDataNode.getDataSourceNodeNode(databaseName, 
name));
+    /**
+     * Persist data source pool configurations.
+     *
+     * @param databaseName database name
+     * @param dataSourceConfigs data source pool configurations
+     */
+    public void persist(final String databaseName, final Map<String, 
DataSourcePoolProperties> dataSourceConfigs) {
+        for (Entry<String, DataSourcePoolProperties> entry : 
dataSourceConfigs.entrySet()) {
+            String activeVersion = getDataSourceActiveVersion(databaseName, 
entry.getKey());
+            List<String> versions = 
repository.getChildrenKeys(DataSourceMetaDataNode.getDataSourceNodeVersionsNode(databaseName,
 entry.getKey()));
+            
repository.persist(DataSourceMetaDataNode.getDataSourceNodeVersionNode(databaseName,
 entry.getKey(), versions.isEmpty()
+                    ? MetaDataVersion.DEFAULT_VERSION
+                    : String.valueOf(Integer.parseInt(versions.get(0)) + 1)), 
YamlEngine.marshal(new 
YamlDataSourceConfigurationSwapper().swapToMap(entry.getValue())));
+            if (Strings.isNullOrEmpty(activeVersion)) {
+                
repository.persist(DataSourceMetaDataNode.getDataSourceNodeActiveVersionNode(databaseName,
 entry.getKey()), MetaDataVersion.DEFAULT_VERSION);
+            }
+        }
+    }
+    
+    /**
+     * Delete data source pool configuration.
+     *
+     * @param databaseName database name
+     * @param dataSourceName data source name
+     */
+    public void delete(final String databaseName, final String dataSourceName) 
{
+        
repository.delete(DataSourceMetaDataNode.getDataSourceNodeNode(databaseName, 
dataSourceName));
     }
     
-    @Override
+    /**
+     * Delete data source pool configuration.
+     *
+     * @param databaseName database name
+     * @param dataSourceConfigs to be deleted configurations
+     * @return meta data versions
+     */
     public Collection<MetaDataVersion> deleteConfigurations(final String 
databaseName, final Map<String, DataSourcePoolProperties> dataSourceConfigs) {
         Collection<MetaDataVersion> result = new LinkedList<>();
         for (Entry<String, DataSourcePoolProperties> entry : 
dataSourceConfigs.entrySet()) {
@@ -97,7 +123,13 @@ public final class DataSourceNodePersistService implements 
DatabaseBasedPersistS
         return result;
     }
     
-    @Override
+    /**
+     * Persist data source pool configurations.
+     *
+     * @param databaseName database name
+     * @param dataSourceConfigs to be persisted configurations
+     * @return meta data versions
+     */
     public Collection<MetaDataVersion> persistConfigurations(final String 
databaseName, final Map<String, DataSourcePoolProperties> dataSourceConfigs) {
         Collection<MetaDataVersion> result = new LinkedList<>();
         for (Entry<String, DataSourcePoolProperties> entry : 
dataSourceConfigs.entrySet()) {
diff --git 
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/database/datasource/DataSourceUnitPersistService.java
 
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/database/DataSourceUnitPersistService.java
similarity index 79%
rename from 
kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/database/datasource/DataSourceUnitPersistService.java
rename to 
kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/database/DataSourceUnitPersistService.java
index 82aa2cc896c..367ff0b769a 100644
--- 
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/database/datasource/DataSourceUnitPersistService.java
+++ 
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/database/DataSourceUnitPersistService.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.metadata.persist.service.config.database.datasource;
+package org.apache.shardingsphere.metadata.persist.service.config.database;
 
 import com.google.common.base.Strings;
 import lombok.RequiredArgsConstructor;
@@ -24,7 +24,6 @@ import 
org.apache.shardingsphere.infra.metadata.version.MetaDataVersion;
 import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
 import 
org.apache.shardingsphere.infra.yaml.config.swapper.resource.YamlDataSourceConfigurationSwapper;
 import 
org.apache.shardingsphere.metadata.persist.node.metadata.DataSourceMetaDataNode;
-import 
org.apache.shardingsphere.metadata.persist.service.config.database.DatabaseBasedPersistService;
 import org.apache.shardingsphere.mode.spi.PersistRepository;
 
 import java.util.Collection;
@@ -38,11 +37,16 @@ import java.util.Map.Entry;
  * Data source unit persist service.
  */
 @RequiredArgsConstructor
-public final class DataSourceUnitPersistService implements 
DatabaseBasedPersistService<Map<String, DataSourcePoolProperties>> {
+public final class DataSourceUnitPersistService {
     
     private final PersistRepository repository;
     
-    @Override
+    /**
+     * Persist data source pool configurations.
+     *
+     * @param databaseName database name
+     * @param dataSourceConfigs data source pool configurations
+     */
     public void persist(final String databaseName, final Map<String, 
DataSourcePoolProperties> dataSourceConfigs) {
         for (Entry<String, DataSourcePoolProperties> entry : 
dataSourceConfigs.entrySet()) {
             String activeVersion = getDataSourceActiveVersion(databaseName, 
entry.getKey());
@@ -56,8 +60,13 @@ public final class DataSourceUnitPersistService implements 
DatabaseBasedPersistS
         }
     }
     
+    /**
+     * Load data source pool configurations.
+     *
+     * @param databaseName database name
+     * @return data source pool configurations
+     */
     @SuppressWarnings("unchecked")
-    @Override
     public Map<String, DataSourcePoolProperties> load(final String 
databaseName) {
         Collection<String> childrenKeys = 
repository.getChildrenKeys(DataSourceMetaDataNode.getDataSourceUnitsNode(databaseName));
         Map<String, DataSourcePoolProperties> result = new 
LinkedHashMap<>(childrenKeys.size(), 1F);
@@ -70,23 +79,40 @@ public final class DataSourceUnitPersistService implements 
DatabaseBasedPersistS
         return result;
     }
     
+    /**
+     * Load data source pool configurations.
+     *
+     * @param databaseName database name
+     * @param dataSourceName data source name
+     * @return data source pool configurations
+     */
     @SuppressWarnings("unchecked")
-    @Override
-    public Map<String, DataSourcePoolProperties> load(final String 
databaseName, final String name) {
+    public Map<String, DataSourcePoolProperties> load(final String 
databaseName, final String dataSourceName) {
         Map<String, DataSourcePoolProperties> result = new LinkedHashMap<>(1, 
1F);
-        String dataSourceValue = 
repository.query(DataSourceMetaDataNode.getDataSourceUnitVersionNode(databaseName,
 name, getDataSourceActiveVersion(databaseName, name)));
+        String dataSourceValue = 
repository.query(DataSourceMetaDataNode.getDataSourceUnitVersionNode(databaseName,
 dataSourceName, getDataSourceActiveVersion(databaseName, dataSourceName)));
         if (!Strings.isNullOrEmpty(dataSourceValue)) {
-            result.put(name, new 
YamlDataSourceConfigurationSwapper().swapToDataSourcePoolProperties(YamlEngine.unmarshal(dataSourceValue,
 Map.class)));
+            result.put(dataSourceName, new 
YamlDataSourceConfigurationSwapper().swapToDataSourcePoolProperties(YamlEngine.unmarshal(dataSourceValue,
 Map.class)));
         }
         return result;
     }
     
-    @Override
-    public void delete(final String databaseName, final String name) {
-        
repository.delete(DataSourceMetaDataNode.getDataSourceUnitNode(databaseName, 
name));
+    /**
+     * Delete data source pool configurations.
+     *
+     * @param databaseName database name
+     * @param dataSourceName data source name
+     */
+    public void delete(final String databaseName, final String dataSourceName) 
{
+        
repository.delete(DataSourceMetaDataNode.getDataSourceUnitNode(databaseName, 
dataSourceName));
     }
     
-    @Override
+    /**
+     * Delete data source pool configurations.
+     *
+     * @param databaseName database name
+     * @param dataSourceConfigs to be deleted configurations
+     * @return meta data versions
+     */
     public Collection<MetaDataVersion> deleteConfigurations(final String 
databaseName, final Map<String, DataSourcePoolProperties> dataSourceConfigs) {
         Collection<MetaDataVersion> result = new LinkedList<>();
         for (Entry<String, DataSourcePoolProperties> entry : 
dataSourceConfigs.entrySet()) {
@@ -97,7 +123,13 @@ public final class DataSourceUnitPersistService implements 
DatabaseBasedPersistS
         return result;
     }
     
-    @Override
+    /**
+     * Persist data source pool configurations.
+     *
+     * @param databaseName database name
+     * @param dataSourceConfigs to be persisted configurations
+     * @return meta data versions
+     */
     public Collection<MetaDataVersion> persistConfigurations(final String 
databaseName, final Map<String, DataSourcePoolProperties> dataSourceConfigs) {
         Collection<MetaDataVersion> result = new LinkedList<>();
         for (Entry<String, DataSourcePoolProperties> entry : 
dataSourceConfigs.entrySet()) {
diff --git 
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/database/DatabaseBasedPersistService.java
 
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/database/DatabaseBasedPersistService.java
deleted file mode 100644
index f9b7840449d..00000000000
--- 
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/database/DatabaseBasedPersistService.java
+++ /dev/null
@@ -1,83 +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.config.database;
-
-import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion;
-
-import java.util.Collection;
-
-/**
- * Database based persist service.
- * 
- * @param <T> type of configuration
- */
-public interface DatabaseBasedPersistService<T> {
-    
-    /**
-     * Persist configurations.
-     *
-     * @param databaseName database name
-     * @param configs configurations
-     */
-    void persist(String databaseName, T configs);
-    
-    /**
-     * Load configurations.
-     *
-     * @param databaseName database name
-     * @return configurations
-     */
-    T load(String databaseName);
-    
-    /**
-     * Load configurations.
-     *
-     * @param databaseName database name
-     * @param name name
-     * @return configurations
-     */
-    default T load(String databaseName, String name) {
-        return null;
-    }
-    
-    /**
-     * Delete configurations.
-     *
-     * @param databaseName database name
-     * @param name name
-     */
-    void delete(String databaseName, String name);
-    
-    /**
-     * Delete configurations.
-     *
-     * @param databaseName database name
-     * @param configs to be deleted configurations
-     * @return meta data versions
-     */
-    Collection<MetaDataVersion> deleteConfigurations(String databaseName, T 
configs);
-    
-    /**
-     * Persist configurations.
-     *
-     * @param databaseName database name
-     * @param configs to be persisted configurations
-     * @return meta data versions
-     */
-    Collection<MetaDataVersion> persistConfigurations(String databaseName, T 
configs);
-}
diff --git 
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/database/rule/DatabaseRulePersistService.java
 
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/database/DatabaseRulePersistService.java
similarity index 88%
rename from 
kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/database/rule/DatabaseRulePersistService.java
rename to 
kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/database/DatabaseRulePersistService.java
index 9f3cdad1592..90cce430fbd 100644
--- 
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/database/rule/DatabaseRulePersistService.java
+++ 
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/database/DatabaseRulePersistService.java
@@ -15,20 +15,19 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.metadata.persist.service.config.database.rule;
+package org.apache.shardingsphere.metadata.persist.service.config.database;
 
 import com.google.common.base.Strings;
 import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
 import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion;
-import org.apache.shardingsphere.mode.tuple.RepositoryTuple;
 import 
org.apache.shardingsphere.infra.yaml.config.pojo.rule.YamlRuleConfiguration;
-import org.apache.shardingsphere.mode.tuple.annotation.RepositoryTupleEntity;
 import 
org.apache.shardingsphere.infra.yaml.config.swapper.rule.YamlRuleConfigurationSwapperEngine;
 import 
org.apache.shardingsphere.metadata.persist.node.metadata.DatabaseRuleMetaDataNode;
 import 
org.apache.shardingsphere.metadata.persist.service.config.RepositoryTuplePersistService;
-import 
org.apache.shardingsphere.metadata.persist.service.config.database.DatabaseBasedPersistService;
-import org.apache.shardingsphere.mode.tuple.RepositoryTupleSwapperEngine;
 import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.tuple.RepositoryTuple;
+import org.apache.shardingsphere.mode.tuple.RepositoryTupleSwapperEngine;
+import org.apache.shardingsphere.mode.tuple.annotation.RepositoryTupleEntity;
 
 import java.util.Collection;
 import java.util.Collections;
@@ -39,7 +38,7 @@ import java.util.Objects;
 /**
  * Database rule persist service.
  */
-public final class DatabaseRulePersistService implements 
DatabaseBasedPersistService<Collection<RuleConfiguration>> {
+public final class DatabaseRulePersistService {
     
     private final PersistRepository repository;
     
@@ -50,7 +49,22 @@ public final class DatabaseRulePersistService implements 
DatabaseBasedPersistSer
         repositoryTuplePersistService = new 
RepositoryTuplePersistService(repository);
     }
     
-    @Override
+    /**
+     * Load configurations.
+     *
+     * @param databaseName database name
+     * @return configurations
+     */
+    public Collection<RuleConfiguration> load(final String databaseName) {
+        return new 
RepositoryTupleSwapperEngine().swapToRuleConfigurations(repositoryTuplePersistService.loadRepositoryTuples(DatabaseRuleMetaDataNode.getRulesNode(databaseName)));
+    }
+    
+    /**
+     * Persist configurations.
+     *
+     * @param databaseName database name
+     * @param configs configurations
+     */
     public void persist(final String databaseName, final 
Collection<RuleConfiguration> configs) {
         RepositoryTupleSwapperEngine repositoryTupleSwapperEngine = new 
RepositoryTupleSwapperEngine();
         for (YamlRuleConfiguration each : new 
YamlRuleConfigurationSwapperEngine().swapToYamlRuleConfigurations(configs)) {
@@ -61,17 +75,13 @@ public final class DatabaseRulePersistService implements 
DatabaseBasedPersistSer
         }
     }
     
-    @Override
-    public Collection<RuleConfiguration> load(final String databaseName) {
-        return new 
RepositoryTupleSwapperEngine().swapToRuleConfigurations(repositoryTuplePersistService.loadRepositoryTuples(DatabaseRuleMetaDataNode.getRulesNode(databaseName)));
-    }
-    
-    @Override
-    public void delete(final String databaseName, final String name) {
-        
repository.delete(DatabaseRuleMetaDataNode.getDatabaseRuleNode(databaseName, 
name));
-    }
-    
-    @Override
+    /**
+     * Persist configurations.
+     *
+     * @param databaseName database name
+     * @param configs to be persisted configurations
+     * @return meta data versions
+     */
     public Collection<MetaDataVersion> persistConfigurations(final String 
databaseName, final Collection<RuleConfiguration> configs) {
         Collection<MetaDataVersion> result = new LinkedList<>();
         RepositoryTupleSwapperEngine repositoryTupleSwapperEngine = new 
RepositoryTupleSwapperEngine();
@@ -99,7 +109,23 @@ public final class DatabaseRulePersistService implements 
DatabaseBasedPersistSer
         return result;
     }
     
-    @Override
+    /**
+     * Delete configurations.
+     *
+     * @param databaseName database name
+     * @param ruleTypeName rule type name
+     */
+    public void delete(final String databaseName, final String ruleTypeName) {
+        
repository.delete(DatabaseRuleMetaDataNode.getDatabaseRuleNode(databaseName, 
ruleTypeName));
+    }
+    
+    /**
+     * Delete configurations.
+     *
+     * @param databaseName database name
+     * @param configs to be deleted configurations
+     * @return meta data versions
+     */
     public Collection<MetaDataVersion> deleteConfigurations(final String 
databaseName, final Collection<RuleConfiguration> configs) {
         Collection<MetaDataVersion> result = new LinkedList<>();
         RepositoryTupleSwapperEngine repositoryTupleSwapperEngine = new 
RepositoryTupleSwapperEngine();
diff --git 
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/global/GlobalPersistService.java
 
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/global/GlobalPersistService.java
deleted file mode 100644
index cbda2153d0c..00000000000
--- 
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/global/GlobalPersistService.java
+++ /dev/null
@@ -1,54 +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.config.global;
-
-import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
-
-import java.util.Optional;
-
-/**
- * Global persist service.
- * 
- * @param <T> type of configuration
- */
-public interface GlobalPersistService<T> {
-    
-    /**
-     * Persist configurations.
-     *
-     * @param globalRuleConfigs configurations
-     */
-    void persist(T globalRuleConfigs);
-    
-    /**
-     * Load configurations.
-     *
-     * @return configurations
-     */
-    T load();
-    
-    /**
-     * Load single rule configuration.
-     *
-     * @param ruleName rule name
-     * @return single rule configuration
-     */
-    default Optional<RuleConfiguration> load(final String ruleName) {
-        return Optional.empty();
-    }
-}
diff --git 
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/global/GlobalRulePersistService.java
 
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/global/GlobalRulePersistService.java
index 0943bccd442..379a8c6ae1f 100644
--- 
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/global/GlobalRulePersistService.java
+++ 
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/global/GlobalRulePersistService.java
@@ -20,14 +20,14 @@ package 
org.apache.shardingsphere.metadata.persist.service.config.global;
 import com.google.common.base.Strings;
 import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
 import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion;
-import org.apache.shardingsphere.mode.tuple.RepositoryTuple;
 import 
org.apache.shardingsphere.infra.yaml.config.pojo.rule.YamlRuleConfiguration;
 import 
org.apache.shardingsphere.infra.yaml.config.swapper.rule.YamlRuleConfigurationSwapperEngine;
 import org.apache.shardingsphere.metadata.persist.node.GlobalNode;
 import 
org.apache.shardingsphere.metadata.persist.service.config.RepositoryTuplePersistService;
 import 
org.apache.shardingsphere.metadata.persist.service.version.MetaDataVersionPersistService;
-import org.apache.shardingsphere.mode.tuple.RepositoryTupleSwapperEngine;
 import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.tuple.RepositoryTuple;
+import org.apache.shardingsphere.mode.tuple.RepositoryTupleSwapperEngine;
 
 import java.util.Collection;
 import java.util.LinkedList;
@@ -37,7 +37,7 @@ import java.util.Optional;
 /**
  * Global rule persist service.
  */
-public final class GlobalRulePersistService implements 
GlobalPersistService<Collection<RuleConfiguration>> {
+public final class GlobalRulePersistService {
     
     private final PersistRepository repository;
     
@@ -51,7 +51,30 @@ public final class GlobalRulePersistService implements 
GlobalPersistService<Coll
         repositoryTuplePersistService = new 
RepositoryTuplePersistService(repository);
     }
     
-    @Override
+    /**
+     * Load global rule configurations.
+     *
+     * @return global rule configurations
+     */
+    public Collection<RuleConfiguration> load() {
+        return new 
RepositoryTupleSwapperEngine().swapToRuleConfigurations(repositoryTuplePersistService.loadRepositoryTuples(GlobalNode.getGlobalRuleRootNode()));
+    }
+    
+    /**
+     * Load global rule configuration.
+     *
+     * @param ruleTypeName rule type name to be loaded
+     * @return global rule configuration
+     */
+    public Optional<RuleConfiguration> load(final String ruleTypeName) {
+        return new 
RepositoryTupleSwapperEngine().swapToRuleConfiguration(ruleTypeName, 
repositoryTuplePersistService.loadRepositoryTuples(GlobalNode.getGlobalRuleNode(ruleTypeName)));
+    }
+    
+    /**
+     * Persist global rule configurations.
+     *
+     * @param globalRuleConfigs global rule configurations
+     */
     public void persist(final Collection<RuleConfiguration> globalRuleConfigs) 
{
         Collection<MetaDataVersion> metaDataVersions = new LinkedList<>();
         RepositoryTupleSwapperEngine repositoryTupleSwapperEngine = new 
RepositoryTupleSwapperEngine();
@@ -77,14 +100,4 @@ public final class GlobalRulePersistService implements 
GlobalPersistService<Coll
         }
         return result;
     }
-    
-    @Override
-    public Collection<RuleConfiguration> load() {
-        return new 
RepositoryTupleSwapperEngine().swapToRuleConfigurations(repositoryTuplePersistService.loadRepositoryTuples(GlobalNode.getGlobalRuleRootNode()));
-    }
-    
-    @Override
-    public Optional<RuleConfiguration> load(final String ruleName) {
-        return new 
RepositoryTupleSwapperEngine().swapToRuleConfiguration(ruleName, 
repositoryTuplePersistService.loadRepositoryTuples(GlobalNode.getGlobalRuleNode(ruleName)));
-    }
 }
diff --git 
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/global/PropertiesPersistService.java
 
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/global/PropertiesPersistService.java
index 99fcc58039a..d479f180873 100644
--- 
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/global/PropertiesPersistService.java
+++ 
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/global/PropertiesPersistService.java
@@ -33,13 +33,27 @@ import java.util.Properties;
  * Properties persist service.
  */
 @RequiredArgsConstructor
-public final class PropertiesPersistService implements 
GlobalPersistService<Properties> {
+public final class PropertiesPersistService {
     
     private final PersistRepository repository;
     
     private final MetaDataVersionPersistService metaDataVersionPersistService;
     
-    @Override
+    /**
+     * Load properties.
+     *
+     * @return properties
+     */
+    public Properties load() {
+        String yamlContent = 
repository.query(GlobalNode.getPropsVersionNode(getActiveVersion()));
+        return Strings.isNullOrEmpty(yamlContent) ? new Properties() : 
YamlEngine.unmarshal(yamlContent, Properties.class);
+    }
+    
+    /**
+     * Persist properties.
+     *
+     * @param props properties
+     */
     public void persist(final Properties props) {
         List<String> versions = 
repository.getChildrenKeys(GlobalNode.getPropsVersionsNode());
         String nextActiveVersion = versions.isEmpty() ? 
MetaDataVersion.DEFAULT_VERSION : 
String.valueOf(Integer.parseInt(versions.get(0)) + 1);
@@ -47,14 +61,7 @@ public final class PropertiesPersistService implements 
GlobalPersistService<Prop
         if (Strings.isNullOrEmpty(getActiveVersion())) {
             repository.persist(GlobalNode.getPropsActiveVersionNode(), 
MetaDataVersion.DEFAULT_VERSION);
         }
-        
metaDataVersionPersistService.switchActiveVersion(Collections.singletonList(new 
MetaDataVersion(GlobalNode.getPropsRootNode(),
-                getActiveVersion(), nextActiveVersion)));
-    }
-    
-    @Override
-    public Properties load() {
-        String yamlContent = 
repository.query(GlobalNode.getPropsVersionNode(getActiveVersion()));
-        return Strings.isNullOrEmpty(yamlContent) ? new Properties() : 
YamlEngine.unmarshal(yamlContent, Properties.class);
+        
metaDataVersionPersistService.switchActiveVersion(Collections.singleton(new 
MetaDataVersion(GlobalNode.getPropsRootNode(), getActiveVersion(), 
nextActiveVersion)));
     }
     
     private String getActiveVersion() {
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 57cdbac03ce..8ae3e463363 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
@@ -17,8 +17,8 @@
 
 package org.apache.shardingsphere.metadata.persist;
 
-import 
org.apache.shardingsphere.metadata.persist.service.config.database.datasource.DataSourceUnitPersistService;
-import 
org.apache.shardingsphere.metadata.persist.service.config.database.rule.DatabaseRulePersistService;
+import 
org.apache.shardingsphere.metadata.persist.service.config.database.DataSourceUnitPersistService;
+import 
org.apache.shardingsphere.metadata.persist.service.config.database.DatabaseRulePersistService;
 import 
org.apache.shardingsphere.metadata.persist.service.config.global.GlobalRulePersistService;
 import 
org.apache.shardingsphere.metadata.persist.service.config.global.PropertiesPersistService;
 import org.apache.shardingsphere.mode.spi.PersistRepository;
diff --git 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactoryTest.java
 
b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactoryTest.java
index de344bd39c2..81b2d11df00 100644
--- 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactoryTest.java
+++ 
b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactoryTest.java
@@ -28,7 +28,7 @@ import 
org.apache.shardingsphere.infra.rule.builder.global.GlobalRulesBuilder;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory;
 import org.apache.shardingsphere.metadata.persist.MetaDataPersistService;
-import 
org.apache.shardingsphere.metadata.persist.service.config.database.rule.DatabaseRulePersistService;
+import 
org.apache.shardingsphere.metadata.persist.service.config.database.DatabaseRulePersistService;
 import 
org.apache.shardingsphere.metadata.persist.service.config.global.GlobalRulePersistService;
 import 
org.apache.shardingsphere.metadata.persist.service.config.global.PropertiesPersistService;
 import 
org.apache.shardingsphere.metadata.persist.service.database.DatabaseMetaDataPersistService;
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/service/ClusterMetaDataManagerPersistService.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/service/ClusterMetaDataManagerPersistService.java
index 38d61ff5795..40997eb0e4f 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/service/ClusterMetaDataManagerPersistService.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/service/ClusterMetaDataManagerPersistService.java
@@ -26,7 +26,7 @@ import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSp
 import 
org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaMetaDataPOJO;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaPOJO;
 import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion;
-import 
org.apache.shardingsphere.metadata.persist.service.config.database.DatabaseBasedPersistService;
+import 
org.apache.shardingsphere.metadata.persist.service.config.database.DataSourceUnitPersistService;
 import 
org.apache.shardingsphere.metadata.persist.service.database.DatabaseMetaDataPersistService;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.service.MetaDataManagerPersistService;
@@ -99,7 +99,7 @@ public final class ClusterMetaDataManagerPersistService 
implements MetaDataManag
     
     @Override
     public void alterStorageUnits(final String databaseName, final Map<String, 
DataSourcePoolProperties> toBeUpdatedProps) {
-        DatabaseBasedPersistService<Map<String, DataSourcePoolProperties>> 
dataSourceService = 
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDataSourceUnitService();
+        DataSourceUnitPersistService dataSourceService = 
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDataSourceUnitService();
         
contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
                 
.switchActiveVersion(dataSourceService.persistConfigurations(databaseName, 
toBeUpdatedProps));
     }
diff --git 
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/service/StandaloneMetaDataManagerPersistService.java
 
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/service/StandaloneMetaDataManagerPersistService.java
index 0bfcd58c287..af9f9163768 100644
--- 
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/service/StandaloneMetaDataManagerPersistService.java
+++ 
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/service/StandaloneMetaDataManagerPersistService.java
@@ -32,7 +32,7 @@ import 
org.apache.shardingsphere.infra.rule.attribute.datanode.MutableDataNodeRu
 import org.apache.shardingsphere.infra.rule.scope.GlobalRule;
 import 
org.apache.shardingsphere.infra.rule.scope.GlobalRule.GlobalRuleChangedType;
 import 
org.apache.shardingsphere.infra.spi.type.ordered.cache.OrderedServicesCache;
-import 
org.apache.shardingsphere.metadata.persist.service.config.database.DatabaseBasedPersistService;
+import 
org.apache.shardingsphere.metadata.persist.service.config.database.DataSourceUnitPersistService;
 import 
org.apache.shardingsphere.metadata.persist.service.database.DatabaseMetaDataPersistService;
 import org.apache.shardingsphere.mode.event.DataChangedEvent;
 import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
@@ -48,7 +48,8 @@ import 
org.apache.shardingsphere.single.api.config.SingleRuleConfiguration;
 import java.sql.SQLException;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.LinkedHashSet;
+import java.util.HashSet;
+import java.util.LinkedList;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Optional;
@@ -179,8 +180,8 @@ public final class StandaloneMetaDataManagerPersistService 
implements MetaDataMa
     
     @Override
     public void dropSchema(final String databaseName, final Collection<String> 
schemaNames) {
-        Collection<String> tobeRemovedTables = new LinkedHashSet<>();
-        Collection<String> tobeRemovedSchemas = new 
LinkedHashSet<>(schemaNames.size(), 1F);
+        Collection<String> tobeRemovedTables = new LinkedList<>();
+        Collection<String> tobeRemovedSchemas = new LinkedList<>();
         ShardingSphereMetaData metaData = 
contextManager.getMetaDataContexts().getMetaData();
         ShardingSphereDatabase database = metaData.getDatabase(databaseName);
         for (String each : schemaNames) {
@@ -189,7 +190,7 @@ public final class StandaloneMetaDataManagerPersistService 
implements MetaDataMa
             Optional.of(schema).ifPresent(optional -> 
tobeRemovedTables.addAll(optional.getAllTableNames()));
             tobeRemovedSchemas.add(each.toLowerCase());
         }
-        
removeDataNode(database.getRuleMetaData().getAttributes(MutableDataNodeRuleAttribute.class),
 tobeRemovedSchemas, tobeRemovedTables);
+        
removeDataNode(database.getRuleMetaData().getAttributes(MutableDataNodeRuleAttribute.class),
 new HashSet<>(tobeRemovedSchemas), new HashSet<>(tobeRemovedTables));
         metaData.getGlobalRuleMetaData().getRules().forEach(each -> 
((GlobalRule) each).refresh(metaData.getDatabases(), 
GlobalRuleChangedType.SCHEMA_CHANGED));
     }
     
@@ -222,7 +223,7 @@ public final class StandaloneMetaDataManagerPersistService 
implements MetaDataMa
         
contextManager.getMetaDataContexts().getMetaData().getDatabase(databaseName).getSchemas()
                 .forEach((schemaName, schema) -> 
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataService()
                         
.persistByAlterConfiguration(contextManager.getMetaDataContexts().getMetaData().getDatabase(databaseName).getName(),
 schemaName, schema));
-        DatabaseBasedPersistService<Map<String, DataSourcePoolProperties>> 
dataSourceService = 
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDataSourceUnitService();
+        DataSourceUnitPersistService dataSourceService = 
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDataSourceUnitService();
         
contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
                 
.switchActiveVersion(dataSourceService.persistConfigurations(databaseName, 
toBeRegisteredProps));
         clearServiceCache();
@@ -236,7 +237,7 @@ public final class StandaloneMetaDataManagerPersistService 
implements MetaDataMa
                 .createChangedDatabases(databaseName, true, switchingResource, 
null));
         
contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getRules()
                 .forEach(each -> ((GlobalRule) 
each).refresh(contextManager.getMetaDataContexts().getMetaData().getDatabases(),
 GlobalRuleChangedType.DATABASE_CHANGED));
-        DatabaseBasedPersistService<Map<String, DataSourcePoolProperties>> 
dataSourceService = 
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDataSourceUnitService();
+        DataSourceUnitPersistService dataSourceService = 
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDataSourceUnitService();
         
contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
                 
.switchActiveVersion(dataSourceService.persistConfigurations(databaseName, 
toBeUpdatedProps));
         switchingResource.closeStaleDataSources();


Reply via email to