This is an automated email from the ASF dual-hosted git repository.
zhonghongsheng 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 b91e3b6100d Refactor
StorageUnitMetaData.getDataSourcePoolPropertiesMap() (#28148)
b91e3b6100d is described below
commit b91e3b6100d86cc501dadb0683e71d479db96c54
Author: Liang Zhang <[email protected]>
AuthorDate: Thu Aug 17 21:12:22 2023 +0800
Refactor StorageUnitMetaData.getDataSourcePoolPropertiesMap() (#28148)
---
.../database/resource/storage/StorageUnitMetaData.java | 14 +++++++++++---
.../mode/manager/context/ConfigurationContextManager.java | 8 ++++----
.../mode/manager/switcher/SwitchingResource.java | 6 +++---
3 files changed, 18 insertions(+), 10 deletions(-)
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/storage/StorageUnitMetaData.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/storage/StorageUnitMetaData.java
index d6525540013..c1a90812a60 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/storage/StorageUnitMetaData.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/storage/StorageUnitMetaData.java
@@ -25,6 +25,7 @@ import javax.sql.DataSource;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Map.Entry;
+import java.util.stream.Collectors;
/**
* Storage unit meta data.
@@ -32,8 +33,6 @@ import java.util.Map.Entry;
@Getter
public final class StorageUnitMetaData {
- private final Map<String, DataSourcePoolProperties>
dataSourcePoolPropertiesMap;
-
// TODO zhangliang: should refactor
private final Map<String, StorageUnitNodeMapper> unitNodeMappers;
@@ -47,7 +46,6 @@ public final class StorageUnitMetaData {
public StorageUnitMetaData(final String databaseName, final
Map<StorageNode, DataSource> storageNodeDataSources,
final Map<String, DataSourcePoolProperties>
dataSourcePoolPropertiesMap, final Map<String, StorageUnitNodeMapper>
unitNodeMappers) {
- this.dataSourcePoolPropertiesMap = dataSourcePoolPropertiesMap;
this.unitNodeMappers = unitNodeMappers;
storageUnits = new LinkedHashMap<>(unitNodeMappers.size(), 1F);
for (Entry<String, StorageUnitNodeMapper> entry :
unitNodeMappers.entrySet()) {
@@ -57,6 +55,16 @@ public final class StorageUnitMetaData {
storageTypes = createStorageTypes();
}
+ /**
+ * Get data source pool properties map.
+ *
+ * @return data source pool properties map
+ */
+ public Map<String, DataSourcePoolProperties>
getDataSourcePoolPropertiesMap() {
+ return storageUnits.entrySet().stream()
+ .collect(Collectors.toMap(Entry::getKey, entry ->
entry.getValue().getDataSourcePoolProperties(), (oldValue, currentValue) ->
oldValue, LinkedHashMap::new));
+ }
+
private Map<String, DataSource> createDataSources() {
Map<String, DataSource> result = new
LinkedHashMap<>(storageUnits.size(), 1F);
for (Entry<String, StorageUnit> entry : storageUnits.entrySet()) {
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/context/ConfigurationContextManager.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/context/ConfigurationContextManager.java
index 2b3a0973ed8..1dfbe5f22da 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/context/ConfigurationContextManager.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/context/ConfigurationContextManager.java
@@ -342,8 +342,8 @@ public final class ConfigurationContextManager {
Collection<RuleConfiguration> toBeCreatedRuleConfigs = null ==
ruleConfigs
?
metaDataContexts.get().getMetaData().getDatabase(databaseName).getRuleMetaData().getConfigurations()
: ruleConfigs;
- DatabaseConfiguration toBeCreatedDatabaseConfig =
getDatabaseConfiguration(metaDataContexts.get().getMetaData().getDatabase(databaseName).getResourceMetaData(),
- switchingResource, toBeCreatedRuleConfigs);
+ DatabaseConfiguration toBeCreatedDatabaseConfig =
getDatabaseConfiguration(
+
metaDataContexts.get().getMetaData().getDatabase(databaseName).getResourceMetaData(),
switchingResource, toBeCreatedRuleConfigs);
ShardingSphereDatabase changedDatabase =
createChangedDatabase(metaDataContexts.get().getMetaData().getDatabase(databaseName).getName(),
internalLoadMetaData,
metaDataContexts.get().getPersistService(),
toBeCreatedDatabaseConfig, metaDataContexts.get().getMetaData().getProps(),
instanceContext);
Map<String, ShardingSphereDatabase> result = new
LinkedHashMap<>(metaDataContexts.get().getMetaData().getDatabases());
@@ -355,10 +355,10 @@ public final class ConfigurationContextManager {
private DatabaseConfiguration getDatabaseConfiguration(final
ResourceMetaData resourceMetaData, final SwitchingResource switchingResource,
final
Collection<RuleConfiguration> toBeCreatedRuleConfigs) {
StorageResource storageResource =
getMergedStorageResource(resourceMetaData, switchingResource);
- Map<String, DataSourcePoolProperties> dataSourcePoolPropertiesMap =
null == switchingResource
+ Map<String, DataSourcePoolProperties> propsMap = null ==
switchingResource
?
resourceMetaData.getStorageUnitMetaData().getDataSourcePoolPropertiesMap()
: switchingResource.getMergedDataSourcePoolPropertiesMap();
- return new DataSourceProvidedDatabaseConfiguration(storageResource,
toBeCreatedRuleConfigs, dataSourcePoolPropertiesMap);
+ return new DataSourceProvidedDatabaseConfiguration(storageResource,
toBeCreatedRuleConfigs, propsMap);
}
private StorageResource getMergedStorageResource(final ResourceMetaData
currentResourceMetaData, final SwitchingResource switchingResource) {
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/switcher/SwitchingResource.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/switcher/SwitchingResource.java
index 54bb3b12fc5..3fe81345e19 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/switcher/SwitchingResource.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/switcher/SwitchingResource.java
@@ -17,6 +17,7 @@
package org.apache.shardingsphere.mode.manager.switcher;
+import lombok.AccessLevel;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePoolProperties;
@@ -30,17 +31,16 @@ import java.util.Objects;
* Switching resource.
*/
@RequiredArgsConstructor
+@Getter
public final class SwitchingResource {
+ @Getter(AccessLevel.NONE)
private final ResourceMetaData resourceMetaData;
- @Getter
private final StorageResource newStorageResource;
- @Getter
private final StorageResource staleStorageResource;
- @Getter
private final Map<String, DataSourcePoolProperties>
mergedDataSourcePoolPropertiesMap;
/**