Skip to content

Commit 10ef342

Browse files
authored
Merge pull request #44 from sharding-sphere/dev
update from origin
2 parents 9fcc1d4 + 38deafc commit 10ef342

File tree

4 files changed

+74
-34
lines changed

4 files changed

+74
-34
lines changed

sharding-orchestration/sharding-orchestration-core/src/main/java/io/shardingsphere/orchestration/internal/config/ConfigurationListenerManager.java

+18-14
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@
1919

2020
import io.shardingsphere.core.config.DataSourceConfiguration;
2121
import io.shardingsphere.core.event.ShardingEventBusInstance;
22+
import io.shardingsphere.core.rule.Authentication;
2223
import io.shardingsphere.core.rule.ShardingRule;
24+
import io.shardingsphere.orchestration.internal.event.config.ConfigurationChangedEvent;
2325
import io.shardingsphere.orchestration.internal.event.config.MasterSlaveConfigurationChangedEvent;
2426
import io.shardingsphere.orchestration.internal.event.config.ShardingConfigurationChangedEvent;
2527
import io.shardingsphere.orchestration.internal.listener.ListenerManager;
@@ -29,6 +31,7 @@
2931
import io.shardingsphere.orchestration.reg.listener.EventListener;
3032

3133
import java.util.Map;
34+
import java.util.Properties;
3235

3336
/**
3437
* Configuration listener manager.
@@ -116,22 +119,23 @@ private void watchProxy(final String path) {
116119
@Override
117120
public void onChange(final DataChangedEvent event) {
118121
if (DataChangedEvent.Type.UPDATED == event.getEventType()) {
119-
if (configService.isShardingRule(shardingSchemaName)) {
120-
Map<String, DataSourceConfiguration> dataSourceParameterMap = dataSourceService.getAvailableDataSourceConfigurations(shardingSchemaName);
121-
ShardingConfigurationChangedEvent shardingEvent = new ShardingConfigurationChangedEvent(
122-
shardingSchemaName, dataSourceParameterMap,
123-
new ShardingRule(dataSourceService.getAvailableShardingRuleConfiguration(shardingSchemaName), dataSourceParameterMap.keySet()),
124-
configService.loadAuthentication(), configService.loadProperties());
125-
ShardingEventBusInstance.getInstance().post(shardingEvent);
126-
} else {
127-
MasterSlaveConfigurationChangedEvent masterSlaveEvent = new MasterSlaveConfigurationChangedEvent(
128-
shardingSchemaName, dataSourceService.getAvailableDataSourceConfigurations(shardingSchemaName),
129-
dataSourceService.getAvailableMasterSlaveRuleConfiguration(shardingSchemaName),
130-
configService.loadAuthentication(), configService.loadProperties());
131-
ShardingEventBusInstance.getInstance().post(masterSlaveEvent);
132-
}
122+
Map<String, DataSourceConfiguration> dataSourceConfigurations = dataSourceService.getAvailableDataSourceConfigurations(shardingSchemaName);
123+
Authentication authentication = configService.loadAuthentication();
124+
Properties props = configService.loadProperties();
125+
ShardingEventBusInstance.getInstance().post(configService.isShardingRule(shardingSchemaName)
126+
? getShardingEvent(dataSourceConfigurations, authentication, props) : getMasterSlaveEvent(dataSourceConfigurations, authentication, props));
133127
}
134128
}
129+
130+
private ConfigurationChangedEvent getShardingEvent(final Map<String, DataSourceConfiguration> dataSourceConfigurations, final Authentication authentication, final Properties props) {
131+
return new ShardingConfigurationChangedEvent(shardingSchemaName, dataSourceConfigurations,
132+
new ShardingRule(dataSourceService.getAvailableShardingRuleConfiguration(shardingSchemaName), dataSourceConfigurations.keySet()), authentication, props);
133+
}
134+
135+
private ConfigurationChangedEvent getMasterSlaveEvent(final Map<String, DataSourceConfiguration> dataSourceConfigurations, final Authentication authentication, final Properties props) {
136+
return new MasterSlaveConfigurationChangedEvent(shardingSchemaName, dataSourceConfigurations,
137+
dataSourceService.getAvailableMasterSlaveRuleConfiguration(shardingSchemaName), authentication, props);
138+
}
135139
});
136140
}
137141
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/*
2+
* Copyright 2016-2018 shardingsphere.io.
3+
* <p>
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
* </p>
16+
*/
17+
18+
package io.shardingsphere.orchestration.internal.event.config;
19+
20+
import io.shardingsphere.core.config.DataSourceConfiguration;
21+
import io.shardingsphere.core.rule.Authentication;
22+
import lombok.Getter;
23+
import lombok.RequiredArgsConstructor;
24+
25+
import java.util.Map;
26+
import java.util.Properties;
27+
28+
/**
29+
* Configuration changed event.
30+
*
31+
* @author zhangliang
32+
*/
33+
@RequiredArgsConstructor
34+
@Getter
35+
public abstract class ConfigurationChangedEvent {
36+
37+
private final String schemaName;
38+
39+
private final Map<String, DataSourceConfiguration> dataSourceConfigurations;
40+
41+
private final Authentication authentication;
42+
43+
private final Properties props;
44+
}

