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

jianglongtao 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 625c32d336e Refactor StorageUnit RDL statement handler (#26454)
625c32d336e is described below

commit 625c32d336ef4a118bcb8d0d1c6917c185af1cd9
Author: ChenJiaHao <[email protected]>
AuthorDate: Tue Jun 20 18:26:05 2023 +0800

    Refactor StorageUnit RDL statement handler (#26454)
---
 .../EncryptRuleConfigurationEventBuilder.java      |  2 +-
 .../ShardingRuleConfigurationEventBuilder.java     | 22 ++++++++--------
 .../persist/node/NewDatabaseMetaDataNode.java      | 15 +++++++++--
 .../database/DatabaseBasedPersistService.java      |  6 +----
 .../database/NewDataSourcePersistService.java      | 29 ++++++++++++++++------
 .../database/NewDatabaseRulePersistService.java    | 12 +++------
 .../persist/node/NewDatabaseMetaDataNodeTest.java  |  2 +-
 .../cluster/NewClusterModeContextManager.java      |  4 +--
 .../NewUpdatableGlobalRuleRALBackendHandler.java   |  2 +-
 9 files changed, 55 insertions(+), 39 deletions(-)

diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/event/EncryptRuleConfigurationEventBuilder.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/event/EncryptRuleConfigurationEventBuilder.java
index 2ef655ab341..aee8ede97b2 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/event/EncryptRuleConfigurationEventBuilder.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/event/EncryptRuleConfigurationEventBuilder.java
@@ -59,7 +59,7 @@ public final class EncryptRuleConfigurationEventBuilder 
implements RuleConfigura
         if (encryptorName.isPresent() && 
!Strings.isNullOrEmpty(event.getValue())) {
             Optional<String> encryptorVersion = 
EncryptNodeConverter.getEncryptorVersion(event.getKey());
             if (encryptorVersion.isPresent()) {
-                return createEncryptorEvent(databaseName, encryptorName.get(), 
Integer.parseInt(encryptorVersion.get()), event);   
+                return createEncryptorEvent(databaseName, encryptorName.get(), 
Integer.parseInt(encryptorVersion.get()), event);
             }
         }
         return Optional.empty();
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/event/ShardingRuleConfigurationEventBuilder.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/event/ShardingRuleConfigurationEventBuilder.java
index 106e10f330a..e3a056fab67 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/event/ShardingRuleConfigurationEventBuilder.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/event/ShardingRuleConfigurationEventBuilder.java
@@ -98,14 +98,14 @@ public final class ShardingRuleConfigurationEventBuilder 
implements RuleConfigur
         if (tableName.isPresent() && !Strings.isNullOrEmpty(event.getValue())) 
{
             Optional<String> tableNameVersion = 
ShardingNodeConverter.getTableNameVersion(event.getKey());
             if (tableNameVersion.isPresent()) {
-                return createShardingTableConfigEvent(databaseName, 
tableName.get(), Integer.parseInt(tableNameVersion.get()), event);   
+                return createShardingTableConfigEvent(databaseName, 
tableName.get(), Integer.parseInt(tableNameVersion.get()), event);
             }
         }
         Optional<String> autoTableName = 
ShardingNodeConverter.getAutoTableName(event.getKey());
         if (autoTableName.isPresent() && 
!Strings.isNullOrEmpty(event.getValue())) {
             Optional<String> autoTableNameVersion = 
ShardingNodeConverter.getAutoTableNameVersion(event.getKey());
             if (autoTableNameVersion.isPresent()) {
-                return createShardingAutoTableConfigEvent(databaseName, 
autoTableName.get(), Integer.parseInt(autoTableNameVersion.get()), event);   
+                return createShardingAutoTableConfigEvent(databaseName, 
autoTableName.get(), Integer.parseInt(autoTableNameVersion.get()), event);
             }
         }
         Optional<String> bindingTableName = 
ShardingNodeConverter.getBindingTableName(event.getKey());
@@ -118,58 +118,58 @@ public final class ShardingRuleConfigurationEventBuilder 
implements RuleConfigur
         if 
(ShardingNodeConverter.isDefaultDatabaseStrategyPath(event.getKey()) && 
!Strings.isNullOrEmpty(event.getValue())) {
             Optional<String> defaultDatabaseStrategyVersion = 
ShardingNodeConverter.getDefaultDatabaseStrategyVersion(event.getKey());
             if (defaultDatabaseStrategyVersion.isPresent()) {
-                return createDefaultDatabaseStrategyConfigEvent(databaseName, 
Integer.parseInt(defaultDatabaseStrategyVersion.get()), event);   
+                return createDefaultDatabaseStrategyConfigEvent(databaseName, 
Integer.parseInt(defaultDatabaseStrategyVersion.get()), event);
             }
         }
         if (ShardingNodeConverter.isDefaultTableStrategyPath(event.getKey()) 
&& !Strings.isNullOrEmpty(event.getValue())) {
             Optional<String> defaultTableStrategyVersion = 
ShardingNodeConverter.getDefaultTableStrategyVersion(event.getKey());
             if (defaultTableStrategyVersion.isPresent()) {
-                return createDefaultTableStrategyConfigEvent(databaseName, 
Integer.parseInt(defaultTableStrategyVersion.get()), event);   
+                return createDefaultTableStrategyConfigEvent(databaseName, 
Integer.parseInt(defaultTableStrategyVersion.get()), event);
             }
         }
         if 
(ShardingNodeConverter.isDefaultKeyGenerateStrategyPath(event.getKey()) && 
!Strings.isNullOrEmpty(event.getValue())) {
             Optional<String> defaultKeyGenerateStrategyVersion = 
ShardingNodeConverter.getDefaultKeyGenerateStrategyVersion(event.getKey());
             if (defaultKeyGenerateStrategyVersion.isPresent()) {
-                return 
createDefaultKeyGenerateStrategyConfigEvent(databaseName, 
Integer.parseInt(defaultKeyGenerateStrategyVersion.get()), event);   
+                return 
createDefaultKeyGenerateStrategyConfigEvent(databaseName, 
Integer.parseInt(defaultKeyGenerateStrategyVersion.get()), event);
             }
         }
         if (ShardingNodeConverter.isDefaultAuditStrategyPath(event.getKey()) 
&& !Strings.isNullOrEmpty(event.getValue())) {
             Optional<String> defaultAuditStrategyVersion = 
ShardingNodeConverter.getDefaultAuditStrategyVersion(event.getKey());
             if (defaultAuditStrategyVersion.isPresent()) {
-                return 
createDefaultShardingAuditorStrategyConfigEvent(databaseName, 
Integer.parseInt(defaultAuditStrategyVersion.get()), event);   
+                return 
createDefaultShardingAuditorStrategyConfigEvent(databaseName, 
Integer.parseInt(defaultAuditStrategyVersion.get()), event);
             }
         }
         if (ShardingNodeConverter.isDefaultShardingColumnPath(event.getKey()) 
&& !Strings.isNullOrEmpty(event.getValue())) {
             Optional<String> defaultShardingColumnVersion = 
ShardingNodeConverter.getDefaultShardingColumnVersion(event.getKey());
             if (defaultShardingColumnVersion.isPresent()) {
-                return createDefaultShardingColumnEvent(databaseName, 
Integer.parseInt(defaultShardingColumnVersion.get()), event);   
+                return createDefaultShardingColumnEvent(databaseName, 
Integer.parseInt(defaultShardingColumnVersion.get()), event);
             }
         }
         Optional<String> algorithmName = 
ShardingNodeConverter.getShardingAlgorithmName(event.getKey());
         if (algorithmName.isPresent() && 
!Strings.isNullOrEmpty(event.getValue())) {
             Optional<String> algorithmVersion = 
ShardingNodeConverter.getShardingAlgorithmVersion(event.getKey());
             if (algorithmVersion.isPresent()) {
-                return createShardingAlgorithmEvent(databaseName, 
algorithmName.get(), Integer.parseInt(algorithmVersion.get()), event);   
+                return createShardingAlgorithmEvent(databaseName, 
algorithmName.get(), Integer.parseInt(algorithmVersion.get()), event);
             }
         }
         Optional<String> keyGeneratorName = 
ShardingNodeConverter.getKeyGeneratorName(event.getKey());
         if (keyGeneratorName.isPresent() && 
!Strings.isNullOrEmpty(event.getValue())) {
             Optional<String> keyGeneratorVersion = 
ShardingNodeConverter.getKeyGeneratorVersion(event.getKey());
             if (keyGeneratorVersion.isPresent()) {
-                return createKeyGeneratorEvent(databaseName, 
keyGeneratorName.get(), Integer.parseInt(keyGeneratorVersion.get()), event);   
+                return createKeyGeneratorEvent(databaseName, 
keyGeneratorName.get(), Integer.parseInt(keyGeneratorVersion.get()), event);
             }
         }
         Optional<String> auditorName = 
ShardingNodeConverter.getAuditorName(event.getKey());
         if (auditorName.isPresent() && 
!Strings.isNullOrEmpty(event.getValue())) {
             Optional<String> auditorVersion = 
ShardingNodeConverter.getAuditorVersion(event.getKey());
             if (auditorVersion.isPresent()) {
-                return createAuditorEvent(databaseName, auditorName.get(), 
Integer.parseInt(auditorVersion.get()), event);   
+                return createAuditorEvent(databaseName, auditorName.get(), 
Integer.parseInt(auditorVersion.get()), event);
             }
         }
         if (ShardingNodeConverter.isShardingCachePath(event.getKey()) && 
!Strings.isNullOrEmpty(event.getValue())) {
             Optional<String> shardingCacheVersion = 
ShardingNodeConverter.getShardingCacheVersion(event.getKey());
             if (shardingCacheVersion.isPresent()) {
-                return createShardingCacheEvent(databaseName, 
Integer.parseInt(shardingCacheVersion.get()), event);   
+                return createShardingCacheEvent(databaseName, 
Integer.parseInt(shardingCacheVersion.get()), event);
             }
         }
         return Optional.empty();
diff --git 
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/node/NewDatabaseMetaDataNode.java
 
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/node/NewDatabaseMetaDataNode.java
index a0ccc916be3..74652002e36 100644
--- 
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/node/NewDatabaseMetaDataNode.java
+++ 
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/node/NewDatabaseMetaDataNode.java
@@ -62,10 +62,21 @@ public final class NewDatabaseMetaDataNode {
      *
      * @param databaseName database name
      * @param dataSourceName data source name
-     * @param version version
      * @return data source node
      */
-    public static String getDataSourceNode(final String databaseName, final 
String dataSourceName, final String version) {
+    public static String getDataSourceNode(final String databaseName, final 
String dataSourceName) {
+        return String.join("/", getDataSourcesNode(databaseName), 
dataSourceName);
+    }
+    
+    /**
+     * Get data Source node with version.
+     *
+     * @param databaseName database name
+     * @param dataSourceName data source name
+     * @param version version
+     * @return data source node with version
+     */
+    public static String getDataSourceNodeWithVersion(final String 
databaseName, final String dataSourceName, final String version) {
         return String.join("/", getDataSourceVersionsNode(databaseName, 
dataSourceName), version);
     }
     
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
index d5fce350865..9fca66503d1 100644
--- 
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
@@ -19,10 +19,8 @@ package 
org.apache.shardingsphere.metadata.persist.service.config.database;
 
 import org.apache.shardingsphere.infra.datasource.props.DataSourceProperties;
 import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion;
-import org.apache.shardingsphere.infra.util.yaml.datanode.YamlDataNode;
 
 import java.util.Collection;
-import java.util.Collections;
 import java.util.Map;
 
 /**
@@ -45,10 +43,8 @@ public interface DatabaseBasedPersistService<T> {
      *
      * @param databaseName database name
      * @param configs configurations
-     * @return yaml data nodes
      */
-    default Collection<YamlDataNode> delete(String databaseName, T configs) {
-        return Collections.emptyList();
+    default void delete(String databaseName, T configs) {
     }
     
     /**
diff --git 
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/database/NewDataSourcePersistService.java
 
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/database/NewDataSourcePersistService.java
index 3c2486347b2..1da413a1672 100644
--- 
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/database/NewDataSourcePersistService.java
+++ 
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/database/NewDataSourcePersistService.java
@@ -26,12 +26,12 @@ import 
org.apache.shardingsphere.infra.yaml.config.swapper.resource.YamlDataSour
 import org.apache.shardingsphere.metadata.persist.node.NewDatabaseMetaDataNode;
 import org.apache.shardingsphere.mode.spi.PersistRepository;
 
+import java.util.Collection;
 import java.util.Collections;
-import java.util.List;
-import java.util.Map;
 import java.util.LinkedHashMap;
 import java.util.LinkedList;
-import java.util.Collection;
+import java.util.List;
+import java.util.Map;
 import java.util.Map.Entry;
 
 /**
@@ -53,12 +53,19 @@ public final class NewDataSourcePersistService implements 
DatabaseBasedPersistSe
                 
repository.persist(NewDatabaseMetaDataNode.getDataSourceActiveVersionNode(databaseName,
 entry.getKey()), DEFAULT_VERSION);
             }
             List<String> versions = 
repository.getChildrenKeys(NewDatabaseMetaDataNode.getDataSourceVersionsNode(databaseName,
 entry.getKey()));
-            
repository.persist(NewDatabaseMetaDataNode.getDataSourceNode(databaseName, 
entry.getKey(), versions.isEmpty()
+            
repository.persist(NewDatabaseMetaDataNode.getDataSourceNodeWithVersion(databaseName,
 entry.getKey(), versions.isEmpty()
                     ? DEFAULT_VERSION
                     : String.valueOf(Integer.parseInt(versions.get(0)) + 1)), 
YamlEngine.marshal(new 
YamlDataSourceConfigurationSwapper().swapToMap(entry.getValue())));
         }
     }
     
+    @Override
+    public void delete(final String databaseName, final Map<String, 
DataSourceProperties> dataSourceConfigs) {
+        for (Entry<String, DataSourceProperties> entry : 
dataSourceConfigs.entrySet()) {
+            
repository.delete(NewDatabaseMetaDataNode.getDataSourceNode(databaseName, 
entry.getKey()));
+        }
+    }
+    
     @Override
     public Collection<MetaDataVersion> persistConfig(final String 
databaseName, final Map<String, DataSourceProperties> dataSourceConfigs) {
         Collection<MetaDataVersion> result = new LinkedList<>();
@@ -69,20 +76,21 @@ public final class NewDataSourcePersistService implements 
DatabaseBasedPersistSe
             }
             List<String> versions = 
repository.getChildrenKeys(NewDatabaseMetaDataNode.getDataSourceVersionsNode(databaseName,
 entry.getKey()));
             String nextActiveVersion = versions.isEmpty() ? DEFAULT_VERSION : 
String.valueOf(Integer.parseInt(versions.get(0)) + 1);
-            String persistKey = 
NewDatabaseMetaDataNode.getDataSourceNode(databaseName, entry.getKey(), 
nextActiveVersion);
+            String persistKey = 
NewDatabaseMetaDataNode.getDataSourceNodeWithVersion(databaseName, 
entry.getKey(), nextActiveVersion);
             repository.persist(persistKey, YamlEngine.marshal(new 
YamlDataSourceConfigurationSwapper().swapToMap(entry.getValue())));
             result.add(new MetaDataVersion(persistKey, 
NewDatabaseMetaDataNode.getDataSourceActiveVersionNode(databaseName, 
entry.getKey()), nextActiveVersion));
         }
         return result;
     }
     
+    @SuppressWarnings("unchecked")
     @Override
     public Map<String, DataSourceProperties> load(final String databaseName) {
         Map<String, DataSourceProperties> result = new LinkedHashMap<>();
         for (String each : 
repository.getChildrenKeys(NewDatabaseMetaDataNode.getDataSourcesNode(databaseName)))
 {
-            String dataSourceValue = 
repository.getDirectly(NewDatabaseMetaDataNode.getDataSourceNode(databaseName, 
each, getDataSourceActiveVersion(databaseName, each)));
-            if (Strings.isNullOrEmpty(dataSourceValue)) {
-                result.put(each, YamlEngine.unmarshal(dataSourceValue, 
DataSourceProperties.class));
+            String dataSourceValue = 
repository.getDirectly(NewDatabaseMetaDataNode.getDataSourceNodeWithVersion(databaseName,
 each, getDataSourceActiveVersion(databaseName, each)));
+            if (!Strings.isNullOrEmpty(dataSourceValue)) {
+                result.put(each, new 
YamlDataSourceConfigurationSwapper().swapToDataSourceProperties(YamlEngine.unmarshal(dataSourceValue,
 Map.class)));
             }
         }
         return result;
@@ -93,6 +101,11 @@ public final class NewDataSourcePersistService implements 
DatabaseBasedPersistSe
         return Collections.emptyMap();
     }
     
+    @Override
+    public void append(final String databaseName, final Map<String, 
DataSourceProperties> toBeAppendedDataSourcePropsMap) {
+        persist(databaseName, toBeAppendedDataSourcePropsMap);
+    }
+    
     private String getDataSourceActiveVersion(final String databaseName, final 
String dataSourceName) {
         return 
repository.getDirectly(NewDatabaseMetaDataNode.getDataSourceActiveVersionNode(databaseName,
 dataSourceName));
     }
diff --git 
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/database/NewDatabaseRulePersistService.java
 
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/database/NewDatabaseRulePersistService.java
index b214837b9e6..555c411401f 100644
--- 
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/database/NewDatabaseRulePersistService.java
+++ 
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/database/NewDatabaseRulePersistService.java
@@ -27,12 +27,11 @@ import 
org.apache.shardingsphere.metadata.persist.node.NewDatabaseMetaDataNode;
 import 
org.apache.shardingsphere.metadata.persist.service.config.AbstractPersistService;
 import org.apache.shardingsphere.mode.spi.PersistRepository;
 
-import java.util.Collections;
 import java.util.Collection;
-import java.util.Map;
-import java.util.List;
+import java.util.Collections;
 import java.util.LinkedList;
-import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
 import java.util.Map.Entry;
 
 /**
@@ -95,8 +94,7 @@ public final class NewDatabaseRulePersistService extends 
AbstractPersistService
     
     @SuppressWarnings({"unchecked", "rawtypes"})
     @Override
-    public Collection<YamlDataNode> delete(final String databaseName, final 
Collection<RuleConfiguration> configs) {
-        Collection<YamlDataNode> result = new LinkedHashSet<>();
+    public void delete(final String databaseName, final 
Collection<RuleConfiguration> configs) {
         Map<RuleConfiguration, NewYamlRuleConfigurationSwapper> yamlConfigs = 
new 
NewYamlRuleConfigurationSwapperEngine().swapToYamlRuleConfigurations(configs);
         for (Entry<RuleConfiguration, NewYamlRuleConfigurationSwapper> entry : 
yamlConfigs.entrySet()) {
             Collection<YamlDataNode> dataNodes = 
entry.getValue().swapToDataNodes(entry.getKey());
@@ -104,9 +102,7 @@ public final class NewDatabaseRulePersistService extends 
AbstractPersistService
                 continue;
             }
             deleteDataNodes(databaseName, 
entry.getValue().getRuleTagName().toLowerCase(), dataNodes);
-            result.addAll(dataNodes);
         }
-        return result;
     }
     
     private void deleteDataNodes(final String databaseName, final String 
ruleName, final Collection<YamlDataNode> dataNodes) {
diff --git 
a/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/node/NewDatabaseMetaDataNodeTest.java
 
b/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/node/NewDatabaseMetaDataNodeTest.java
index d86f504a6d8..408659711b4 100644
--- 
a/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/node/NewDatabaseMetaDataNodeTest.java
+++ 
b/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/node/NewDatabaseMetaDataNodeTest.java
@@ -116,7 +116,7 @@ class NewDatabaseMetaDataNodeTest {
     
     @Test
     void assertGetMetaDataDataSourceNode() {
-        assertThat(NewDatabaseMetaDataNode.getDataSourceNode("foo_db", 
"foo_ds", "0"), is("/metadata/foo_db/data_sources/foo_ds/versions/0"));
+        
assertThat(NewDatabaseMetaDataNode.getDataSourceNodeWithVersion("foo_db", 
"foo_ds", "0"), is("/metadata/foo_db/data_sources/foo_ds/versions/0"));
     }
     
     @Test
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/NewClusterModeContextManager.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/NewClusterModeContextManager.java
index 5ab0ea73966..6ed45642749 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/NewClusterModeContextManager.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/NewClusterModeContextManager.java
@@ -103,12 +103,12 @@ public final class NewClusterModeContextManager 
implements ModeContextManager, C
     
     @Override
     public void unregisterStorageUnits(final String databaseName, final 
Collection<String> toBeDroppedStorageUnitNames) {
-        
contextManager.getMetaDataContexts().getPersistService().getDataSourceService().persist(databaseName,
+        
contextManager.getMetaDataContexts().getPersistService().getDataSourceService().delete(databaseName,
                 
getToBeReversedDataSourcePropsMap(contextManager.getMetaDataContexts().getPersistService().getDataSourceService().load(databaseName),
 toBeDroppedStorageUnitNames));
     }
     
     private Map<String, DataSourceProperties> 
getToBeReversedDataSourcePropsMap(final Map<String, DataSourceProperties> 
dataSourcePropsMap, final Collection<String> toBeDroppedResourceNames) {
-        return dataSourcePropsMap.entrySet().stream().filter(entry -> 
!toBeDroppedResourceNames.contains(entry.getKey())).collect(Collectors.toMap(Map.Entry::getKey,
 Map.Entry::getValue));
+        return dataSourcePropsMap.entrySet().stream().filter(entry -> 
toBeDroppedResourceNames.contains(entry.getKey())).collect(Collectors.toMap(Map.Entry::getKey,
 Map.Entry::getValue));
     }
     
     @Override
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/NewUpdatableGlobalRuleRALBackendHandler.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/NewUpdatableGlobalRuleRALBackendHandler.java
index 135c0cfc62d..b6cf5b54e42 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/NewUpdatableGlobalRuleRALBackendHandler.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/NewUpdatableGlobalRuleRALBackendHandler.java
@@ -68,7 +68,7 @@ public final class NewUpdatableGlobalRuleRALBackendHandler 
implements DistSQLBac
     
     @SuppressWarnings({"rawtypes", "unchecked"})
     private RuleConfiguration processUpdate(final 
Collection<RuleConfiguration> ruleConfigurations, final RALStatement 
sqlStatement, final GlobalRuleRALUpdater globalRuleUpdater,
-                                                        final 
RuleConfiguration currentRuleConfig) {
+                                            final RuleConfiguration 
currentRuleConfig) {
         RuleConfiguration result = 
globalRuleUpdater.buildAlteredRuleConfiguration(currentRuleConfig, 
sqlStatement);
         ruleConfigurations.remove(currentRuleConfig);
         ruleConfigurations.add(result);

Reply via email to