This is an automated email from the ASF dual-hosted git repository.
zhaojinchao 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 67d9fd1afde Refactor RepositoryTupleSwapper (#31072)
67d9fd1afde is described below
commit 67d9fd1afde112bebd81c775455dc2e08b0ab24a
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Apr 30 15:47:00 2024 +0800
Refactor RepositoryTupleSwapper (#31072)
* Fix test cases
* Refactor RepositoryTupleSwapper
---
...astRuleConfigurationRepositoryTupleSwapper.java | 9 ++++++++-
...uleConfigurationRepositoryTupleSwapperTest.java | 7 +++++--
...yptRuleConfigurationRepositoryTupleSwapper.java | 14 +++++++++++++-
...uleConfigurationRepositoryTupleSwapperTest.java | 7 +++++--
...askRuleConfigurationRepositoryTupleSwapper.java | 14 +++++++++++++-
...uleConfigurationRepositoryTupleSwapperTest.java | 8 +++++---
...ingRuleConfigurationRepositoryTupleSwapper.java | 16 +++++++++++++++-
...uleConfigurationRepositoryTupleSwapperTest.java | 22 +++++++++++++---------
...dowRuleConfigurationRepositoryTupleSwapper.java | 20 +++++++++++++++++++-
...uleConfigurationRepositoryTupleSwapperTest.java | 7 +++++--
...ingRuleConfigurationRepositoryTupleSwapper.java | 17 ++++++++++++++++-
...uleConfigurationRepositoryTupleSwapperTest.java | 7 +++++--
.../rule/YamlRuleConfigurationSwapperEngine.java | 13 +++++++++++++
...ityRuleConfigurationRepositoryTupleSwapper.java | 7 ++++++-
...uleConfigurationRepositoryTupleSwapperTest.java | 7 +++++--
...ockRuleConfigurationRepositoryTupleSwapper.java | 7 ++++++-
...uleConfigurationRepositoryTupleSwapperTest.java | 5 ++---
...ingRuleConfigurationRepositoryTupleSwapper.java | 7 ++++++-
...uleConfigurationRepositoryTupleSwapperTest.java | 6 +++++-
.../database/rule/DatabaseRulePersistService.java | 14 +++++++++-----
.../config/global/GlobalRulePersistService.java | 4 +++-
...gleRuleConfigurationRepositoryTupleSwapper.java | 7 ++++++-
...uleConfigurationRepositoryTupleSwapperTest.java | 4 ++--
...ionRuleConfigurationRepositoryTupleSwapper.java | 7 ++++++-
...uleConfigurationRepositoryTupleSwapperTest.java | 5 ++---
...serRuleConfigurationRepositoryTupleSwapper.java | 7 ++++++-
...uleConfigurationRepositoryTupleSwapperTest.java | 6 ++----
...torRuleConfigurationRepositoryTupleSwapper.java | 7 ++++++-
...uleConfigurationRepositoryTupleSwapperTest.java | 4 ++--
...ficRuleConfigurationRepositoryTupleSwapper.java | 7 ++++++-
...uleConfigurationRepositoryTupleSwapperTest.java | 4 ++--
...ionRuleConfigurationRepositoryTupleSwapper.java | 7 ++++++-
...uleConfigurationRepositoryTupleSwapperTest.java | 9 ++-------
.../mode/spi/RepositoryTupleSwapper.java | 12 +++++++++++-
34 files changed, 236 insertions(+), 68 deletions(-)
diff --git
a/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/yaml/swapper/BroadcastRuleConfigurationRepositoryTupleSwapper.java
b/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/yaml/swapper/BroadcastRuleConfigurationRepositoryTupleSwapper.java
index 2ce06657763..b189b741f80 100644
---
a/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/yaml/swapper/BroadcastRuleConfigurationRepositoryTupleSwapper.java
+++
b/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/yaml/swapper/BroadcastRuleConfigurationRepositoryTupleSwapper.java
@@ -35,12 +35,19 @@ import java.util.stream.Collectors;
/**
* Broadcast rule configuration repository tuple swapper.
*/
-public final class BroadcastRuleConfigurationRepositoryTupleSwapper implements
RepositoryTupleSwapper<BroadcastRuleConfiguration> {
+public final class BroadcastRuleConfigurationRepositoryTupleSwapper implements
RepositoryTupleSwapper<BroadcastRuleConfiguration,
YamlBroadcastRuleConfiguration> {
private final YamlBroadcastRuleConfigurationSwapper ruleConfigSwapper =
new YamlBroadcastRuleConfigurationSwapper();
private final RuleNodePath broadcastRuleNodePath = new
BroadcastRuleNodePathProvider().getRuleNodePath();
+ @Override
+ public Collection<RepositoryTuple> swapToRepositoryTuples(final
YamlBroadcastRuleConfiguration yamlRuleConfig) {
+ return yamlRuleConfig.getTables().isEmpty()
+ ? Collections.emptyList()
+ : Collections.singleton(new
RepositoryTuple(BroadcastRuleNodePathProvider.TABLES,
YamlEngine.marshal(yamlRuleConfig)));
+ }
+
@Override
public Collection<RepositoryTuple> swapToRepositoryTuples(final
BroadcastRuleConfiguration data) {
return data.getTables().isEmpty()
diff --git
a/features/broadcast/core/src/test/java/org/apache/shardingsphere/broadcast/yaml/swapper/BroadcastRuleConfigurationRepositoryTupleSwapperTest.java
b/features/broadcast/core/src/test/java/org/apache/shardingsphere/broadcast/yaml/swapper/BroadcastRuleConfigurationRepositoryTupleSwapperTest.java
index b0d219df024..e29b140d1e1 100644
---
a/features/broadcast/core/src/test/java/org/apache/shardingsphere/broadcast/yaml/swapper/BroadcastRuleConfigurationRepositoryTupleSwapperTest.java
+++
b/features/broadcast/core/src/test/java/org/apache/shardingsphere/broadcast/yaml/swapper/BroadcastRuleConfigurationRepositoryTupleSwapperTest.java
@@ -18,7 +18,9 @@
package org.apache.shardingsphere.broadcast.yaml.swapper;
import
org.apache.shardingsphere.broadcast.api.config.BroadcastRuleConfiguration;
+import
org.apache.shardingsphere.broadcast.yaml.config.YamlBroadcastRuleConfiguration;
import org.apache.shardingsphere.infra.util.yaml.datanode.RepositoryTuple;
+import
org.apache.shardingsphere.infra.yaml.config.swapper.rule.YamlRuleConfigurationSwapperEngine;
import org.junit.jupiter.api.Test;
import java.util.Arrays;
@@ -38,12 +40,13 @@ class BroadcastRuleConfigurationRepositoryTupleSwapperTest {
@Test
void assertSwapToRepositoryTuplesWithEmptyRule() {
- assertTrue(swapper.swapToRepositoryTuples(new
BroadcastRuleConfiguration(Collections.emptyList())).isEmpty());
+ assertTrue(swapper.swapToRepositoryTuples(new
YamlBroadcastRuleConfiguration()).isEmpty());
}
@Test
void assertSwapToRepositoryTuples() {
- Collection<RepositoryTuple> actual =
swapper.swapToRepositoryTuples(new
BroadcastRuleConfiguration(Arrays.asList("foo_table", "foo_table2")));
+ BroadcastRuleConfiguration ruleConfig = new
BroadcastRuleConfiguration(Arrays.asList("foo_table", "foo_table2"));
+ Collection<RepositoryTuple> actual =
swapper.swapToRepositoryTuples((YamlBroadcastRuleConfiguration) new
YamlRuleConfigurationSwapperEngine().swapToYamlRuleConfiguration(ruleConfig));
assertThat(actual.size(), is(1));
Iterator<RepositoryTuple> iterator = actual.iterator();
assertThat(iterator.next().getKey(), is("tables"));
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/yaml/swapper/EncryptRuleConfigurationRepositoryTupleSwapper.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/yaml/swapper/EncryptRuleConfigurationRepositoryTupleSwapper.java
index 7f6d85dedaa..98ac434ba2e 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/yaml/swapper/EncryptRuleConfigurationRepositoryTupleSwapper.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/yaml/swapper/EncryptRuleConfigurationRepositoryTupleSwapper.java
@@ -40,12 +40,24 @@ import java.util.stream.Collectors;
/**
* Encrypt rule configuration repository tuple swapper.
*/
-public final class EncryptRuleConfigurationRepositoryTupleSwapper implements
RepositoryTupleSwapper<EncryptRuleConfiguration> {
+public final class EncryptRuleConfigurationRepositoryTupleSwapper implements
RepositoryTupleSwapper<EncryptRuleConfiguration, YamlEncryptRuleConfiguration> {
private final YamlEncryptRuleConfigurationSwapper ruleConfigSwapper = new
YamlEncryptRuleConfigurationSwapper();
private final RuleNodePath encryptRuleNodePath = new
EncryptRuleNodePathProvider().getRuleNodePath();
+ @Override
+ public Collection<RepositoryTuple> swapToRepositoryTuples(final
YamlEncryptRuleConfiguration yamlRuleConfig) {
+ Collection<RepositoryTuple> result = new LinkedList<>();
+ for (Entry<String, YamlAlgorithmConfiguration> entry :
yamlRuleConfig.getEncryptors().entrySet()) {
+ result.add(new
RepositoryTuple(encryptRuleNodePath.getNamedItem(EncryptRuleNodePathProvider.ENCRYPTORS).getPath(entry.getKey()),
YamlEngine.marshal(entry.getValue())));
+ }
+ for (YamlEncryptTableRuleConfiguration each :
yamlRuleConfig.getTables().values()) {
+ result.add(new
RepositoryTuple(encryptRuleNodePath.getNamedItem(EncryptRuleNodePathProvider.TABLES).getPath(each.getName()),
YamlEngine.marshal(each)));
+ }
+ return result;
+ }
+
@Override
public Collection<RepositoryTuple> swapToRepositoryTuples(final
EncryptRuleConfiguration data) {
Collection<RepositoryTuple> result = new LinkedList<>();
diff --git
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/yaml/swapper/EncryptRuleConfigurationRepositoryTupleSwapperTest.java
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/yaml/swapper/EncryptRuleConfigurationRepositoryTupleSwapperTest.java
index be16af7bdbb..314367f55eb 100644
---
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/yaml/swapper/EncryptRuleConfigurationRepositoryTupleSwapperTest.java
+++
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/yaml/swapper/EncryptRuleConfigurationRepositoryTupleSwapperTest.java
@@ -21,8 +21,10 @@ import
org.apache.shardingsphere.encrypt.api.config.EncryptRuleConfiguration;
import
org.apache.shardingsphere.encrypt.api.config.rule.EncryptColumnItemRuleConfiguration;
import
org.apache.shardingsphere.encrypt.api.config.rule.EncryptColumnRuleConfiguration;
import
org.apache.shardingsphere.encrypt.api.config.rule.EncryptTableRuleConfiguration;
+import
org.apache.shardingsphere.encrypt.yaml.config.YamlEncryptRuleConfiguration;
import
org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfiguration;
import org.apache.shardingsphere.infra.util.yaml.datanode.RepositoryTuple;
+import
org.apache.shardingsphere.infra.yaml.config.swapper.rule.YamlRuleConfigurationSwapperEngine;
import org.junit.jupiter.api.Test;
import java.util.Arrays;
@@ -43,12 +45,13 @@ class EncryptRuleConfigurationRepositoryTupleSwapperTest {
@Test
void assertSwapToRepositoryTuplesWithEmptyRule() {
- assertTrue(swapper.swapToRepositoryTuples(new
EncryptRuleConfiguration(Collections.emptyList(),
Collections.emptyMap())).isEmpty());
+ assertTrue(swapper.swapToRepositoryTuples(new
YamlEncryptRuleConfiguration()).isEmpty());
}
@Test
void assertSwapToRepositoryTuples() {
- Collection<RepositoryTuple> actual =
swapper.swapToRepositoryTuples(createMaximumEncryptRule());
+ Collection<RepositoryTuple> actual = swapper.swapToRepositoryTuples(
+ (YamlEncryptRuleConfiguration) new
YamlRuleConfigurationSwapperEngine().swapToYamlRuleConfiguration(createMaximumEncryptRule()));
assertThat(actual.size(), is(2));
Iterator<RepositoryTuple> iterator = actual.iterator();
assertThat(iterator.next().getKey(), is("encryptors/FOO"));
diff --git
a/features/mask/core/src/main/java/org/apache/shardingsphere/mask/yaml/swapper/MaskRuleConfigurationRepositoryTupleSwapper.java
b/features/mask/core/src/main/java/org/apache/shardingsphere/mask/yaml/swapper/MaskRuleConfigurationRepositoryTupleSwapper.java
index 0ec9d9b46d5..198cd0fe50c 100644
---
a/features/mask/core/src/main/java/org/apache/shardingsphere/mask/yaml/swapper/MaskRuleConfigurationRepositoryTupleSwapper.java
+++
b/features/mask/core/src/main/java/org/apache/shardingsphere/mask/yaml/swapper/MaskRuleConfigurationRepositoryTupleSwapper.java
@@ -40,12 +40,24 @@ import java.util.stream.Collectors;
/**
* Mask rule configuration repository tuple swapper.
*/
-public final class MaskRuleConfigurationRepositoryTupleSwapper implements
RepositoryTupleSwapper<MaskRuleConfiguration> {
+public final class MaskRuleConfigurationRepositoryTupleSwapper implements
RepositoryTupleSwapper<MaskRuleConfiguration, YamlMaskRuleConfiguration> {
private final YamlMaskRuleConfigurationSwapper ruleConfigSwapper = new
YamlMaskRuleConfigurationSwapper();
private final RuleNodePath maskRuleNodePath = new
MaskRuleNodePathProvider().getRuleNodePath();
+ @Override
+ public Collection<RepositoryTuple> swapToRepositoryTuples(final
YamlMaskRuleConfiguration yamlRuleConfig) {
+ Collection<RepositoryTuple> result = new LinkedList<>();
+ for (Entry<String, YamlAlgorithmConfiguration> entry :
yamlRuleConfig.getMaskAlgorithms().entrySet()) {
+ result.add(new
RepositoryTuple(maskRuleNodePath.getNamedItem(MaskRuleNodePathProvider.MASK_ALGORITHMS).getPath(entry.getKey()),
YamlEngine.marshal(entry.getValue())));
+ }
+ for (YamlMaskTableRuleConfiguration each :
yamlRuleConfig.getTables().values()) {
+ result.add(new
RepositoryTuple(maskRuleNodePath.getNamedItem(MaskRuleNodePathProvider.TABLES).getPath(each.getName()),
YamlEngine.marshal(each)));
+ }
+ return result;
+ }
+
@Override
public Collection<RepositoryTuple> swapToRepositoryTuples(final
MaskRuleConfiguration data) {
Collection<RepositoryTuple> result = new LinkedList<>();
diff --git
a/features/mask/core/src/test/java/org/apache/shardingsphere/mask/yaml/swapper/MaskRuleConfigurationRepositoryTupleSwapperTest.java
b/features/mask/core/src/test/java/org/apache/shardingsphere/mask/yaml/swapper/MaskRuleConfigurationRepositoryTupleSwapperTest.java
index 278cbda4262..e2b81ddac2e 100644
---
a/features/mask/core/src/test/java/org/apache/shardingsphere/mask/yaml/swapper/MaskRuleConfigurationRepositoryTupleSwapperTest.java
+++
b/features/mask/core/src/test/java/org/apache/shardingsphere/mask/yaml/swapper/MaskRuleConfigurationRepositoryTupleSwapperTest.java
@@ -19,9 +19,11 @@ package org.apache.shardingsphere.mask.yaml.swapper;
import
org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfiguration;
import org.apache.shardingsphere.infra.util.yaml.datanode.RepositoryTuple;
+import
org.apache.shardingsphere.infra.yaml.config.swapper.rule.YamlRuleConfigurationSwapperEngine;
import org.apache.shardingsphere.mask.api.config.MaskRuleConfiguration;
import
org.apache.shardingsphere.mask.api.config.rule.MaskColumnRuleConfiguration;
import
org.apache.shardingsphere.mask.api.config.rule.MaskTableRuleConfiguration;
+import org.apache.shardingsphere.mask.yaml.config.YamlMaskRuleConfiguration;
import org.junit.jupiter.api.Test;
import java.util.Arrays;
@@ -41,13 +43,13 @@ class MaskRuleConfigurationRepositoryTupleSwapperTest {
@Test
void assertSwapToRepositoryTuplesWithEmptyRule() {
- MaskRuleConfiguration ruleConfig = new
MaskRuleConfiguration(Collections.emptyList(), Collections.emptyMap());
- assertTrue(new
MaskRuleConfigurationRepositoryTupleSwapper().swapToRepositoryTuples(ruleConfig).isEmpty());
+ assertTrue(new
MaskRuleConfigurationRepositoryTupleSwapper().swapToRepositoryTuples(new
YamlMaskRuleConfiguration()).isEmpty());
}
@Test
void assertSwapToRepositoryTuples() {
- Collection<RepositoryTuple> actual = new
MaskRuleConfigurationRepositoryTupleSwapper().swapToRepositoryTuples(createMaximumMaskRule());
+ YamlMaskRuleConfiguration yamlRuleConfig = (YamlMaskRuleConfiguration)
new
YamlRuleConfigurationSwapperEngine().swapToYamlRuleConfiguration(createMaximumMaskRule());
+ Collection<RepositoryTuple> actual = new
MaskRuleConfigurationRepositoryTupleSwapper().swapToRepositoryTuples(yamlRuleConfig);
assertThat(actual.size(), is(2));
Iterator<RepositoryTuple> iterator = actual.iterator();
assertThat(iterator.next().getKey(), is("mask_algorithms/FIXTURE"));
diff --git
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/yaml/swapper/ReadwriteSplittingRuleConfigurationRepositoryTupleSwapper.java
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/yaml/swapper/ReadwriteSplittingRuleConfigurationRepositoryTupleSwapper.java
index 4c5003b7990..88c800d901c 100644
---
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/yaml/swapper/ReadwriteSplittingRuleConfigurationRepositoryTupleSwapper.java
+++
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/yaml/swapper/ReadwriteSplittingRuleConfigurationRepositoryTupleSwapper.java
@@ -40,12 +40,26 @@ import java.util.stream.Collectors;
/**
* Readwrite-splitting rule configuration repository tuple swapper.
*/
-public final class ReadwriteSplittingRuleConfigurationRepositoryTupleSwapper
implements RepositoryTupleSwapper<ReadwriteSplittingRuleConfiguration> {
+public final class ReadwriteSplittingRuleConfigurationRepositoryTupleSwapper
implements RepositoryTupleSwapper<ReadwriteSplittingRuleConfiguration,
YamlReadwriteSplittingRuleConfiguration> {
private final YamlReadwriteSplittingRuleConfigurationSwapper
ruleConfigSwapper = new YamlReadwriteSplittingRuleConfigurationSwapper();
private final RuleNodePath readwriteSplittingRuleNodePath = new
ReadwriteSplittingRuleNodePathProvider().getRuleNodePath();
+ @Override
+ public Collection<RepositoryTuple> swapToRepositoryTuples(final
YamlReadwriteSplittingRuleConfiguration yamlRuleConfig) {
+ Collection<RepositoryTuple> result = new LinkedList<>();
+ for (Entry<String, YamlAlgorithmConfiguration> entry :
yamlRuleConfig.getLoadBalancers().entrySet()) {
+ result.add(new
RepositoryTuple(readwriteSplittingRuleNodePath.getNamedItem(ReadwriteSplittingRuleNodePathProvider.LOAD_BALANCERS).getPath(entry.getKey()),
+ YamlEngine.marshal(entry.getValue())));
+ }
+ for (Entry<String,
YamlReadwriteSplittingDataSourceGroupRuleConfiguration> entry :
yamlRuleConfig.getDataSourceGroups().entrySet()) {
+ result.add(new RepositoryTuple(
+
readwriteSplittingRuleNodePath.getNamedItem(ReadwriteSplittingRuleNodePathProvider.DATA_SOURCES).getPath(entry.getKey()),
YamlEngine.marshal(entry.getValue())));
+ }
+ return result;
+ }
+
@Override
public Collection<RepositoryTuple> swapToRepositoryTuples(final
ReadwriteSplittingRuleConfiguration data) {
Collection<RepositoryTuple> result = new LinkedList<>();
diff --git
a/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/yaml/swapper/ReadwriteSplittingRuleConfigurationRepositoryTupleSwapperTest.java
b/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/yaml/swapper/ReadwriteSplittingRuleConfigurationRepositoryTupleSwapperTest.java
index 3736f9d33f4..7d428a2594b 100644
---
a/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/yaml/swapper/ReadwriteSplittingRuleConfigurationRepositoryTupleSwapperTest.java
+++
b/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/yaml/swapper/ReadwriteSplittingRuleConfigurationRepositoryTupleSwapperTest.java
@@ -19,9 +19,12 @@ package
org.apache.shardingsphere.readwritesplitting.yaml.swapper;
import
org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfiguration;
import org.apache.shardingsphere.infra.util.yaml.datanode.RepositoryTuple;
+import
org.apache.shardingsphere.infra.yaml.config.swapper.rule.YamlRuleConfigurationSwapperEngine;
import
org.apache.shardingsphere.readwritesplitting.api.ReadwriteSplittingRuleConfiguration;
import
org.apache.shardingsphere.readwritesplitting.api.rule.ReadwriteSplittingDataSourceGroupRuleConfiguration;
import
org.apache.shardingsphere.readwritesplitting.api.transaction.TransactionalReadQueryStrategy;
+import
org.apache.shardingsphere.readwritesplitting.yaml.config.YamlReadwriteSplittingRuleConfiguration;
+import
org.apache.shardingsphere.readwritesplitting.yaml.config.rule.YamlReadwriteSplittingDataSourceGroupRuleConfiguration;
import org.junit.jupiter.api.Test;
import java.util.Arrays;
@@ -42,22 +45,23 @@ class
ReadwriteSplittingRuleConfigurationRepositoryTupleSwapperTest {
@Test
void assertSwapToRepositoryTuplesWithEmptyLoadBalancer() {
- ReadwriteSplittingRuleConfiguration ruleConfig = new
ReadwriteSplittingRuleConfiguration(Collections.singleton(new
ReadwriteSplittingDataSourceGroupRuleConfiguration("group_0",
- "write_ds", Arrays.asList("read_ds_0", "read_ds_1"), null)),
Collections.emptyMap());
- Collection<RepositoryTuple> actual =
swapper.swapToRepositoryTuples(ruleConfig);
+ YamlReadwriteSplittingRuleConfiguration yamlRuleConfig = new
YamlReadwriteSplittingRuleConfiguration();
+
yamlRuleConfig.setDataSourceGroups(Collections.singletonMap("foo_group", new
YamlReadwriteSplittingDataSourceGroupRuleConfiguration()));
+ Collection<RepositoryTuple> actual =
swapper.swapToRepositoryTuples(yamlRuleConfig);
assertThat(actual.size(), is(1));
- assertThat(actual.iterator().next().getKey(),
is("data_sources/group_0"));
+ assertThat(actual.iterator().next().getKey(),
is("data_sources/foo_group"));
}
@Test
void assertSwapToRepositoryTuples() {
- ReadwriteSplittingRuleConfiguration ruleConfig = new
ReadwriteSplittingRuleConfiguration(Collections.singleton(new
ReadwriteSplittingDataSourceGroupRuleConfiguration("group_0",
+ ReadwriteSplittingRuleConfiguration ruleConfig = new
ReadwriteSplittingRuleConfiguration(Collections.singleton(new
ReadwriteSplittingDataSourceGroupRuleConfiguration("foo_group",
"write_ds", Arrays.asList("read_ds_0", "read_ds_1"),
"random")), Collections.singletonMap("random", new
AlgorithmConfiguration("random", new Properties())));
- Collection<RepositoryTuple> actual =
swapper.swapToRepositoryTuples(ruleConfig);
+ YamlReadwriteSplittingRuleConfiguration yamlRuleConfig =
(YamlReadwriteSplittingRuleConfiguration) new
YamlRuleConfigurationSwapperEngine().swapToYamlRuleConfiguration(ruleConfig);
+ Collection<RepositoryTuple> actual =
swapper.swapToRepositoryTuples(yamlRuleConfig);
assertThat(actual.size(), is(2));
Iterator<RepositoryTuple> iterator = actual.iterator();
assertThat(iterator.next().getKey(), is("load_balancers/random"));
- assertThat(iterator.next().getKey(), is("data_sources/group_0"));
+ assertThat(iterator.next().getKey(), is("data_sources/foo_group"));
}
@Test
@@ -67,7 +71,7 @@ class
ReadwriteSplittingRuleConfigurationRepositoryTupleSwapperTest {
@Test
void assertSwapToObject() {
- Collection<RepositoryTuple> repositoryTuples = Arrays.asList(new
RepositoryTuple("/metadata/foo_db/rules/readwrite_splitting/data_sources/group_0/versions/0",
"loadBalancerName: random\n"
+ Collection<RepositoryTuple> repositoryTuples = Arrays.asList(new
RepositoryTuple("/metadata/foo_db/rules/readwrite_splitting/data_sources/foo_group/versions/0",
"loadBalancerName: random\n"
+ "readDataSourceNames:\n"
+ "- read_ds_0\n"
+ "- read_ds_1\n"
@@ -77,7 +81,7 @@ class
ReadwriteSplittingRuleConfigurationRepositoryTupleSwapperTest {
Optional<ReadwriteSplittingRuleConfiguration> actual =
swapper.swapToObject(repositoryTuples);
assertTrue(actual.isPresent());
assertThat(actual.get().getDataSourceGroups().size(), is(1));
-
assertThat(actual.get().getDataSourceGroups().iterator().next().getName(),
is("group_0"));
+
assertThat(actual.get().getDataSourceGroups().iterator().next().getName(),
is("foo_group"));
assertThat(actual.get().getDataSourceGroups().iterator().next().getWriteDataSourceName(),
is("write_ds"));
assertThat(actual.get().getDataSourceGroups().iterator().next().getReadDataSourceNames().size(),
is(2));
assertThat(actual.get().getDataSourceGroups().iterator().next().getLoadBalancerName(),
is("random"));
diff --git
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/yaml/swapper/ShadowRuleConfigurationRepositoryTupleSwapper.java
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/yaml/swapper/ShadowRuleConfigurationRepositoryTupleSwapper.java
index 3addd29b907..52dd46c6c0d 100644
---
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/yaml/swapper/ShadowRuleConfigurationRepositoryTupleSwapper.java
+++
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/yaml/swapper/ShadowRuleConfigurationRepositoryTupleSwapper.java
@@ -42,12 +42,30 @@ import java.util.stream.Collectors;
/**
* Shadow rule configuration repository tuple swapper.
*/
-public final class ShadowRuleConfigurationRepositoryTupleSwapper implements
RepositoryTupleSwapper<ShadowRuleConfiguration> {
+public final class ShadowRuleConfigurationRepositoryTupleSwapper implements
RepositoryTupleSwapper<ShadowRuleConfiguration, YamlShadowRuleConfiguration> {
private final YamlShadowRuleConfigurationSwapper ruleConfigSwapper = new
YamlShadowRuleConfigurationSwapper();
private final RuleNodePath shadowRuleNodePath = new
ShadowRuleNodePathProvider().getRuleNodePath();
+ @Override
+ public Collection<RepositoryTuple> swapToRepositoryTuples(final
YamlShadowRuleConfiguration yamlRuleConfig) {
+ Collection<RepositoryTuple> result = new LinkedList<>();
+ for (Entry<String, YamlAlgorithmConfiguration> entry :
yamlRuleConfig.getShadowAlgorithms().entrySet()) {
+ result.add(new
RepositoryTuple(shadowRuleNodePath.getNamedItem(ShadowRuleNodePathProvider.ALGORITHMS).getPath(entry.getKey()),
YamlEngine.marshal(entry.getValue())));
+ }
+ if
(!Strings.isNullOrEmpty(yamlRuleConfig.getDefaultShadowAlgorithmName())) {
+ result.add(new
RepositoryTuple(shadowRuleNodePath.getUniqueItem(ShadowRuleNodePathProvider.DEFAULT_ALGORITHM).getPath(),
yamlRuleConfig.getDefaultShadowAlgorithmName()));
+ }
+ for (Entry<String, YamlShadowDataSourceConfiguration> entry :
yamlRuleConfig.getDataSources().entrySet()) {
+ result.add(new
RepositoryTuple(shadowRuleNodePath.getNamedItem(ShadowRuleNodePathProvider.DATA_SOURCES).getPath(entry.getKey()),
YamlEngine.marshal(entry.getValue())));
+ }
+ for (Entry<String, YamlShadowTableConfiguration> entry :
yamlRuleConfig.getTables().entrySet()) {
+ result.add(new
RepositoryTuple(shadowRuleNodePath.getNamedItem(ShadowRuleNodePathProvider.TABLES).getPath(entry.getKey()),
YamlEngine.marshal(entry.getValue())));
+ }
+ return result;
+ }
+
@Override
public Collection<RepositoryTuple> swapToRepositoryTuples(final
ShadowRuleConfiguration data) {
Collection<RepositoryTuple> result = new LinkedList<>();
diff --git
a/features/shadow/core/src/test/java/org/apache/shardingsphere/shadow/yaml/swapper/ShadowRuleConfigurationRepositoryTupleSwapperTest.java
b/features/shadow/core/src/test/java/org/apache/shardingsphere/shadow/yaml/swapper/ShadowRuleConfigurationRepositoryTupleSwapperTest.java
index 8cb8e895025..89fa7703a5c 100644
---
a/features/shadow/core/src/test/java/org/apache/shardingsphere/shadow/yaml/swapper/ShadowRuleConfigurationRepositoryTupleSwapperTest.java
+++
b/features/shadow/core/src/test/java/org/apache/shardingsphere/shadow/yaml/swapper/ShadowRuleConfigurationRepositoryTupleSwapperTest.java
@@ -19,9 +19,11 @@ package org.apache.shardingsphere.shadow.yaml.swapper;
import
org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfiguration;
import org.apache.shardingsphere.infra.util.yaml.datanode.RepositoryTuple;
+import
org.apache.shardingsphere.infra.yaml.config.swapper.rule.YamlRuleConfigurationSwapperEngine;
import org.apache.shardingsphere.shadow.api.config.ShadowRuleConfiguration;
import
org.apache.shardingsphere.shadow.api.config.datasource.ShadowDataSourceConfiguration;
import
org.apache.shardingsphere.shadow.api.config.table.ShadowTableConfiguration;
+import
org.apache.shardingsphere.shadow.yaml.config.YamlShadowRuleConfiguration;
import org.junit.jupiter.api.Test;
import java.util.Arrays;
@@ -45,12 +47,13 @@ class ShadowRuleConfigurationRepositoryTupleSwapperTest {
@Test
void assertSwapToRepositoryTuplesWithEmptyRule() {
- assertTrue(swapper.swapToRepositoryTuples(new
ShadowRuleConfiguration()).isEmpty());
+ assertTrue(swapper.swapToRepositoryTuples(new
YamlShadowRuleConfiguration()).isEmpty());
}
@Test
void assertSwapToRepositoryTuples() {
- Collection<RepositoryTuple> actual =
swapper.swapToRepositoryTuples(createMaximumShadowRule());
+ YamlShadowRuleConfiguration yamlRuleConfig =
(YamlShadowRuleConfiguration) new
YamlRuleConfigurationSwapperEngine().swapToYamlRuleConfiguration(createMaximumShadowRule());
+ Collection<RepositoryTuple> actual =
swapper.swapToRepositoryTuples(yamlRuleConfig);
assertThat(actual.size(), is(4));
Iterator<RepositoryTuple> iterator = actual.iterator();
assertThat(iterator.next().getKey(), is("algorithms/FIXTURE"));
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/yaml/swapper/ShardingRuleConfigurationRepositoryTupleSwapper.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/yaml/swapper/ShardingRuleConfigurationRepositoryTupleSwapper.java
index 9e006c07014..1a002c14205 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/yaml/swapper/ShardingRuleConfigurationRepositoryTupleSwapper.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/yaml/swapper/ShardingRuleConfigurationRepositoryTupleSwapper.java
@@ -45,12 +45,27 @@ import java.util.stream.Collectors;
/**
* Sharding rule configuration repository tuple swapper.
*/
-public final class ShardingRuleConfigurationRepositoryTupleSwapper implements
RepositoryTupleSwapper<ShardingRuleConfiguration> {
+public final class ShardingRuleConfigurationRepositoryTupleSwapper implements
RepositoryTupleSwapper<ShardingRuleConfiguration,
YamlShardingRuleConfiguration> {
private final YamlShardingRuleConfigurationSwapper ruleConfigSwapper = new
YamlShardingRuleConfigurationSwapper();
private final RuleNodePath shardingRuleNodePath = new
ShardingRuleNodePathProvider().getRuleNodePath();
+ @Override
+ public Collection<RepositoryTuple> swapToRepositoryTuples(final
YamlShardingRuleConfiguration yamlRuleConfig) {
+ Collection<RepositoryTuple> result = new LinkedList<>();
+ swapAlgorithms(yamlRuleConfig, result);
+ swapStrategies(yamlRuleConfig, result);
+ if (null != yamlRuleConfig.getDefaultShardingColumn()) {
+ result.add(new
RepositoryTuple(shardingRuleNodePath.getUniqueItem(ShardingRuleNodePathProvider.DEFAULT_SHARDING_COLUMN).getPath(),
yamlRuleConfig.getDefaultShardingColumn()));
+ }
+ if (null != yamlRuleConfig.getShardingCache()) {
+ result.add(new
RepositoryTuple(shardingRuleNodePath.getUniqueItem(ShardingRuleNodePathProvider.SHARDING_CACHE).getPath(),
YamlEngine.marshal(yamlRuleConfig.getShardingCache())));
+ }
+ swapTableRules(yamlRuleConfig, result);
+ return result;
+ }
+
@Override
public Collection<RepositoryTuple> swapToRepositoryTuples(final
ShardingRuleConfiguration data) {
YamlShardingRuleConfiguration yamlRuleConfig =
ruleConfigSwapper.swapToYamlConfiguration(data);
diff --git
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/yaml/swapper/ShardingRuleConfigurationRepositoryTupleSwapperTest.java
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/yaml/swapper/ShardingRuleConfigurationRepositoryTupleSwapperTest.java
index 4c6accf6187..885214039b0 100644
---
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/yaml/swapper/ShardingRuleConfigurationRepositoryTupleSwapperTest.java
+++
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/yaml/swapper/ShardingRuleConfigurationRepositoryTupleSwapperTest.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.sharding.yaml.swapper;
import
org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfiguration;
import org.apache.shardingsphere.infra.util.yaml.datanode.RepositoryTuple;
+import
org.apache.shardingsphere.infra.yaml.config.swapper.rule.YamlRuleConfigurationSwapperEngine;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import
org.apache.shardingsphere.sharding.api.config.rule.ShardingAutoTableRuleConfiguration;
import
org.apache.shardingsphere.sharding.api.config.rule.ShardingTableReferenceRuleConfiguration;
@@ -26,6 +27,7 @@ import
org.apache.shardingsphere.sharding.api.config.rule.ShardingTableRuleConfi
import
org.apache.shardingsphere.sharding.api.config.strategy.audit.ShardingAuditStrategyConfiguration;
import
org.apache.shardingsphere.sharding.api.config.strategy.keygen.KeyGenerateStrategyConfiguration;
import
org.apache.shardingsphere.sharding.api.config.strategy.sharding.StandardShardingStrategyConfiguration;
+import
org.apache.shardingsphere.sharding.yaml.config.YamlShardingRuleConfiguration;
import org.apache.shardingsphere.test.util.PropertiesBuilder;
import org.junit.jupiter.api.Test;
@@ -49,12 +51,13 @@ class ShardingRuleConfigurationRepositoryTupleSwapperTest {
@Test
void assertSwapToRepositoryTuplesWithEmptyRule() {
- assertTrue(swapper.swapToRepositoryTuples(new
ShardingRuleConfiguration()).isEmpty());
+ assertTrue(swapper.swapToRepositoryTuples(new
YamlShardingRuleConfiguration()).isEmpty());
}
@Test
void assertSwapToRepositoryTuples() {
- Collection<RepositoryTuple> actual =
swapper.swapToRepositoryTuples(createMaximumShardingRule());
+ YamlShardingRuleConfiguration yamlRuleConfig =
(YamlShardingRuleConfiguration) new
YamlRuleConfigurationSwapperEngine().swapToYamlRuleConfiguration(createMaximumShardingRule());
+ Collection<RepositoryTuple> actual =
swapper.swapToRepositoryTuples(yamlRuleConfig);
assertThat(actual.size(), is(15));
Iterator<RepositoryTuple> iterator = actual.iterator();
assertThat(iterator.next().getKey(),
is("algorithms/core_standard_fixture"));
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/yaml/config/swapper/rule/YamlRuleConfigurationSwapperEngine.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/yaml/config/swapper/rule/YamlRuleConfigurationSwapperEngine.java
index ee996329fe0..b63c2198e2b 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/yaml/config/swapper/rule/YamlRuleConfigurationSwapperEngine.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/yaml/config/swapper/rule/YamlRuleConfigurationSwapperEngine.java
@@ -22,6 +22,7 @@ import
org.apache.shardingsphere.infra.spi.type.ordered.OrderedSPILoader;
import
org.apache.shardingsphere.infra.yaml.config.pojo.rule.YamlRuleConfiguration;
import java.util.Collection;
+import java.util.Collections;
import java.util.LinkedList;
import java.util.Map.Entry;
import java.util.stream.Collectors;
@@ -31,6 +32,18 @@ import java.util.stream.Collectors;
*/
public final class YamlRuleConfigurationSwapperEngine {
+ /**
+ * Swap to YAML rule configuration.
+ *
+ * @param ruleConfig rule configuration
+ * @return YAML rule configuration
+ */
+ @SuppressWarnings({"unchecked", "rawtypes"})
+ public YamlRuleConfiguration swapToYamlRuleConfiguration(final
RuleConfiguration ruleConfig) {
+ YamlRuleConfigurationSwapper yamlSwapper =
OrderedSPILoader.getServices(YamlRuleConfigurationSwapper.class,
Collections.singleton(ruleConfig)).get(ruleConfig);
+ return (YamlRuleConfiguration)
yamlSwapper.swapToYamlConfiguration(ruleConfig);
+ }
+
/**
* Swap to YAML rule configurations.
*
diff --git
a/kernel/authority/core/src/main/java/org/apache/shardingsphere/authority/yaml/swapper/AuthorityRuleConfigurationRepositoryTupleSwapper.java
b/kernel/authority/core/src/main/java/org/apache/shardingsphere/authority/yaml/swapper/AuthorityRuleConfigurationRepositoryTupleSwapper.java
index 42ba53cdb78..7d2ecf600da 100644
---
a/kernel/authority/core/src/main/java/org/apache/shardingsphere/authority/yaml/swapper/AuthorityRuleConfigurationRepositoryTupleSwapper.java
+++
b/kernel/authority/core/src/main/java/org/apache/shardingsphere/authority/yaml/swapper/AuthorityRuleConfigurationRepositoryTupleSwapper.java
@@ -32,10 +32,15 @@ import java.util.Optional;
/**
* Authority rule configuration repository tuple swapper.
*/
-public final class AuthorityRuleConfigurationRepositoryTupleSwapper implements
RepositoryTupleSwapper<AuthorityRuleConfiguration> {
+public final class AuthorityRuleConfigurationRepositoryTupleSwapper implements
RepositoryTupleSwapper<AuthorityRuleConfiguration,
YamlAuthorityRuleConfiguration> {
private final YamlAuthorityRuleConfigurationSwapper ruleConfigSwapper =
new YamlAuthorityRuleConfigurationSwapper();
+ @Override
+ public Collection<RepositoryTuple> swapToRepositoryTuples(final
YamlAuthorityRuleConfiguration yamlRuleConfig) {
+ return Collections.singleton(new
RepositoryTuple(getRuleTagName().toLowerCase(),
YamlEngine.marshal(yamlRuleConfig)));
+ }
+
@Override
public Collection<RepositoryTuple> swapToRepositoryTuples(final
AuthorityRuleConfiguration data) {
return Collections.singleton(new
RepositoryTuple(getRuleTagName().toLowerCase(),
YamlEngine.marshal(ruleConfigSwapper.swapToYamlConfiguration(data))));
diff --git
a/kernel/authority/core/src/test/java/org/apache/shardingsphere/authority/yaml/swapper/AuthorityRuleConfigurationRepositoryTupleSwapperTest.java
b/kernel/authority/core/src/test/java/org/apache/shardingsphere/authority/yaml/swapper/AuthorityRuleConfigurationRepositoryTupleSwapperTest.java
index c476f04ac3e..802198f485f 100644
---
a/kernel/authority/core/src/test/java/org/apache/shardingsphere/authority/yaml/swapper/AuthorityRuleConfigurationRepositoryTupleSwapperTest.java
+++
b/kernel/authority/core/src/test/java/org/apache/shardingsphere/authority/yaml/swapper/AuthorityRuleConfigurationRepositoryTupleSwapperTest.java
@@ -18,9 +18,11 @@
package org.apache.shardingsphere.authority.yaml.swapper;
import org.apache.shardingsphere.authority.config.AuthorityRuleConfiguration;
+import
org.apache.shardingsphere.authority.yaml.config.YamlAuthorityRuleConfiguration;
import
org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfiguration;
import org.apache.shardingsphere.infra.metadata.user.ShardingSphereUser;
import org.apache.shardingsphere.infra.util.yaml.datanode.RepositoryTuple;
+import
org.apache.shardingsphere.infra.yaml.config.swapper.rule.YamlRuleConfigurationSwapperEngine;
import org.apache.shardingsphere.test.util.PropertiesBuilder;
import org.apache.shardingsphere.test.util.PropertiesBuilder.Property;
import org.junit.jupiter.api.Test;
@@ -40,8 +42,9 @@ class AuthorityRuleConfigurationRepositoryTupleSwapperTest {
@Test
void assertSwapToRepositoryTuples() {
Collection<ShardingSphereUser> users = Collections.singleton(new
ShardingSphereUser("root", "", "localhost"));
- Collection<RepositoryTuple> actual =
swapper.swapToRepositoryTuples(new AuthorityRuleConfiguration(users, new
AlgorithmConfiguration("ALL_PERMITTED", new Properties()),
- Collections.singletonMap("md5", new
AlgorithmConfiguration("MD5", PropertiesBuilder.build(new
Property("proxy-frontend-database-protocol-type", "openGauss")))),
"scram_sha256"));
+ AuthorityRuleConfiguration ruleConfig = new
AuthorityRuleConfiguration(users, new AlgorithmConfiguration("ALL_PERMITTED",
new Properties()),
+ Collections.singletonMap("md5", new
AlgorithmConfiguration("MD5", PropertiesBuilder.build(new
Property("proxy-frontend-database-protocol-type", "openGauss")))),
"scram_sha256");
+ Collection<RepositoryTuple> actual =
swapper.swapToRepositoryTuples((YamlAuthorityRuleConfiguration) new
YamlRuleConfigurationSwapperEngine().swapToYamlRuleConfiguration(ruleConfig));
RepositoryTuple repositoryTuple = actual.iterator().next();
assertThat(repositoryTuple.getKey(), is("authority"));
assertThat(repositoryTuple.getValue(), containsString("user:
root@localhost"));
diff --git
a/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/core/yaml/swapper/GlobalClockRuleConfigurationRepositoryTupleSwapper.java
b/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/core/yaml/swapper/GlobalClockRuleConfigurationRepositoryTupleSwapper.java
index d3df9406a62..51636de741e 100644
---
a/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/core/yaml/swapper/GlobalClockRuleConfigurationRepositoryTupleSwapper.java
+++
b/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/core/yaml/swapper/GlobalClockRuleConfigurationRepositoryTupleSwapper.java
@@ -32,10 +32,15 @@ import java.util.Optional;
/**
* Global clock rule configuration repository tuple swapper.
*/
-public final class GlobalClockRuleConfigurationRepositoryTupleSwapper
implements RepositoryTupleSwapper<GlobalClockRuleConfiguration> {
+public final class GlobalClockRuleConfigurationRepositoryTupleSwapper
implements RepositoryTupleSwapper<GlobalClockRuleConfiguration,
YamlGlobalClockRuleConfiguration> {
private final YamlGlobalClockRuleConfigurationSwapper ruleConfigSwapper =
new YamlGlobalClockRuleConfigurationSwapper();
+ @Override
+ public Collection<RepositoryTuple> swapToRepositoryTuples(final
YamlGlobalClockRuleConfiguration yamlRuleConfig) {
+ return Collections.singleton(new
RepositoryTuple(getRuleTagName().toLowerCase(),
YamlEngine.marshal(yamlRuleConfig)));
+ }
+
@Override
public Collection<RepositoryTuple> swapToRepositoryTuples(final
GlobalClockRuleConfiguration data) {
return Collections.singleton(new
RepositoryTuple(getRuleTagName().toLowerCase(),
YamlEngine.marshal(ruleConfigSwapper.swapToYamlConfiguration(data))));
diff --git
a/kernel/global-clock/core/src/test/java/org/apache/shardingsphere/globalclock/core/yaml/swapper/GlobalClockRuleConfigurationRepositoryTupleSwapperTest.java
b/kernel/global-clock/core/src/test/java/org/apache/shardingsphere/globalclock/core/yaml/swapper/GlobalClockRuleConfigurationRepositoryTupleSwapperTest.java
index b99dc673f5d..ed0d72a6c73 100644
---
a/kernel/global-clock/core/src/test/java/org/apache/shardingsphere/globalclock/core/yaml/swapper/GlobalClockRuleConfigurationRepositoryTupleSwapperTest.java
+++
b/kernel/global-clock/core/src/test/java/org/apache/shardingsphere/globalclock/core/yaml/swapper/GlobalClockRuleConfigurationRepositoryTupleSwapperTest.java
@@ -17,12 +17,11 @@
package org.apache.shardingsphere.globalclock.core.yaml.swapper;
-import
org.apache.shardingsphere.globalclock.api.config.GlobalClockRuleConfiguration;
+import
org.apache.shardingsphere.globalclock.core.yaml.config.YamlGlobalClockRuleConfiguration;
import org.apache.shardingsphere.infra.util.yaml.datanode.RepositoryTuple;
import org.junit.jupiter.api.Test;
import java.util.Collection;
-import java.util.Properties;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
@@ -33,7 +32,7 @@ class GlobalClockRuleConfigurationRepositoryTupleSwapperTest {
@Test
void assertSwapToRepositoryTuples() {
- Collection<RepositoryTuple> actual =
swapper.swapToRepositoryTuples(new GlobalClockRuleConfiguration("", "", false,
new Properties()));
+ Collection<RepositoryTuple> actual =
swapper.swapToRepositoryTuples(new YamlGlobalClockRuleConfiguration());
assertThat(actual.iterator().next().getKey(), is("global_clock"));
}
}
diff --git
a/kernel/logging/core/src/main/java/org/apache/shardingsphere/logging/yaml/swapper/LoggingRuleConfigurationRepositoryTupleSwapper.java
b/kernel/logging/core/src/main/java/org/apache/shardingsphere/logging/yaml/swapper/LoggingRuleConfigurationRepositoryTupleSwapper.java
index 264fea59d48..a9869a8f392 100644
---
a/kernel/logging/core/src/main/java/org/apache/shardingsphere/logging/yaml/swapper/LoggingRuleConfigurationRepositoryTupleSwapper.java
+++
b/kernel/logging/core/src/main/java/org/apache/shardingsphere/logging/yaml/swapper/LoggingRuleConfigurationRepositoryTupleSwapper.java
@@ -32,10 +32,15 @@ import java.util.Optional;
/**
* Logging rule configuration repository tuple swapper.
*/
-public final class LoggingRuleConfigurationRepositoryTupleSwapper implements
RepositoryTupleSwapper<LoggingRuleConfiguration> {
+public final class LoggingRuleConfigurationRepositoryTupleSwapper implements
RepositoryTupleSwapper<LoggingRuleConfiguration, YamlLoggingRuleConfiguration> {
private final YamlLoggingRuleConfigurationSwapper ruleConfigSwapper = new
YamlLoggingRuleConfigurationSwapper();
+ @Override
+ public Collection<RepositoryTuple> swapToRepositoryTuples(final
YamlLoggingRuleConfiguration yamlRuleConfig) {
+ return Collections.singleton(new
RepositoryTuple(getRuleTagName().toLowerCase(),
YamlEngine.marshal(yamlRuleConfig)));
+ }
+
@Override
public Collection<RepositoryTuple> swapToRepositoryTuples(final
LoggingRuleConfiguration data) {
return Collections.singleton(new
RepositoryTuple(getRuleTagName().toLowerCase(),
YamlEngine.marshal(ruleConfigSwapper.swapToYamlConfiguration(data))));
diff --git
a/kernel/logging/core/src/test/java/org/apache/shardingsphere/logging/yaml/swapper/LoggingRuleConfigurationRepositoryTupleSwapperTest.java
b/kernel/logging/core/src/test/java/org/apache/shardingsphere/logging/yaml/swapper/LoggingRuleConfigurationRepositoryTupleSwapperTest.java
index 22d4a7dbe88..08b0edfef53 100644
---
a/kernel/logging/core/src/test/java/org/apache/shardingsphere/logging/yaml/swapper/LoggingRuleConfigurationRepositoryTupleSwapperTest.java
+++
b/kernel/logging/core/src/test/java/org/apache/shardingsphere/logging/yaml/swapper/LoggingRuleConfigurationRepositoryTupleSwapperTest.java
@@ -17,7 +17,9 @@
package org.apache.shardingsphere.logging.yaml.swapper;
+import
org.apache.shardingsphere.infra.yaml.config.swapper.rule.YamlRuleConfigurationSwapperEngine;
import
org.apache.shardingsphere.logging.rule.builder.DefaultLoggingRuleConfigurationBuilder;
+import
org.apache.shardingsphere.logging.yaml.config.YamlLoggingRuleConfiguration;
import org.junit.jupiter.api.Test;
import static org.hamcrest.CoreMatchers.is;
@@ -29,6 +31,8 @@ class LoggingRuleConfigurationRepositoryTupleSwapperTest {
@Test
void assertSwapToRepositoryTuples() {
- assertThat(swapper.swapToRepositoryTuples(new
DefaultLoggingRuleConfigurationBuilder().build()).iterator().next().getKey(),
is("logging"));
+ YamlLoggingRuleConfiguration yamlRuleConfig =
(YamlLoggingRuleConfiguration) new YamlRuleConfigurationSwapperEngine()
+ .swapToYamlRuleConfiguration(new
DefaultLoggingRuleConfigurationBuilder().build());
+
assertThat(swapper.swapToRepositoryTuples(yamlRuleConfig).iterator().next().getKey(),
is("logging"));
}
}
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 9df73a2c47c..24a2e4dd915 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
@@ -22,12 +22,13 @@ import
org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion;
import org.apache.shardingsphere.infra.spi.type.ordered.OrderedSPILoader;
import org.apache.shardingsphere.infra.util.yaml.datanode.RepositoryTuple;
-import org.apache.shardingsphere.mode.spi.RepositoryTupleSwapper;
-import
org.apache.shardingsphere.metadata.persist.service.config.RepositoryTupleSwapperEngine;
+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.RepositoryTupleSwapperEngine;
import
org.apache.shardingsphere.metadata.persist.service.config.database.DatabaseBasedPersistService;
import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.RepositoryTupleSwapper;
import java.util.Collection;
import java.util.Collections;
@@ -54,8 +55,9 @@ public final class DatabaseRulePersistService implements
DatabaseBasedPersistSer
@SuppressWarnings({"unchecked", "rawtypes"})
@Override
public void persist(final String databaseName, final
Collection<RuleConfiguration> configs) {
+ YamlRuleConfigurationSwapperEngine yamlSwapperEngine = new
YamlRuleConfigurationSwapperEngine();
for (Entry<RuleConfiguration, RepositoryTupleSwapper> entry :
OrderedSPILoader.getServices(RepositoryTupleSwapper.class, configs).entrySet())
{
- Collection<RepositoryTuple> repositoryTuples =
entry.getValue().swapToRepositoryTuples(entry.getKey());
+ Collection<RepositoryTuple> repositoryTuples =
entry.getValue().swapToRepositoryTuples(yamlSwapperEngine.swapToYamlRuleConfiguration(entry.getKey()));
if (!repositoryTuples.isEmpty()) {
persistDataNodes(databaseName,
entry.getValue().getRuleTagName().toLowerCase(), repositoryTuples);
}
@@ -76,8 +78,9 @@ public final class DatabaseRulePersistService implements
DatabaseBasedPersistSer
@Override
public Collection<MetaDataVersion> persistConfigurations(final String
databaseName, final Collection<RuleConfiguration> configs) {
Collection<MetaDataVersion> result = new LinkedList<>();
+ YamlRuleConfigurationSwapperEngine yamlSwapperEngine = new
YamlRuleConfigurationSwapperEngine();
for (Entry<RuleConfiguration, RepositoryTupleSwapper> entry :
OrderedSPILoader.getServices(RepositoryTupleSwapper.class, configs).entrySet())
{
- Collection<RepositoryTuple> repositoryTuples =
entry.getValue().swapToRepositoryTuples(entry.getKey());
+ Collection<RepositoryTuple> repositoryTuples =
entry.getValue().swapToRepositoryTuples(yamlSwapperEngine.swapToYamlRuleConfiguration(entry.getKey()));
if (!repositoryTuples.isEmpty()) {
result.addAll(persistDataNodes(databaseName,
entry.getValue().getRuleTagName().toLowerCase(), repositoryTuples));
}
@@ -103,8 +106,9 @@ public final class DatabaseRulePersistService implements
DatabaseBasedPersistSer
@Override
public Collection<MetaDataVersion> deleteConfigurations(final String
databaseName, final Collection<RuleConfiguration> configs) {
Collection<MetaDataVersion> result = new LinkedList<>();
+ YamlRuleConfigurationSwapperEngine yamlSwapperEngine = new
YamlRuleConfigurationSwapperEngine();
for (Entry<RuleConfiguration, RepositoryTupleSwapper> entry :
OrderedSPILoader.getServices(RepositoryTupleSwapper.class, configs).entrySet())
{
- Collection<RepositoryTuple> repositoryTuples =
entry.getValue().swapToRepositoryTuples(entry.getKey());
+ Collection<RepositoryTuple> repositoryTuples =
entry.getValue().swapToRepositoryTuples(yamlSwapperEngine.swapToYamlRuleConfiguration(entry.getKey()));
if (repositoryTuples.isEmpty()) {
continue;
}
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 a8dd687d47f..402b416e7e9 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
@@ -22,6 +22,7 @@ import
org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion;
import org.apache.shardingsphere.infra.spi.type.ordered.OrderedSPILoader;
import org.apache.shardingsphere.infra.util.yaml.datanode.RepositoryTuple;
+import
org.apache.shardingsphere.infra.yaml.config.swapper.rule.YamlRuleConfigurationSwapperEngine;
import org.apache.shardingsphere.mode.spi.RepositoryTupleSwapper;
import
org.apache.shardingsphere.metadata.persist.service.config.RepositoryTupleSwapperEngine;
import org.apache.shardingsphere.metadata.persist.node.GlobalNode;
@@ -58,8 +59,9 @@ public final class GlobalRulePersistService implements
GlobalPersistService<Coll
@Override
public void persist(final Collection<RuleConfiguration> globalRuleConfigs)
{
Collection<MetaDataVersion> metaDataVersions = new LinkedList<>();
+ YamlRuleConfigurationSwapperEngine yamlSwapperEngine = new
YamlRuleConfigurationSwapperEngine();
for (Entry<RuleConfiguration, RepositoryTupleSwapper> entry :
OrderedSPILoader.getServices(RepositoryTupleSwapper.class,
globalRuleConfigs).entrySet()) {
- Collection<RepositoryTuple> repositoryTuples =
entry.getValue().swapToRepositoryTuples(entry.getKey());
+ Collection<RepositoryTuple> repositoryTuples =
entry.getValue().swapToRepositoryTuples(yamlSwapperEngine.swapToYamlRuleConfiguration(entry.getKey()));
if (!repositoryTuples.isEmpty()) {
metaDataVersions.addAll(persistTuples(repositoryTuples));
}
diff --git
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/yaml/config/swapper/SingleRuleConfigurationRepositoryTupleSwapper.java
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/yaml/config/swapper/SingleRuleConfigurationRepositoryTupleSwapper.java
index 9d6025d0746..662b4c8bdb5 100644
---
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/yaml/config/swapper/SingleRuleConfigurationRepositoryTupleSwapper.java
+++
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/yaml/config/swapper/SingleRuleConfigurationRepositoryTupleSwapper.java
@@ -34,12 +34,17 @@ import java.util.stream.Collectors;
/**
* Single rule configuration repository tuple swapper.
*/
-public final class SingleRuleConfigurationRepositoryTupleSwapper implements
RepositoryTupleSwapper<SingleRuleConfiguration> {
+public final class SingleRuleConfigurationRepositoryTupleSwapper implements
RepositoryTupleSwapper<SingleRuleConfiguration, YamlSingleRuleConfiguration> {
private final YamlSingleRuleConfigurationSwapper ruleConfigSwapper = new
YamlSingleRuleConfigurationSwapper();
private final RuleNodePath singleRuleNodePath = new
SingleRuleNodePathProvider().getRuleNodePath();
+ @Override
+ public Collection<RepositoryTuple> swapToRepositoryTuples(final
YamlSingleRuleConfiguration yamlRuleConfig) {
+ return Collections.singleton(new
RepositoryTuple(SingleRuleNodePathProvider.TABLES,
YamlEngine.marshal(yamlRuleConfig)));
+ }
+
@Override
public Collection<RepositoryTuple> swapToRepositoryTuples(final
SingleRuleConfiguration data) {
return Collections.singleton(new
RepositoryTuple(SingleRuleNodePathProvider.TABLES,
YamlEngine.marshal(ruleConfigSwapper.swapToYamlConfiguration(data))));
diff --git
a/kernel/single/core/src/test/java/org/apache/shardingsphere/single/yaml/config/swapper/SingleRuleConfigurationRepositoryTupleSwapperTest.java
b/kernel/single/core/src/test/java/org/apache/shardingsphere/single/yaml/config/swapper/SingleRuleConfigurationRepositoryTupleSwapperTest.java
index ca841dd8a76..702a4b1084c 100644
---
a/kernel/single/core/src/test/java/org/apache/shardingsphere/single/yaml/config/swapper/SingleRuleConfigurationRepositoryTupleSwapperTest.java
+++
b/kernel/single/core/src/test/java/org/apache/shardingsphere/single/yaml/config/swapper/SingleRuleConfigurationRepositoryTupleSwapperTest.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.single.yaml.config.swapper;
-import org.apache.shardingsphere.single.api.config.SingleRuleConfiguration;
+import
org.apache.shardingsphere.single.yaml.config.pojo.YamlSingleRuleConfiguration;
import org.junit.jupiter.api.Test;
import static org.hamcrest.CoreMatchers.is;
@@ -29,6 +29,6 @@ class SingleRuleConfigurationRepositoryTupleSwapperTest {
@Test
void assertSwapToRepositoryTuples() {
- assertThat(swapper.swapToRepositoryTuples(new
SingleRuleConfiguration()).iterator().next().getKey(), is("tables"));
+ assertThat(swapper.swapToRepositoryTuples(new
YamlSingleRuleConfiguration()).iterator().next().getKey(), is("tables"));
}
}
diff --git
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/yaml/swapper/SQLFederationRuleConfigurationRepositoryTupleSwapper.java
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/yaml/swapper/SQLFederationRuleConfigurationRepositoryTupleSwapper.java
index ec39abf7f40..c910fc5ac64 100644
---
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/yaml/swapper/SQLFederationRuleConfigurationRepositoryTupleSwapper.java
+++
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/yaml/swapper/SQLFederationRuleConfigurationRepositoryTupleSwapper.java
@@ -32,10 +32,15 @@ import java.util.Optional;
/**
* SQL federation rule configuration repository tuple swapper.
*/
-public final class SQLFederationRuleConfigurationRepositoryTupleSwapper
implements RepositoryTupleSwapper<SQLFederationRuleConfiguration> {
+public final class SQLFederationRuleConfigurationRepositoryTupleSwapper
implements RepositoryTupleSwapper<SQLFederationRuleConfiguration,
YamlSQLFederationRuleConfiguration> {
private final YamlSQLFederationRuleConfigurationSwapper ruleConfigSwapper
= new YamlSQLFederationRuleConfigurationSwapper();
+ @Override
+ public Collection<RepositoryTuple> swapToRepositoryTuples(final
YamlSQLFederationRuleConfiguration yamlRuleConfig) {
+ return Collections.singleton(new
RepositoryTuple(getRuleTagName().toLowerCase(),
YamlEngine.marshal(yamlRuleConfig)));
+ }
+
@Override
public Collection<RepositoryTuple> swapToRepositoryTuples(final
SQLFederationRuleConfiguration data) {
return Collections.singleton(new
RepositoryTuple(getRuleTagName().toLowerCase(),
YamlEngine.marshal(ruleConfigSwapper.swapToYamlConfiguration(data))));
diff --git
a/kernel/sql-federation/core/src/test/java/org/apache/shardingsphere/sqlfederation/yaml/swapper/SQLFederationRuleConfigurationRepositoryTupleSwapperTest.java
b/kernel/sql-federation/core/src/test/java/org/apache/shardingsphere/sqlfederation/yaml/swapper/SQLFederationRuleConfigurationRepositoryTupleSwapperTest.java
index 064491d3b73..79e208434f5 100644
---
a/kernel/sql-federation/core/src/test/java/org/apache/shardingsphere/sqlfederation/yaml/swapper/SQLFederationRuleConfigurationRepositoryTupleSwapperTest.java
+++
b/kernel/sql-federation/core/src/test/java/org/apache/shardingsphere/sqlfederation/yaml/swapper/SQLFederationRuleConfigurationRepositoryTupleSwapperTest.java
@@ -17,8 +17,7 @@
package org.apache.shardingsphere.sqlfederation.yaml.swapper;
-import org.apache.shardingsphere.sql.parser.api.CacheOption;
-import
org.apache.shardingsphere.sqlfederation.api.config.SQLFederationRuleConfiguration;
+import
org.apache.shardingsphere.sqlfederation.yaml.config.YamlSQLFederationRuleConfiguration;
import org.junit.jupiter.api.Test;
import static org.hamcrest.CoreMatchers.is;
@@ -30,6 +29,6 @@ class
SQLFederationRuleConfigurationRepositoryTupleSwapperTest {
@Test
void assertSwapToRepositoryTuples() {
- assertThat(swapper.swapToRepositoryTuples(new
SQLFederationRuleConfiguration(false, false, new CacheOption(0,
0))).iterator().next().getKey(), is("sql_federation"));
+ assertThat(swapper.swapToRepositoryTuples(new
YamlSQLFederationRuleConfiguration()).iterator().next().getKey(),
is("sql_federation"));
}
}
diff --git
a/kernel/sql-parser/core/src/main/java/org/apache/shardingsphere/parser/yaml/swapper/SQLParserRuleConfigurationRepositoryTupleSwapper.java
b/kernel/sql-parser/core/src/main/java/org/apache/shardingsphere/parser/yaml/swapper/SQLParserRuleConfigurationRepositoryTupleSwapper.java
index e83ee0803e7..892a977617d 100644
---
a/kernel/sql-parser/core/src/main/java/org/apache/shardingsphere/parser/yaml/swapper/SQLParserRuleConfigurationRepositoryTupleSwapper.java
+++
b/kernel/sql-parser/core/src/main/java/org/apache/shardingsphere/parser/yaml/swapper/SQLParserRuleConfigurationRepositoryTupleSwapper.java
@@ -32,10 +32,15 @@ import java.util.Optional;
/**
* SQL parser rule configuration repository tuple swapper.
*/
-public final class SQLParserRuleConfigurationRepositoryTupleSwapper implements
RepositoryTupleSwapper<SQLParserRuleConfiguration> {
+public final class SQLParserRuleConfigurationRepositoryTupleSwapper implements
RepositoryTupleSwapper<SQLParserRuleConfiguration,
YamlSQLParserRuleConfiguration> {
private final YamlSQLParserRuleConfigurationSwapper ruleConfigSwapper =
new YamlSQLParserRuleConfigurationSwapper();
+ @Override
+ public Collection<RepositoryTuple> swapToRepositoryTuples(final
YamlSQLParserRuleConfiguration yamlRuleConfig) {
+ return Collections.singleton(new
RepositoryTuple(getRuleTagName().toLowerCase(),
YamlEngine.marshal(yamlRuleConfig)));
+ }
+
@Override
public Collection<RepositoryTuple> swapToRepositoryTuples(final
SQLParserRuleConfiguration data) {
return Collections.singleton(new
RepositoryTuple(getRuleTagName().toLowerCase(),
YamlEngine.marshal(ruleConfigSwapper.swapToYamlConfiguration(data))));
diff --git
a/kernel/sql-parser/core/src/test/java/org/apache/shardingsphere/parser/yaml/swapper/SQLParserRuleConfigurationRepositoryTupleSwapperTest.java
b/kernel/sql-parser/core/src/test/java/org/apache/shardingsphere/parser/yaml/swapper/SQLParserRuleConfigurationRepositoryTupleSwapperTest.java
index 5dcf75d1d9e..563170e8a84 100644
---
a/kernel/sql-parser/core/src/test/java/org/apache/shardingsphere/parser/yaml/swapper/SQLParserRuleConfigurationRepositoryTupleSwapperTest.java
+++
b/kernel/sql-parser/core/src/test/java/org/apache/shardingsphere/parser/yaml/swapper/SQLParserRuleConfigurationRepositoryTupleSwapperTest.java
@@ -17,8 +17,7 @@
package org.apache.shardingsphere.parser.yaml.swapper;
-import org.apache.shardingsphere.parser.config.SQLParserRuleConfiguration;
-import
org.apache.shardingsphere.parser.rule.builder.DefaultSQLParserRuleConfigurationBuilder;
+import
org.apache.shardingsphere.parser.yaml.config.YamlSQLParserRuleConfiguration;
import org.junit.jupiter.api.Test;
import static org.hamcrest.CoreMatchers.is;
@@ -30,7 +29,6 @@ class SQLParserRuleConfigurationRepositoryTupleSwapperTest {
@Test
void assertSwapToRepositoryTuples() {
- assertThat(swapper.swapToRepositoryTuples(new
SQLParserRuleConfiguration(DefaultSQLParserRuleConfigurationBuilder.PARSE_TREE_CACHE_OPTION,
-
DefaultSQLParserRuleConfigurationBuilder.SQL_STATEMENT_CACHE_OPTION)).iterator().next().getKey(),
is("sql_parser"));
+ assertThat(swapper.swapToRepositoryTuples(new
YamlSQLParserRuleConfiguration()).iterator().next().getKey(), is("sql_parser"));
}
}
diff --git
a/kernel/sql-translator/core/src/main/java/org/apache/shardingsphere/sqltranslator/yaml/swapper/SQLTranslatorRuleConfigurationRepositoryTupleSwapper.java
b/kernel/sql-translator/core/src/main/java/org/apache/shardingsphere/sqltranslator/yaml/swapper/SQLTranslatorRuleConfigurationRepositoryTupleSwapper.java
index e0fcf6a8856..50d9ff4ecc6 100644
---
a/kernel/sql-translator/core/src/main/java/org/apache/shardingsphere/sqltranslator/yaml/swapper/SQLTranslatorRuleConfigurationRepositoryTupleSwapper.java
+++
b/kernel/sql-translator/core/src/main/java/org/apache/shardingsphere/sqltranslator/yaml/swapper/SQLTranslatorRuleConfigurationRepositoryTupleSwapper.java
@@ -32,10 +32,15 @@ import java.util.Optional;
/**
* SQL translator rule configuration repository tuple swapper.
*/
-public final class SQLTranslatorRuleConfigurationRepositoryTupleSwapper
implements RepositoryTupleSwapper<SQLTranslatorRuleConfiguration> {
+public final class SQLTranslatorRuleConfigurationRepositoryTupleSwapper
implements RepositoryTupleSwapper<SQLTranslatorRuleConfiguration,
YamlSQLTranslatorRuleConfiguration> {
private final YamlSQLTranslatorRuleConfigurationSwapper ruleConfigSwapper
= new YamlSQLTranslatorRuleConfigurationSwapper();
+ @Override
+ public Collection<RepositoryTuple> swapToRepositoryTuples(final
YamlSQLTranslatorRuleConfiguration yamlRuleConfig) {
+ return Collections.singleton(new
RepositoryTuple(getRuleTagName().toLowerCase(),
YamlEngine.marshal(yamlRuleConfig)));
+ }
+
@Override
public Collection<RepositoryTuple> swapToRepositoryTuples(final
SQLTranslatorRuleConfiguration data) {
return Collections.singleton(new
RepositoryTuple(getRuleTagName().toLowerCase(),
YamlEngine.marshal(ruleConfigSwapper.swapToYamlConfiguration(data))));
diff --git
a/kernel/sql-translator/core/src/test/java/org/apache/shardingsphere/sqltranslator/yaml/swapper/SQLTranslatorRuleConfigurationRepositoryTupleSwapperTest.java
b/kernel/sql-translator/core/src/test/java/org/apache/shardingsphere/sqltranslator/yaml/swapper/SQLTranslatorRuleConfigurationRepositoryTupleSwapperTest.java
index fb866849c80..1dc963ac9d6 100644
---
a/kernel/sql-translator/core/src/test/java/org/apache/shardingsphere/sqltranslator/yaml/swapper/SQLTranslatorRuleConfigurationRepositoryTupleSwapperTest.java
+++
b/kernel/sql-translator/core/src/test/java/org/apache/shardingsphere/sqltranslator/yaml/swapper/SQLTranslatorRuleConfigurationRepositoryTupleSwapperTest.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.sqltranslator.yaml.swapper;
-import
org.apache.shardingsphere.sqltranslator.rule.builder.DefaultSQLTranslatorRuleConfigurationBuilder;
+import
org.apache.shardingsphere.sqltranslator.yaml.config.YamlSQLTranslatorRuleConfiguration;
import org.junit.jupiter.api.Test;
import static org.hamcrest.CoreMatchers.is;
@@ -29,6 +29,6 @@ class
SQLTranslatorRuleConfigurationRepositoryTupleSwapperTest {
@Test
void assertSwapToRepositoryTuples() {
- assertThat(swapper.swapToRepositoryTuples(new
DefaultSQLTranslatorRuleConfigurationBuilder().build()).iterator().next().getKey(),
is("sql_translator"));
+ assertThat(swapper.swapToRepositoryTuples(new
YamlSQLTranslatorRuleConfiguration()).iterator().next().getKey(),
is("sql_translator"));
}
}
diff --git
a/kernel/traffic/core/src/main/java/org/apache/shardingsphere/traffic/yaml/swapper/TrafficRuleConfigurationRepositoryTupleSwapper.java
b/kernel/traffic/core/src/main/java/org/apache/shardingsphere/traffic/yaml/swapper/TrafficRuleConfigurationRepositoryTupleSwapper.java
index 1d5a6dd1a34..0a5c4f8df78 100644
---
a/kernel/traffic/core/src/main/java/org/apache/shardingsphere/traffic/yaml/swapper/TrafficRuleConfigurationRepositoryTupleSwapper.java
+++
b/kernel/traffic/core/src/main/java/org/apache/shardingsphere/traffic/yaml/swapper/TrafficRuleConfigurationRepositoryTupleSwapper.java
@@ -32,10 +32,15 @@ import java.util.Optional;
/**
* Traffic rule configuration repository tuple swapper.
*/
-public final class TrafficRuleConfigurationRepositoryTupleSwapper implements
RepositoryTupleSwapper<TrafficRuleConfiguration> {
+public final class TrafficRuleConfigurationRepositoryTupleSwapper implements
RepositoryTupleSwapper<TrafficRuleConfiguration, YamlTrafficRuleConfiguration> {
private final YamlTrafficRuleConfigurationSwapper ruleConfigSwapper = new
YamlTrafficRuleConfigurationSwapper();
+ @Override
+ public Collection<RepositoryTuple> swapToRepositoryTuples(final
YamlTrafficRuleConfiguration yamlRuleConfig) {
+ return Collections.singleton(new
RepositoryTuple(getRuleTagName().toLowerCase(),
YamlEngine.marshal(yamlRuleConfig)));
+ }
+
@Override
public Collection<RepositoryTuple> swapToRepositoryTuples(final
TrafficRuleConfiguration data) {
return Collections.singleton(new
RepositoryTuple(getRuleTagName().toLowerCase(),
YamlEngine.marshal(ruleConfigSwapper.swapToYamlConfiguration(data))));
diff --git
a/kernel/traffic/core/src/test/java/org/apache/shardingsphere/traffic/yaml/swapper/TrafficRuleConfigurationRepositoryTupleSwapperTest.java
b/kernel/traffic/core/src/test/java/org/apache/shardingsphere/traffic/yaml/swapper/TrafficRuleConfigurationRepositoryTupleSwapperTest.java
index 78d4c39f464..24679161eae 100644
---
a/kernel/traffic/core/src/test/java/org/apache/shardingsphere/traffic/yaml/swapper/TrafficRuleConfigurationRepositoryTupleSwapperTest.java
+++
b/kernel/traffic/core/src/test/java/org/apache/shardingsphere/traffic/yaml/swapper/TrafficRuleConfigurationRepositoryTupleSwapperTest.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.traffic.yaml.swapper;
-import org.apache.shardingsphere.traffic.api.config.TrafficRuleConfiguration;
+import
org.apache.shardingsphere.traffic.yaml.config.YamlTrafficRuleConfiguration;
import org.junit.jupiter.api.Test;
import static org.hamcrest.CoreMatchers.is;
@@ -29,6 +29,6 @@ class TrafficRuleConfigurationRepositoryTupleSwapperTest {
@Test
void assertSwapToRepositoryTuples() {
- assertThat(swapper.swapToRepositoryTuples(new
TrafficRuleConfiguration()).iterator().next().getKey(), is("traffic"));
+ assertThat(swapper.swapToRepositoryTuples(new
YamlTrafficRuleConfiguration()).iterator().next().getKey(), is("traffic"));
}
}
diff --git
a/kernel/transaction/core/src/main/java/org/apache/shardingsphere/transaction/yaml/swapper/TransactionRuleConfigurationRepositoryTupleSwapper.java
b/kernel/transaction/core/src/main/java/org/apache/shardingsphere/transaction/yaml/swapper/TransactionRuleConfigurationRepositoryTupleSwapper.java
index 0745afda4ca..7c8fd093707 100644
---
a/kernel/transaction/core/src/main/java/org/apache/shardingsphere/transaction/yaml/swapper/TransactionRuleConfigurationRepositoryTupleSwapper.java
+++
b/kernel/transaction/core/src/main/java/org/apache/shardingsphere/transaction/yaml/swapper/TransactionRuleConfigurationRepositoryTupleSwapper.java
@@ -32,10 +32,15 @@ import java.util.Optional;
/**
* Transaction rule configuration repository tuple swapper.
*/
-public final class TransactionRuleConfigurationRepositoryTupleSwapper
implements RepositoryTupleSwapper<TransactionRuleConfiguration> {
+public final class TransactionRuleConfigurationRepositoryTupleSwapper
implements RepositoryTupleSwapper<TransactionRuleConfiguration,
YamlTransactionRuleConfiguration> {
private final YamlTransactionRuleConfigurationSwapper ruleConfigSwapper =
new YamlTransactionRuleConfigurationSwapper();
+ @Override
+ public Collection<RepositoryTuple> swapToRepositoryTuples(final
YamlTransactionRuleConfiguration yamlRuleConfig) {
+ return Collections.singleton(new
RepositoryTuple(getRuleTagName().toLowerCase(),
YamlEngine.marshal(yamlRuleConfig)));
+ }
+
@Override
public Collection<RepositoryTuple> swapToRepositoryTuples(final
TransactionRuleConfiguration data) {
return Collections.singleton(new
RepositoryTuple(getRuleTagName().toLowerCase(),
YamlEngine.marshal(ruleConfigSwapper.swapToYamlConfiguration(data))));
diff --git
a/kernel/transaction/core/src/test/java/org/apache/shardingsphere/transaction/yaml/swapper/TransactionRuleConfigurationRepositoryTupleSwapperTest.java
b/kernel/transaction/core/src/test/java/org/apache/shardingsphere/transaction/yaml/swapper/TransactionRuleConfigurationRepositoryTupleSwapperTest.java
index 7e77eac618f..a58f47c1166 100644
---
a/kernel/transaction/core/src/test/java/org/apache/shardingsphere/transaction/yaml/swapper/TransactionRuleConfigurationRepositoryTupleSwapperTest.java
+++
b/kernel/transaction/core/src/test/java/org/apache/shardingsphere/transaction/yaml/swapper/TransactionRuleConfigurationRepositoryTupleSwapperTest.java
@@ -17,13 +17,9 @@
package org.apache.shardingsphere.transaction.yaml.swapper;
-import org.apache.shardingsphere.infra.util.yaml.datanode.RepositoryTuple;
-import
org.apache.shardingsphere.transaction.config.TransactionRuleConfiguration;
+import
org.apache.shardingsphere.transaction.yaml.config.YamlTransactionRuleConfiguration;
import org.junit.jupiter.api.Test;
-import java.util.Collection;
-import java.util.Properties;
-
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
@@ -33,7 +29,6 @@ class TransactionRuleConfigurationRepositoryTupleSwapperTest {
@Test
void assertSwapToRepositoryTuples() {
- Collection<RepositoryTuple> actual =
swapper.swapToRepositoryTuples(new TransactionRuleConfiguration("", "", new
Properties()));
- assertThat(actual.iterator().next().getKey(), is("transaction"));
+ assertThat(swapper.swapToRepositoryTuples(new
YamlTransactionRuleConfiguration()).iterator().next().getKey(),
is("transaction"));
}
}
diff --git
a/mode/api/src/main/java/org/apache/shardingsphere/mode/spi/RepositoryTupleSwapper.java
b/mode/api/src/main/java/org/apache/shardingsphere/mode/spi/RepositoryTupleSwapper.java
index 72ef85cdf20..3743794ad69 100644
---
a/mode/api/src/main/java/org/apache/shardingsphere/mode/spi/RepositoryTupleSwapper.java
+++
b/mode/api/src/main/java/org/apache/shardingsphere/mode/spi/RepositoryTupleSwapper.java
@@ -21,6 +21,7 @@ import
org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
import org.apache.shardingsphere.infra.spi.annotation.SingletonSPI;
import org.apache.shardingsphere.infra.spi.type.ordered.OrderedSPI;
import org.apache.shardingsphere.infra.util.yaml.datanode.RepositoryTuple;
+import
org.apache.shardingsphere.infra.yaml.config.pojo.rule.YamlRuleConfiguration;
import java.util.Collection;
import java.util.Optional;
@@ -29,9 +30,18 @@ import java.util.Optional;
* Repository tuple swapper.
*
* @param <T> type of swapped object
+ * @param <Y> type of swapped YAML rule configuration
*/
@SingletonSPI
-public interface RepositoryTupleSwapper<T extends RuleConfiguration> extends
OrderedSPI<T> {
+public interface RepositoryTupleSwapper<T extends RuleConfiguration, Y extends
YamlRuleConfiguration> extends OrderedSPI<T> {
+
+ /**
+ * Swap to repository tuples.
+ *
+ * @param yamlRuleConfig YAML rule configuration to be swapped
+ * @return repository tuples
+ */
+ Collection<RepositoryTuple> swapToRepositoryTuples(Y yamlRuleConfig);
/**
* Swap to repository tuples.