sharding-orchestration/sharding-orchestration-core/src/main/java/io/shardingsphere/orchestration/internal/event/config/MasterSlaveConfigurationChangedEvent.java

+6-10
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import io.shardingsphere.core.config.DataSourceConfiguration;
2222
import io.shardingsphere.core.rule.Authentication;
2323
import lombok.Getter;
24-
import lombok.RequiredArgsConstructor;
2524

2625
import java.util.Map;
2726
import java.util.Properties;
@@ -31,17 +30,14 @@
3130
*
3231
* @author zhangliang
3332
*/
34-
@RequiredArgsConstructor
3533
@Getter
36-
public final class MasterSlaveConfigurationChangedEvent {
37-
38-
private final String schemaName;
39-
40-
private final Map<String, DataSourceConfiguration> dataSourceConfigurations;
34+
public final class MasterSlaveConfigurationChangedEvent extends ConfigurationChangedEvent {
4135

4236
private final MasterSlaveRuleConfiguration masterSlaveRuleConfig;
4337

44-
private final Authentication authentication;
45-
46-
private final Properties props;
38+
public MasterSlaveConfigurationChangedEvent(final String schemaName, final Map<String, DataSourceConfiguration> dataSourceConfigurations,
39+
final MasterSlaveRuleConfiguration masterSlaveRuleConfig, final Authentication authentication, final Properties props) {
40+
super(schemaName, dataSourceConfigurations, authentication, props);
41+
this.masterSlaveRuleConfig = masterSlaveRuleConfig;
42+
}
4743
}

sharding-orchestration/sharding-orchestration-core/src/main/java/io/shardingsphere/orchestration/internal/event/config/ShardingConfigurationChangedEvent.java

+6-10
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import io.shardingsphere.core.rule.Authentication;
2222
import io.shardingsphere.core.rule.ShardingRule;
2323
import lombok.Getter;
24-
import lombok.RequiredArgsConstructor;
2524

2625
import java.util.Map;
2726
import java.util.Properties;
@@ -31,17 +30,14 @@
3130
*
3231
* @author zhangliang
3332
*/
34-
@RequiredArgsConstructor
3533
@Getter
36-
public final class ShardingConfigurationChangedEvent {
37-
38-
private final String schemaName;
39-
40-
private final Map<String, DataSourceConfiguration> dataSourceConfigurations;
34+
public final class ShardingConfigurationChangedEvent extends ConfigurationChangedEvent {
4135

4236
private final ShardingRule shardingRule;
4337

44-
private final Authentication authentication;
45-
46-
private final Properties props;
38+
public ShardingConfigurationChangedEvent(final String schemaName, final Map<String, DataSourceConfiguration> dataSourceConfigurations,
39+
final ShardingRule shardingRule, final Authentication authentication, final Properties props) {
40+
super(schemaName, dataSourceConfigurations, authentication, props);
41+
this.shardingRule = shardingRule;
42+
}
4743
}

0 commit comments

Comments
 (0)