提交 4889d6a3 编写于 作者: T terrymanu

For #647: refactor ShardingDataSourceFactory

上级 e59165b8
......@@ -83,6 +83,6 @@ public class YamlShardingConfiguration {
* @return sharding rule from yaml
*/
public ShardingRule getShardingRule(final Collection<String> dataSourceNames) {
return getShardingRule().getShardingRuleConfiguration().build(dataSourceNames.isEmpty() ? dataSources.keySet() : dataSourceNames);
return shardingRule.getShardingRuleConfiguration().build(dataSourceNames.isEmpty() ? dataSources.keySet() : dataSourceNames);
}
}
......@@ -66,40 +66,36 @@ public final class ShardingDataSourceFactory {
* @throws IOException IO exception
*/
public static DataSource createDataSource(final File yamlFile) throws SQLException, IOException {
YamlShardingConfiguration config = YamlShardingConfiguration.unmarshal(yamlFile);
Map<String, DataSource> dataSourceMap = config.getDataSources();
processDataSourceMapWithMasterSlave(dataSourceMap, config.getShardingRule().getShardingRuleConfiguration());
return new ShardingDataSource(dataSourceMap, config.getShardingRule(dataSourceMap.keySet()), config.getShardingRule().getConfigMap(), config.getShardingRule().getProps());
return createDataSource(YamlShardingConfiguration.unmarshal(yamlFile));
}
/**
* Create sharding data source.
*
* @param dataSourceMap data source map
* @param yamlFile yaml file for rule configuration of databases and tables sharding without data sources
* @param yamlBytes yaml bytes for rule configuration of databases and tables sharding with data sources
* @return sharding data source
* @throws SQLException SQL exception
* @throws IOException IO exception
*/
public static DataSource createDataSource(final Map<String, DataSource> dataSourceMap, final File yamlFile) throws SQLException, IOException {
YamlShardingConfiguration config = YamlShardingConfiguration.unmarshal(yamlFile);
processDataSourceMapWithMasterSlave(dataSourceMap, config.getShardingRule().getShardingRuleConfiguration());
return new ShardingDataSource(dataSourceMap, config.getShardingRule(dataSourceMap.keySet()), config.getShardingRule().getConfigMap(), config.getShardingRule().getProps());
public static DataSource createDataSource(final byte[] yamlBytes) throws SQLException, IOException {
return createDataSource(YamlShardingConfiguration.unmarshal(yamlBytes));
}
private static DataSource createDataSource(final YamlShardingConfiguration config) throws SQLException {
return createDataSource(config.getDataSources(), config.getShardingRule().getShardingRuleConfiguration(), config.getShardingRule().getConfigMap(), config.getShardingRule().getProps());
}
/**
* Create sharding data source.
*
* @param yamlBytes yaml bytes for rule configuration of databases and tables sharding with data sources
* @param dataSourceMap data source map
* @param yamlFile yaml file for rule configuration of databases and tables sharding without data sources
* @return sharding data source
* @throws SQLException SQL exception
* @throws IOException IO exception
*/
public static DataSource createDataSource(final byte[] yamlBytes) throws SQLException, IOException {
YamlShardingConfiguration config = YamlShardingConfiguration.unmarshal(yamlBytes);
Map<String, DataSource> dataSourceMap = config.getDataSources();
processDataSourceMapWithMasterSlave(dataSourceMap, config.getShardingRule().getShardingRuleConfiguration());
return new ShardingDataSource(dataSourceMap, config.getShardingRule(dataSourceMap.keySet()), config.getShardingRule().getConfigMap(), config.getShardingRule().getProps());
public static DataSource createDataSource(final Map<String, DataSource> dataSourceMap, final File yamlFile) throws SQLException, IOException {
return createDataSource(dataSourceMap, YamlShardingConfiguration.unmarshal(yamlFile));
}
/**
......@@ -112,9 +108,11 @@ public final class ShardingDataSourceFactory {
* @throws IOException IO exception
*/
public static DataSource createDataSource(final Map<String, DataSource> dataSourceMap, final byte[] yamlBytes) throws SQLException, IOException {
YamlShardingConfiguration config = YamlShardingConfiguration.unmarshal(yamlBytes);
processDataSourceMapWithMasterSlave(dataSourceMap, config.getShardingRule().getShardingRuleConfiguration());
return new ShardingDataSource(dataSourceMap, config.getShardingRule(dataSourceMap.keySet()), config.getShardingRule().getConfigMap(), config.getShardingRule().getProps());
return createDataSource(dataSourceMap, YamlShardingConfiguration.unmarshal(yamlBytes));
}
private static DataSource createDataSource(final Map<String, DataSource> dataSourceMap, final YamlShardingConfiguration config) throws SQLException {
return createDataSource(dataSourceMap, config.getShardingRule().getShardingRuleConfiguration(), config.getShardingRule().getConfigMap(), config.getShardingRule().getProps());
}
private static void processDataSourceMapWithMasterSlave(final Map<String, DataSource> dataSourceMap, final ShardingRuleConfiguration shardingRuleConfiguration) throws SQLException {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册