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

Reply via email to