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 <[email protected]>
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();