You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2022/07/14 12:17:59 UTC
[shardingsphere] branch master updated: Refactor MetaDataContexts.metaData from optional to required (#19162)
This is an automated email from the ASF dual-hosted git repository.
panjuan 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 dd35e083cf9 Refactor MetaDataContexts.metaData from optional to required (#19162)
dd35e083cf9 is described below
commit dd35e083cf972fba37be328ff9dc608e7f68ebff
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Thu Jul 14 20:17:53 2022 +0800
Refactor MetaDataContexts.metaData from optional to required (#19162)
---
.../jdbc/core/connection/ConnectionManager.java | 8 ++++----
.../jdbc/core/connection/ConnectionManagerTest.java | 3 +--
.../data/pipeline/core/api/PipelineAPIFactory.java | 9 +--------
.../shardingsphere/mode/manager/ContextManager.java | 20 ++++++++++----------
.../mode/metadata/MetaDataContexts.java | 14 --------------
.../mode/manager/ContextManagerTest.java | 12 ++++++------
.../cluster/ClusterContextManagerBuilder.java | 2 +-
.../ClusterContextManagerCoordinatorTest.java | 3 +--
.../StandaloneContextManagerBuilderTextTest.java | 4 +---
.../ShowReadwriteSplittingReadResourcesHandler.java | 2 +-
.../ral/updatable/AlterSQLParserRuleHandler.java | 2 +-
.../ral/updatable/AlterTrafficRuleHandler.java | 2 +-
.../ral/updatable/AlterTransactionRuleHandler.java | 2 +-
.../ral/updatable/CreateTrafficRuleHandler.java | 2 +-
.../ral/updatable/DropTrafficRuleHandler.java | 2 +-
.../ImportDatabaseConfigurationHandler.java | 2 +-
.../distsql/ral/updatable/LabelInstanceHandler.java | 2 +-
.../SetReadwriteSplittingStatusHandler.java | 14 +++-----------
.../distsql/ral/updatable/SetVariableHandler.java | 10 ++++------
.../ral/updatable/UnlabelInstanceHandler.java | 4 ++--
.../rdl/rule/RuleDefinitionBackendHandler.java | 14 ++++++--------
.../ral/updatable/SetVariableExecutorTest.java | 3 ++-
22 files changed, 50 insertions(+), 86 deletions(-)
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/connection/ConnectionManager.java b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/connection/ConnectionManager.java
index 059b9a61e7d..38d0ecf8ff9 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/connection/ConnectionManager.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/connection/ConnectionManager.java
@@ -85,14 +85,14 @@ public final class ConnectionManager implements ExecutorJDBCConnectionManager, A
private Map<String, DataSource> getTrafficDataSourceMap(final String schema, final ContextManager contextManager) {
TrafficRule trafficRule = contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getSingleRule(TrafficRule.class);
- Optional<MetaDataPersistService> metaDataPersistService = contextManager.getMetaDataContexts().getPersistService();
- if (trafficRule.getStrategyRules().isEmpty() || !metaDataPersistService.isPresent()) {
+ MetaDataPersistService persistService = contextManager.getMetaDataContexts().getPersistService();
+ if (trafficRule.getStrategyRules().isEmpty()) {
return Collections.emptyMap();
}
- Map<String, DataSourceProperties> dataSourcePropsMap = metaDataPersistService.get().getDataSourceService().load(schema);
+ Map<String, DataSourceProperties> dataSourcePropsMap = persistService.getDataSourceService().load(schema);
Preconditions.checkState(!dataSourcePropsMap.isEmpty(), "Can not get data source properties from meta data.");
DataSourceProperties dataSourcePropsSample = dataSourcePropsMap.values().iterator().next();
- Collection<ShardingSphereUser> users = metaDataPersistService.get().getGlobalRuleService().loadUsers();
+ Collection<ShardingSphereUser> users = persistService.getGlobalRuleService().loadUsers();
Collection<InstanceMetaData> instances = contextManager.getInstanceContext().getComputeNodeInstances(InstanceType.PROXY, trafficRule.getLabels());
return DataSourcePoolCreator.create(createDataSourcePropertiesMap(instances, users, dataSourcePropsSample, schema));
}
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/connection/ConnectionManagerTest.java b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/connection/ConnectionManagerTest.java
index 5590e84cd4a..748e088b9a4 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/connection/ConnectionManagerTest.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/connection/ConnectionManagerTest.java
@@ -47,7 +47,6 @@ import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-import java.util.Optional;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
@@ -86,7 +85,7 @@ public final class ConnectionManagerTest {
Map<String, DataSource> dataSourceMap = mockDataSourceMap();
MetaDataPersistService persistService = mockMetaDataPersistService();
when(result.getDataSourceMap(DefaultDatabase.LOGIC_NAME)).thenReturn(dataSourceMap);
- when(result.getMetaDataContexts().getPersistService()).thenReturn(Optional.of(persistService));
+ when(result.getMetaDataContexts().getPersistService()).thenReturn(persistService);
ShardingSphereRuleMetaData globalRuleMetaData = mock(ShardingSphereRuleMetaData.class);
when(result.getMetaDataContexts().getMetaData().getGlobalRuleMetaData()).thenReturn(globalRuleMetaData);
when(globalRuleMetaData.getSingleRule(TransactionRule.class)).thenReturn(mock(TransactionRule.class, RETURNS_DEEP_STUBS));
diff --git a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/api/PipelineAPIFactory.java b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/api/PipelineAPIFactory.java
index 4e1da7e835d..29c30aecf6a 100644
--- a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/api/PipelineAPIFactory.java
+++ b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/api/PipelineAPIFactory.java
@@ -33,12 +33,9 @@ import org.apache.shardingsphere.elasticjob.lite.lifecycle.api.JobOperateAPI;
import org.apache.shardingsphere.elasticjob.lite.lifecycle.api.JobStatisticsAPI;
import org.apache.shardingsphere.elasticjob.reg.base.CoordinatorRegistryCenter;
import org.apache.shardingsphere.infra.config.mode.ModeConfiguration;
-import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
import org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository;
import org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepositoryConfiguration;
-import java.util.Optional;
-
/**
* Pipeline API factory.
*/
@@ -49,11 +46,7 @@ public final class PipelineAPIFactory {
@Override
protected GovernanceRepositoryAPI initialize() {
- Optional<MetaDataPersistService> persistService = PipelineContext.getContextManager().getMetaDataContexts().getPersistService();
- if (!persistService.isPresent()) {
- throw new RuntimeException("persistService is not present");
- }
- return new GovernanceRepositoryAPIImpl((ClusterPersistRepository) persistService.get().getRepository());
+ return new GovernanceRepositoryAPIImpl((ClusterPersistRepository) PipelineContext.getContextManager().getMetaDataContexts().getPersistService().getRepository());
}
};
diff --git a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
index 8885331bd92..27284c44576 100644
--- a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
+++ b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
@@ -110,7 +110,7 @@ public final class ContextManager implements AutoCloseable {
DatabaseType protocolType = DatabaseTypeEngine.getProtocolType(Collections.emptyMap(), metaDataContexts.getMetaData().getProps());
metaDataContexts.getMetaData().addDatabase(databaseName, protocolType);
metaDataContexts.getOptimizerContext().addDatabase(databaseName, protocolType);
- metaDataContexts.getPersistService().ifPresent(optional -> optional.getDatabaseMetaDataService().persistDatabase(databaseName));
+ metaDataContexts.getPersistService().getDatabaseMetaDataService().persistDatabase(databaseName);
}
/**
@@ -124,7 +124,7 @@ public final class ContextManager implements AutoCloseable {
}
metaDataContexts.getMetaData().dropDatabase(databaseName);
metaDataContexts.getOptimizerContext().dropDatabase(databaseName);
- metaDataContexts.getPersistService().ifPresent(optional -> optional.getDatabaseMetaDataService().deleteDatabase(databaseName));
+ metaDataContexts.getPersistService().getDatabaseMetaDataService().deleteDatabase(databaseName);
}
/**
@@ -208,7 +208,7 @@ public final class ContextManager implements AutoCloseable {
metaDataContexts.getMetaData().getGlobalRuleMetaData().findRules(ResourceHeldRule.class).forEach(each -> each.addResource(metaDataContexts.getMetaData().getDatabases().get(databaseName)));
metaDataContexts.getOptimizerContext().alterDatabase(metaDataContexts.getMetaData().getDatabases().get(databaseName), metaDataContexts.getMetaData().getGlobalRuleMetaData());
persistMetaData(metaDataContexts);
- metaDataContexts.getPersistService().ifPresent(optional -> optional.getDataSourceService().append(databaseName, toBeUpdatedDataSourcePropsMap));
+ metaDataContexts.getPersistService().getDataSourceService().append(databaseName, toBeUpdatedDataSourcePropsMap);
switchingResource.closeStaleDataSources();
}
@@ -224,7 +224,7 @@ public final class ContextManager implements AutoCloseable {
for (String each : toBeDroppedResourceNames) {
dataSourceMap.remove(each);
}
- metaDataContexts.getPersistService().ifPresent(optional -> optional.getDataSourceService().drop(databaseName, toBeDroppedResourceNames));
+ metaDataContexts.getPersistService().getDataSourceService().drop(databaseName, toBeDroppedResourceNames);
}
/**
@@ -319,7 +319,7 @@ public final class ContextManager implements AutoCloseable {
}
private MetaDataContexts newMetaDataContexts(final ShardingSphereMetaData metaData, final OptimizerContext optimizerContext) {
- return new MetaDataContexts(metaDataContexts.getPersistService().orElse(null), metaData, optimizerContext);
+ return new MetaDataContexts(metaDataContexts.getPersistService(), metaData, optimizerContext);
}
/**
@@ -364,7 +364,7 @@ public final class ContextManager implements AutoCloseable {
MetaDataContexts reloadedMetaDataContexts = createMetaDataContexts(databaseName, switchingResource, null);
Map<String, ShardingSphereSchema> toBeDeletedSchemas = getToBeDeletedSchemas(reloadedMetaDataContexts.getMetaData().getDatabases().get(databaseName));
metaDataContexts = reloadedMetaDataContexts;
- toBeDeletedSchemas.keySet().forEach(each -> reloadedMetaDataContexts.getPersistService().ifPresent(optional -> optional.getDatabaseMetaDataService().deleteSchema(databaseName, each)));
+ toBeDeletedSchemas.keySet().forEach(each -> reloadedMetaDataContexts.getPersistService().getDatabaseMetaDataService().deleteSchema(databaseName, each));
persistMetaData(reloadedMetaDataContexts);
} catch (final SQLException ex) {
log.error("Reload database: {} failed", databaseName, ex);
@@ -378,7 +378,7 @@ public final class ContextManager implements AutoCloseable {
private void persistMetaData(final MetaDataContexts metaDataContexts) {
metaDataContexts.getMetaData().getDatabases().forEach((databaseName, schemas) -> schemas.getSchemas()
- .forEach((schemaName, tables) -> metaDataContexts.getPersistService().ifPresent(optional -> optional.getDatabaseMetaDataService().persistMetaData(databaseName, schemaName, tables))));
+ .forEach((schemaName, tables) -> metaDataContexts.getPersistService().getDatabaseMetaDataService().persistMetaData(databaseName, schemaName, tables)));
}
/**
@@ -393,10 +393,10 @@ public final class ContextManager implements AutoCloseable {
ShardingSphereSchema reloadedSchema = loadSchema(databaseName, schemaName, dataSourceName);
if (null == reloadedSchema) {
metaDataContexts.getMetaData().getDatabases().get(databaseName).getSchemas().remove(schemaName);
- metaDataContexts.getPersistService().ifPresent(optional -> optional.getDatabaseMetaDataService().deleteSchema(databaseName, schemaName));
+ metaDataContexts.getPersistService().getDatabaseMetaDataService().deleteSchema(databaseName, schemaName);
} else {
metaDataContexts.getMetaData().getDatabases().get(databaseName).getSchemas().put(schemaName, reloadedSchema);
- metaDataContexts.getPersistService().ifPresent(optional -> optional.getDatabaseMetaDataService().persistMetaData(databaseName, schemaName, reloadedSchema));
+ metaDataContexts.getPersistService().getDatabaseMetaDataService().persistMetaData(databaseName, schemaName, reloadedSchema);
}
} catch (final SQLException ex) {
log.error("Reload meta data of database: {} schema: {} with data source: {} failed", databaseName, schemaName, dataSourceName, ex);
@@ -453,7 +453,7 @@ public final class ContextManager implements AutoCloseable {
ShardingSphereSchema schema = GenericSchemaBuilder.build(Collections.singletonList(tableName), materials).getOrDefault(schemaName, new ShardingSphereSchema());
if (schema.containsTable(tableName)) {
database.getSchemas().get(schemaName).put(tableName, schema.get(tableName));
- metaDataContexts.getPersistService().ifPresent(optional -> optional.getDatabaseMetaDataService().persistMetaData(databaseName, schemaName, database.getSchemas().get(schemaName)));
+ metaDataContexts.getPersistService().getDatabaseMetaDataService().persistMetaData(databaseName, schemaName, database.getSchemas().get(schemaName));
}
}
diff --git a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContexts.java b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContexts.java
index b83edfd4528..16093035756 100644
--- a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContexts.java
+++ b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContexts.java
@@ -24,8 +24,6 @@ import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.infra.rule.identifier.type.ResourceHeldRule;
import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
-import java.util.Optional;
-
/**
* Meta data contexts.
*/
@@ -39,20 +37,8 @@ public final class MetaDataContexts implements AutoCloseable {
private final OptimizerContext optimizerContext;
- /**
- * Get persist service.
- *
- * @return persist service
- */
- public Optional<MetaDataPersistService> getPersistService() {
- return Optional.ofNullable(persistService);
- }
-
@Override
public void close() throws Exception {
- if (null != persistService) {
- persistService.getRepository().close();
- }
metaData.getGlobalRuleMetaData().findRules(ResourceHeldRule.class).forEach(ResourceHeldRule::closeStaleResource);
metaData.getDatabases().values().forEach(each -> each.getRuleMetaData().findRules(ResourceHeldRule.class).forEach(ResourceHeldRule::closeStaleResource));
}
diff --git a/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java b/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
index 696ef40facf..9a763394b7b 100644
--- a/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
+++ b/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
@@ -218,7 +218,7 @@ public final class ContextManagerTest {
databases.put("foo_db", new ShardingSphereDatabase("foo_db", new MySQLDatabaseType(), resource, mock(ShardingSphereRuleMetaData.class), Collections.emptyMap()));
when(metaDataContexts.getMetaData().getDatabases()).thenReturn(databases);
when(metaDataContexts.getMetaData().getGlobalRuleMetaData()).thenReturn(new ShardingSphereRuleMetaData(Collections.emptyList()));
- when(metaDataContexts.getPersistService()).thenReturn(Optional.of(mock(MetaDataPersistService.class, RETURNS_DEEP_STUBS)));
+ when(metaDataContexts.getPersistService()).thenReturn(mock(MetaDataPersistService.class, RETURNS_DEEP_STUBS));
// TODO TransactionRule is global rule, do not use it in database rule test
RuleConfiguration ruleConfig = new TransactionRuleConfiguration("LOCAL", null, new Properties());
contextManager.alterRuleConfiguration("foo_db", Collections.singleton(ruleConfig));
@@ -271,9 +271,9 @@ public final class ContextManagerTest {
public void assertReloadDatabase() {
when(metaDataContexts.getMetaData().getDatabases().get("foo_db").getResource().getDataSources()).thenReturn(Collections.singletonMap("foo_ds", new MockedDataSource()));
DatabaseMetaDataPersistService databaseMetaDataPersistService = mock(DatabaseMetaDataPersistService.class, RETURNS_DEEP_STUBS);
- MetaDataPersistService metaDataPersistService = mock(MetaDataPersistService.class);
- when(metaDataPersistService.getDatabaseMetaDataService()).thenReturn(databaseMetaDataPersistService);
- when(metaDataContexts.getPersistService()).thenReturn(Optional.of(metaDataPersistService));
+ MetaDataPersistService persistService = mock(MetaDataPersistService.class);
+ when(persistService.getDatabaseMetaDataService()).thenReturn(databaseMetaDataPersistService);
+ when(metaDataContexts.getPersistService()).thenReturn(persistService);
contextManager.reloadDatabase("foo_db");
verify(databaseMetaDataPersistService, times(1)).deleteSchema(eq("foo_db"), eq("foo_schema"));
verify(databaseMetaDataPersistService, times(1)).persistMetaData(eq("foo_db"), eq("foo_db"), any(ShardingSphereSchema.class));
@@ -282,8 +282,8 @@ public final class ContextManagerTest {
@Test
public void assertReloadTable() {
when(metaDataContexts.getMetaData().getDatabases().get("foo_db").getResource().getDataSources()).thenReturn(Collections.singletonMap("foo_ds", new MockedDataSource()));
- MetaDataPersistService metaDataPersistService = mock(MetaDataPersistService.class);
- when(metaDataContexts.getPersistService()).thenReturn(Optional.of(metaDataPersistService));
+ MetaDataPersistService persistService = mock(MetaDataPersistService.class);
+ when(metaDataContexts.getPersistService()).thenReturn(persistService);
contextManager.reloadTable("foo_db", "foo_schema", "foo_table");
assertTrue(contextManager.getMetaDataContexts().getMetaData().getDatabases().get("foo_db").getResource().getDataSources().containsKey("foo_ds"));
}
diff --git a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
index c233ac1b4a9..e7fccb980ef 100644
--- a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
+++ b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
@@ -109,7 +109,7 @@ public final class ClusterContextManagerBuilder implements ContextManagerBuilder
private void persistMetaData(final MetaDataContexts metaDataContexts) {
metaDataContexts.getMetaData().getDatabases().forEach((databaseName, schemas) -> schemas.getSchemas()
- .forEach((schemaName, tables) -> metaDataContexts.getPersistService().ifPresent(optional -> optional.getDatabaseMetaDataService().persistMetaData(databaseName, schemaName, tables))));
+ .forEach((schemaName, tables) -> metaDataContexts.getPersistService().getDatabaseMetaDataService().persistMetaData(databaseName, schemaName, tables)));
}
private InstanceContext buildInstanceContext(final RegistryCenter registryCenter, final InstanceMetaData instanceMetaData, final ModeConfiguration modeConfig) {
diff --git a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinatorTest.java b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinatorTest.java
index 5ec0a8e0dde..62fff7ebbe2 100644
--- a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinatorTest.java
+++ b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinatorTest.java
@@ -137,8 +137,7 @@ public final class ClusterContextManagerCoordinatorTest {
@Before
public void setUp() throws SQLException {
contextManager = new ClusterContextManagerBuilder().build(createContextManagerBuilderParameter());
- assertTrue(contextManager.getMetaDataContexts().getPersistService().isPresent());
- contextManager.renewMetaDataContexts(new MetaDataContexts(contextManager.getMetaDataContexts().getPersistService().get(),
+ contextManager.renewMetaDataContexts(new MetaDataContexts(contextManager.getMetaDataContexts().getPersistService(),
new ShardingSphereMetaData(createDatabases(), contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData(), new ConfigurationProperties(new Properties())),
createOptimizerContext()));
coordinator = new ClusterContextManagerCoordinator(persistService, new RegistryCenter(mock(ClusterPersistRepository.class), new EventBusContext()), contextManager);
diff --git a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-standalone-mode/shardingsphere-standalone-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/StandaloneContextManagerBuilderTextTest.java b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-standalone-mode/shardingsphere-standalone-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/StandaloneContextManagerBuilderTextTest.java
index 2911ac563bb..26b3b5cf9ed 100644
--- a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-standalone-mode/shardingsphere-standalone-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/StandaloneContextManagerBuilderTextTest.java
+++ b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-standalone-mode/shardingsphere-standalone-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/StandaloneContextManagerBuilderTextTest.java
@@ -39,7 +39,6 @@ import java.util.Properties;
import java.util.UUID;
import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
public final class StandaloneContextManagerBuilderTextTest {
@@ -48,8 +47,7 @@ public final class StandaloneContextManagerBuilderTextTest {
public void assertBuild() throws SQLException {
ContextManager actual = new StandaloneContextManagerBuilder().build(createContextManagerBuilderParameter());
assertNotNull(actual.getMetaDataContexts().getMetaData().getDatabases().get("foo_db"));
- assertTrue(actual.getMetaDataContexts().getPersistService().isPresent());
- PersistRepository repository = actual.getMetaDataContexts().getPersistService().get().getRepository();
+ PersistRepository repository = actual.getMetaDataContexts().getPersistService().getRepository();
assertNotNull(repository.get(GlobalNode.getGlobalRuleNode()));
assertNotNull(repository.get(DatabaseMetaDataNode.getMetaDataDataSourcePath("foo_db", "0")));
assertNotNull(repository.get(DatabaseMetaDataNode.getRulePath("foo_db", "0")));
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/queryable/ShowReadwriteSplittingReadResourcesHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/queryable/ShowReadwriteSplittingReadResourcesHandler.java
index 065191ee1ca..8380fc14164 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/queryable/ShowReadwriteSplittingReadResourcesHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/queryable/ShowReadwriteSplittingReadResourcesHandler.java
@@ -71,7 +71,7 @@ public final class ShowReadwriteSplittingReadResourcesHandler extends QueryableR
MetaDataContexts metaDataContexts = contextManager.getMetaDataContexts();
ShardingSphereDatabase database = metaDataContexts.getMetaData().getDatabases().get(databaseName);
Collection<String> allReadResources = getAllReadResources(database);
- Map<String, StorageNodeDataSource> persistentReadResources = getPersistentReadResources(databaseName, metaDataContexts.getPersistService().orElse(null));
+ Map<String, StorageNodeDataSource> persistentReadResources = getPersistentReadResources(databaseName, metaDataContexts.getPersistService());
return buildRows(allReadResources, persistentReadResources);
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/AlterSQLParserRuleHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/AlterSQLParserRuleHandler.java
index 721be67f3ff..cf0bdb61e71 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/AlterSQLParserRuleHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/AlterSQLParserRuleHandler.java
@@ -68,6 +68,6 @@ public final class AlterSQLParserRuleHandler extends UpdatableRALBackendHandler<
private void persistNewRuleConfigurations() {
MetaDataContexts metaDataContexts = ProxyContext.getInstance().getContextManager().getMetaDataContexts();
- metaDataContexts.getPersistService().ifPresent(optional -> optional.getGlobalRuleService().persist(metaDataContexts.getMetaData().getGlobalRuleMetaData().getConfigurations(), true));
+ metaDataContexts.getPersistService().getGlobalRuleService().persist(metaDataContexts.getMetaData().getGlobalRuleMetaData().getConfigurations(), true);
}
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/AlterTrafficRuleHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/AlterTrafficRuleHandler.java
index 405a6d1e5ae..75f5f06f569 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/AlterTrafficRuleHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/AlterTrafficRuleHandler.java
@@ -144,6 +144,6 @@ public final class AlterTrafficRuleHandler extends UpdatableRALBackendHandler<Al
private void persistNewRuleConfigurations() {
MetaDataContexts metaDataContexts = ProxyContext.getInstance().getContextManager().getMetaDataContexts();
- metaDataContexts.getPersistService().ifPresent(optional -> optional.getGlobalRuleService().persist(metaDataContexts.getMetaData().getGlobalRuleMetaData().getConfigurations(), true));
+ metaDataContexts.getPersistService().getGlobalRuleService().persist(metaDataContexts.getMetaData().getGlobalRuleMetaData().getConfigurations(), true);
}
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/AlterTransactionRuleHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/AlterTransactionRuleHandler.java
index e4373aa1d56..91a0f2c1a78 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/AlterTransactionRuleHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/AlterTransactionRuleHandler.java
@@ -58,6 +58,6 @@ public final class AlterTransactionRuleHandler extends UpdatableRALBackendHandle
private void persistNewRuleConfigurations() {
MetaDataContexts metaDataContexts = ProxyContext.getInstance().getContextManager().getMetaDataContexts();
- metaDataContexts.getPersistService().ifPresent(optional -> optional.getGlobalRuleService().persist(metaDataContexts.getMetaData().getGlobalRuleMetaData().getConfigurations(), true));
+ metaDataContexts.getPersistService().getGlobalRuleService().persist(metaDataContexts.getMetaData().getGlobalRuleMetaData().getConfigurations(), true);
}
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/CreateTrafficRuleHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/CreateTrafficRuleHandler.java
index 3c2fa978dcb..b40caeb435b 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/CreateTrafficRuleHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/CreateTrafficRuleHandler.java
@@ -126,6 +126,6 @@ public final class CreateTrafficRuleHandler extends UpdatableRALBackendHandler<C
private void persistNewRuleConfigurations() {
MetaDataContexts metaDataContexts = ProxyContext.getInstance().getContextManager().getMetaDataContexts();
- metaDataContexts.getPersistService().ifPresent(optional -> optional.getGlobalRuleService().persist(metaDataContexts.getMetaData().getGlobalRuleMetaData().getConfigurations(), true));
+ metaDataContexts.getPersistService().getGlobalRuleService().persist(metaDataContexts.getMetaData().getGlobalRuleMetaData().getConfigurations(), true);
}
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/DropTrafficRuleHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/DropTrafficRuleHandler.java
index 7bb828e5879..a0f6e74a0a9 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/DropTrafficRuleHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/DropTrafficRuleHandler.java
@@ -110,6 +110,6 @@ public final class DropTrafficRuleHandler extends UpdatableRALBackendHandler<Dro
private void persistNewRuleConfigurations() {
MetaDataContexts metaDataContexts = ProxyContext.getInstance().getContextManager().getMetaDataContexts();
- metaDataContexts.getPersistService().ifPresent(optional -> optional.getGlobalRuleService().persist(metaDataContexts.getMetaData().getGlobalRuleMetaData().getConfigurations(), true));
+ metaDataContexts.getPersistService().getGlobalRuleService().persist(metaDataContexts.getMetaData().getGlobalRuleMetaData().getConfigurations(), true);
}
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/ImportDatabaseConfigurationHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/ImportDatabaseConfigurationHandler.java
index 2843a88af7f..1eaa9a484c7 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/ImportDatabaseConfigurationHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/ImportDatabaseConfigurationHandler.java
@@ -171,6 +171,6 @@ public final class ImportDatabaseConfigurationHandler extends UpdatableRALBacken
}
database.getRuleMetaData().getConfigurations().addAll(ruleConfigs);
ProxyContext.getInstance().getContextManager().renewMetaDataContexts(metaDataContexts);
- metaDataContexts.getPersistService().ifPresent(optional -> optional.getDatabaseRulePersistService().persist(databaseName, ruleConfigs));
+ metaDataContexts.getPersistService().getDatabaseRulePersistService().persist(databaseName, ruleConfigs);
}
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/LabelInstanceHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/LabelInstanceHandler.java
index dae3cdc2042..91db18f1849 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/LabelInstanceHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/LabelInstanceHandler.java
@@ -38,7 +38,7 @@ public final class LabelInstanceHandler extends UpdatableRALBackendHandler<Label
@Override
public void update(final ContextManager contextManager) {
- MetaDataPersistService persistService = ProxyContext.getInstance().getContextManager().getMetaDataContexts().getPersistService().orElse(null);
+ MetaDataPersistService persistService = ProxyContext.getInstance().getContextManager().getMetaDataContexts().getPersistService();
if (null == persistService || null == persistService.getRepository() || persistService.getRepository() instanceof StandalonePersistRepository) {
throw new UnsupportedOperationException("Labels can only be added in cluster mode");
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/SetReadwriteSplittingStatusHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/SetReadwriteSplittingStatusHandler.java
index 2f9595e3b5e..60eb18ac3f4 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/SetReadwriteSplittingStatusHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/SetReadwriteSplittingStatusHandler.java
@@ -87,9 +87,6 @@ public final class SetReadwriteSplittingStatusHandler extends UpdatableRALBacken
if (!contextManager.getInstanceContext().isCluster()) {
throw new UnsupportedOperationException("Mode must be `Cluster`.");
}
- if (!contextManager.getMetaDataContexts().getPersistService().isPresent()) {
- throw new UnsupportedOperationException("Persistence must be configured");
- }
}
private void checkDatabaseName(final String databaseName) {
@@ -117,14 +114,9 @@ public final class SetReadwriteSplittingStatusHandler extends UpdatableRALBacken
}
private Map<String, String> getDisabledResources(final ContextManager contextManager, final String databaseName) {
- Optional<MetaDataPersistService> persistService = contextManager.getMetaDataContexts().getPersistService();
- Map<String, String> result = new HashMap<>();
- persistService.ifPresent(optional -> {
- Map<String, String> disableNodes = getDisabledStorageNodes(databaseName, optional).stream()
- .collect(Collectors.toMap(QualifiedDatabase::getDataSourceName, QualifiedDatabase::getGroupName, (value1, value2) -> String.join(",", value1, value2)));
- result.putAll(disableNodes);
- });
- return result;
+ MetaDataPersistService persistService = contextManager.getMetaDataContexts().getPersistService();
+ return getDisabledStorageNodes(databaseName, persistService).stream()
+ .collect(Collectors.toMap(QualifiedDatabase::getDataSourceName, QualifiedDatabase::getGroupName, (value1, value2) -> String.join(",", value1, value2)));
}
private void checkEnable(final ContextManager contextManager, final String databaseName, final Map<String, String> disabledResources, final String toBeEnabledResource) throws DistSQLException {
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/SetVariableHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/SetVariableHandler.java
index 9cc03b1883e..d9a0e82f544 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/SetVariableHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/SetVariableHandler.java
@@ -34,7 +34,6 @@ import org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.exception
import org.apache.shardingsphere.proxy.backend.util.SystemPropertyUtil;
import org.apache.shardingsphere.transaction.core.TransactionType;
-import java.util.Optional;
import java.util.Properties;
/**
@@ -65,19 +64,18 @@ public final class SetVariableHandler extends UpdatableRALBackendHandler<SetVari
private void handleConfigurationProperty(final ConfigurationPropertyKey propertyKey, final String value) {
ContextManager contextManager = ProxyContext.getInstance().getContextManager();
MetaDataContexts metaDataContexts = contextManager.getMetaDataContexts();
- Optional<MetaDataPersistService> metaDataPersistService = metaDataContexts.getPersistService();
+ MetaDataPersistService persistService = metaDataContexts.getPersistService();
Properties props = new Properties(metaDataContexts.getMetaData().getProps().getProps());
props.put(propertyKey.getKey(), getValue(propertyKey, value));
contextManager.alterProperties(props);
- if (metaDataPersistService.isPresent() && null != metaDataPersistService.get().getPropsService()) {
- metaDataPersistService.get().getPropsService().persist(props, true);
+ if (null != persistService.getPropsService()) {
+ persistService.getPropsService().persist(props, true);
}
}
private Object getValue(final ConfigurationPropertyKey propertyKey, final String value) {
try {
- TypedPropertyValue propertyValue = new TypedPropertyValue(propertyKey, value);
- return propertyValue.getValue();
+ return new TypedPropertyValue(propertyKey, value).getValue();
} catch (TypedPropertyValueException ex) {
throw new InvalidValueException(value);
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/UnlabelInstanceHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/UnlabelInstanceHandler.java
index 76fafd3fe18..a1c64c66e76 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/UnlabelInstanceHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/UnlabelInstanceHandler.java
@@ -40,8 +40,8 @@ public final class UnlabelInstanceHandler extends UpdatableRALBackendHandler<Unl
@Override
protected void update(final ContextManager contextManager) throws DistSQLException {
- MetaDataPersistService persistService = ProxyContext.getInstance().getContextManager().getMetaDataContexts().getPersistService().orElse(null);
- if (null == persistService || null == persistService.getRepository() || persistService.getRepository() instanceof StandalonePersistRepository) {
+ MetaDataPersistService persistService = ProxyContext.getInstance().getContextManager().getMetaDataContexts().getPersistService();
+ if (null == persistService.getRepository() || persistService.getRepository() instanceof StandalonePersistRepository) {
throw new UnsupportedOperationException("Labels can only be removed in cluster mode");
}
String instanceId = getSqlStatement().getInstanceId();
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/rule/RuleDefinitionBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/rule/RuleDefinitionBackendHandler.java
index e1b40e160ff..798545b0db4 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/rule/RuleDefinitionBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/rule/RuleDefinitionBackendHandler.java
@@ -150,14 +150,12 @@ public final class RuleDefinitionBackendHandler<T extends RuleDefinitionStatemen
private void prepareScaling(final ShardingSphereDatabase database, final T sqlStatement, final RuleDefinitionAlterUpdater<?, ?> updater, final RuleConfiguration currentRuleConfig,
final RuleDefinitionAlterPreprocessor<?> preprocessor) {
- Optional<MetaDataPersistService> metaDataPersistService = ProxyContext.getInstance().getContextManager().getMetaDataContexts().getPersistService();
- if (metaDataPersistService.isPresent()) {
- Optional<String> newVersion = metaDataPersistService.get().getDatabaseVersionPersistService().createNewVersion(database.getName());
- if (!newVersion.isPresent()) {
- throw new RuntimeException(String.format("Unable to get a new version for database: %s", database.getName()));
- }
- persistRuleConfigurationChange(metaDataPersistService.get(), newVersion.get(), database, currentRuleConfig, getAlteredRuleConfig(sqlStatement, updater, currentRuleConfig, preprocessor));
+ MetaDataPersistService persistService = ProxyContext.getInstance().getContextManager().getMetaDataContexts().getPersistService();
+ Optional<String> newVersion = persistService.getDatabaseVersionPersistService().createNewVersion(database.getName());
+ if (!newVersion.isPresent()) {
+ throw new RuntimeException(String.format("Unable to get a new version for database: %s", database.getName()));
}
+ persistRuleConfigurationChange(persistService, newVersion.get(), database, currentRuleConfig, getAlteredRuleConfig(sqlStatement, updater, currentRuleConfig, preprocessor));
}
private void persistRuleConfigurationChange(final MetaDataPersistService persistService, final String version, final ShardingSphereDatabase database,
@@ -170,7 +168,7 @@ public final class RuleDefinitionBackendHandler<T extends RuleDefinitionStatemen
}
private void persistRuleConfigurationChange(final String databaseName, final Collection<RuleConfiguration> alteredConfigs) {
- ProxyContext.getInstance().getContextManager().getMetaDataContexts().getPersistService().ifPresent(optional -> optional.getDatabaseRulePersistService().persist(databaseName, alteredConfigs));
+ ProxyContext.getInstance().getContextManager().getMetaDataContexts().getPersistService().getDatabaseRulePersistService().persist(databaseName, alteredConfigs);
}
private RuleConfiguration getAlteredRuleConfig(final T sqlStatement, final RuleDefinitionAlterUpdater updater,
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/SetVariableExecutorTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/SetVariableExecutorTest.java
index 84d0d470613..52cbe936677 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/SetVariableExecutorTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/updatable/SetVariableExecutorTest.java
@@ -23,6 +23,7 @@ import org.apache.shardingsphere.infra.federation.optimizer.context.OptimizerCon
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
+import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.proxy.backend.session.transaction.TransactionStatus;
@@ -70,7 +71,7 @@ public final class SetVariableExecutorTest extends ProxyContextRestorer {
@Test
public void assertExecuteWithConfigurationKey() throws SQLException {
- ContextManager contextManager = new ContextManager(new MetaDataContexts(null, new ShardingSphereMetaData(), mock(OptimizerContext.class)), null);
+ ContextManager contextManager = new ContextManager(new MetaDataContexts(mock(MetaDataPersistService.class), new ShardingSphereMetaData(), mock(OptimizerContext.class)), null);
ProxyContext.init(contextManager);
SetVariableStatement statement = new SetVariableStatement("proxy_frontend_flush_threshold", "1024");
SetVariableHandler handler = new SetVariableHandler();