未验证 提交 92ac14f0 编写于 作者: H Haoran Meng 提交者: GitHub

Merge pull request #7244 from terrymanu/dev

Fix issue for data source cannot renew
......@@ -348,7 +348,7 @@ public final class GovernanceSchemaContexts implements SchemaContexts {
private boolean isModifiedDataSource(final Map<String, DataSource> oldDataSources, final String newDataSourceName, final DataSourceConfiguration newDataSourceConfig) {
DataSourceConfiguration dataSourceConfig = DataSourceConverter.getDataSourceConfigurationMap(oldDataSources).get(newDataSourceName);
return newDataSourceConfig.equals(dataSourceConfig);
return null != dataSourceConfig && !newDataSourceConfig.equals(dataSourceConfig);
}
private Map<String, Map<String, DataSource>> createDataSourcesMap(final Map<String, Map<String, DataSourceConfiguration>> dataSourcesConfigs) {
......
......@@ -162,6 +162,9 @@ public final class DataSourceConfiguration {
return false;
}
for (Entry<String, Object> entry : props.entrySet()) {
if (!dataSourceConfig.props.containsKey(entry.getKey())) {
continue;
}
if (!String.valueOf(entry.getValue()).equals(String.valueOf(dataSourceConfig.props.get(entry.getKey())))) {
return false;
}
......
......@@ -57,7 +57,7 @@ public final class DataSourceConfigurationTest {
@Test
public void assertCreateDataSource() {
Map<String, Object> props = new HashMap<>();
Map<String, Object> props = new HashMap<>(16, 1);
props.put("driverClassName", "org.h2.Driver");
props.put("jdbcUrl", "jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=MySQL");
props.put("username", "root");
......@@ -110,14 +110,13 @@ public final class DataSourceConfigurationTest {
DataSourceConfiguration originalDataSourceConfig = new DataSourceConfiguration(HikariDataSource.class.getName());
DataSourceConfiguration targetDataSourceConfiguration = new DataSourceConfiguration(HikariDataSource.class.getName());
originalDataSourceConfig.getProps().put("username", "root");
targetDataSourceConfiguration.getProps().put("username", "root0");
assertThat(originalDataSourceConfig, not(targetDataSourceConfiguration));
targetDataSourceConfiguration.getProps().put("username", "root");
originalDataSourceConfig.getProps().put("password", "root");
assertThat(originalDataSourceConfig, not(targetDataSourceConfiguration));
assertFalse(originalDataSourceConfig.equals(null));
originalDataSourceConfig = new DataSourceConfiguration(HikariDataSource.class.getName());
targetDataSourceConfiguration = new DataSourceConfiguration(BasicDataSource.class.getName());
assertThat(originalDataSourceConfig, not(targetDataSourceConfiguration));
}
@Test
public void assertEqualsWithNull() {
assertFalse(new DataSourceConfiguration(HikariDataSource.class.getName()).equals(null));
}
@Test
......
......@@ -116,7 +116,6 @@ public final class GovernanceShardingSphereDataSourceTest {
public void assertRenewDataSource() throws Exception {
governanceSchemaContexts.renew(new DataSourceChangedEvent(DefaultSchema.LOGIC_NAME, getDataSourceConfigurations()));
assertThat(governanceSchemaContexts.getDefaultSchemaContext().getSchema().getDataSources().size(), is(3));
}
private Map<String, DataSourceConfiguration> getDataSourceConfigurations() {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册