diff --git a/sharding-jdbc-orchestration-spring/sharding-jdbc-orchestration-spring-namespace/src/main/java/io/shardingjdbc/orchestration/spring/datasource/OrchestrationSpringMasterSlaveDataSource.java b/sharding-jdbc-orchestration-spring/sharding-jdbc-orchestration-spring-namespace/src/main/java/io/shardingjdbc/orchestration/spring/datasource/OrchestrationSpringMasterSlaveDataSource.java index 6ca51282e14c1b2be6da4dbf3469c2def286f729..d2f91c98c36e7ca6cf008950ac31b693cab9dd1f 100644 --- a/sharding-jdbc-orchestration-spring/sharding-jdbc-orchestration-spring-namespace/src/main/java/io/shardingjdbc/orchestration/spring/datasource/OrchestrationSpringMasterSlaveDataSource.java +++ b/sharding-jdbc-orchestration-spring/sharding-jdbc-orchestration-spring-namespace/src/main/java/io/shardingjdbc/orchestration/spring/datasource/OrchestrationSpringMasterSlaveDataSource.java @@ -59,8 +59,7 @@ public class OrchestrationSpringMasterSlaveDataSource extends MasterSlaveDataSou * initial orchestration spring master-slave data source. */ public void init() { - configurationService.persistMasterSlaveConfiguration(config); - configurationService.addMasterSlaveConfigurationChangeListener(this); + configurationService.persistMasterSlaveConfiguration(config, this); instanceStateService.addMasterSlaveInstanceOnline(this); } diff --git a/sharding-jdbc-orchestration-spring/sharding-jdbc-orchestration-spring-namespace/src/main/java/io/shardingjdbc/orchestration/spring/datasource/OrchestrationSpringShardingDataSource.java b/sharding-jdbc-orchestration-spring/sharding-jdbc-orchestration-spring-namespace/src/main/java/io/shardingjdbc/orchestration/spring/datasource/OrchestrationSpringShardingDataSource.java index d3dae1da408758554ee04c03cf0722b4801d0e34..3695c91cf8dc340b397fcea509c6685eb6313955 100644 --- a/sharding-jdbc-orchestration-spring/sharding-jdbc-orchestration-spring-namespace/src/main/java/io/shardingjdbc/orchestration/spring/datasource/OrchestrationSpringShardingDataSource.java +++ b/sharding-jdbc-orchestration-spring/sharding-jdbc-orchestration-spring-namespace/src/main/java/io/shardingjdbc/orchestration/spring/datasource/OrchestrationSpringShardingDataSource.java @@ -68,8 +68,7 @@ public class OrchestrationSpringShardingDataSource extends ShardingDataSource im * initial orchestration spring sharding data source. */ public void init() { - configurationService.persistShardingConfiguration(config, props); - configurationService.addShardingConfigurationChangeListener(this); + configurationService.persistShardingConfiguration(config, props, this); instanceStateService.persistShardingInstanceOnline(this); } diff --git a/sharding-jdbc-orchestration/src/main/java/io/shardingjdbc/orchestration/api/datasource/OrchestrationMasterSlaveDataSource.java b/sharding-jdbc-orchestration/src/main/java/io/shardingjdbc/orchestration/api/datasource/OrchestrationMasterSlaveDataSource.java index c2881d84fa2617de39823eb0b8a5bd713368d02c..62b5cd9a41684128088773b4ed9208f795b4acbb 100644 --- a/sharding-jdbc-orchestration/src/main/java/io/shardingjdbc/orchestration/api/datasource/OrchestrationMasterSlaveDataSource.java +++ b/sharding-jdbc-orchestration/src/main/java/io/shardingjdbc/orchestration/api/datasource/OrchestrationMasterSlaveDataSource.java @@ -54,8 +54,7 @@ public class OrchestrationMasterSlaveDataSource { * Initial orchestration master-slave data source. */ public void init() { - configurationService.persistMasterSlaveConfiguration(config); - configurationService.addMasterSlaveConfigurationChangeListener(dataSource); + configurationService.persistMasterSlaveConfiguration(config, dataSource); instanceStateService.addMasterSlaveInstanceOnline(dataSource); } } diff --git a/sharding-jdbc-orchestration/src/main/java/io/shardingjdbc/orchestration/api/datasource/OrchestrationShardingDataSource.java b/sharding-jdbc-orchestration/src/main/java/io/shardingjdbc/orchestration/api/datasource/OrchestrationShardingDataSource.java index 7f27cd026ed2085545b1f3bb63b936e3a38b210c..d91c5ef136d707e3986fa15abe49223ceb4a423b 100644 --- a/sharding-jdbc-orchestration/src/main/java/io/shardingjdbc/orchestration/api/datasource/OrchestrationShardingDataSource.java +++ b/sharding-jdbc-orchestration/src/main/java/io/shardingjdbc/orchestration/api/datasource/OrchestrationShardingDataSource.java @@ -58,8 +58,7 @@ public class OrchestrationShardingDataSource { * Initial orchestration master-slave data source. */ public void init() { - configurationService.persistShardingConfiguration(config, new Properties()); - configurationService.addShardingConfigurationChangeListener(dataSource); + configurationService.persistShardingConfiguration(config, props, dataSource); instanceStateService.persistShardingInstanceOnline(dataSource); } } diff --git a/sharding-jdbc-orchestration/src/main/java/io/shardingjdbc/orchestration/internal/config/ConfigurationService.java b/sharding-jdbc-orchestration/src/main/java/io/shardingjdbc/orchestration/internal/config/ConfigurationService.java index 18275ab35ef30cad1e959b1e553d7b7619520a36..49fc6c098adb362a7daba60182ab0e9596f56a7a 100644 --- a/sharding-jdbc-orchestration/src/main/java/io/shardingjdbc/orchestration/internal/config/ConfigurationService.java +++ b/sharding-jdbc-orchestration/src/main/java/io/shardingjdbc/orchestration/internal/config/ConfigurationService.java @@ -60,10 +60,11 @@ public final class ConfigurationService { * @param config orchestration sharding configuration * @param props sharding properties */ - public void persistShardingConfiguration(final OrchestrationShardingConfiguration config, final Properties props) { + public void persistShardingConfiguration(final OrchestrationShardingConfiguration config, final Properties props, final ShardingDataSource shardingDataSource) { persistShardingRuleConfiguration(config.getShardingRuleConfig(), config.isOverwrite()); persistShardingProperties(props, config.isOverwrite()); persistDataSourceConfiguration(config.getDataSourceMap(), config.isOverwrite()); + addShardingConfigurationChangeListener(shardingDataSource); } private void persistShardingRuleConfiguration(final ShardingRuleConfiguration config, final boolean isOverwrite) { @@ -84,12 +85,7 @@ public final class ConfigurationService { } } - /** - * Add sharding configuration change listener. - * - * @param shardingDataSource sharding datasource - */ - public void addShardingConfigurationChangeListener(final ShardingDataSource shardingDataSource) { + private void addShardingConfigurationChangeListener(final ShardingDataSource shardingDataSource) { addShardingConfigurationNodeChangeListener(ConfigurationNode.DATA_SOURCE_NODE_PATH, shardingDataSource); addShardingConfigurationNodeChangeListener(ConfigurationNode.SHARDING_NODE_PATH, shardingDataSource); addShardingConfigurationNodeChangeListener(ConfigurationNode.PROPS_NODE_PATH, shardingDataSource); @@ -117,9 +113,10 @@ public final class ConfigurationService { * * @param config orchestration master-slave configuration */ - public void persistMasterSlaveConfiguration(final OrchestrationMasterSlaveConfiguration config) { + public void persistMasterSlaveConfiguration(final OrchestrationMasterSlaveConfiguration config, final MasterSlaveDataSource masterSlaveDataSource) { persistMasterSlaveRuleConfiguration(config.getMasterSlaveRuleConfiguration(), config.isOverwrite()); persistDataSourceConfiguration(config.getDataSourceMap(), config.isOverwrite()); + addMasterSlaveConfigurationChangeListener(masterSlaveDataSource); } private void persistMasterSlaveRuleConfiguration(final MasterSlaveRuleConfiguration config, final boolean isOverwrite) { @@ -128,12 +125,7 @@ public final class ConfigurationService { } } - /** - * Add sharding configuration change listener. - * - * @param masterSlaveDataSource master-slave datasource - */ - public void addMasterSlaveConfigurationChangeListener(final MasterSlaveDataSource masterSlaveDataSource) { + private void addMasterSlaveConfigurationChangeListener(final MasterSlaveDataSource masterSlaveDataSource) { addMasterSlaveConfigurationChangeListener(ConfigurationNode.DATA_SOURCE_NODE_PATH, masterSlaveDataSource); addMasterSlaveConfigurationChangeListener(ConfigurationNode.MASTER_SLAVE_NODE_PATH, masterSlaveDataSource); }