This is an automated email from the ASF dual-hosted git repository.
sunnianjun 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 d23aff8ec4a Move ResourceSwitchManager to MetaDataContextManager
(#31795)
d23aff8ec4a is described below
commit d23aff8ec4ac1251c4713d6198dc889c28c4f2dd
Author: Haoran Meng <[email protected]>
AuthorDate: Fri Jun 21 11:59:41 2024 +0800
Move ResourceSwitchManager to MetaDataContextManager (#31795)
---
.../shardingsphere/mode/manager/ContextManager.java | 9 ++++-----
.../mode/metadata/MetaDataContextManager.java | 6 +++++-
.../mode/metadata/manager/ConfigurationManager.java | 12 +++++-------
.../manager}/ResourceSwitchManager.java | 2 +-
.../manager}/SwitchingResource.java | 2 +-
.../mode/manager/switcher/SwitchingResourceTest.java | 1 +
.../StandaloneMetaDataManagerPersistService.java | 17 ++++++++---------
7 files changed, 25 insertions(+), 24 deletions(-)
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
index 31696171b14..785883e3ae0 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
@@ -42,13 +42,12 @@ import
org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader;
import org.apache.shardingsphere.infra.state.cluster.ClusterState;
import org.apache.shardingsphere.metadata.persist.MetaDataPersistService;
import
org.apache.shardingsphere.mode.manager.listener.ContextManagerLifecycleListener;
-import org.apache.shardingsphere.mode.manager.switcher.ResourceSwitchManager;
-import org.apache.shardingsphere.mode.manager.switcher.SwitchingResource;
+import org.apache.shardingsphere.mode.metadata.MetaDataContextManager;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory;
-import org.apache.shardingsphere.mode.metadata.MetaDataContextManager;
-import org.apache.shardingsphere.mode.service.PersistServiceFacade;
import org.apache.shardingsphere.mode.metadata.manager.ConfigurationManager;
+import org.apache.shardingsphere.mode.metadata.manager.SwitchingResource;
+import org.apache.shardingsphere.mode.service.PersistServiceFacade;
import org.apache.shardingsphere.mode.spi.PersistRepository;
import org.apache.shardingsphere.mode.state.StateContext;
@@ -179,7 +178,7 @@ public final class ContextManager implements AutoCloseable {
MetaDataPersistService metaDataPersistService =
persistServiceFacade.getMetaDataPersistService();
ConfigurationManager configurationManager =
metaDataContextManager.getConfigurationManager();
Map<String, DataSourcePoolProperties> dataSourcePoolPropsFromRegCenter
= metaDataPersistService.getDataSourceUnitService().load(database.getName());
- SwitchingResource switchingResource = new
ResourceSwitchManager().alterStorageUnit(database.getResourceMetaData(),
dataSourcePoolPropsFromRegCenter);
+ SwitchingResource switchingResource =
metaDataContextManager.getResourceSwitchManager().alterStorageUnit(database.getResourceMetaData(),
dataSourcePoolPropsFromRegCenter);
Collection<RuleConfiguration> ruleConfigs =
metaDataPersistService.getDatabaseRulePersistService().load(database.getName());
Map<String, ShardingSphereDatabase> changedDatabases =
configurationManager.createChangedDatabases(database.getName(), false,
switchingResource, ruleConfigs);
ConfigurationProperties props = new
ConfigurationProperties(metaDataPersistService.getPropsService().load());
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextManager.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextManager.java
index 4760a2f8361..0945f7ebe6e 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextManager.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextManager.java
@@ -21,6 +21,7 @@ import lombok.Getter;
import org.apache.shardingsphere.infra.instance.ComputeNodeInstanceContext;
import org.apache.shardingsphere.mode.metadata.manager.ConfigurationManager;
import org.apache.shardingsphere.mode.metadata.manager.ResourceMetaDataManager;
+import org.apache.shardingsphere.mode.metadata.manager.ResourceSwitchManager;
import org.apache.shardingsphere.mode.metadata.manager.RuleItemManager;
import
org.apache.shardingsphere.mode.metadata.manager.ShardingSphereDatabaseManager;
import org.apache.shardingsphere.mode.service.PersistServiceFacade;
@@ -41,10 +42,13 @@ public class MetaDataContextManager {
private final RuleItemManager ruleItemManager;
+ private final ResourceSwitchManager resourceSwitchManager;
+
public MetaDataContextManager(final AtomicReference<MetaDataContexts>
metaDataContexts, final ComputeNodeInstanceContext computeNodeInstanceContext,
final PersistServiceFacade
persistServiceFacade) {
+ resourceSwitchManager = new ResourceSwitchManager();
databaseManager = new ShardingSphereDatabaseManager(metaDataContexts);
- configurationManager = new ConfigurationManager(metaDataContexts,
computeNodeInstanceContext, persistServiceFacade);
+ configurationManager = new ConfigurationManager(metaDataContexts,
computeNodeInstanceContext, persistServiceFacade, resourceSwitchManager);
resourceMetaDataManager = new
ResourceMetaDataManager(metaDataContexts, persistServiceFacade);
ruleItemManager = new RuleItemManager(metaDataContexts,
persistServiceFacade, configurationManager);
}
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/ConfigurationManager.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/ConfigurationManager.java
index db6ae218f66..6e0c4139b9f 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/ConfigurationManager.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/ConfigurationManager.java
@@ -44,8 +44,6 @@ import
org.apache.shardingsphere.infra.yaml.config.swapper.rule.YamlRuleConfigur
import org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory;
import org.apache.shardingsphere.metadata.factory.InternalMetaDataFactory;
import org.apache.shardingsphere.metadata.persist.MetaDataPersistService;
-import org.apache.shardingsphere.mode.manager.switcher.ResourceSwitchManager;
-import org.apache.shardingsphere.mode.manager.switcher.SwitchingResource;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory;
import org.apache.shardingsphere.mode.service.PersistServiceFacade;
@@ -79,6 +77,8 @@ public final class ConfigurationManager {
private final PersistServiceFacade persistServiceFacade;
+ private final ResourceSwitchManager resourceSwitchManager;
+
/**
* Register storage unit.
*
@@ -88,8 +88,7 @@ public final class ConfigurationManager {
public synchronized void registerStorageUnit(final String databaseName,
final Map<String, DataSourcePoolProperties> propsMap) {
try {
closeStaleRules(databaseName);
- SwitchingResource switchingResource =
- new
ResourceSwitchManager().registerStorageUnit(metaDataContexts.get().getMetaData().getDatabase(databaseName).getResourceMetaData(),
propsMap);
+ SwitchingResource switchingResource =
resourceSwitchManager.registerStorageUnit(metaDataContexts.get().getMetaData().getDatabase(databaseName).getResourceMetaData(),
propsMap);
buildNewMetaDataContext(databaseName, switchingResource, false);
} catch (final SQLException ex) {
log.error("Alter database: {} register storage unit failed",
databaseName, ex);
@@ -105,8 +104,7 @@ public final class ConfigurationManager {
public synchronized void alterStorageUnit(final String databaseName, final
Map<String, DataSourcePoolProperties> propsMap) {
try {
closeStaleRules(databaseName);
- SwitchingResource switchingResource =
- new
ResourceSwitchManager().alterStorageUnit(metaDataContexts.get().getMetaData().getDatabase(databaseName).getResourceMetaData(),
propsMap);
+ SwitchingResource switchingResource =
resourceSwitchManager.alterStorageUnit(metaDataContexts.get().getMetaData().getDatabase(databaseName).getResourceMetaData(),
propsMap);
buildNewMetaDataContext(databaseName, switchingResource, false);
} catch (final SQLException ex) {
log.error("Alter database: {} register storage unit failed",
databaseName, ex);
@@ -122,7 +120,7 @@ public final class ConfigurationManager {
public synchronized void unregisterStorageUnit(final String databaseName,
final String storageUnitName) {
try {
closeStaleRules(databaseName);
- SwitchingResource switchingResource = new
ResourceSwitchManager().unregisterStorageUnit(metaDataContexts.get().getMetaData().getDatabase(databaseName).getResourceMetaData(),
+ SwitchingResource switchingResource =
resourceSwitchManager.unregisterStorageUnit(metaDataContexts.get().getMetaData().getDatabase(databaseName).getResourceMetaData(),
Collections.singletonList(storageUnitName));
buildNewMetaDataContext(databaseName, switchingResource, true);
} catch (final SQLException ex) {
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/switcher/ResourceSwitchManager.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/ResourceSwitchManager.java
similarity index 99%
rename from
mode/core/src/main/java/org/apache/shardingsphere/mode/manager/switcher/ResourceSwitchManager.java
rename to
mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/ResourceSwitchManager.java
index 2431cd90d56..f805f64dc66 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/switcher/ResourceSwitchManager.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/ResourceSwitchManager.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.mode.manager.switcher;
+package org.apache.shardingsphere.mode.metadata.manager;
import
org.apache.shardingsphere.infra.datasource.pool.creator.DataSourcePoolCreator;
import
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePoolProperties;
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/metadata/manager/SwitchingResource.java
similarity index 97%
rename from
mode/core/src/main/java/org/apache/shardingsphere/mode/manager/switcher/SwitchingResource.java
rename to
mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/SwitchingResource.java
index 2838e8ed4e8..0feab92c1a0 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/metadata/manager/SwitchingResource.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.mode.manager.switcher;
+package org.apache.shardingsphere.mode.metadata.manager;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
diff --git
a/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/switcher/SwitchingResourceTest.java
b/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/switcher/SwitchingResourceTest.java
index 33fa4e59da1..bd1deafb092 100644
---
a/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/switcher/SwitchingResourceTest.java
+++
b/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/switcher/SwitchingResourceTest.java
@@ -18,6 +18,7 @@
package org.apache.shardingsphere.mode.manager.switcher;
import
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNode;
+import org.apache.shardingsphere.mode.metadata.manager.SwitchingResource;
import org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource;
import org.awaitility.Awaitility;
import org.junit.jupiter.api.Test;
diff --git
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/service/StandaloneMetaDataManagerPersistService.java
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/service/StandaloneMetaDataManagerPersistService.java
index 629272a1a76..80e1ece543d 100644
---
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/service/StandaloneMetaDataManagerPersistService.java
+++
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/service/StandaloneMetaDataManagerPersistService.java
@@ -40,12 +40,11 @@ import
org.apache.shardingsphere.metadata.persist.service.database.DatabaseMetaD
import org.apache.shardingsphere.mode.event.DataChangedEvent;
import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
import org.apache.shardingsphere.mode.manager.ContextManager;
-import org.apache.shardingsphere.mode.manager.switcher.ResourceSwitchManager;
-import org.apache.shardingsphere.mode.manager.switcher.SwitchingResource;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import
org.apache.shardingsphere.mode.metadata.builder.RuleConfigurationEventBuilder;
-import
org.apache.shardingsphere.mode.metadata.refresher.util.TableRefreshUtils;
import org.apache.shardingsphere.mode.metadata.manager.ConfigurationManager;
+import org.apache.shardingsphere.mode.metadata.manager.SwitchingResource;
+import
org.apache.shardingsphere.mode.metadata.refresher.util.TableRefreshUtils;
import
org.apache.shardingsphere.mode.service.persist.MetaDataManagerPersistService;
import org.apache.shardingsphere.single.config.SingleRuleConfiguration;
@@ -218,8 +217,8 @@ public final class StandaloneMetaDataManagerPersistService
implements MetaDataMa
@Override
public void registerStorageUnits(final String databaseName, final
Map<String, DataSourcePoolProperties> toBeRegisteredProps) throws SQLException {
- SwitchingResource switchingResource =
- new
ResourceSwitchManager().registerStorageUnit(contextManager.getMetaDataContexts().getMetaData().getDatabase(databaseName).getResourceMetaData(),
toBeRegisteredProps);
+ SwitchingResource switchingResource =
contextManager.getMetaDataContextManager().getResourceSwitchManager().registerStorageUnit(contextManager.getMetaDataContexts()
+
.getMetaData().getDatabase(databaseName).getResourceMetaData(),
toBeRegisteredProps);
contextManager.getMetaDataContexts().getMetaData().getDatabases().putAll(contextManager.getMetaDataContextManager().getConfigurationManager()
.createChangedDatabases(databaseName, false,
switchingResource, null));
contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getRules()
@@ -235,8 +234,8 @@ public final class StandaloneMetaDataManagerPersistService
implements MetaDataMa
@Override
public void alterStorageUnits(final String databaseName, final Map<String,
DataSourcePoolProperties> toBeUpdatedProps) throws SQLException {
- SwitchingResource switchingResource =
- new
ResourceSwitchManager().alterStorageUnit(contextManager.getMetaDataContexts().getMetaData().getDatabase(databaseName).getResourceMetaData(),
toBeUpdatedProps);
+ SwitchingResource switchingResource =
contextManager.getMetaDataContextManager().getResourceSwitchManager().alterStorageUnit(contextManager.getMetaDataContexts().getMetaData()
+ .getDatabase(databaseName).getResourceMetaData(),
toBeUpdatedProps);
contextManager.getMetaDataContexts().getMetaData().getDatabases().putAll(contextManager.getMetaDataContextManager().getConfigurationManager()
.createChangedDatabases(databaseName, true, switchingResource,
null));
contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getRules()
@@ -250,8 +249,8 @@ public final class StandaloneMetaDataManagerPersistService
implements MetaDataMa
@Override
public void unregisterStorageUnits(final String databaseName, final
Collection<String> toBeDroppedStorageUnitNames) throws SQLException {
- SwitchingResource switchingResource =
- new
ResourceSwitchManager().unregisterStorageUnit(contextManager.getMetaDataContexts().getMetaData().getDatabase(databaseName).getResourceMetaData(),
toBeDroppedStorageUnitNames);
+ SwitchingResource switchingResource =
contextManager.getMetaDataContextManager().getResourceSwitchManager().unregisterStorageUnit(contextManager.getMetaDataContexts().getMetaData()
+ .getDatabase(databaseName).getResourceMetaData(),
toBeDroppedStorageUnitNames);
ConfigurationManager configurationManager =
contextManager.getMetaDataContextManager().getConfigurationManager();
MetaDataContexts reloadMetaDataContexts =
configurationManager.createMetaDataContexts(databaseName, false,
switchingResource, null);
configurationManager.alterSchemaMetaData(databaseName,
reloadMetaDataContexts.getMetaData().getDatabase(databaseName),