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

sunnianjun 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 12144de570a Refactor AbstractPersistService to 
RepositoryTuplePersistService (#31036)
12144de570a is described below

commit 12144de570ab59622720cf9c20c2085391b011c2
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Apr 27 20:58:38 2024 +0800

    Refactor AbstractPersistService to RepositoryTuplePersistService (#31036)
---
 ...Service.java => RepositoryTuplePersistService.java} | 13 +++++++++++--
 .../database/rule/DatabaseRulePersistService.java      | 10 ++++++----
 .../config/global/GlobalRulePersistService.java        | 18 ++++++++++--------
 3 files changed, 27 insertions(+), 14 deletions(-)

diff --git 
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/AbstractPersistService.java
 
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/RepositoryTuplePersistService.java
similarity index 89%
rename from 
kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/AbstractPersistService.java
rename to 
kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/RepositoryTuplePersistService.java
index a9d39663021..3d00832e45d 100644
--- 
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/AbstractPersistService.java
+++ 
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/RepositoryTuplePersistService.java
@@ -27,8 +27,11 @@ import java.util.LinkedHashSet;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
+/**
+ * Repository tuple persist service.
+ */
 @RequiredArgsConstructor
-public abstract class AbstractPersistService {
+public final class RepositoryTuplePersistService {
     
     private static final String ACTIVE_VERSION_PATTERN = "/active_version$";
     
@@ -38,7 +41,13 @@ public abstract class AbstractPersistService {
     
     private final PersistRepository repository;
     
-    protected final Collection<RepositoryTuple> getRepositoryTuples(final 
String rootNode) {
+    /**
+     * Load repository tuples.
+     * 
+     * @param rootNode root node
+     * @return loaded repository tuples
+     */
+    public Collection<RepositoryTuple> loadRepositoryTuples(final String 
rootNode) {
         Pattern pattern = Pattern.compile(ACTIVE_VERSION_PATTERN, 
Pattern.CASE_INSENSITIVE);
         return loadNodes(rootNode).stream().filter(each -> 
pattern.matcher(each).find()).map(this::getRepositoryTuple).collect(Collectors.toList());
     }
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/rule/DatabaseRulePersistService.java
index 99a8fce280f..6c978497661 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/rule/DatabaseRulePersistService.java
@@ -24,7 +24,7 @@ import 
org.apache.shardingsphere.infra.util.yaml.datanode.RepositoryTuple;
 import 
org.apache.shardingsphere.infra.yaml.config.swapper.rule.YamlDataNodeRuleConfigurationSwapper;
 import 
org.apache.shardingsphere.infra.yaml.config.swapper.rule.YamlDataNodeRuleConfigurationSwapperEngine;
 import 
org.apache.shardingsphere.metadata.persist.node.metadata.DatabaseRuleMetaDataNode;
-import 
org.apache.shardingsphere.metadata.persist.service.config.AbstractPersistService;
+import 
org.apache.shardingsphere.metadata.persist.service.config.RepositoryTuplePersistService;
 import 
org.apache.shardingsphere.metadata.persist.service.config.database.DatabaseBasedPersistService;
 import org.apache.shardingsphere.mode.spi.PersistRepository;
 
@@ -37,15 +37,17 @@ import java.util.Map.Entry;
 /**
  * Database rule persist service.
  */
-public final class DatabaseRulePersistService extends AbstractPersistService 
implements DatabaseBasedPersistService<Collection<RuleConfiguration>> {
+public final class DatabaseRulePersistService implements 
DatabaseBasedPersistService<Collection<RuleConfiguration>> {
     
     private static final String DEFAULT_VERSION = "0";
     
     private final PersistRepository repository;
     
+    private final RepositoryTuplePersistService repositoryTuplePersistService;
+    
     public DatabaseRulePersistService(final PersistRepository repository) {
-        super(repository);
         this.repository = repository;
+        repositoryTuplePersistService = new 
RepositoryTuplePersistService(repository);
     }
     
     @SuppressWarnings({"unchecked", "rawtypes"})
@@ -61,7 +63,7 @@ public final class DatabaseRulePersistService extends 
AbstractPersistService imp
     
     @Override
     public Collection<RuleConfiguration> load(final String databaseName) {
-        Collection<RepositoryTuple> repositoryTuples = 
getRepositoryTuples(DatabaseRuleMetaDataNode.getRulesNode(databaseName));
+        Collection<RepositoryTuple> repositoryTuples = 
repositoryTuplePersistService.loadRepositoryTuples(DatabaseRuleMetaDataNode.getRulesNode(databaseName));
         return repositoryTuples.isEmpty() ? Collections.emptyList() : new 
YamlDataNodeRuleConfigurationSwapperEngine().swapToRuleConfigurations(repositoryTuples);
     }
     
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 5f40a0d3032..fcd68699859 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
@@ -24,7 +24,7 @@ import 
org.apache.shardingsphere.infra.util.yaml.datanode.RepositoryTuple;
 import 
org.apache.shardingsphere.infra.yaml.config.swapper.rule.YamlDataNodeGlobalRuleConfigurationSwapper;
 import 
org.apache.shardingsphere.infra.yaml.config.swapper.rule.YamlDataNodeGlobalRuleConfigurationSwapperEngine;
 import org.apache.shardingsphere.metadata.persist.node.GlobalNode;
-import 
org.apache.shardingsphere.metadata.persist.service.config.AbstractPersistService;
+import 
org.apache.shardingsphere.metadata.persist.service.config.RepositoryTuplePersistService;
 import org.apache.shardingsphere.mode.spi.PersistRepository;
 
 import java.util.Collection;
@@ -36,15 +36,17 @@ import java.util.Map.Entry;
 /**
  * Global rule persist service.
  */
-public final class GlobalRulePersistService extends AbstractPersistService 
implements GlobalPersistService<Collection<RuleConfiguration>> {
+public final class GlobalRulePersistService implements 
GlobalPersistService<Collection<RuleConfiguration>> {
     
     private static final String DEFAULT_VERSION = "0";
     
     private final PersistRepository repository;
     
+    private final RepositoryTuplePersistService repositoryTuplePersistService;
+    
     public GlobalRulePersistService(final PersistRepository repository) {
-        super(repository);
         this.repository = repository;
+        repositoryTuplePersistService = new 
RepositoryTuplePersistService(repository);
     }
     
     @SuppressWarnings({"unchecked", "rawtypes"})
@@ -54,7 +56,7 @@ public final class GlobalRulePersistService extends 
AbstractPersistService imple
                 .swapToYamlRuleConfigurations(globalRuleConfigs).entrySet()) {
             Collection<RepositoryTuple> repositoryTuples = 
entry.getValue().swapToRepositoryTuples(entry.getKey());
             if (!repositoryTuples.isEmpty()) {
-                persistDataNodes(repositoryTuples);
+                persistTuples(repositoryTuples);
             }
         }
     }
@@ -67,13 +69,13 @@ public final class GlobalRulePersistService extends 
AbstractPersistService imple
                 .swapToYamlRuleConfigurations(globalRuleConfigs).entrySet()) {
             Collection<RepositoryTuple> repositoryTuples = 
entry.getValue().swapToRepositoryTuples(entry.getKey());
             if (!repositoryTuples.isEmpty()) {
-                result.addAll(persistDataNodes(repositoryTuples));
+                result.addAll(persistTuples(repositoryTuples));
             }
         }
         return result;
     }
     
-    private Collection<MetaDataVersion> persistDataNodes(final 
Collection<RepositoryTuple> repositoryTuples) {
+    private Collection<MetaDataVersion> persistTuples(final 
Collection<RepositoryTuple> repositoryTuples) {
         Collection<MetaDataVersion> result = new LinkedList<>();
         for (RepositoryTuple each : repositoryTuples) {
             List<String> versions = 
repository.getChildrenKeys(GlobalNode.getGlobalRuleVersionsNode(each.getKey()));
@@ -90,13 +92,13 @@ public final class GlobalRulePersistService extends 
AbstractPersistService imple
     
     @Override
     public Collection<RuleConfiguration> load() {
-        Collection<RepositoryTuple> repositoryTuples = 
getRepositoryTuples(GlobalNode.getGlobalRuleRootNode());
+        Collection<RepositoryTuple> repositoryTuples = 
repositoryTuplePersistService.loadRepositoryTuples(GlobalNode.getGlobalRuleRootNode());
         return repositoryTuples.isEmpty() ? Collections.emptyList() : new 
YamlDataNodeGlobalRuleConfigurationSwapperEngine().swapToRuleConfigurations(repositoryTuples);
     }
     
     @Override
     public RuleConfiguration load(final String ruleName) {
-        Collection<RepositoryTuple> repositoryTuples = 
getRepositoryTuples(GlobalNode.getGlobalRuleNode(ruleName));
+        Collection<RepositoryTuple> repositoryTuples = 
repositoryTuplePersistService.loadRepositoryTuples(GlobalNode.getGlobalRuleNode(ruleName));
         return new 
YamlDataNodeGlobalRuleConfigurationSwapperEngine().swapSingleRuleToRuleConfiguration(ruleName,
 repositoryTuples).orElse(null);
     }
 }

Reply via email to