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 <zhangli...@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();