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);
}
}