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 0607b35 Simplify constructor of GovernanceShardingSphereDataSource
(#11697)
0607b35 is described below
commit 0607b35d6723267c34aab7749dd18dffd5fc672b
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Aug 7 23:52:11 2021 +0800
Simplify constructor of GovernanceShardingSphereDataSource (#11697)
* Simplify constructor of GovernanceShardingSphereDataSource
* Simplify constructor of GovernanceShardingSphereDataSource
---
.../GovernanceShardingSphereDataSourceFactory.java | 76 +++++++++++-----------
.../GovernanceShardingSphereDataSource.java | 40 ++----------
.../GovernanceShardingSphereDataSourceTest.java | 10 +--
3 files changed, 49 insertions(+), 77 deletions(-)
diff --git
a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/api/GovernanceShardingSphereDataSourceFactory.java
b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/api/GovernanceShardingSphereDataSourceFactory.java
index cd5a580..0a24b77 100644
---
a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/api/GovernanceShardingSphereDataSourceFactory.java
+++
b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/api/GovernanceShardingSphereDataSourceFactory.java
@@ -17,11 +17,12 @@
package org.apache.shardingsphere.driver.governance.api;
+import com.google.common.base.Strings;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import
org.apache.shardingsphere.driver.governance.internal.datasource.GovernanceShardingSphereDataSource;
-import org.apache.shardingsphere.infra.config.RuleConfiguration;
import
org.apache.shardingsphere.governance.repository.api.config.GovernanceConfiguration;
+import org.apache.shardingsphere.infra.config.RuleConfiguration;
import org.apache.shardingsphere.infra.database.DefaultSchema;
import javax.sql.DataSource;
@@ -40,95 +41,94 @@ public final class
GovernanceShardingSphereDataSourceFactory {
/**
* Create ShardingSphere data source.
*
- * @param dataSourceMap data source map
- * @param ruleConfigurations rule configurations
+ * @param schemaName schema name
* @param governanceConfig governance configuration
- * @param props properties for data source
* @return ShardingSphere data source
* @throws SQLException SQL exception
*/
- public static DataSource createDataSource(final Map<String, DataSource>
dataSourceMap, final Collection<RuleConfiguration> ruleConfigurations,
- final Properties props, final
GovernanceConfiguration governanceConfig) throws SQLException {
- if (null == ruleConfigurations || ruleConfigurations.isEmpty()) {
- return createDataSource(governanceConfig);
- }
- return new GovernanceShardingSphereDataSource(dataSourceMap,
ruleConfigurations, props, governanceConfig);
+ public static DataSource createDataSource(final String schemaName, final
GovernanceConfiguration governanceConfig) throws SQLException {
+ return new
GovernanceShardingSphereDataSource(Strings.isNullOrEmpty(schemaName) ?
DefaultSchema.LOGIC_NAME : schemaName, governanceConfig);
}
/**
* Create ShardingSphere data source.
*
- * @param schemaName schema name
- * @param dataSourceMap data source map
- * @param ruleConfigurations rule configurations
* @param governanceConfig governance configuration
- * @param props properties for data source
* @return ShardingSphere data source
* @throws SQLException SQL exception
*/
- public static DataSource createDataSource(final String schemaName, final
Map<String, DataSource> dataSourceMap, final Collection<RuleConfiguration>
ruleConfigurations,
- final Properties props, final
GovernanceConfiguration governanceConfig) throws SQLException {
- if (null == ruleConfigurations || ruleConfigurations.isEmpty()) {
- return createDataSource(schemaName, governanceConfig);
- }
- return new GovernanceShardingSphereDataSource(schemaName,
dataSourceMap, ruleConfigurations, props, governanceConfig);
+ public static DataSource createDataSource(final GovernanceConfiguration
governanceConfig) throws SQLException {
+ return createDataSource(DefaultSchema.LOGIC_NAME, governanceConfig);
}
/**
* Create ShardingSphere data source.
*
- * @param dataSource data source
- * @param ruleConfigurations rule configurations
+ * @param schemaName schema name
+ * @param dataSourceMap data source map
+ * @param ruleConfigs rule configurations
* @param governanceConfig governance configuration
* @param props properties for data source
* @return ShardingSphere data source
* @throws SQLException SQL exception
*/
- public static DataSource createDataSource(final DataSource dataSource,
final Collection<RuleConfiguration> ruleConfigurations,
- final Properties props, final
GovernanceConfiguration governanceConfig) throws SQLException {
- Map<String, DataSource> dataSourceMap = new HashMap<>(1, 1);
- dataSourceMap.put(DefaultSchema.LOGIC_NAME, dataSource);
- return createDataSource(DefaultSchema.LOGIC_NAME, dataSourceMap,
ruleConfigurations, props, governanceConfig);
+ public static DataSource createDataSource(final String schemaName, final
Map<String, DataSource> dataSourceMap,
+ final
Collection<RuleConfiguration> ruleConfigs, final Properties props, final
GovernanceConfiguration governanceConfig) throws SQLException {
+ if (null == ruleConfigs || ruleConfigs.isEmpty()) {
+ return createDataSource(schemaName, governanceConfig);
+ }
+ return new
GovernanceShardingSphereDataSource(Strings.isNullOrEmpty(schemaName) ?
DefaultSchema.LOGIC_NAME : schemaName, dataSourceMap, ruleConfigs, props,
governanceConfig);
}
/**
* Create ShardingSphere data source.
*
- * @param schemaName schema name configuration
+ * @param schemaName schema name
* @param dataSource data source
- * @param ruleConfigurations rule configurations
+ * @param ruleConfigs rule configurations
* @param governanceConfig governance configuration
* @param props properties for data source
* @return ShardingSphere data source
* @throws SQLException SQL exception
*/
- public static DataSource createDataSource(final String schemaName, final
DataSource dataSource, final Collection<RuleConfiguration> ruleConfigurations,
+ public static DataSource createDataSource(final String schemaName, final
DataSource dataSource, final Collection<RuleConfiguration> ruleConfigs,
final Properties props, final
GovernanceConfiguration governanceConfig) throws SQLException {
- Map<String, DataSource> dataSourceMap = new HashMap<>(1, 1);
- dataSourceMap.put(schemaName, dataSource);
- return createDataSource(schemaName, dataSourceMap, ruleConfigurations,
props, governanceConfig);
+ return createDataSource(schemaName,
createSingleDataSourceMap(schemaName, dataSource), ruleConfigs, props,
governanceConfig);
}
/**
* Create ShardingSphere data source.
*
+ * @param dataSourceMap data source map
+ * @param ruleConfigs rule configurations
* @param governanceConfig governance configuration
+ * @param props properties for data source
* @return ShardingSphere data source
* @throws SQLException SQL exception
*/
- public static DataSource createDataSource(final GovernanceConfiguration
governanceConfig) throws SQLException {
- return new GovernanceShardingSphereDataSource(governanceConfig);
+ public static DataSource createDataSource(final Map<String, DataSource>
dataSourceMap,
+ final
Collection<RuleConfiguration> ruleConfigs, final Properties props, final
GovernanceConfiguration governanceConfig) throws SQLException {
+ return createDataSource(DefaultSchema.LOGIC_NAME, dataSourceMap,
ruleConfigs, props, governanceConfig);
}
/**
* Create ShardingSphere data source.
*
- * @param schemaName schema name
+ * @param dataSource data source
+ * @param ruleConfigs rule configurations
* @param governanceConfig governance configuration
+ * @param props properties for data source
* @return ShardingSphere data source
* @throws SQLException SQL exception
*/
- public static DataSource createDataSource(final String schemaName, final
GovernanceConfiguration governanceConfig) throws SQLException {
- return new GovernanceShardingSphereDataSource(schemaName,
governanceConfig);
+ public static DataSource createDataSource(final DataSource dataSource,
+ final
Collection<RuleConfiguration> ruleConfigs, final Properties props, final
GovernanceConfiguration governanceConfig) throws SQLException {
+ return createDataSource(DefaultSchema.LOGIC_NAME,
createSingleDataSourceMap(DefaultSchema.LOGIC_NAME, dataSource), ruleConfigs,
props, governanceConfig);
+ }
+
+ private static Map<String, DataSource> createSingleDataSourceMap(final
String schemaName, final DataSource dataSource) {
+ Map<String, DataSource> result = new HashMap<>(1, 1);
+ result.put(Strings.isNullOrEmpty(schemaName) ?
DefaultSchema.LOGIC_NAME : schemaName, dataSource);
+ return result;
}
}
diff --git
a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/internal/datasource/GovernanceShardingSphereDataSource.java
b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/internal/datasource/GovernanceShardingSphereDataSource.java
index 8135f57..02ddd98 100644
---
a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/internal/datasource/GovernanceShardingSphereDataSource.java
+++
b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/internal/datasource/GovernanceShardingSphereDataSource.java
@@ -18,7 +18,6 @@
package org.apache.shardingsphere.driver.governance.internal.datasource;
import lombok.Getter;
-import org.apache.commons.lang.StringUtils;
import
org.apache.shardingsphere.driver.governance.internal.state.DriverStateContext;
import
org.apache.shardingsphere.driver.jdbc.unsupported.AbstractUnsupportedOperationDataSource;
import
org.apache.shardingsphere.governance.context.metadata.GovernanceMetaDataContexts;
@@ -48,6 +47,7 @@ import java.sql.Connection;
import java.sql.SQLException;
import java.util.Collection;
import java.util.Collections;
+import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import java.util.stream.Collectors;
@@ -67,20 +67,8 @@ public final class GovernanceShardingSphereDataSource
extends AbstractUnsupporte
@Getter
private final TransactionContexts transactionContexts;
- public GovernanceShardingSphereDataSource(final GovernanceConfiguration
governanceConfig) throws SQLException {
- schemaName = DefaultSchema.LOGIC_NAME;
- // TODO new GovernanceRule from SPI
- governanceRule = new GovernanceRule(governanceConfig);
- DistMetaDataPersistService persistService = new
DistMetaDataPersistService(governanceRule.getRegistryCenter().getRepository());
- metaDataContexts = new
GovernanceMetaDataContexts(createMetaDataContexts(persistService),
persistService, governanceRule.getRegistryCenter());
- String xaTransactionMangerType =
metaDataContexts.getProps().getValue(ConfigurationPropertyKey.XA_TRANSACTION_MANAGER_TYPE);
- transactionContexts =
createTransactionContexts(metaDataContexts.getDefaultMetaData().getResource().getDatabaseType(),
-
metaDataContexts.getDefaultMetaData().getResource().getDataSources(),
xaTransactionMangerType);
- new TransactionContextsSubscriber(transactionContexts,
xaTransactionMangerType);
- }
-
public GovernanceShardingSphereDataSource(final String schemaName, final
GovernanceConfiguration governanceConfig) throws SQLException {
- this.schemaName = getSchemaName(schemaName);
+ this.schemaName = schemaName;
// TODO new GovernanceRule from SPI
governanceRule = new GovernanceRule(governanceConfig);
DistMetaDataPersistService persistService = new
DistMetaDataPersistService(governanceRule.getRegistryCenter().getRepository());
@@ -91,23 +79,9 @@ public final class GovernanceShardingSphereDataSource
extends AbstractUnsupporte
new TransactionContextsSubscriber(transactionContexts,
xaTransactionMangerType);
}
- public GovernanceShardingSphereDataSource(final Map<String, DataSource>
dataSourceMap, final Collection<RuleConfiguration> ruleConfigs,
- final Properties props, final
GovernanceConfiguration governanceConfig) throws SQLException {
- schemaName = DefaultSchema.LOGIC_NAME;
- // TODO new GovernanceRule from SPI
- governanceRule = new GovernanceRule(governanceConfig);
- DistMetaDataPersistService persistService = new
DistMetaDataPersistService(governanceRule.getRegistryCenter().getRepository());
- metaDataContexts = new
GovernanceMetaDataContexts(createMetaDataContexts(persistService,
dataSourceMap, ruleConfigs, props), persistService,
governanceRule.getRegistryCenter());
- String xaTransactionMangerType =
metaDataContexts.getProps().getValue(ConfigurationPropertyKey.XA_TRANSACTION_MANAGER_TYPE);
- transactionContexts =
createTransactionContexts(metaDataContexts.getDefaultMetaData().getResource().getDatabaseType(),
-
metaDataContexts.getDefaultMetaData().getResource().getDataSources(),
xaTransactionMangerType);
- uploadLocalConfiguration(persistService,
governanceRule.getRegistryCenter(), ruleConfigs,
governanceConfig.isOverwrite());
- new TransactionContextsSubscriber(transactionContexts,
xaTransactionMangerType);
- }
-
public GovernanceShardingSphereDataSource(final String schemaName, final
Map<String, DataSource> dataSourceMap, final Collection<RuleConfiguration>
ruleConfigs,
final Properties props, final
GovernanceConfiguration governanceConfig) throws SQLException {
- this.schemaName = getSchemaName(schemaName);
+ this.schemaName = schemaName;
// TODO new GovernanceRule from SPI
governanceRule = new GovernanceRule(governanceConfig);
DistMetaDataPersistService persistService = new
DistMetaDataPersistService(governanceRule.getRegistryCenter().getRepository());
@@ -119,10 +93,6 @@ public final class GovernanceShardingSphereDataSource
extends AbstractUnsupporte
new TransactionContextsSubscriber(transactionContexts,
xaTransactionMangerType);
}
- private String getSchemaName(final String schemaName) {
- return StringUtils.isNotEmpty(schemaName) ? schemaName :
DefaultSchema.LOGIC_NAME;
- }
-
private StandardMetaDataContexts createMetaDataContexts(final
DistMetaDataPersistService persistService) throws SQLException {
Map<String, DataSourceConfiguration> dataSourceConfigs =
persistService.getDataSourceService().load(DefaultSchema.LOGIC_NAME);
Collection<RuleConfiguration> ruleConfigs =
persistService.getSchemaRuleService().load(DefaultSchema.LOGIC_NAME);
@@ -142,7 +112,9 @@ public final class GovernanceShardingSphereDataSource
extends AbstractUnsupporte
private TransactionContexts createTransactionContexts(final DatabaseType
databaseType, final Map<String, DataSource> dataSourceMap, final String
xaTransactionMangerType) {
ShardingTransactionManagerEngine engine = new
ShardingTransactionManagerEngine();
engine.init(databaseType, dataSourceMap, xaTransactionMangerType);
- return new
TransactionContexts(Collections.singletonMap(DefaultSchema.LOGIC_NAME, engine));
+ Map<String, ShardingTransactionManagerEngine> engines = new
HashMap<>();
+ engines.put(DefaultSchema.LOGIC_NAME, engine);
+ return new TransactionContexts(engines);
}
private void uploadLocalConfiguration(final DistMetaDataPersistService
persistService,
diff --git
a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/test/java/org/apache/shardingsphere/driver/governance/internal/datasource/GovernanceShardingSphereDataSourceTest.java
b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/test/java/org/apache/shardingsphere/driver/governance/internal/datasource/GovernanceShardingSphereDataSourceTest.java
index 74ebe80..9ffa721 100644
---
a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/test/java/org/apache/shardingsphere/driver/governance/internal/datasource/GovernanceShardingSphereDataSourceTest.java
+++
b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/test/java/org/apache/shardingsphere/driver/governance/internal/datasource/GovernanceShardingSphereDataSourceTest.java
@@ -84,7 +84,7 @@ public final class GovernanceShardingSphereDataSourceTest {
@Test
public void assertInitializeGovernanceShardingSphereDataSource() throws
SQLException {
- assertThat(new
GovernanceShardingSphereDataSource(getGovernanceConfiguration()).getConnection(),
instanceOf(Connection.class));
+ assertThat(new
GovernanceShardingSphereDataSource(DefaultSchema.LOGIC_NAME,
getGovernanceConfiguration()).getConnection(), instanceOf(Connection.class));
}
@Test
@@ -130,13 +130,13 @@ public final class GovernanceShardingSphereDataSourceTest
{
@Test
public void assertRenewProperties() {
- metaDataContexts.renew(getPropertiesChangedEvent());
-
assertThat(metaDataContexts.getProps().getProps().getProperty(ConfigurationPropertyKey.SQL_SHOW.getKey()),
is("true"));
+ metaDataContexts.renew(createPropertiesChangedEvent());
+
assertThat(metaDataContexts.getProps().getProps().getProperty(ConfigurationPropertyKey.SQL_SHOW.getKey()),
is(Boolean.TRUE.toString()));
}
- private PropertiesChangedEvent getPropertiesChangedEvent() {
+ private PropertiesChangedEvent createPropertiesChangedEvent() {
Properties props = new Properties();
- props.setProperty(ConfigurationPropertyKey.SQL_SHOW.getKey(), "true");
+ props.setProperty(ConfigurationPropertyKey.SQL_SHOW.getKey(),
Boolean.TRUE.toString());
return new PropertiesChangedEvent(props);
}