This is an automated email from the ASF dual-hosted git repository.
duanzhengqiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 9e08537 Add overwrite for local dist meta data persist (#11606)
9e08537 is described below
commit 9e08537f1d1f8a822779e2d5250fab10f2c335a6
Author: Haoran Meng <[email protected]>
AuthorDate: Tue Aug 3 14:44:00 2021 +0800
Add overwrite for local dist meta data persist (#11606)
* Add overwrite for local dist meta data persist
* Add overwrite for local dist meta data persist
* Merge from apache master
* Add overwrite for local meta data persist
---
.../infra/rule/persist/DistMetaDataPersistRuleConfiguration.java | 2 ++
.../pojo/persist/YamlDistMetaDataPersistRuleConfiguration.java | 2 ++
.../persist/DistMetaDataPersistRuleConfigurationYamlSwapper.java | 3 ++-
.../DistMetaDataPersistRuleConfigurationYamlSwapperTest.java | 6 +++++-
.../driver/jdbc/core/datasource/ShardingSphereDataSource.java | 2 +-
.../src/main/java/org/apache/shardingsphere/proxy/Bootstrap.java | 2 +-
.../proxy/initializer/impl/StandardBootstrapInitializer.java | 5 +++--
7 files changed, 16 insertions(+), 6 deletions(-)
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/rule/persist/DistMetaDataPersistRuleConfiguration.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/rule/persist/DistMetaDataPersistRuleConfiguration.java
index dff5b2b..9c04488 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/rule/persist/DistMetaDataPersistRuleConfiguration.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/rule/persist/DistMetaDataPersistRuleConfiguration.java
@@ -32,5 +32,7 @@ public final class DistMetaDataPersistRuleConfiguration
implements GlobalRuleCon
private final String type;
+ private final boolean overwrite;
+
private final Properties props;
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/config/pojo/persist/YamlDistMetaDataPersistRuleConfiguration.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/config/pojo/persist/YamlDistMetaDataPersistRuleConfiguration.java
index 9de5640..59e569a 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/config/pojo/persist/YamlDistMetaDataPersistRuleConfiguration.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/config/pojo/persist/YamlDistMetaDataPersistRuleConfiguration.java
@@ -33,6 +33,8 @@ public final class YamlDistMetaDataPersistRuleConfiguration
implements YamlRuleC
private String type;
+ private boolean overwrite;
+
private Properties props = new Properties();
@Override
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/config/swapper/persist/DistMetaDataPersistRuleConfigurationYamlSwapper.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/config/swapper/persist/DistMetaDataPersistRuleConfigurationYamlSwapper.java
index 65641f2..9066651 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/config/swapper/persist/DistMetaDataPersistRuleConfigurationYamlSwapper.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/config/swapper/persist/DistMetaDataPersistRuleConfigurationYamlSwapper.java
@@ -42,13 +42,14 @@ public final class
DistMetaDataPersistRuleConfigurationYamlSwapper implements
public YamlDistMetaDataPersistRuleConfiguration
swapToYamlConfiguration(final DistMetaDataPersistRuleConfiguration data) {
YamlDistMetaDataPersistRuleConfiguration result = new
YamlDistMetaDataPersistRuleConfiguration();
result.setType(data.getType());
+ result.setOverwrite(data.isOverwrite());
result.setProps(data.getProps());
return result;
}
@Override
public DistMetaDataPersistRuleConfiguration swapToObject(final
YamlDistMetaDataPersistRuleConfiguration yamlConfig) {
- return new DistMetaDataPersistRuleConfiguration(yamlConfig.getType(),
yamlConfig.getProps());
+ return new DistMetaDataPersistRuleConfiguration(yamlConfig.getType(),
yamlConfig.isOverwrite(), yamlConfig.getProps());
}
@Override
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/yaml/config/swapper/persist/DistMetaDataPersistRuleConfigurationYamlSwapperTest.java
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/yaml/config/swapper/persist/DistMetaDataPersistRuleConfigurationYamlSwapperTest.java
index b7fe033..9613a48 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/yaml/config/swapper/persist/DistMetaDataPersistRuleConfigurationYamlSwapperTest.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/yaml/config/swapper/persist/DistMetaDataPersistRuleConfigurationYamlSwapperTest.java
@@ -28,6 +28,7 @@ import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
public final class DistMetaDataPersistRuleConfigurationYamlSwapperTest {
@@ -46,22 +47,25 @@ public final class
DistMetaDataPersistRuleConfigurationYamlSwapperTest {
@Test
public void assertSwapToYamlConfiguration() {
DistMetaDataPersistRuleConfiguration
distMetaDataPersistRuleConfiguration =
- new DistMetaDataPersistRuleConfiguration("Local",
buildProperties());
+ new DistMetaDataPersistRuleConfiguration("Local", true,
buildProperties());
YamlDistMetaDataPersistRuleConfiguration actual =
swapper.swapToYamlConfiguration(distMetaDataPersistRuleConfiguration);
assertNotNull(actual);
assertThat(actual.getType(), is("Local"));
assertThat(actual.getProps().get("path"), is("test"));
+ assertTrue(actual.isOverwrite());
}
@Test
public void assertSwapToObject() {
YamlDistMetaDataPersistRuleConfiguration yamlConfig = new
YamlDistMetaDataPersistRuleConfiguration();
yamlConfig.setType("Local");
+ yamlConfig.setOverwrite(true);
yamlConfig.setProps(buildProperties());
DistMetaDataPersistRuleConfiguration actual =
swapper.swapToObject(yamlConfig);
assertNotNull(actual);
assertThat(actual.getType(), is("Local"));
assertThat(actual.getProps().get("path"), is("test"));
+ assertTrue(actual.isOverwrite());
}
@Test
diff --git
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSource.java
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSource.java
index 8701e2a..673a2e4 100644
---
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSource.java
+++
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSource.java
@@ -64,7 +64,7 @@ public final class ShardingSphereDataSource extends
AbstractUnsupportedOperation
private static DistMetaDataPersistRuleConfiguration
findDistMetaDataPersistRuleConfiguration(final Collection<RuleConfiguration>
ruleConfigs) {
return ruleConfigs.stream().filter(each -> each instanceof
DistMetaDataPersistRuleConfiguration)
- .map(each -> (DistMetaDataPersistRuleConfiguration)
each).findFirst().orElse(new DistMetaDataPersistRuleConfiguration("Local", new
Properties()));
+ .map(each -> (DistMetaDataPersistRuleConfiguration)
each).findFirst().orElse(new DistMetaDataPersistRuleConfiguration("Local",
true, new Properties()));
}
private TransactionContexts createTransactionContexts(final DatabaseType
databaseType, final Map<String, DataSource> dataSourceMap, final String
xaTransactionMangerType) {
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/Bootstrap.java
b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/Bootstrap.java
index 1a4f43e..0346dc9 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/Bootstrap.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/Bootstrap.java
@@ -69,7 +69,7 @@ public final class Bootstrap {
private static DistMetaDataPersistRuleConfiguration
findDistMetaDataPersistRuleConfiguration(final YamlProxyConfiguration
yamlConfig) {
Collection<RuleConfiguration> ruleConfigs = new
YamlRuleConfigurationSwapperEngine().swapToRuleConfigurations(yamlConfig.getServerConfiguration().getRules());
return ruleConfigs.stream().filter(each -> each instanceof
DistMetaDataPersistRuleConfiguration)
- .map(each -> (DistMetaDataPersistRuleConfiguration)
each).findFirst().orElse(new DistMetaDataPersistRuleConfiguration("Local", new
Properties()));
+ .map(each -> (DistMetaDataPersistRuleConfiguration)
each).findFirst().orElse(new DistMetaDataPersistRuleConfiguration("Local",
true, new Properties()));
}
private static GovernanceConfiguration findGovernanceConfiguration(final
YamlProxyConfiguration yamlConfig) {
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/StandardBootstrapInitializer.java
b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/StandardBootstrapInitializer.java
index f9746e2..f3a98bf 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/StandardBootstrapInitializer.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/StandardBootstrapInitializer.java
@@ -36,9 +36,10 @@ public final class StandardBootstrapInitializer extends
AbstractBootstrapInitial
@Override
protected ProxyConfiguration getProxyConfiguration(final
YamlProxyConfiguration yamlConfig) {
- persistConfigurations(yamlConfig, false);
- ProxyConfiguration result = loadProxyConfiguration();
+ // TODO get overwrite from rule
+ persistConfigurations(yamlConfig, true);
// TODO remove isEmpty judge after LocalDistMetaDataPersistRepository
finished
+ ProxyConfiguration result = loadProxyConfiguration();
return (result.getSchemaDataSources().isEmpty()) ? new
YamlProxyConfigurationSwapper().swap(yamlConfig) : result;
}