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 1daa1fa36e9 Move MetaDataPersistService from MetaDataContexts to
PersistServiceFacade (#31376)
1daa1fa36e9 is described below
commit 1daa1fa36e99be575d1ff1a496edad605d274710
Author: Haoran Meng <[email protected]>
AuthorDate: Fri May 24 17:47:39 2024 +0800
Move MetaDataPersistService from MetaDataContexts to PersistServiceFacade
(#31376)
* Move MetaDataPersistService from MetaDataContexts to PersistServiceFacade
* Move MetaDataPersistService from MetaDataContexts to PersistServiceFacade
* Move MetaDataPersistService from MetaDataContexts to PersistServiceFacade
---
.../impl/proxy/ProxyStateExporterTest.java | 3 +-
.../PrometheusPluginLifecycleServiceTest.java | 3 +-
...eadwriteSplittingStorageUnitStatusExecutor.java | 2 +-
.../DatabaseRuleDefinitionExecuteEngine.java | 2 +-
.../DriverDatabaseConnectionManager.java | 2 +-
.../DriverDatabaseConnectionManagerTest.java | 2 +-
.../pipeline/core/job/api/PipelineAPIFactory.java | 2 +-
.../core/util/PipelineDistributedBarrier.java | 2 +-
.../schema/TableMetaDataPersistService.java | 8 ++--
.../mode/manager/ContextManager.java | 31 ++++++++-------
.../context/ConfigurationContextManager.java | 27 +++++++------
.../context/ResourceMetaDataContextManager.java | 5 ++-
.../ShardingSphereDatabaseContextManager.java | 3 ++
.../mode/metadata/MetaDataContexts.java | 7 +---
.../mode/metadata/MetaDataContextsFactory.java | 26 ++++++-------
.../mode/service/PersistServiceFacade.java | 4 ++
.../mode/subsciber/RuleItemChangedSubscriber.java | 6 ++-
.../mode/manager/ContextManagerTest.java | 16 ++------
.../mode/metadata/MetaDataContextsFactoryTest.java | 1 -
.../cluster/ClusterContextManagerBuilder.java | 2 +-
.../subscriber/ConfigurationChangedSubscriber.java | 20 ++++++----
.../ResourceMetaDataChangedSubscriber.java | 10 +++--
.../ClusterMetaDataManagerPersistService.java | 39 ++++++++++---------
.../ProcessListChangedSubscriberTest.java | 2 +-
.../ResourceMetaDataChangedSubscriberTest.java | 2 +-
.../subscriber/StateChangedSubscriberTest.java | 2 +-
.../StandaloneContextManagerBuilder.java | 2 +-
.../StandaloneMetaDataManagerPersistService.java | 45 ++++++++++++----------
.../ral/updatable/SetDistVariableExecutor.java | 16 ++++----
.../YamlDatabaseConfigurationImportExecutor.java | 3 +-
.../ProxyDatabaseConnectionManagerTest.java | 3 +-
.../backend/connector/ProxySQLExecutorTest.java | 3 +-
.../proxy/backend/context/ProxyContextTest.java | 3 +-
.../DatabaseAdminQueryBackendHandlerTest.java | 5 ++-
.../ral/QueryableRALBackendHandlerTest.java | 3 +-
.../ral/updatable/SetDistVariableExecutorTest.java | 8 ++--
.../FrontDatabaseProtocolTypeFactoryTest.java | 3 +-
.../frontend/state/impl/OKProxyStateTest.java | 3 +-
.../PostgreSQLCommandExecuteEngineTest.java | 4 +-
.../repository/PipelineGovernanceFacadeTest.java | 2 +-
.../pipeline/core/util/PipelineContextUtils.java | 6 +--
.../core/util/PipelineDistributedBarrierTest.java | 4 +-
.../MigrationDataConsistencyCheckerTest.java | 2 +-
43 files changed, 190 insertions(+), 154 deletions(-)
diff --git
a/agent/plugins/metrics/core/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/core/exporter/impl/proxy/ProxyStateExporterTest.java
b/agent/plugins/metrics/core/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/core/exporter/impl/proxy/ProxyStateExporterTest.java
index 30fb1fd01df..f2fc0fcdaf0 100644
---
a/agent/plugins/metrics/core/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/core/exporter/impl/proxy/ProxyStateExporterTest.java
+++
b/agent/plugins/metrics/core/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/core/exporter/impl/proxy/ProxyStateExporterTest.java
@@ -35,6 +35,7 @@ import org.apache.shardingsphere.mode.manager.ContextManager;
import
org.apache.shardingsphere.mode.manager.standalone.workerid.generator.StandaloneWorkerIdGenerator;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory;
+import org.apache.shardingsphere.mode.spi.PersistRepository;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import org.apache.shardingsphere.test.mock.AutoMockExtension;
import org.apache.shardingsphere.test.mock.StaticMockSettings;
@@ -84,6 +85,6 @@ class ProxyStateExporterTest {
ComputeNodeInstanceContext computeNodeInstanceContext = new
ComputeNodeInstanceContext(
new ComputeNodeInstance(mock(InstanceMetaData.class)), new
StandaloneWorkerIdGenerator(), new ModeConfiguration("Standalone", null),
mock(LockContext.class), new EventBusContext());
- return new ContextManager(metaDataContexts,
computeNodeInstanceContext);
+ return new ContextManager(metaDataContexts,
computeNodeInstanceContext, mock(PersistRepository.class));
}
}
diff --git
a/agent/plugins/metrics/type/prometheus/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/prometheus/PrometheusPluginLifecycleServiceTest.java
b/agent/plugins/metrics/type/prometheus/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/prometheus/PrometheusPluginLifecycleServiceTest.java
index 3dd40301194..be934e12108 100644
---
a/agent/plugins/metrics/type/prometheus/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/prometheus/PrometheusPluginLifecycleServiceTest.java
+++
b/agent/plugins/metrics/type/prometheus/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/prometheus/PrometheusPluginLifecycleServiceTest.java
@@ -30,6 +30,7 @@ import org.apache.shardingsphere.mode.manager.ContextManager;
import
org.apache.shardingsphere.mode.manager.standalone.workerid.generator.StandaloneWorkerIdGenerator;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory;
+import org.apache.shardingsphere.mode.spi.PersistRepository;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import org.apache.shardingsphere.test.mock.AutoMockExtension;
import org.apache.shardingsphere.test.mock.StaticMockSettings;
@@ -73,6 +74,6 @@ class PrometheusPluginLifecycleServiceTest {
ComputeNodeInstanceContext computeNodeInstanceContext = new
ComputeNodeInstanceContext(
new ComputeNodeInstance(mock(InstanceMetaData.class)), new
StandaloneWorkerIdGenerator(), new ModeConfiguration("Standalone", null),
mock(LockContext.class), new EventBusContext());
- return new ContextManager(metaDataContexts,
computeNodeInstanceContext);
+ return new ContextManager(metaDataContexts,
computeNodeInstanceContext, mock(PersistRepository.class));
}
}
diff --git
a/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/update/AlterReadwriteSplittingStorageUnitStatusExecutor.java
b/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/update/AlterReadwriteSplittingStorageUnitStatusExecutor.java
index 9ba188fd2c3..f8dcce5ec9c 100644
---
a/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/update/AlterReadwriteSplittingStorageUnitStatusExecutor.java
+++
b/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/update/AlterReadwriteSplittingStorageUnitStatusExecutor.java
@@ -77,7 +77,7 @@ public final class
AlterReadwriteSplittingStorageUnitStatusExecutor
private void updateStatus(final ContextManager contextManager, final
AlterReadwriteSplittingStorageUnitStatusStatement sqlStatement) {
DataSourceState status = sqlStatement.isEnable() ?
DataSourceState.ENABLED : DataSourceState.DISABLED;
- new
QualifiedDataSourceStatusService(contextManager.getMetaDataContexts().getPersistService().getRepository())
+ new QualifiedDataSourceStatusService(contextManager.getRepository())
.changeStatus(database.getName(), sqlStatement.getRuleName(),
sqlStatement.getStorageUnitName(), status);
}
diff --git
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/DatabaseRuleDefinitionExecuteEngine.java
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/DatabaseRuleDefinitionExecuteEngine.java
index 22525d5feca..20d07acebce 100644
---
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/DatabaseRuleDefinitionExecuteEngine.java
+++
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/DatabaseRuleDefinitionExecuteEngine.java
@@ -55,7 +55,7 @@ public final class DatabaseRuleDefinitionExecuteEngine {
checkBeforeUpdate();
RuleConfiguration currentRuleConfig =
rule.map(ShardingSphereRule::getConfiguration).orElse(null);
if (getRefreshStatus(rule.isPresent())) {
-
contextManager.getMetaDataContexts().getPersistService().getMetaDataVersionPersistService()
+
contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
.switchActiveVersion(DatabaseRuleOperatorFactory.newInstance(contextManager,
executor).operate(sqlStatement, database, currentRuleConfig));
}
}
diff --git
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/connection/DriverDatabaseConnectionManager.java
b/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/connection/DriverDatabaseConnectionManager.java
index 85e675c4cb3..f4472436f14 100644
---
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/connection/DriverDatabaseConnectionManager.java
+++
b/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/connection/DriverDatabaseConnectionManager.java
@@ -109,7 +109,7 @@ public final class DriverDatabaseConnectionManager
implements OnlineDatabaseConn
if (rule.getStrategyRules().isEmpty()) {
return Collections.emptyMap();
}
- MetaDataPersistService persistService =
contextManager.getMetaDataContexts().getPersistService();
+ MetaDataPersistService persistService =
contextManager.getPersistServiceFacade().getMetaDataPersistService();
String actualDatabaseName =
contextManager.getMetaDataContexts().getMetaData().getDatabase(databaseName).getName();
Map<String, DataSourcePoolProperties> propsMap =
persistService.getDataSourceUnitService().load(actualDatabaseName);
Preconditions.checkState(!propsMap.isEmpty(), "Can not get data source
properties from meta data.");
diff --git
a/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/core/connection/DriverDatabaseConnectionManagerTest.java
b/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/core/connection/DriverDatabaseConnectionManagerTest.java
index a611dc0e633..9391da3a394 100644
---
a/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/core/connection/DriverDatabaseConnectionManagerTest.java
+++
b/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/core/connection/DriverDatabaseConnectionManagerTest.java
@@ -78,7 +78,7 @@ class DriverDatabaseConnectionManagerTest {
Map<String, StorageUnit> storageUnits = mockStorageUnits();
when(result.getStorageUnits(DefaultDatabase.LOGIC_NAME)).thenReturn(storageUnits);
MetaDataPersistService persistService = mockMetaDataPersistService();
-
when(result.getMetaDataContexts().getPersistService()).thenReturn(persistService);
+
when(result.getPersistServiceFacade().getMetaDataPersistService()).thenReturn(persistService);
when(result.getMetaDataContexts().getMetaData().getGlobalRuleMetaData()).thenReturn(
new RuleMetaData(Arrays.asList(mock(AuthorityRule.class,
RETURNS_DEEP_STUBS), mock(TransactionRule.class, RETURNS_DEEP_STUBS),
mock(TrafficRule.class, RETURNS_DEEP_STUBS))));
diff --git
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/job/api/PipelineAPIFactory.java
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/job/api/PipelineAPIFactory.java
index 2d169478de2..b8ad17805f0 100644
---
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/job/api/PipelineAPIFactory.java
+++
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/job/api/PipelineAPIFactory.java
@@ -63,7 +63,7 @@ public final class PipelineAPIFactory {
@Override
protected PipelineGovernanceFacade initialize() {
ContextManager contextManager =
PipelineContextManager.getContext(contextKey).getContextManager();
- return new PipelineGovernanceFacade((ClusterPersistRepository)
contextManager.getMetaDataContexts().getPersistService().getRepository());
+ return new PipelineGovernanceFacade((ClusterPersistRepository)
contextManager.getPersistServiceFacade().getMetaDataPersistService().getRepository());
}
}).get();
}
diff --git
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineDistributedBarrier.java
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineDistributedBarrier.java
index 70035e61e10..88ddf2a1757 100644
---
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineDistributedBarrier.java
+++
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineDistributedBarrier.java
@@ -163,7 +163,7 @@ public final class PipelineDistributedBarrier {
@Override
protected ClusterPersistRepository initialize() {
- return (ClusterPersistRepository)
PipelineContextManager.getContext(contextKey).getContextManager().getMetaDataContexts().getPersistService().getRepository();
+ return (ClusterPersistRepository)
PipelineContextManager.getContext(contextKey).getContextManager().getPersistServiceFacade().getMetaDataPersistService().getRepository();
}
}
}
diff --git
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/schema/TableMetaDataPersistService.java
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/schema/TableMetaDataPersistService.java
index bdbf2a73514..6feca1c9742 100644
---
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/schema/TableMetaDataPersistService.java
+++
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/schema/TableMetaDataPersistService.java
@@ -32,8 +32,8 @@ import java.util.Collection;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.LinkedList;
-import java.util.Map;
import java.util.List;
+import java.util.Map;
import java.util.Map.Entry;
/**
@@ -55,8 +55,10 @@ public final class TableMetaDataPersistService implements
SchemaMetaDataPersistS
String tableName = entry.getKey().toLowerCase();
List<String> versions =
repository.getChildrenKeys(TableMetaDataNode.getTableVersionsNode(databaseName,
schemaName, tableName));
String nextActiveVersion = versions.isEmpty() ? DEFAULT_VERSION :
String.valueOf(Integer.parseInt(versions.get(0)) + 1);
-
repository.persist(TableMetaDataNode.getTableVersionNode(databaseName,
schemaName, tableName, nextActiveVersion),
- YamlEngine.marshal(new
YamlTableSwapper().swapToYamlConfiguration(entry.getValue())));
+ if (entry.getValue() != null) {
+
repository.persist(TableMetaDataNode.getTableVersionNode(databaseName,
schemaName, tableName, nextActiveVersion),
+ YamlEngine.marshal(new
YamlTableSwapper().swapToYamlConfiguration(entry.getValue())));
+ }
if (Strings.isNullOrEmpty(getActiveVersion(databaseName,
schemaName, tableName))) {
repository.persist(TableMetaDataNode.getTableActiveVersionNode(databaseName,
schemaName, tableName), DEFAULT_VERSION);
}
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 8293ccd04d9..159240a7950 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
@@ -46,6 +46,7 @@ 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;
+import org.apache.shardingsphere.mode.spi.PersistRepository;
import org.apache.shardingsphere.mode.state.StateContext;
import java.sql.SQLException;
@@ -77,15 +78,18 @@ public final class ContextManager implements AutoCloseable {
private final PersistServiceFacade persistServiceFacade;
- public ContextManager(final MetaDataContexts metaDataContexts, final
ComputeNodeInstanceContext computeNodeInstanceContext) {
+ private final PersistRepository repository;
+
+ public ContextManager(final MetaDataContexts metaDataContexts, final
ComputeNodeInstanceContext computeNodeInstanceContext, final PersistRepository
repository) {
this.metaDataContexts = new AtomicReference<>(metaDataContexts);
this.computeNodeInstanceContext = computeNodeInstanceContext;
- shardingSphereDatabaseContextManager = new
ShardingSphereDatabaseContextManager(this.metaDataContexts);
- configurationContextManager = new
ConfigurationContextManager(this.metaDataContexts, computeNodeInstanceContext);
- resourceMetaDataContextManager = new
ResourceMetaDataContextManager(this.metaDataContexts);
+ this.repository = repository;
+ persistServiceFacade = new PersistServiceFacade(repository,
computeNodeInstanceContext.getModeConfiguration(), this);
+ shardingSphereDatabaseContextManager = new
ShardingSphereDatabaseContextManager(this.metaDataContexts,
persistServiceFacade);
+ configurationContextManager = new
ConfigurationContextManager(this.metaDataContexts, computeNodeInstanceContext,
persistServiceFacade);
+ resourceMetaDataContextManager = new
ResourceMetaDataContextManager(this.metaDataContexts, persistServiceFacade);
executorEngine =
ExecutorEngine.createExecutorEngineWithSize(metaDataContexts.getMetaData().getProps().<Integer>getValue(ConfigurationPropertyKey.KERNEL_EXECUTOR_SIZE));
stateContext = new StateContext();
- persistServiceFacade = new
PersistServiceFacade(metaDataContexts.getPersistService().getRepository(),
computeNodeInstanceContext.getModeConfiguration(), this);
}
/**
@@ -138,7 +142,7 @@ public final class ContextManager implements AutoCloseable {
public void refreshDatabaseMetaData(final ShardingSphereDatabase database,
final boolean force) {
try {
MetaDataContexts reloadedMetaDataContexts =
createMetaDataContexts(database);
- MetaDataPersistService persistService =
metaDataContexts.get().getPersistService();
+ MetaDataPersistService persistService =
persistServiceFacade.getMetaDataPersistService();
if (force) {
metaDataContexts.set(reloadedMetaDataContexts);
metaDataContexts.get().getMetaData().getDatabase(database.getName()).getSchemas()
@@ -165,14 +169,14 @@ public final class ContextManager implements
AutoCloseable {
deletedSchemaNames(database.getName(),
reloadedMetaDataContexts.getMetaData().getDatabase(database.getName()),
database);
metaDataContexts.set(reloadedMetaDataContexts);
metaDataContexts.get().getMetaData().getDatabase(database.getName()).getSchemas()
- .forEach((schemaName, schema) ->
metaDataContexts.get().getPersistService().getDatabaseMetaDataService().compareAndPersist(database.getName(),
schemaName, schema));
+ .forEach((schemaName, schema) ->
persistServiceFacade.getMetaDataPersistService().getDatabaseMetaDataService().compareAndPersist(database.getName(),
schemaName, schema));
} catch (final SQLException ex) {
log.error("Refresh table meta data: {} failed",
database.getName(), ex);
}
}
private MetaDataContexts createMetaDataContexts(final
ShardingSphereDatabase database) throws SQLException {
- MetaDataPersistService metaDataPersistService =
metaDataContexts.get().getPersistService();
+ MetaDataPersistService metaDataPersistService =
persistServiceFacade.getMetaDataPersistService();
Map<String, DataSourcePoolProperties> dataSourcePoolPropsFromRegCenter
= metaDataPersistService.getDataSourceUnitService().load(database.getName());
SwitchingResource switchingResource = new
ResourceSwitchManager().alterStorageUnit(database.getResourceMetaData(),
dataSourcePoolPropsFromRegCenter);
metaDataContexts.get().getMetaData().getDatabases().putAll(configurationContextManager.renewDatabase(database,
switchingResource));
@@ -196,7 +200,7 @@ public final class ContextManager implements AutoCloseable {
*/
public void deletedSchemaNames(final String databaseName, final
ShardingSphereDatabase reloadDatabase, final ShardingSphereDatabase
currentDatabase) {
GenericSchemaManager.getToBeDeletedSchemaNames(reloadDatabase.getSchemas(),
currentDatabase.getSchemas()).keySet()
- .forEach(each ->
metaDataContexts.get().getPersistService().getDatabaseMetaDataService().dropSchema(databaseName,
each));
+ .forEach(each ->
persistServiceFacade.getMetaDataPersistService().getDatabaseMetaDataService().dropSchema(databaseName,
each));
}
/**
@@ -211,11 +215,11 @@ public final class ContextManager implements
AutoCloseable {
ShardingSphereSchema reloadedSchema = loadSchema(database,
schemaName, dataSourceName);
if (reloadedSchema.getTables().isEmpty()) {
database.dropSchema(schemaName);
-
metaDataContexts.get().getPersistService().getDatabaseMetaDataService().dropSchema(database.getName(),
+
persistServiceFacade.getMetaDataPersistService().getDatabaseMetaDataService().dropSchema(database.getName(),
schemaName);
} else {
database.addSchema(schemaName, reloadedSchema);
-
metaDataContexts.get().getPersistService().getDatabaseMetaDataService()
+
persistServiceFacade.getMetaDataPersistService().getDatabaseMetaDataService()
.compareAndPersist(database.getName(), schemaName,
reloadedSchema);
}
} catch (final SQLException ex) {
@@ -230,7 +234,7 @@ public final class ContextManager implements AutoCloseable {
Collections.singletonMap(dataSourceName,
database.getResourceMetaData().getStorageUnits().get(dataSourceName).getDataSource()),
database.getRuleMetaData().getRules(),
metaDataContexts.get().getMetaData().getProps(), schemaName);
ShardingSphereSchema result =
GenericSchemaBuilder.build(material).get(schemaName);
-
result.getViews().putAll(metaDataContexts.get().getPersistService().getDatabaseMetaDataService().getViewMetaDataPersistService().load(database.getName(),
schemaName));
+
result.getViews().putAll(persistServiceFacade.getMetaDataPersistService().getDatabaseMetaDataService().getViewMetaDataPersistService().load(database.getName(),
schemaName));
return result;
}
@@ -273,7 +277,7 @@ public final class ContextManager implements AutoCloseable {
private void persistTable(final ShardingSphereDatabase database, final
String schemaName, final String tableName, final GenericSchemaBuilderMaterial
material) throws SQLException {
ShardingSphereSchema schema =
GenericSchemaBuilder.build(Collections.singleton(tableName),
material).getOrDefault(schemaName, new ShardingSphereSchema());
-
metaDataContexts.get().getPersistService().getDatabaseMetaDataService().getTableMetaDataPersistService()
+
persistServiceFacade.getMetaDataPersistService().getDatabaseMetaDataService().getTableMetaDataPersistService()
.persist(database.getName(), schemaName,
Collections.singletonMap(tableName, schema.getTable(tableName)));
}
@@ -281,5 +285,6 @@ public final class ContextManager implements AutoCloseable {
public void close() {
executorEngine.close();
metaDataContexts.get().close();
+ repository.close();
}
}
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 859803b68a2..4684a182c35 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
@@ -40,15 +40,16 @@ import
org.apache.shardingsphere.infra.rule.ShardingSphereRule;
import
org.apache.shardingsphere.infra.rule.builder.database.DatabaseRulesBuilder;
import org.apache.shardingsphere.infra.rule.builder.global.GlobalRulesBuilder;
import
org.apache.shardingsphere.infra.yaml.config.pojo.rule.YamlRuleConfiguration;
-import org.apache.shardingsphere.metadata.persist.MetaDataPersistService;
-import org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory;
-import org.apache.shardingsphere.mode.tuple.annotation.RepositoryTupleEntity;
import
org.apache.shardingsphere.infra.yaml.config.swapper.rule.YamlRuleConfigurationSwapperEngine;
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;
+import org.apache.shardingsphere.mode.tuple.annotation.RepositoryTupleEntity;
import org.apache.shardingsphere.transaction.rule.TransactionRule;
import javax.sql.DataSource;
@@ -76,6 +77,8 @@ public final class ConfigurationContextManager {
private final ComputeNodeInstanceContext computeNodeInstanceContext;
+ private final PersistServiceFacade persistServiceFacade;
+
/**
* Register storage unit.
*
@@ -132,7 +135,7 @@ public final class ConfigurationContextManager {
MetaDataContexts reloadMetaDataContexts =
createMetaDataContexts(databaseName, false, switchingResource, null);
persistSchemaMetaData(databaseName, reloadMetaDataContexts,
isDropConfig);
Optional.ofNullable(reloadMetaDataContexts.getStatistics().getDatabaseData().get(databaseName))
- .ifPresent(optional ->
optional.getSchemaData().forEach((schemaName, schemaData) ->
reloadMetaDataContexts.getPersistService().getShardingSphereDataPersistService()
+ .ifPresent(optional ->
optional.getSchemaData().forEach((schemaName, schemaData) ->
persistServiceFacade.getMetaDataPersistService().getShardingSphereDataPersistService()
.persist(databaseName, schemaName, schemaData,
metaDataContexts.get().getMetaData().getDatabases())));
alterSchemaMetaData(databaseName,
reloadMetaDataContexts.getMetaData().getDatabase(databaseName),
metaDataContexts.get().getMetaData().getDatabase(databaseName), isDropConfig);
metaDataContexts.set(reloadMetaDataContexts);
@@ -142,10 +145,10 @@ public final class ConfigurationContextManager {
private void persistSchemaMetaData(final String databaseName, final
MetaDataContexts reloadMetaDataContexts, final boolean isDropConfig) {
if (isDropConfig) {
-
reloadMetaDataContexts.getMetaData().getDatabase(databaseName).getSchemas().forEach((schemaName,
schema) ->
reloadMetaDataContexts.getPersistService().getDatabaseMetaDataService()
+
reloadMetaDataContexts.getMetaData().getDatabase(databaseName).getSchemas().forEach((schemaName,
schema) ->
persistServiceFacade.getMetaDataPersistService().getDatabaseMetaDataService()
.persistByDropConfiguration(reloadMetaDataContexts.getMetaData().getDatabase(databaseName).getName(),
schemaName, schema));
} else {
-
reloadMetaDataContexts.getMetaData().getDatabase(databaseName).getSchemas().forEach((schemaName,
schema) ->
reloadMetaDataContexts.getPersistService().getDatabaseMetaDataService()
+
reloadMetaDataContexts.getMetaData().getDatabase(databaseName).getSchemas().forEach((schemaName,
schema) ->
persistServiceFacade.getMetaDataPersistService().getDatabaseMetaDataService()
.persistByAlterConfiguration(reloadMetaDataContexts.getMetaData().getDatabase(databaseName).getName(),
schemaName, schema));
}
}
@@ -233,11 +236,11 @@ public final class ConfigurationContextManager {
Map<String, ShardingSphereSchema> toBeAlterSchemas =
GenericSchemaManager.getToBeDeletedTablesBySchemas(reloadDatabase.getSchemas(),
currentDatabase.getSchemas());
Map<String, ShardingSphereSchema> toBeAddedSchemas =
GenericSchemaManager.getToBeAddedTablesBySchemas(reloadDatabase.getSchemas(),
currentDatabase.getSchemas());
if (isDropConfig) {
- toBeAddedSchemas.forEach((key, value) ->
metaDataContexts.get().getPersistService().getDatabaseMetaDataService().persistByDropConfiguration(databaseName,
key, value));
+ toBeAddedSchemas.forEach((key, value) ->
persistServiceFacade.getMetaDataPersistService().getDatabaseMetaDataService().persistByDropConfiguration(databaseName,
key, value));
} else {
- toBeAddedSchemas.forEach((key, value) ->
metaDataContexts.get().getPersistService().getDatabaseMetaDataService().persistByAlterConfiguration(databaseName,
key, value));
+ toBeAddedSchemas.forEach((key, value) ->
persistServiceFacade.getMetaDataPersistService().getDatabaseMetaDataService().persistByAlterConfiguration(databaseName,
key, value));
}
- toBeAlterSchemas.forEach((key, value) ->
metaDataContexts.get().getPersistService().getDatabaseMetaDataService().delete(databaseName,
key, value));
+ toBeAlterSchemas.forEach((key, value) ->
persistServiceFacade.getMetaDataPersistService().getDatabaseMetaDataService().delete(databaseName,
key, value));
}
/**
@@ -320,7 +323,7 @@ public final class ConfigurationContextManager {
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(),
computeNodeInstanceContext);
+ persistServiceFacade.getMetaDataPersistService(),
toBeCreatedDatabaseConfig, metaDataContexts.get().getMetaData().getProps(),
computeNodeInstanceContext);
Map<String, ShardingSphereDatabase> result = new
LinkedHashMap<>(metaDataContexts.get().getMetaData().getDatabases());
result.put(databaseName.toLowerCase(), changedDatabase);
return result;
@@ -366,7 +369,7 @@ public final class ConfigurationContextManager {
public Map<String, ShardingSphereDatabase> newShardingSphereDatabase(final
ShardingSphereDatabase originalDatabase) {
return
Collections.singletonMap(originalDatabase.getName().toLowerCase(), new
ShardingSphereDatabase(originalDatabase.getName(),
originalDatabase.getProtocolType(),
originalDatabase.getResourceMetaData(), originalDatabase.getRuleMetaData(),
-
metaDataContexts.get().getPersistService().getDatabaseMetaDataService().loadSchemas(originalDatabase.getName())));
+
persistServiceFacade.getMetaDataPersistService().getDatabaseMetaDataService().loadSchemas(originalDatabase.getName())));
}
/**
@@ -414,6 +417,6 @@ public final class ConfigurationContextManager {
}
private MetaDataContexts newMetaDataContexts(final ShardingSphereMetaData
metaData) {
- return
MetaDataContextsFactory.create(metaDataContexts.get().getPersistService(),
metaData);
+ return
MetaDataContextsFactory.create(persistServiceFacade.getMetaDataPersistService(),
metaData);
}
}
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/context/ResourceMetaDataContextManager.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/context/ResourceMetaDataContextManager.java
index 1e4dbcddaf8..3463544e13d 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/context/ResourceMetaDataContextManager.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/context/ResourceMetaDataContextManager.java
@@ -32,6 +32,7 @@ import
org.apache.shardingsphere.infra.rule.scope.GlobalRule.GlobalRuleChangedTy
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory;
import
org.apache.shardingsphere.mode.metadata.refresher.util.TableRefreshUtils;
+import org.apache.shardingsphere.mode.service.PersistServiceFacade;
import java.util.Collections;
import java.util.Optional;
@@ -45,6 +46,8 @@ public final class ResourceMetaDataContextManager {
private final AtomicReference<MetaDataContexts> metaDataContexts;
+ private final PersistServiceFacade persistServiceFacade;
+
/**
* Add database.
*
@@ -56,7 +59,7 @@ public final class ResourceMetaDataContextManager {
}
DatabaseType protocolType =
DatabaseTypeEngine.getProtocolType(Collections.emptyMap(),
metaDataContexts.get().getMetaData().getProps());
metaDataContexts.get().getMetaData().addDatabase(databaseName,
protocolType, metaDataContexts.get().getMetaData().getProps());
-
metaDataContexts.set(MetaDataContextsFactory.create(metaDataContexts.get().getPersistService(),
metaDataContexts.get().getMetaData()));
+
metaDataContexts.set(MetaDataContextsFactory.create(persistServiceFacade.getMetaDataPersistService(),
metaDataContexts.get().getMetaData()));
}
/**
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/context/ShardingSphereDatabaseContextManager.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/context/ShardingSphereDatabaseContextManager.java
index 09b2d2df2aa..ccf49cbc12f 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/context/ShardingSphereDatabaseContextManager.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/context/ShardingSphereDatabaseContextManager.java
@@ -25,6 +25,7 @@ import
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereTableDa
import
org.apache.shardingsphere.infra.yaml.data.pojo.YamlShardingSphereRowData;
import
org.apache.shardingsphere.infra.yaml.data.swapper.YamlShardingSphereRowDataSwapper;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
+import org.apache.shardingsphere.mode.service.PersistServiceFacade;
import java.util.ArrayList;
import java.util.List;
@@ -38,6 +39,8 @@ public final class ShardingSphereDatabaseContextManager {
private final AtomicReference<MetaDataContexts> metaDataContexts;
+ private final PersistServiceFacade persistServiceFacade;
+
/**
* Add ShardingSphere database data.
*
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContexts.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContexts.java
index 910a7328d80..e261e2354f7 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContexts.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContexts.java
@@ -22,7 +22,6 @@ import lombok.SneakyThrows;
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereStatistics;
import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
-import org.apache.shardingsphere.metadata.persist.MetaDataPersistService;
import java.util.Collection;
import java.util.LinkedList;
@@ -33,14 +32,11 @@ import java.util.LinkedList;
@Getter
public final class MetaDataContexts implements AutoCloseable {
- private final MetaDataPersistService persistService;
-
private final ShardingSphereMetaData metaData;
private final ShardingSphereStatistics statistics;
- public MetaDataContexts(final MetaDataPersistService persistService, final
ShardingSphereMetaData metaData, final ShardingSphereStatistics statistics) {
- this.persistService = persistService;
+ public MetaDataContexts(final ShardingSphereMetaData metaData, final
ShardingSphereStatistics statistics) {
this.metaData = metaData;
this.statistics = statistics;
}
@@ -48,7 +44,6 @@ public final class MetaDataContexts implements AutoCloseable {
@SneakyThrows(Exception.class)
@Override
public void close() {
- persistService.getRepository().close();
for (ShardingSphereRule each : getAllRules()) {
if (each instanceof AutoCloseable) {
((AutoCloseable) each).close();
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactory.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactory.java
index b2535dcc3fa..a1217a72202 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactory.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactory.java
@@ -49,8 +49,8 @@ import
org.apache.shardingsphere.infra.state.datasource.DataSourceStateManager;
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.storage.QualifiedDataSourceStatus;
import org.apache.shardingsphere.mode.manager.ContextManagerBuilderParameter;
+import org.apache.shardingsphere.mode.storage.QualifiedDataSourceStatus;
import javax.sql.DataSource;
import java.sql.SQLException;
@@ -112,10 +112,10 @@ public final class MetaDataContextsFactory {
RuleMetaData globalRuleMetaData = new
RuleMetaData(GlobalRulesBuilder.buildRules(globalRuleConfigs, databases,
props));
ShardingSphereMetaData shardingSphereMetaData = new
ShardingSphereMetaData(databases, globalResourceMetaData, globalRuleMetaData,
props);
ShardingSphereStatistics shardingSphereStatistics =
initStatistics(persistService, shardingSphereMetaData);
- MetaDataContexts result = new MetaDataContexts(persistService,
shardingSphereMetaData, shardingSphereStatistics);
+ MetaDataContexts result = new MetaDataContexts(shardingSphereMetaData,
shardingSphereStatistics);
if (!isDatabaseMetaDataExisted) {
- persistDatabaseConfigurations(result, param);
- persistMetaData(result);
+ persistDatabaseConfigurations(result, param, persistService);
+ persistMetaData(result, persistService);
}
return result;
}
@@ -128,7 +128,7 @@ public final class MetaDataContextsFactory {
* @return meta data contexts
*/
public static MetaDataContexts create(final MetaDataPersistService
persistService, final ShardingSphereMetaData metaData) {
- return new MetaDataContexts(persistService, metaData,
initStatistics(persistService, metaData));
+ return new MetaDataContexts(metaData, initStatistics(persistService,
metaData));
}
private static Collection<String> getDatabaseNames(final
ComputeNodeInstanceContext computeNodeInstanceContext,
@@ -218,21 +218,21 @@ public final class MetaDataContextsFactory {
}
}
- private static void persistDatabaseConfigurations(final MetaDataContexts
metadataContexts, final ContextManagerBuilderParameter param) {
-
metadataContexts.getPersistService().persistGlobalRuleConfiguration(param.getGlobalRuleConfigs(),
param.getProps());
+ private static void persistDatabaseConfigurations(final MetaDataContexts
metadataContexts, final ContextManagerBuilderParameter param, final
MetaDataPersistService persistService) {
+
persistService.persistGlobalRuleConfiguration(param.getGlobalRuleConfigs(),
param.getProps());
for (Entry<String, ? extends DatabaseConfiguration> entry :
param.getDatabaseConfigs().entrySet()) {
String databaseName = entry.getKey();
-
metadataContexts.getPersistService().persistConfigurations(entry.getKey(),
entry.getValue(),
+ persistService.persistConfigurations(entry.getKey(),
entry.getValue(),
metadataContexts.getMetaData().getDatabase(databaseName).getResourceMetaData().getStorageUnits().entrySet().stream()
.collect(Collectors.toMap(Entry::getKey, each ->
each.getValue().getDataSource(), (oldValue, currentValue) -> oldValue,
LinkedHashMap::new)),
metadataContexts.getMetaData().getDatabase(databaseName).getRuleMetaData().getRules());
}
}
- private static void persistMetaData(final MetaDataContexts
metaDataContexts) {
- metaDataContexts.getMetaData().getDatabases().values().forEach(each ->
each.getSchemas()
- .forEach((schemaName, schema) ->
metaDataContexts.getPersistService().getDatabaseMetaDataService().persistByAlterConfiguration(each.getName(),
schemaName, schema)));
-
metaDataContexts.getStatistics().getDatabaseData().forEach((databaseName,
databaseData) -> databaseData.getSchemaData().forEach((schemaName, schemaData)
-> metaDataContexts
-
.getPersistService().getShardingSphereDataPersistService().persist(databaseName,
schemaName, schemaData, metaDataContexts.getMetaData().getDatabases())));
+ private static void persistMetaData(final MetaDataContexts
metaDataContexts, final MetaDataPersistService persistService) {
+ metaDataContexts.getMetaData().getDatabases().values().forEach(each ->
each.getSchemas().forEach((schemaName, schema) ->
persistService.getDatabaseMetaDataService()
+ .persistByAlterConfiguration(each.getName(), schemaName,
schema)));
+
metaDataContexts.getStatistics().getDatabaseData().forEach((databaseName,
databaseData) -> databaseData.getSchemaData().forEach((schemaName, schemaData)
-> persistService
+ .getShardingSphereDataPersistService().persist(databaseName,
schemaName, schemaData, metaDataContexts.getMetaData().getDatabases())));
}
}
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/service/PersistServiceFacade.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/service/PersistServiceFacade.java
index de646661a22..1f06cccb0e7 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/service/PersistServiceFacade.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/service/PersistServiceFacade.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.mode.service;
import lombok.Getter;
import org.apache.shardingsphere.infra.config.mode.ModeConfiguration;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
+import org.apache.shardingsphere.metadata.persist.MetaDataPersistService;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.mode.spi.PersistRepository;
import org.apache.shardingsphere.mode.state.StatePersistService;
@@ -30,6 +31,8 @@ import
org.apache.shardingsphere.mode.state.StatePersistService;
@Getter
public final class PersistServiceFacade {
+ private final MetaDataPersistService metaDataPersistService;
+
private final ComputeNodePersistService computeNodePersistService;
private final StatePersistService statePersistService;
@@ -37,6 +40,7 @@ public final class PersistServiceFacade {
private final MetaDataManagerPersistService metaDataManagerPersistService;
public PersistServiceFacade(final PersistRepository repository, final
ModeConfiguration modeConfiguration, final ContextManager contextManager) {
+ metaDataPersistService = new MetaDataPersistService(repository);
computeNodePersistService = new ComputeNodePersistService(repository);
statePersistService = new StatePersistService(repository);
metaDataManagerPersistService =
TypedSPILoader.getService(MetaDataManagerPersistServiceBuilder.class,
modeConfiguration.getType()).build(contextManager);
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/subsciber/RuleItemChangedSubscriber.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/subsciber/RuleItemChangedSubscriber.java
index 8c2cb2ad484..3643dca1dff 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/subsciber/RuleItemChangedSubscriber.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/subsciber/RuleItemChangedSubscriber.java
@@ -43,12 +43,14 @@ public final class RuleItemChangedSubscriber implements
EventSubscriber {
@SuppressWarnings({"rawtypes", "unchecked", "unused"})
@Subscribe
public void renew(final AlterRuleItemEvent event) {
- if
(!event.getActiveVersion().equals(contextManager.getMetaDataContexts().getPersistService().getMetaDataVersionPersistService().getActiveVersionByFullPath(event.getActiveVersionKey())))
{
+ if
(!event.getActiveVersion().equals(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
+ .getActiveVersionByFullPath(event.getActiveVersionKey()))) {
return;
}
RuleItemConfigurationChangedProcessor processor =
TypedSPILoader.getService(RuleItemConfigurationChangedProcessor.class,
event.getType());
String yamlContent =
-
contextManager.getMetaDataContexts().getPersistService().getMetaDataVersionPersistService().getVersionPathByActiveVersion(event.getActiveVersionKey(),
event.getActiveVersion());
+
contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
+
.getVersionPathByActiveVersion(event.getActiveVersionKey(),
event.getActiveVersion());
String databaseName = event.getDatabaseName();
RuleConfiguration currentRuleConfig =
processor.findRuleConfiguration(contextManager.getMetaDataContexts().getMetaData().getDatabase(databaseName));
synchronized (this) {
diff --git
a/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
b/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
index b0e80fe3341..95e5ce0c188 100644
---
a/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
+++
b/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
@@ -40,9 +40,9 @@ import
org.apache.shardingsphere.infra.rule.ShardingSphereRule;
import org.apache.shardingsphere.infra.rule.attribute.RuleAttributes;
import
org.apache.shardingsphere.infra.rule.attribute.datanode.MutableDataNodeRuleAttribute;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
-import org.apache.shardingsphere.metadata.persist.MetaDataPersistService;
-import
org.apache.shardingsphere.metadata.persist.service.database.DatabaseMetaDataPersistService;
+import org.apache.shardingsphere.metadata.persist.node.DatabaseMetaDataNode;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
+import org.apache.shardingsphere.mode.spi.PersistRepository;
import org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource;
import org.apache.shardingsphere.test.util.PropertiesBuilder;
import org.apache.shardingsphere.test.util.PropertiesBuilder.Property;
@@ -89,7 +89,7 @@ class ContextManagerTest {
when(metaDataContexts.getMetaData().getDatabases().values()).thenReturn(Collections.singleton(database));
ComputeNodeInstanceContext computeNodeInstanceContext =
mock(ComputeNodeInstanceContext.class);
when(computeNodeInstanceContext.getModeConfiguration()).thenReturn(mock(ModeConfiguration.class));
- contextManager = new ContextManager(metaDataContexts,
computeNodeInstanceContext);
+ contextManager = new ContextManager(metaDataContexts,
computeNodeInstanceContext, mock(PersistRepository.class));
}
private ShardingSphereDatabase mockDatabase() {
@@ -243,21 +243,13 @@ class ContextManagerTest {
@Test
void assertReloadSchema() {
when(metaDataContexts.getMetaData().getDatabase("foo_db").getName()).thenReturn("foo_db");
- DatabaseMetaDataPersistService databaseMetaDataPersistService =
mock(DatabaseMetaDataPersistService.class, RETURNS_DEEP_STUBS);
- MetaDataPersistService persistService =
mock(MetaDataPersistService.class);
-
when(persistService.getDatabaseMetaDataService()).thenReturn(databaseMetaDataPersistService);
- when(metaDataContexts.getPersistService()).thenReturn(persistService);
ShardingSphereDatabase database = mockDatabase();
contextManager.reloadSchema(database, "foo_schema", "foo_ds");
- verify(databaseMetaDataPersistService).dropSchema("foo_db",
"foo_schema");
+
verify(contextManager.getRepository()).delete(DatabaseMetaDataNode.getMetaDataSchemaPath("foo_db",
"foo_schema"));
}
@Test
void assertReloadTable() {
- DatabaseMetaDataPersistService databaseMetaDataPersistService =
mock(DatabaseMetaDataPersistService.class, RETURNS_DEEP_STUBS);
- MetaDataPersistService persistService =
mock(MetaDataPersistService.class);
-
when(persistService.getDatabaseMetaDataService()).thenReturn(databaseMetaDataPersistService);
- when(metaDataContexts.getPersistService()).thenReturn(persistService);
ShardingSphereDatabase database = mockDatabase();
contextManager.reloadTable(database, "foo_schema", "foo_table");
assertTrue(contextManager.getMetaDataContexts().getMetaData().getDatabase("foo_db").getResourceMetaData().getStorageUnits().containsKey("foo_ds"));
diff --git
a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactoryTest.java
b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactoryTest.java
index 1bfb368c20f..de344bd39c2 100644
---
a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactoryTest.java
+++
b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactoryTest.java
@@ -120,7 +120,6 @@ class MetaDataContextsFactoryTest {
when(databaseMetaDataPersistService.loadAllDatabaseNames()).thenReturn(Collections.singletonList("foo_db"));
when(metaDataPersistService.getDatabaseMetaDataService()).thenReturn(databaseMetaDataPersistService);
try (MetaDataContexts actual =
MetaDataContextsFactory.create(metaDataPersistService,
createContextManagerBuilderParameter(), mock(ComputeNodeInstanceContext.class,
RETURNS_DEEP_STUBS))) {
- assertThat(actual.getPersistService(), is(metaDataPersistService));
assertThat(actual.getMetaData().getGlobalRuleMetaData().getRules().size(),
is(1));
assertThat(actual.getMetaData().getGlobalRuleMetaData().getRules().iterator().next(),
instanceOf(MockedRule.class));
assertTrue(actual.getMetaData().getDatabases().containsKey("foo_db"));
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
index 0d477c8b0e4..a4d13f555ce 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
@@ -69,7 +69,7 @@ public final class ClusterContextManagerBuilder implements
ContextManagerBuilder
}
MetaDataPersistService metaDataPersistService = new
MetaDataPersistService(repository);
MetaDataContexts metaDataContexts =
MetaDataContextsFactory.create(metaDataPersistService, param,
computeNodeInstanceContext, new
QualifiedDataSourceStatusService(repository).loadStatus());
- ContextManager result = new ContextManager(metaDataContexts,
computeNodeInstanceContext);
+ ContextManager result = new ContextManager(metaDataContexts,
computeNodeInstanceContext, repository);
createSubscribers(eventBusContext, repository);
registerOnline(eventBusContext, computeNodeInstanceContext,
repository, param, result);
setClusterState(result);
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ConfigurationChangedSubscriber.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ConfigurationChangedSubscriber.java
index bbe45c2fead..0da5fe19070 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ConfigurationChangedSubscriber.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ConfigurationChangedSubscriber.java
@@ -43,11 +43,12 @@ public final class ConfigurationChangedSubscriber
implements EventSubscriber {
*/
@Subscribe
public void renew(final RegisterStorageUnitEvent event) {
- if
(!event.getActiveVersion().equals(contextManager.getMetaDataContexts().getPersistService().getMetaDataVersionPersistService().getActiveVersionByFullPath(event.getActiveVersionKey())))
{
+ if
(!event.getActiveVersion().equals(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
+ .getActiveVersionByFullPath(event.getActiveVersionKey()))) {
return;
}
contextManager.getConfigurationContextManager().registerStorageUnit(event.getDatabaseName(),
-
contextManager.getMetaDataContexts().getPersistService().getDataSourceUnitService().load(event.getDatabaseName(),
event.getStorageUnitName()));
+
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDataSourceUnitService().load(event.getDatabaseName(),
event.getStorageUnitName()));
}
/**
@@ -57,11 +58,12 @@ public final class ConfigurationChangedSubscriber
implements EventSubscriber {
*/
@Subscribe
public void renew(final AlterStorageUnitEvent event) {
- if
(!event.getActiveVersion().equals(contextManager.getMetaDataContexts().getPersistService().getMetaDataVersionPersistService().getActiveVersionByFullPath(event.getActiveVersionKey())))
{
+ if
(!event.getActiveVersion().equals(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
+ .getActiveVersionByFullPath(event.getActiveVersionKey()))) {
return;
}
contextManager.getConfigurationContextManager().alterStorageUnit(
- event.getDatabaseName(),
contextManager.getMetaDataContexts().getPersistService().getDataSourceUnitService().load(event.getDatabaseName(),
event.getStorageUnitName()));
+ event.getDatabaseName(),
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDataSourceUnitService().load(event.getDatabaseName(),
event.getStorageUnitName()));
}
/**
@@ -84,10 +86,11 @@ public final class ConfigurationChangedSubscriber
implements EventSubscriber {
*/
@Subscribe
public synchronized void renew(final AlterGlobalRuleConfigurationEvent
event) {
- if
(!event.getActiveVersion().equals(contextManager.getMetaDataContexts().getPersistService().getMetaDataVersionPersistService().getActiveVersionByFullPath(event.getActiveVersionKey())))
{
+ if
(!event.getActiveVersion().equals(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
+ .getActiveVersionByFullPath(event.getActiveVersionKey()))) {
return;
}
-
contextManager.getMetaDataContexts().getPersistService().getGlobalRuleService().load(event.getRuleSimpleName())
+
contextManager.getPersistServiceFacade().getMetaDataPersistService().getGlobalRuleService().load(event.getRuleSimpleName())
.ifPresent(optional ->
contextManager.getConfigurationContextManager().alterGlobalRuleConfiguration(optional));
}
@@ -99,9 +102,10 @@ public final class ConfigurationChangedSubscriber
implements EventSubscriber {
*/
@Subscribe
public synchronized void renew(final AlterPropertiesEvent event) {
- if
(!event.getActiveVersion().equals(contextManager.getMetaDataContexts().getPersistService().getMetaDataVersionPersistService().getActiveVersionByFullPath(event.getActiveVersionKey())))
{
+ if
(!event.getActiveVersion().equals(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
+ .getActiveVersionByFullPath(event.getActiveVersionKey()))) {
return;
}
-
contextManager.getConfigurationContextManager().alterProperties(contextManager.getMetaDataContexts().getPersistService().getPropsService().load());
+
contextManager.getConfigurationContextManager().alterProperties(contextManager.getPersistServiceFacade().getMetaDataPersistService().getPropsService().load());
}
}
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ResourceMetaDataChangedSubscriber.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ResourceMetaDataChangedSubscriber.java
index 05afc49a5ea..e8e234deba8 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ResourceMetaDataChangedSubscriber.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ResourceMetaDataChangedSubscriber.java
@@ -90,10 +90,11 @@ public final class ResourceMetaDataChangedSubscriber
implements EventSubscriber
*/
@Subscribe
public synchronized void renew(final CreateOrAlterTableEvent event) {
- if
(!event.getActiveVersion().equals(contextManager.getMetaDataContexts().getPersistService().getMetaDataVersionPersistService().getActiveVersionByFullPath(event.getActiveVersionKey())))
{
+ if
(!event.getActiveVersion().equals(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
+ .getActiveVersionByFullPath(event.getActiveVersionKey()))) {
return;
}
- Map<String, ShardingSphereTable> tables =
contextManager.getMetaDataContexts().getPersistService().getDatabaseMetaDataService()
+ Map<String, ShardingSphereTable> tables =
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataService()
.getTableMetaDataPersistService().load(event.getDatabaseName(),
event.getSchemaName(), event.getTableName());
contextManager.getResourceMetaDataContextManager().alterSchema(event.getDatabaseName(),
event.getSchemaName(), tables.values().iterator().next(), null);
}
@@ -115,10 +116,11 @@ public final class ResourceMetaDataChangedSubscriber
implements EventSubscriber
*/
@Subscribe
public synchronized void renew(final CreateOrAlterViewEvent event) {
- if
(!event.getActiveVersion().equals(contextManager.getMetaDataContexts().getPersistService().getMetaDataVersionPersistService().getActiveVersionByFullPath(event.getActiveVersionKey())))
{
+ if
(!event.getActiveVersion().equals(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
+ .getActiveVersionByFullPath(event.getActiveVersionKey()))) {
return;
}
- Map<String, ShardingSphereView> views =
contextManager.getMetaDataContexts().getPersistService().getDatabaseMetaDataService()
+ Map<String, ShardingSphereView> views =
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataService()
.getViewMetaDataPersistService().load(event.getDatabaseName(),
event.getSchemaName(), event.getViewName());
contextManager.getResourceMetaDataContextManager().alterSchema(event.getDatabaseName(),
event.getSchemaName(), null, views.values().iterator().next());
}
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/service/ClusterMetaDataManagerPersistService.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/service/ClusterMetaDataManagerPersistService.java
index eaddbaa3870..38d61ff5795 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/service/ClusterMetaDataManagerPersistService.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/service/ClusterMetaDataManagerPersistService.java
@@ -49,17 +49,17 @@ public final class ClusterMetaDataManagerPersistService
implements MetaDataManag
@Override
public void createDatabase(final String databaseName) {
-
contextManager.getMetaDataContexts().getPersistService().getDatabaseMetaDataService().addDatabase(databaseName);
+
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataService().addDatabase(databaseName);
}
@Override
public void dropDatabase(final String databaseName) {
-
contextManager.getMetaDataContexts().getPersistService().getDatabaseMetaDataService().dropDatabase(databaseName);
+
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataService().dropDatabase(databaseName);
}
@Override
public void createSchema(final String databaseName, final String
schemaName) {
-
contextManager.getMetaDataContexts().getPersistService().getDatabaseMetaDataService().addSchema(databaseName,
schemaName);
+
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataService().addSchema(databaseName,
schemaName);
}
@Override
@@ -67,7 +67,7 @@ public final class ClusterMetaDataManagerPersistService
implements MetaDataManag
String databaseName = alterSchemaPOJO.getDatabaseName();
String schemaName = alterSchemaPOJO.getSchemaName();
ShardingSphereSchema schema =
contextManager.getMetaDataContexts().getMetaData().getDatabase(databaseName).getSchema(schemaName);
- DatabaseMetaDataPersistService databaseMetaDataService =
contextManager.getMetaDataContexts().getPersistService().getDatabaseMetaDataService();
+ DatabaseMetaDataPersistService databaseMetaDataService =
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataService();
databaseMetaDataService.persistByAlterConfiguration(databaseName,
alterSchemaPOJO.getRenameSchemaName(), schema);
databaseMetaDataService.getViewMetaDataPersistService().persist(databaseName,
alterSchemaPOJO.getRenameSchemaName(), schema.getViews());
databaseMetaDataService.dropSchema(databaseName, schemaName);
@@ -75,7 +75,7 @@ public final class ClusterMetaDataManagerPersistService
implements MetaDataManag
@Override
public void dropSchema(final String databaseName, final Collection<String>
schemaNames) {
- DatabaseMetaDataPersistService databaseMetaDataService =
contextManager.getMetaDataContexts().getPersistService().getDatabaseMetaDataService();
+ DatabaseMetaDataPersistService databaseMetaDataService =
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataService();
schemaNames.forEach(each ->
databaseMetaDataService.dropSchema(databaseName, each));
}
@@ -85,7 +85,7 @@ public final class ClusterMetaDataManagerPersistService
implements MetaDataManag
String schemaName = alterSchemaMetaDataPOJO.getSchemaName();
Map<String, ShardingSphereTable> tables =
alterSchemaMetaDataPOJO.getAlteredTables().stream().collect(Collectors.toMap(ShardingSphereTable::getName,
table -> table));
Map<String, ShardingSphereView> views =
alterSchemaMetaDataPOJO.getAlteredViews().stream().collect(Collectors.toMap(ShardingSphereView::getName,
view -> view));
- DatabaseMetaDataPersistService databaseMetaDataService =
contextManager.getMetaDataContexts().getPersistService().getDatabaseMetaDataService();
+ DatabaseMetaDataPersistService databaseMetaDataService =
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataService();
databaseMetaDataService.getTableMetaDataPersistService().persist(databaseName,
schemaName, tables);
databaseMetaDataService.getViewMetaDataPersistService().persist(databaseName,
schemaName, views);
alterSchemaMetaDataPOJO.getDroppedTables().forEach(each ->
databaseMetaDataService.getTableMetaDataPersistService().delete(databaseName,
schemaName, each));
@@ -94,19 +94,21 @@ public final class ClusterMetaDataManagerPersistService
implements MetaDataManag
@Override
public void registerStorageUnits(final String databaseName, final
Map<String, DataSourcePoolProperties> toBeRegisteredProps) {
-
contextManager.getMetaDataContexts().getPersistService().getDataSourceUnitService().persistConfigurations(databaseName,
toBeRegisteredProps);
+
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDataSourceUnitService().persistConfigurations(databaseName,
toBeRegisteredProps);
}
@Override
public void alterStorageUnits(final String databaseName, final Map<String,
DataSourcePoolProperties> toBeUpdatedProps) {
- DatabaseBasedPersistService<Map<String, DataSourcePoolProperties>>
dataSourceService =
contextManager.getMetaDataContexts().getPersistService().getDataSourceUnitService();
-
contextManager.getMetaDataContexts().getPersistService().getMetaDataVersionPersistService().switchActiveVersion(dataSourceService.persistConfigurations(databaseName,
toBeUpdatedProps));
+ DatabaseBasedPersistService<Map<String, DataSourcePoolProperties>>
dataSourceService =
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDataSourceUnitService();
+
contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
+
.switchActiveVersion(dataSourceService.persistConfigurations(databaseName,
toBeUpdatedProps));
}
@Override
public void unregisterStorageUnits(final String databaseName, final
Collection<String> toBeDroppedStorageUnitNames) {
-
contextManager.getMetaDataContexts().getPersistService().getDataSourceUnitService().deleteConfigurations(databaseName,
-
getToBeDroppedDataSourcePoolProperties(contextManager.getMetaDataContexts().getPersistService().getDataSourceUnitService().load(databaseName),
toBeDroppedStorageUnitNames));
+
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDataSourceUnitService().deleteConfigurations(databaseName,
+
getToBeDroppedDataSourcePoolProperties(contextManager.getPersistServiceFacade().getMetaDataPersistService()
+ .getDataSourceUnitService().load(databaseName),
toBeDroppedStorageUnitNames));
}
private Map<String, DataSourcePoolProperties>
getToBeDroppedDataSourcePoolProperties(final Map<String,
DataSourcePoolProperties> propsMap, final Collection<String>
toBeDroppedResourceNames) {
@@ -122,14 +124,15 @@ public final class ClusterMetaDataManagerPersistService
implements MetaDataManag
@Override
public void alterSingleRuleConfiguration(final String databaseName, final
Collection<RuleConfiguration> ruleConfigs) {
ruleConfigs.removeIf(each ->
!each.getClass().isAssignableFrom(SingleRuleConfiguration.class));
-
contextManager.getMetaDataContexts().getPersistService().getMetaDataVersionPersistService()
-
.switchActiveVersion(contextManager.getMetaDataContexts().getPersistService().getDatabaseRulePersistService().persistConfigurations(databaseName,
ruleConfigs));
+
contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
+
.switchActiveVersion(contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseRulePersistService().persistConfigurations(databaseName,
ruleConfigs));
}
@Override
public Collection<MetaDataVersion> alterRuleConfiguration(final String
databaseName, final RuleConfiguration toBeAlteredRuleConfig) {
if (null != toBeAlteredRuleConfig) {
- return
contextManager.getMetaDataContexts().getPersistService().getDatabaseRulePersistService().persistConfigurations(databaseName,
Collections.singleton(toBeAlteredRuleConfig));
+ return
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseRulePersistService()
+ .persistConfigurations(databaseName,
Collections.singleton(toBeAlteredRuleConfig));
}
return Collections.emptyList();
}
@@ -137,22 +140,22 @@ public final class ClusterMetaDataManagerPersistService
implements MetaDataManag
@Override
public void removeRuleConfigurationItem(final String databaseName, final
RuleConfiguration toBeRemovedRuleConfig) {
if (null != toBeRemovedRuleConfig) {
-
contextManager.getMetaDataContexts().getPersistService().getDatabaseRulePersistService().deleteConfigurations(databaseName,
Collections.singleton(toBeRemovedRuleConfig));
+
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseRulePersistService().deleteConfigurations(databaseName,
Collections.singleton(toBeRemovedRuleConfig));
}
}
@Override
public void removeRuleConfiguration(final String databaseName, final
String ruleName) {
-
contextManager.getMetaDataContexts().getPersistService().getDatabaseRulePersistService().delete(databaseName,
ruleName);
+
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseRulePersistService().delete(databaseName,
ruleName);
}
@Override
public void alterGlobalRuleConfiguration(final RuleConfiguration
toBeAlteredRuleConfig) {
-
contextManager.getMetaDataContexts().getPersistService().getGlobalRuleService().persist(Collections.singleton(toBeAlteredRuleConfig));
+
contextManager.getPersistServiceFacade().getMetaDataPersistService().getGlobalRuleService().persist(Collections.singleton(toBeAlteredRuleConfig));
}
@Override
public void alterProperties(final Properties props) {
-
contextManager.getMetaDataContexts().getPersistService().getPropsService().persist(props);
+
contextManager.getPersistServiceFacade().getMetaDataPersistService().getPropsService().persist(props);
}
}
diff --git
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/process/subscriber/ProcessListChangedSubscriberTest.java
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/process/subscriber/ProcessListChangedSubscriberTest.java
index 1a831fe5d29..50a6721557f 100644
---
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/process/subscriber/ProcessListChangedSubscriberTest.java
+++
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/process/subscriber/ProcessListChangedSubscriberTest.java
@@ -83,7 +83,7 @@ class ProcessListChangedSubscriberTest {
void setUp() throws SQLException {
EventBusContext eventBusContext = new EventBusContext();
contextManager = new
ClusterContextManagerBuilder().build(createContextManagerBuilderParameter(),
eventBusContext);
-
contextManager.renewMetaDataContexts(MetaDataContextsFactory.create(contextManager.getMetaDataContexts().getPersistService(),
new ShardingSphereMetaData(createDatabases(),
+
contextManager.renewMetaDataContexts(MetaDataContextsFactory.create(contextManager.getPersistServiceFacade().getMetaDataPersistService(),
new ShardingSphereMetaData(createDatabases(),
contextManager.getMetaDataContexts().getMetaData().getGlobalResourceMetaData(),
contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData(),
new ConfigurationProperties(new Properties()))));
subscriber = new ProcessListChangedSubscriber(contextManager,
repository);
diff --git
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ResourceMetaDataChangedSubscriberTest.java
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ResourceMetaDataChangedSubscriberTest.java
index 9ac799c8edf..b003d9e79ca 100644
---
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ResourceMetaDataChangedSubscriberTest.java
+++
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ResourceMetaDataChangedSubscriberTest.java
@@ -80,7 +80,7 @@ class ResourceMetaDataChangedSubscriberTest {
@BeforeEach
void setUp() throws SQLException {
contextManager = new
ClusterContextManagerBuilder().build(createContextManagerBuilderParameter(),
new EventBusContext());
-
contextManager.renewMetaDataContexts(MetaDataContextsFactory.create(contextManager.getMetaDataContexts().getPersistService(),
new ShardingSphereMetaData(createDatabases(),
+
contextManager.renewMetaDataContexts(MetaDataContextsFactory.create(contextManager.getPersistServiceFacade().getMetaDataPersistService(),
new ShardingSphereMetaData(createDatabases(),
contextManager.getMetaDataContexts().getMetaData().getGlobalResourceMetaData(),
contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData(),
new ConfigurationProperties(new Properties()))));
subscriber = new ResourceMetaDataChangedSubscriber(contextManager);
diff --git
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/StateChangedSubscriberTest.java
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/StateChangedSubscriberTest.java
index 15ab1b2825a..f708bbf6c4e 100644
---
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/StateChangedSubscriberTest.java
+++
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/StateChangedSubscriberTest.java
@@ -86,7 +86,7 @@ class StateChangedSubscriberTest {
void setUp() throws SQLException {
EventBusContext eventBusContext = new EventBusContext();
contextManager = new
ClusterContextManagerBuilder().build(createContextManagerBuilderParameter(),
eventBusContext);
-
contextManager.renewMetaDataContexts(MetaDataContextsFactory.create(contextManager.getMetaDataContexts().getPersistService(),
new ShardingSphereMetaData(createDatabases(),
+
contextManager.renewMetaDataContexts(MetaDataContextsFactory.create(contextManager.getPersistServiceFacade().getMetaDataPersistService(),
new ShardingSphereMetaData(createDatabases(),
contextManager.getMetaDataContexts().getMetaData().getGlobalResourceMetaData(),
contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData(),
new ConfigurationProperties(new Properties()))));
subscriber = new StateChangedSubscriber(contextManager);
diff --git
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/StandaloneContextManagerBuilder.java
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/StandaloneContextManagerBuilder.java
index a6048e66907..5c2b3da39b0 100644
---
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/StandaloneContextManagerBuilder.java
+++
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/StandaloneContextManagerBuilder.java
@@ -49,7 +49,7 @@ public final class StandaloneContextManagerBuilder implements
ContextManagerBuil
MetaDataPersistService persistService = new
MetaDataPersistService(repository);
ComputeNodeInstanceContext computeNodeInstanceContext =
buildComputeNodeInstanceContext(param, eventBusContext);
MetaDataContexts metaDataContexts =
MetaDataContextsFactory.create(persistService, param,
computeNodeInstanceContext);
- ContextManager result = new ContextManager(metaDataContexts,
computeNodeInstanceContext);
+ ContextManager result = new ContextManager(metaDataContexts,
computeNodeInstanceContext, repository);
new StandaloneEventSubscriberRegistry(result).register();
return result;
}
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 1099ebf8b87..0bfcd58c287 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
@@ -71,14 +71,14 @@ public final class StandaloneMetaDataManagerPersistService
implements MetaDataMa
@Override
public void createDatabase(final String databaseName) {
contextManager.getResourceMetaDataContextManager().addDatabase(databaseName);
-
contextManager.getMetaDataContexts().getPersistService().getDatabaseMetaDataService().addDatabase(databaseName);
+
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataService().addDatabase(databaseName);
clearServiceCache();
}
@Override
public void dropDatabase(final String databaseName) {
contextManager.getResourceMetaDataContextManager().dropDatabase(databaseName);
-
contextManager.getMetaDataContexts().getPersistService().getDatabaseMetaDataService().dropDatabase(databaseName);
+
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataService().dropDatabase(databaseName);
clearServiceCache();
}
@@ -89,7 +89,7 @@ public final class StandaloneMetaDataManagerPersistService
implements MetaDataMa
ShardingSphereDatabase database = metaData.getDatabase(databaseName);
database.addSchema(schemaName, schema);
metaData.getGlobalRuleMetaData().getRules().forEach(each ->
((GlobalRule) each).refresh(metaData.getDatabases(),
GlobalRuleChangedType.SCHEMA_CHANGED));
-
contextManager.getMetaDataContexts().getPersistService().getDatabaseMetaDataService().persistByAlterConfiguration(databaseName,
schemaName, schema);
+
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataService().persistByAlterConfiguration(databaseName,
schemaName, schema);
}
@Override
@@ -99,7 +99,7 @@ public final class StandaloneMetaDataManagerPersistService
implements MetaDataMa
putSchemaMetaData(database, alterSchemaPOJO.getSchemaName(),
alterSchemaPOJO.getRenameSchemaName(),
alterSchemaPOJO.getLogicDataSourceName());
removeSchemaMetaData(database, alterSchemaPOJO.getSchemaName());
metaData.getGlobalRuleMetaData().getRules().forEach(each ->
((GlobalRule) each).refresh(metaData.getDatabases(),
GlobalRuleChangedType.SCHEMA_CHANGED));
- DatabaseMetaDataPersistService databaseMetaDataService =
contextManager.getMetaDataContexts().getPersistService().getDatabaseMetaDataService();
+ DatabaseMetaDataPersistService databaseMetaDataService =
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataService();
databaseMetaDataService.persistByAlterConfiguration(alterSchemaPOJO.getDatabaseName(),
alterSchemaPOJO.getRenameSchemaName(),
database.getSchema(alterSchemaPOJO.getRenameSchemaName()));
databaseMetaDataService.getViewMetaDataPersistService().persist(alterSchemaPOJO.getDatabaseName(),
alterSchemaPOJO.getRenameSchemaName(),
database.getSchema(alterSchemaPOJO.getRenameSchemaName()).getViews());
@@ -204,7 +204,7 @@ public final class StandaloneMetaDataManagerPersistService
implements MetaDataMa
addDataNode(database,
alterSchemaMetaDataPOJO.getLogicDataSourceName(), schemaName, tables, views);
removeDataNode(database, schemaName,
alterSchemaMetaDataPOJO.getDroppedTables(),
alterSchemaMetaDataPOJO.getDroppedViews());
metaData.getGlobalRuleMetaData().getRules().forEach(each ->
((GlobalRule) each).refresh(metaData.getDatabases(),
GlobalRuleChangedType.SCHEMA_CHANGED));
- DatabaseMetaDataPersistService databaseMetaDataService =
contextManager.getMetaDataContexts().getPersistService().getDatabaseMetaDataService();
+ DatabaseMetaDataPersistService databaseMetaDataService =
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataService();
databaseMetaDataService.getTableMetaDataPersistService().persist(databaseName,
schemaName, tables);
databaseMetaDataService.getViewMetaDataPersistService().persist(databaseName,
schemaName, views);
alterSchemaMetaDataPOJO.getDroppedTables().forEach(each ->
databaseMetaDataService.getTableMetaDataPersistService().delete(databaseName,
schemaName, each));
@@ -215,14 +215,16 @@ public final class
StandaloneMetaDataManagerPersistService implements MetaDataMa
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);
-
contextManager.getMetaDataContexts().getMetaData().getDatabases().putAll(contextManager.getConfigurationContextManager().createChangedDatabases(databaseName,
false, switchingResource, null));
+
contextManager.getMetaDataContexts().getMetaData().getDatabases().putAll(contextManager.getConfigurationContextManager()
+ .createChangedDatabases(databaseName, false,
switchingResource, null));
contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getRules()
.forEach(each -> ((GlobalRule)
each).refresh(contextManager.getMetaDataContexts().getMetaData().getDatabases(),
GlobalRuleChangedType.DATABASE_CHANGED));
contextManager.getMetaDataContexts().getMetaData().getDatabase(databaseName).getSchemas()
- .forEach((schemaName, schema) ->
contextManager.getMetaDataContexts().getPersistService().getDatabaseMetaDataService()
+ .forEach((schemaName, schema) ->
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataService()
.persistByAlterConfiguration(contextManager.getMetaDataContexts().getMetaData().getDatabase(databaseName).getName(),
schemaName, schema));
- DatabaseBasedPersistService<Map<String, DataSourcePoolProperties>>
dataSourceService =
contextManager.getMetaDataContexts().getPersistService().getDataSourceUnitService();
-
contextManager.getMetaDataContexts().getPersistService().getMetaDataVersionPersistService().switchActiveVersion(dataSourceService.persistConfigurations(databaseName,
toBeRegisteredProps));
+ DatabaseBasedPersistService<Map<String, DataSourcePoolProperties>>
dataSourceService =
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDataSourceUnitService();
+
contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
+
.switchActiveVersion(dataSourceService.persistConfigurations(databaseName,
toBeRegisteredProps));
clearServiceCache();
}
@@ -230,11 +232,13 @@ public final class
StandaloneMetaDataManagerPersistService implements MetaDataMa
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);
-
contextManager.getMetaDataContexts().getMetaData().getDatabases().putAll(contextManager.getConfigurationContextManager().createChangedDatabases(databaseName,
true, switchingResource, null));
+
contextManager.getMetaDataContexts().getMetaData().getDatabases().putAll(contextManager.getConfigurationContextManager()
+ .createChangedDatabases(databaseName, true, switchingResource,
null));
contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getRules()
.forEach(each -> ((GlobalRule)
each).refresh(contextManager.getMetaDataContexts().getMetaData().getDatabases(),
GlobalRuleChangedType.DATABASE_CHANGED));
- DatabaseBasedPersistService<Map<String, DataSourcePoolProperties>>
dataSourceService =
contextManager.getMetaDataContexts().getPersistService().getDataSourceUnitService();
-
contextManager.getMetaDataContexts().getPersistService().getMetaDataVersionPersistService().switchActiveVersion(dataSourceService.persistConfigurations(databaseName,
toBeUpdatedProps));
+ DatabaseBasedPersistService<Map<String, DataSourcePoolProperties>>
dataSourceService =
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDataSourceUnitService();
+
contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
+
.switchActiveVersion(dataSourceService.persistConfigurations(databaseName,
toBeUpdatedProps));
switchingResource.closeStaleDataSources();
clearServiceCache();
}
@@ -257,9 +261,9 @@ public final class StandaloneMetaDataManagerPersistService
implements MetaDataMa
@Override
public void alterSingleRuleConfiguration(final String databaseName, final
Collection<RuleConfiguration> ruleConfigs) {
ruleConfigs.removeIf(each ->
!each.getClass().isAssignableFrom(SingleRuleConfiguration.class));
- Collection<MetaDataVersion> metaDataVersions =
contextManager.getMetaDataContexts().getPersistService().getDatabaseRulePersistService()
+ Collection<MetaDataVersion> metaDataVersions =
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseRulePersistService()
.persistConfigurations(contextManager.getMetaDataContexts().getMetaData().getDatabase(databaseName).getName(),
ruleConfigs);
-
contextManager.getMetaDataContexts().getPersistService().getMetaDataVersionPersistService().switchActiveVersion(metaDataVersions);
+
contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService().switchActiveVersion(metaDataVersions);
contextManager.getConfigurationContextManager().alterRuleConfiguration(databaseName,
ruleConfigs.iterator().next());
clearServiceCache();
}
@@ -267,9 +271,9 @@ public final class StandaloneMetaDataManagerPersistService
implements MetaDataMa
@Override
public Collection<MetaDataVersion> alterRuleConfiguration(final String
databaseName, final RuleConfiguration toBeAlteredRuleConfig) {
if (null != toBeAlteredRuleConfig) {
- Collection<MetaDataVersion> metaDataVersions =
contextManager.getMetaDataContexts().getPersistService().getDatabaseRulePersistService()
+ Collection<MetaDataVersion> metaDataVersions =
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseRulePersistService()
.persistConfigurations(contextManager.getMetaDataContexts().getMetaData().getDatabase(databaseName).getName(),
Collections.singletonList(toBeAlteredRuleConfig));
-
contextManager.getMetaDataContexts().getPersistService().getMetaDataVersionPersistService().switchActiveVersion(metaDataVersions);
+
contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService().switchActiveVersion(metaDataVersions);
sendDatabaseRuleChangedEvent(databaseName, metaDataVersions);
clearServiceCache();
}
@@ -291,28 +295,29 @@ public final class
StandaloneMetaDataManagerPersistService implements MetaDataMa
public void removeRuleConfigurationItem(final String databaseName, final
RuleConfiguration toBeRemovedRuleConfig) {
if (null != toBeRemovedRuleConfig) {
sendDatabaseRuleChangedEvent(databaseName,
-
contextManager.getMetaDataContexts().getPersistService().getDatabaseRulePersistService().deleteConfigurations(databaseName,
Collections.singleton(toBeRemovedRuleConfig)));
+
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseRulePersistService()
+ .deleteConfigurations(databaseName,
Collections.singleton(toBeRemovedRuleConfig)));
clearServiceCache();
}
}
@Override
public void removeRuleConfiguration(final String databaseName, final
String ruleName) {
-
contextManager.getMetaDataContexts().getPersistService().getDatabaseRulePersistService().delete(databaseName,
ruleName);
+
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseRulePersistService().delete(databaseName,
ruleName);
clearServiceCache();
}
@Override
public void alterGlobalRuleConfiguration(final RuleConfiguration
toBeAlteredRuleConfig) {
contextManager.getConfigurationContextManager().alterGlobalRuleConfiguration(toBeAlteredRuleConfig);
-
contextManager.getMetaDataContexts().getPersistService().getGlobalRuleService().persist(Collections.singleton(toBeAlteredRuleConfig));
+
contextManager.getPersistServiceFacade().getMetaDataPersistService().getGlobalRuleService().persist(Collections.singleton(toBeAlteredRuleConfig));
clearServiceCache();
}
@Override
public void alterProperties(final Properties props) {
contextManager.getConfigurationContextManager().alterProperties(props);
-
contextManager.getMetaDataContexts().getPersistService().getPropsService().persist(props);
+
contextManager.getPersistServiceFacade().getMetaDataPersistService().getPropsService().persist(props);
clearServiceCache();
}
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/SetDistVariableExecutor.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/SetDistVariableExecutor.java
index f0384da4642..d3b04aef273 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/SetDistVariableExecutor.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/SetDistVariableExecutor.java
@@ -25,6 +25,8 @@ import
org.apache.shardingsphere.distsql.statement.ral.updatable.SetDistVariable
import org.apache.shardingsphere.infra.config.props.ConfigurationPropertyKey;
import
org.apache.shardingsphere.infra.config.props.temporary.TemporaryConfigurationPropertyKey;
import
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
+import
org.apache.shardingsphere.infra.exception.kernel.syntax.InvalidVariableValueException;
+import
org.apache.shardingsphere.infra.exception.kernel.syntax.UnsupportedVariableException;
import org.apache.shardingsphere.infra.props.TypedPropertyKey;
import org.apache.shardingsphere.infra.props.TypedPropertyValue;
import
org.apache.shardingsphere.infra.props.exception.TypedPropertyValueException;
@@ -33,8 +35,6 @@ import
org.apache.shardingsphere.logging.constant.LoggingConstants;
import org.apache.shardingsphere.logging.util.LoggingUtils;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
-import
org.apache.shardingsphere.infra.exception.kernel.syntax.InvalidVariableValueException;
-import
org.apache.shardingsphere.infra.exception.kernel.syntax.UnsupportedVariableException;
import org.slf4j.LoggerFactory;
import java.sql.SQLException;
@@ -71,8 +71,8 @@ public final class SetDistVariableExecutor implements
DistSQLUpdateExecutor<SetD
props.put(propertyKey.getKey(), getValue(propertyKey, value));
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService().alterProperties(props);
refreshRootLogger(props);
- syncSQLShowToLoggingRule(propertyKey, metaDataContexts, value);
- syncSQLSimpleToLoggingRule(propertyKey, metaDataContexts, value);
+ syncSQLShowToLoggingRule(propertyKey, metaDataContexts, value,
contextManager);
+ syncSQLSimpleToLoggingRule(propertyKey, metaDataContexts, value,
contextManager);
}
private Object getValue(final TypedPropertyKey propertyKey, final String
value) {
@@ -97,20 +97,20 @@ public final class SetDistVariableExecutor implements
DistSQLUpdateExecutor<SetD
rootLogger.setLevel(Level.valueOf(props.getOrDefault(ConfigurationPropertyKey.SYSTEM_LOG_LEVEL.getKey(),
ConfigurationPropertyKey.SYSTEM_LOG_LEVEL.getDefaultValue()).toString()));
}
- private void syncSQLShowToLoggingRule(final TypedPropertyKey propertyKey,
final MetaDataContexts metaDataContexts, final String value) {
+ private void syncSQLShowToLoggingRule(final TypedPropertyKey propertyKey,
final MetaDataContexts metaDataContexts, final String value, final
ContextManager contextManager) {
if (LoggingConstants.SQL_SHOW.equalsIgnoreCase(propertyKey.getKey())) {
LoggingUtils.getSQLLogger(metaDataContexts.getMetaData().getGlobalRuleMetaData()).ifPresent(option
-> {
option.getProps().setProperty(LoggingConstants.SQL_LOG_ENABLE,
value);
-
metaDataContexts.getPersistService().getGlobalRuleService().persist(metaDataContexts.getMetaData().getGlobalRuleMetaData().getConfigurations());
+
contextManager.getPersistServiceFacade().getMetaDataPersistService().getGlobalRuleService().persist(metaDataContexts.getMetaData().getGlobalRuleMetaData().getConfigurations());
});
}
}
- private void syncSQLSimpleToLoggingRule(final TypedPropertyKey
propertyKey, final MetaDataContexts metaDataContexts, final String value) {
+ private void syncSQLSimpleToLoggingRule(final TypedPropertyKey
propertyKey, final MetaDataContexts metaDataContexts, final String value, final
ContextManager contextManager) {
if
(LoggingConstants.SQL_SIMPLE.equalsIgnoreCase(propertyKey.getKey())) {
LoggingUtils.getSQLLogger(metaDataContexts.getMetaData().getGlobalRuleMetaData()).ifPresent(option
-> {
option.getProps().setProperty(LoggingConstants.SQL_LOG_SIMPLE,
value);
-
metaDataContexts.getPersistService().getGlobalRuleService().persist(metaDataContexts.getMetaData().getGlobalRuleMetaData().getConfigurations());
+
contextManager.getPersistServiceFacade().getMetaDataPersistService().getGlobalRuleService().persist(metaDataContexts.getMetaData().getGlobalRuleMetaData().getConfigurations());
});
}
}
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/YamlDatabaseConfigurationImportExecutor.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/YamlDatabaseConfigurationImportExecutor.java
index 7df940380bb..565d8d7737e 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/YamlDatabaseConfigurationImportExecutor.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/YamlDatabaseConfigurationImportExecutor.java
@@ -130,7 +130,8 @@ public final class YamlDatabaseConfigurationImportExecutor {
MetaDataContexts metaDataContexts =
ProxyContext.getInstance().getContextManager().getMetaDataContexts();
ShardingSphereDatabase database =
metaDataContexts.getMetaData().getDatabase(databaseName);
swapToRuleConfigs(yamlRuleConfigs).values().forEach(each ->
addRule(ruleConfigs, each, database));
-
metaDataContexts.getPersistService().getDatabaseRulePersistService().persist(metaDataContexts.getMetaData().getDatabase(databaseName).getName(),
ruleConfigs);
+
ProxyContext.getInstance().getContextManager().getPersistServiceFacade().getMetaDataPersistService().getDatabaseRulePersistService()
+
.persist(metaDataContexts.getMetaData().getDatabase(databaseName).getName(),
ruleConfigs);
}
private void addRule(final Collection<RuleConfiguration> ruleConfigs,
final RuleConfiguration ruleConfig, final ShardingSphereDatabase database) {
diff --git
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxyDatabaseConnectionManagerTest.java
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxyDatabaseConnectionManagerTest.java
index 3ea244d952b..18d70ce4b95 100644
---
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxyDatabaseConnectionManagerTest.java
+++
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxyDatabaseConnectionManagerTest.java
@@ -32,6 +32,7 @@ import
org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.metadata.persist.MetaDataPersistService;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory;
+import org.apache.shardingsphere.mode.spi.PersistRepository;
import
org.apache.shardingsphere.proxy.backend.connector.jdbc.connection.ConnectionPostProcessor;
import
org.apache.shardingsphere.proxy.backend.connector.jdbc.datasource.JDBCBackendDataSource;
import
org.apache.shardingsphere.proxy.backend.connector.jdbc.statement.JDBCBackendStatement;
@@ -126,7 +127,7 @@ class ProxyDatabaseConnectionManagerTest {
when(metaData.getGlobalRuleMetaData()).thenReturn(new
RuleMetaData(Collections.singletonList(transactionRule)));
ComputeNodeInstanceContext computeNodeInstanceContext =
mock(ComputeNodeInstanceContext.class);
when(computeNodeInstanceContext.getModeConfiguration()).thenReturn(mock(ModeConfiguration.class));
- return new
ContextManager(MetaDataContextsFactory.create(mock(MetaDataPersistService.class),
metaData), computeNodeInstanceContext);
+ return new
ContextManager(MetaDataContextsFactory.create(mock(MetaDataPersistService.class),
metaData), computeNodeInstanceContext, mock(PersistRepository.class));
}
@AfterEach
diff --git
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutorTest.java
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutorTest.java
index 85e03d65583..baf87a324d5 100644
---
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutorTest.java
+++
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutorTest.java
@@ -44,6 +44,7 @@ import
org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.metadata.persist.MetaDataPersistService;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory;
+import org.apache.shardingsphere.mode.spi.PersistRepository;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.item.ProjectionsSegment;
@@ -111,7 +112,7 @@ class ProxySQLExecutorTest {
when(metaData.getGlobalRuleMetaData()).thenReturn(new
RuleMetaData(Arrays.asList(mock(SQLFederationRule.class), transactionRule)));
ComputeNodeInstanceContext computeNodeInstanceContext =
mock(ComputeNodeInstanceContext.class);
when(computeNodeInstanceContext.getModeConfiguration()).thenReturn(mock(ModeConfiguration.class));
- ContextManager contextManager = new
ContextManager(MetaDataContextsFactory.create(mock(MetaDataPersistService.class),
metaData), computeNodeInstanceContext);
+ ContextManager contextManager = new
ContextManager(MetaDataContextsFactory.create(mock(MetaDataPersistService.class),
metaData), computeNodeInstanceContext, mock(PersistRepository.class));
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
}
diff --git
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/context/ProxyContextTest.java
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/context/ProxyContextTest.java
index 14aed7658d9..2951a46c86e 100644
---
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/context/ProxyContextTest.java
+++
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/context/ProxyContextTest.java
@@ -30,6 +30,7 @@ import
org.apache.shardingsphere.metadata.persist.MetaDataPersistService;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory;
+import org.apache.shardingsphere.mode.spi.PersistRepository;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -69,7 +70,7 @@ class ProxyContextTest {
@Test
void assertInit() {
MetaDataContexts metaDataContexts =
MetaDataContextsFactory.create(mock(MetaDataPersistService.class), new
ShardingSphereMetaData());
- ProxyContext.init(new ContextManager(metaDataContexts,
mock(ComputeNodeInstanceContext.class, RETURNS_DEEP_STUBS)));
+ ProxyContext.init(new ContextManager(metaDataContexts,
mock(ComputeNodeInstanceContext.class, RETURNS_DEEP_STUBS),
mock(PersistRepository.class)));
assertThat(ProxyContext.getInstance().getContextManager().getStateContext(),
is(ProxyContext.getInstance().getContextManager().getStateContext()));
assertThat(ProxyContext.getInstance().getContextManager().getStateContext().getCurrentClusterState(),
is(ClusterState.OK));
assertThat(ProxyContext.getInstance().getContextManager().getMetaDataContexts(),
is(ProxyContext.getInstance().getContextManager().getMetaDataContexts()));
diff --git
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/DatabaseAdminQueryBackendHandlerTest.java
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/DatabaseAdminQueryBackendHandlerTest.java
index 41032471533..a2743076f67 100644
---
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/DatabaseAdminQueryBackendHandlerTest.java
+++
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/DatabaseAdminQueryBackendHandlerTest.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.proxy.backend.handler.admin;
import org.apache.shardingsphere.infra.config.mode.ModeConfiguration;
import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
+import
org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPILoader;
import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
import org.apache.shardingsphere.infra.instance.ComputeNodeInstanceContext;
import
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataMergedResult;
@@ -27,11 +28,11 @@ import
org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaData;
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
-import
org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPILoader;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.metadata.persist.MetaDataPersistService;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory;
+import org.apache.shardingsphere.mode.spi.PersistRepository;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import
org.apache.shardingsphere.proxy.backend.handler.admin.executor.DatabaseAdminQueryExecutor;
import
org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeaderBuilder;
@@ -117,6 +118,6 @@ class DatabaseAdminQueryBackendHandlerTest {
mock(RuleMetaData.class), new ConfigurationProperties(new
Properties()));
ComputeNodeInstanceContext computeNodeInstanceContext =
mock(ComputeNodeInstanceContext.class);
when(computeNodeInstanceContext.getModeConfiguration()).thenReturn(mock(ModeConfiguration.class));
- return new
ContextManager(MetaDataContextsFactory.create(mock(MetaDataPersistService.class),
metaData), computeNodeInstanceContext);
+ return new
ContextManager(MetaDataContextsFactory.create(mock(MetaDataPersistService.class),
metaData), computeNodeInstanceContext, mock(PersistRepository.class));
}
}
diff --git
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/QueryableRALBackendHandlerTest.java
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/QueryableRALBackendHandlerTest.java
index 316347ec114..b889c72c713 100644
---
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/QueryableRALBackendHandlerTest.java
+++
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/QueryableRALBackendHandlerTest.java
@@ -37,6 +37,7 @@ import
org.apache.shardingsphere.metadata.persist.MetaDataPersistService;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory;
+import org.apache.shardingsphere.mode.spi.PersistRepository;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import
org.apache.shardingsphere.proxy.backend.handler.distsql.DistSQLQueryBackendHandler;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
@@ -75,7 +76,7 @@ class QueryableRALBackendHandlerTest {
when(connectionSession.getDatabaseName()).thenReturn("unknown");
ComputeNodeInstanceContext computeNodeInstanceContext =
mock(ComputeNodeInstanceContext.class);
when(computeNodeInstanceContext.getModeConfiguration()).thenReturn(mock(ModeConfiguration.class));
- ContextManager contextManager = new ContextManager(metaDataContexts,
computeNodeInstanceContext);
+ ContextManager contextManager = new ContextManager(metaDataContexts,
computeNodeInstanceContext, mock(PersistRepository.class));
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
assertThrows(UnknownDatabaseException.class, () -> new
DistSQLQueryBackendHandler(mock(ExportDatabaseConfigurationStatement.class),
connectionSession).execute());
}
diff --git
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/SetDistVariableExecutorTest.java
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/SetDistVariableExecutorTest.java
index b4ac17556b9..37c543c9cd6 100644
---
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/SetDistVariableExecutorTest.java
+++
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/SetDistVariableExecutorTest.java
@@ -22,6 +22,7 @@ import
org.apache.shardingsphere.infra.config.mode.ModeConfiguration;
import org.apache.shardingsphere.infra.config.props.ConfigurationPropertyKey;
import
org.apache.shardingsphere.infra.config.props.temporary.TemporaryConfigurationPropertyKey;
import org.apache.shardingsphere.infra.database.mysql.type.MySQLDatabaseType;
+import
org.apache.shardingsphere.infra.exception.kernel.syntax.InvalidVariableValueException;
import org.apache.shardingsphere.infra.instance.ComputeNodeInstance;
import org.apache.shardingsphere.infra.instance.ComputeNodeInstanceContext;
import org.apache.shardingsphere.infra.instance.metadata.InstanceMetaData;
@@ -33,8 +34,8 @@ import
org.apache.shardingsphere.metadata.persist.MetaDataPersistService;
import
org.apache.shardingsphere.metadata.persist.service.config.global.PropertiesPersistService;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory;
+import org.apache.shardingsphere.mode.spi.PersistRepository;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
-import
org.apache.shardingsphere.infra.exception.kernel.syntax.InvalidVariableValueException;
import org.apache.shardingsphere.test.mock.AutoMockExtension;
import org.apache.shardingsphere.test.mock.StaticMockSettings;
import org.junit.jupiter.api.Test;
@@ -47,9 +48,9 @@ import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.jupiter.api.Assertions.assertInstanceOf;
import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
@ExtendWith(AutoMockExtension.class)
@StaticMockSettings(ProxyContext.class)
@@ -109,7 +110,8 @@ class SetDistVariableExecutorTest {
when(metaDataPersistService.getPropsService()).thenReturn(mock(PropertiesPersistService.class));
ContextManager result = new
ContextManager(MetaDataContextsFactory.create(metaDataPersistService, new
ShardingSphereMetaData()),
new ComputeNodeInstanceContext(new
ComputeNodeInstance(mock(InstanceMetaData.class)),
mock(WorkerIdGenerator.class),
- new ModeConfiguration("Standalone", null),
mock(LockContext.class), new EventBusContext()));
+ new ModeConfiguration("Standalone", null),
mock(LockContext.class), new EventBusContext()),
+ mock(PersistRepository.class));
return result;
}
}
diff --git
a/proxy/frontend/core/src/test/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactoryTest.java
b/proxy/frontend/core/src/test/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactoryTest.java
index 051917a5129..dda70c3a228 100644
---
a/proxy/frontend/core/src/test/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactoryTest.java
+++
b/proxy/frontend/core/src/test/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactoryTest.java
@@ -32,6 +32,7 @@ import
org.apache.shardingsphere.metadata.persist.data.ShardingSphereDataPersist
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory;
+import org.apache.shardingsphere.mode.spi.PersistRepository;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import org.apache.shardingsphere.test.mock.AutoMockExtension;
import org.apache.shardingsphere.test.mock.StaticMockSettings;
@@ -100,6 +101,6 @@ class FrontDatabaseProtocolTypeFactoryTest {
new ShardingSphereMetaData(databases,
mock(ResourceMetaData.class), mock(RuleMetaData.class), new
ConfigurationProperties(props)));
ComputeNodeInstanceContext computeNodeInstanceContext =
mock(ComputeNodeInstanceContext.class);
when(computeNodeInstanceContext.getModeConfiguration()).thenReturn(mock(ModeConfiguration.class));
- return new ContextManager(metaDataContexts,
computeNodeInstanceContext);
+ return new ContextManager(metaDataContexts,
computeNodeInstanceContext, mock(PersistRepository.class));
}
}
diff --git
a/proxy/frontend/core/src/test/java/org/apache/shardingsphere/proxy/frontend/state/impl/OKProxyStateTest.java
b/proxy/frontend/core/src/test/java/org/apache/shardingsphere/proxy/frontend/state/impl/OKProxyStateTest.java
index 58642175da7..81f6da4a516 100644
---
a/proxy/frontend/core/src/test/java/org/apache/shardingsphere/proxy/frontend/state/impl/OKProxyStateTest.java
+++
b/proxy/frontend/core/src/test/java/org/apache/shardingsphere/proxy/frontend/state/impl/OKProxyStateTest.java
@@ -32,6 +32,7 @@ import
org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.metadata.persist.MetaDataPersistService;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory;
+import org.apache.shardingsphere.mode.spi.PersistRepository;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.proxy.frontend.command.CommandExecutorTask;
@@ -96,7 +97,7 @@ class OKProxyStateTest {
when(metaData.getGlobalRuleMetaData()).thenReturn(new
RuleMetaData(Collections.singletonList(transactionRule)));
ComputeNodeInstanceContext computeNodeInstanceContext =
mock(ComputeNodeInstanceContext.class);
when(computeNodeInstanceContext.getModeConfiguration()).thenReturn(mock(ModeConfiguration.class));
- return new
ContextManager(MetaDataContextsFactory.create(mock(MetaDataPersistService.class),
metaData), computeNodeInstanceContext);
+ return new
ContextManager(MetaDataContextsFactory.create(mock(MetaDataPersistService.class),
metaData), computeNodeInstanceContext, mock(PersistRepository.class));
}
@SuppressWarnings({"unchecked", "SameParameterValue"})
diff --git
a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/PostgreSQLCommandExecuteEngineTest.java
b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/PostgreSQLCommandExecuteEngineTest.java
index 6a79626bfcf..0d7481105e7 100644
---
a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/PostgreSQLCommandExecuteEngineTest.java
+++
b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/PostgreSQLCommandExecuteEngineTest.java
@@ -28,6 +28,7 @@ import
org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.metadata.persist.MetaDataPersistService;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory;
+import org.apache.shardingsphere.mode.spi.PersistRepository;
import
org.apache.shardingsphere.proxy.backend.connector.ProxyDatabaseConnectionManager;
import
org.apache.shardingsphere.proxy.backend.connector.jdbc.connection.ResourceLock;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
@@ -122,7 +123,8 @@ class PostgreSQLCommandExecuteEngineTest {
PostgreSQLCommandExecuteEngine commandExecuteEngine = new
PostgreSQLCommandExecuteEngine();
ComputeNodeInstanceContext computeNodeInstanceContext =
mock(ComputeNodeInstanceContext.class);
when(computeNodeInstanceContext.getModeConfiguration()).thenReturn(mock(ModeConfiguration.class));
- ContextManager contextManager = new
ContextManager(MetaDataContextsFactory.create(mock(MetaDataPersistService.class),
new ShardingSphereMetaData()), computeNodeInstanceContext);
+ ContextManager contextManager = new
ContextManager(MetaDataContextsFactory.create(mock(MetaDataPersistService.class),
+ new ShardingSphereMetaData()), computeNodeInstanceContext,
mock(PersistRepository.class));
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
commandExecuteEngine.writeQueryData(channelHandlerContext,
databaseConnectionManager, queryCommandExecutor, 0);
verify(resourceLock).doAwait(channelHandlerContext);
diff --git
a/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/registrycenter/repository/PipelineGovernanceFacadeTest.java
b/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/registrycenter/repository/PipelineGovernanceFacadeTest.java
index c53465661d1..11269eecbc9 100644
---
a/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/registrycenter/repository/PipelineGovernanceFacadeTest.java
+++
b/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/registrycenter/repository/PipelineGovernanceFacadeTest.java
@@ -191,7 +191,7 @@ class PipelineGovernanceFacadeTest {
private ClusterPersistRepository getClusterPersistRepository() {
ContextManager contextManager =
PipelineContextManager.getContext(PipelineContextUtils.getContextKey()).getContextManager();
- return (ClusterPersistRepository)
contextManager.getMetaDataContexts().getPersistService().getRepository();
+ return (ClusterPersistRepository) contextManager.getRepository();
}
private MigrationJobItemContext mockJobItemContext() {
diff --git
a/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/util/PipelineContextUtils.java
b/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/util/PipelineContextUtils.java
index ffed5f0061c..c744d85ca0a 100644
---
a/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/util/PipelineContextUtils.java
+++
b/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/util/PipelineContextUtils.java
@@ -35,8 +35,6 @@ import
org.apache.shardingsphere.data.pipeline.core.job.progress.config.Pipeline
import
org.apache.shardingsphere.data.pipeline.core.job.progress.config.yaml.config.YamlPipelineProcessConfiguration;
import
org.apache.shardingsphere.data.pipeline.core.job.progress.config.yaml.config.YamlPipelineReadConfiguration;
import
org.apache.shardingsphere.data.pipeline.core.job.progress.config.yaml.swapper.YamlPipelineProcessConfigurationSwapper;
-import
org.apache.shardingsphere.infra.metadata.caseinsensitive.CaseInsensitiveIdentifier;
-import
org.apache.shardingsphere.infra.metadata.caseinsensitive.CaseInsensitiveQualifiedTable;
import
org.apache.shardingsphere.data.pipeline.core.metadata.model.PipelineColumnMetaData;
import
org.apache.shardingsphere.data.pipeline.core.preparer.datasource.param.CreateTableConfiguration;
import
org.apache.shardingsphere.data.pipeline.core.ratelimit.JobRateLimitAlgorithm;
@@ -53,6 +51,8 @@ import
org.apache.shardingsphere.infra.database.core.metadata.database.DialectDa
import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeRegistry;
import org.apache.shardingsphere.infra.datanode.DataNode;
import org.apache.shardingsphere.infra.instance.metadata.InstanceType;
+import
org.apache.shardingsphere.infra.metadata.caseinsensitive.CaseInsensitiveIdentifier;
+import
org.apache.shardingsphere.infra.metadata.caseinsensitive.CaseInsensitiveQualifiedTable;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereColumn;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
@@ -107,7 +107,7 @@ public final class PipelineContextUtils {
ContextManager contextManager = getContextManager(rootConfig);
ClusterPersistRepository persistRepository =
getClusterPersistRepository((ClusterPersistRepositoryConfiguration)
modeConfig.getRepository());
MetaDataContexts metaDataContexts =
renewMetaDataContexts(contextManager.getMetaDataContexts(), new
MetaDataPersistService(persistRepository));
- PipelineContext pipelineContext = new PipelineContext(modeConfig, new
ContextManager(metaDataContexts,
contextManager.getComputeNodeInstanceContext()));
+ PipelineContext pipelineContext = new PipelineContext(modeConfig, new
ContextManager(metaDataContexts,
contextManager.getComputeNodeInstanceContext(),
contextManager.getRepository()));
PipelineContextManager.putContext(contextKey, pipelineContext);
}
diff --git
a/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/util/PipelineDistributedBarrierTest.java
b/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/util/PipelineDistributedBarrierTest.java
index 385bfca89c8..6ba3a30551d 100644
---
a/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/util/PipelineDistributedBarrierTest.java
+++
b/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/core/util/PipelineDistributedBarrierTest.java
@@ -44,7 +44,7 @@ class PipelineDistributedBarrierTest {
void assertRegisterAndRemove() throws ReflectiveOperationException {
String jobId =
JobConfigurationBuilder.createYamlMigrationJobConfiguration().getJobId();
PipelineContextKey contextKey = PipelineContextUtils.getContextKey();
- PersistRepository repository =
PipelineContextManager.getContext(contextKey).getContextManager().getMetaDataContexts().getPersistService().getRepository();
+ PersistRepository repository =
PipelineContextManager.getContext(contextKey).getContextManager().getRepository();
repository.persist(PipelineMetaDataNode.getJobRootPath(jobId), "");
PipelineDistributedBarrier instance =
PipelineDistributedBarrier.getInstance(contextKey);
String parentPath = "/barrier";
@@ -60,7 +60,7 @@ class PipelineDistributedBarrierTest {
void assertAwait() {
String jobId =
JobConfigurationBuilder.createYamlMigrationJobConfiguration().getJobId();
PipelineContextKey contextKey = PipelineContextUtils.getContextKey();
- PersistRepository repository =
PipelineContextManager.getContext(contextKey).getContextManager().getMetaDataContexts().getPersistService().getRepository();
+ PersistRepository repository =
PipelineContextManager.getContext(contextKey).getContextManager().getRepository();
repository.persist(PipelineMetaDataNode.getJobRootPath(jobId), "");
PipelineDistributedBarrier instance =
PipelineDistributedBarrier.getInstance(contextKey);
String barrierEnablePath =
PipelineMetaDataNode.getJobBarrierEnablePath(jobId);
diff --git
a/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/scenario/migration/check/consistency/MigrationDataConsistencyCheckerTest.java
b/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/scenario/migration/check/consistency/MigrationDataConsistencyCheckerTest.java
index 02d6722a8a1..8ea69409aea 100644
---
a/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/scenario/migration/check/consistency/MigrationDataConsistencyCheckerTest.java
+++
b/test/it/pipeline/src/test/java/org/apache/shardingsphere/test/it/data/pipeline/scenario/migration/check/consistency/MigrationDataConsistencyCheckerTest.java
@@ -72,7 +72,7 @@ class MigrationDataConsistencyCheckerTest {
private ClusterPersistRepository getClusterPersistRepository() {
ContextManager contextManager =
PipelineContextManager.getContext(PipelineContextUtils.getContextKey()).getContextManager();
- return (ClusterPersistRepository)
contextManager.getMetaDataContexts().getPersistService().getRepository();
+ return (ClusterPersistRepository) contextManager.getRepository();
}
private ConsistencyCheckJobItemProgressContext
createConsistencyCheckJobItemProgressContext(final String jobId) {