This is an automated email from the ASF dual-hosted git repository.
zhangliang 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 886b409897d Use ModePersistServiceFacade to instead of
PersistServiceBuilder (#34991)
886b409897d is described below
commit 886b409897d4638823af1d75b2a52af985261a15
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Mar 14 14:00:45 2025 +0800
Use ModePersistServiceFacade to instead of PersistServiceBuilder (#34991)
* Add ModePersistServiceFacade
* Add ModePersistServiceFacade
* Add ModePersistServiceFacade
* Add ModePersistServiceFacade
* Add ModePersistServiceFacade
* Add ModePersistServiceFacade
* Use ModePersistServiceFacade to instead of PersistServiceBuilder
* Use ModePersistServiceFacade to instead of PersistServiceBuilder
---
.../CreateBroadcastTableRuleExecutorTest.java | 6 +--
.../update/DropBroadcastTableRuleExecutorTest.java | 2 +-
.../update/AlterEncryptRuleExecutorTest.java | 4 +-
.../update/CreateEncryptRuleExecutorTest.java | 2 +-
.../update/DropEncryptRuleExecutorTest.java | 6 +--
.../handler/update/AlterMaskRuleExecutorTest.java | 2 +-
.../handler/update/CreateMaskRuleExecutorTest.java | 4 +-
.../handler/update/DropMaskRuleExecutorTest.java | 4 +-
.../database/type/AlterDatabaseRuleOperator.java | 2 +-
.../database/type/CreateDatabaseRuleOperator.java | 2 +-
.../database/type/DropDatabaseRuleOperator.java | 2 +-
.../global/GlobalRuleDefinitionExecuteEngine.java | 3 +-
.../rdl/resource/AlterStorageUnitExecutor.java | 2 +-
.../rdl/resource/RegisterStorageUnitExecutor.java | 2 +-
.../resource/UnregisterStorageUnitExecutor.java | 2 +-
.../UnregisterStorageUnitExecutorTest.java | 2 +-
.../reflect-config.json | 4 +-
.../executor/engine/DriverExecuteExecutor.java | 2 +-
.../jdbc/DriverJDBCPushDownExecuteExecutor.java | 2 +-
.../DriverJDBCPushDownExecuteUpdateExecutor.java | 2 +-
.../update/LoadSingleTableExecutorTest.java | 4 +-
...tDefaultSingleTableStorageUnitExecutorTest.java | 4 +-
.../mode/manager/ContextManager.java | 2 +-
.../mode/persist/PersistServiceFacade.java | 34 ++++---------
.../persist/mode/ModePersistServiceFacade.java} | 45 +++++++++--------
.../ModePersistServiceFacadeBuilder.java} | 20 +++-----
...Builder.java => ComputeNodePersistService.java} | 26 ++++------
...=> ModePersistServiceFacadeBuilderFixture.java} | 25 ++++------
.../mode/manager/ContextManagerTest.java | 5 +-
...e.persist.mode.ModePersistServiceFacadeBuilder} | 2 +-
mode/core/src/test/resources/logback-test.xml | 2 +-
.../cluster/ClusterContextManagerBuilder.java | 6 ++-
.../compute/type/ComputeNodeOnlineHandler.java | 4 +-
.../builder/ClusterPersistServiceBuilder.java | 47 ------------------
.../facade/ClusterPersistServiceFacade.java | 56 ++++++++++++++++++++++
.../ClusterPersistServiceFacadeBuilder.java} | 28 ++++-------
.../service/ClusterComputeNodePersistService.java} | 43 ++++++++---------
.../cluster/workerid/ClusterWorkerIdGenerator.java | 6 +--
...e.persist.mode.ModePersistServiceFacadeBuilder} | 2 +-
.../compute/type/ComputeNodeOnlineHandlerTest.java | 6 ++-
.../builder/ClusterPersistServiceBuilderTest.java | 46 ------------------
.../ClusterComputeNodePersistServiceTest.java} | 8 ++--
.../workerid/ClusterWorkerIdGeneratorTest.java | 4 +-
.../SessionConnectionReconnectListener.java | 6 +--
.../SessionConnectionReconnectListenerTest.java | 8 ++--
.../StandalonePersistServiceFacade.java} | 36 +++++++-------
.../StandalonePersistServiceFacadeBuilder.java} | 23 ++++-----
.../StandaloneComputeNodePersistService.java | 39 +++++++++++++++
...e.persist.mode.ModePersistServiceFacadeBuilder} | 2 +-
.../StandalonePersistServiceBuilderTest.java | 46 ------------------
.../connector/StandardDatabaseConnector.java | 4 +-
.../database/CreateDatabaseBackendHandler.java | 2 +-
.../database/DropDatabaseBackendHandler.java | 2 +-
.../computenode/ShowComputeNodesExecutor.java | 5 +-
.../computenode/SetComputeNodeStateExecutor.java | 8 +++-
.../updatable/label/LabelComputeNodeExecutor.java | 9 +++-
.../label/UnlabelComputeNodeExecutor.java | 9 +++-
.../variable/SetDistVariableExecutor.java | 2 +-
.../proxy/backend/util/MetaDataImportExecutor.java | 4 +-
.../YamlDatabaseConfigurationImportExecutor.java | 6 +--
.../distsql/DistSQLBackendHandlerFactoryTest.java | 2 +-
.../computenode/ShowComputeNodesExecutorTest.java | 31 +++++++-----
.../admin/executor/KillProcessExecutor.java | 2 +-
.../admin/executor/ShowProcessListExecutor.java | 2 +-
.../executor/ShowProcessListExecutorTest.java | 2 +-
.../update/GlobalRuleDefinitionExecutorTest.java | 2 +-
66 files changed, 332 insertions(+), 402 deletions(-)
diff --git
a/features/broadcast/distsql/handler/src/test/java/org/apache/shardingsphere/broadcast/distsql/handler/update/CreateBroadcastTableRuleExecutorTest.java
b/features/broadcast/distsql/handler/src/test/java/org/apache/shardingsphere/broadcast/distsql/handler/update/CreateBroadcastTableRuleExecutorTest.java
index f3636ae0ccc..f34df04c623 100644
---
a/features/broadcast/distsql/handler/src/test/java/org/apache/shardingsphere/broadcast/distsql/handler/update/CreateBroadcastTableRuleExecutorTest.java
+++
b/features/broadcast/distsql/handler/src/test/java/org/apache/shardingsphere/broadcast/distsql/handler/update/CreateBroadcastTableRuleExecutorTest.java
@@ -71,7 +71,7 @@ class CreateBroadcastTableRuleExecutorTest {
when(rule.getTables()).thenReturn(Collections.singleton("foo_tbl"));
ContextManager contextManager = mockContextManager(database, rule);
new DistSQLUpdateExecuteEngine(sqlStatement, "foo_db",
contextManager).executeUpdate();
- MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+ MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
verify(metaDataManagerPersistService).alterRuleConfiguration(any(),
ArgumentMatchers.<BroadcastRuleConfiguration>argThat(x ->
x.getTables().equals(new HashSet<>(Arrays.asList("foo_tbl", "bar_tbl")))));
}
@@ -84,7 +84,7 @@ class CreateBroadcastTableRuleExecutorTest {
when(rule.getTables()).thenReturn(Collections.singleton("foo_tbl"));
ContextManager contextManager = mockContextManager(database, rule);
new DistSQLUpdateExecuteEngine(sqlStatement, "foo_db",
contextManager).executeUpdate();
- MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+ MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
verify(metaDataManagerPersistService).alterRuleConfiguration(any(),
ArgumentMatchers.<BroadcastRuleConfiguration>argThat(x ->
x.getTables().equals(new HashSet<>(Arrays.asList("foo_tbl", "bar_tbl")))));
}
@@ -95,7 +95,7 @@ class CreateBroadcastTableRuleExecutorTest {
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
ContextManager contextManager = mockContextManager(database, null);
new DistSQLUpdateExecuteEngine(sqlStatement, "foo_db",
contextManager).executeUpdate();
- MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+ MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
verify(metaDataManagerPersistService).alterRuleConfiguration(any(),
ArgumentMatchers.<BroadcastRuleConfiguration>argThat(x ->
x.getTables().equals(new HashSet<>(Arrays.asList("foo_tbl", "bar_tbl")))));
}
diff --git
a/features/broadcast/distsql/handler/src/test/java/org/apache/shardingsphere/broadcast/distsql/handler/update/DropBroadcastTableRuleExecutorTest.java
b/features/broadcast/distsql/handler/src/test/java/org/apache/shardingsphere/broadcast/distsql/handler/update/DropBroadcastTableRuleExecutorTest.java
index 6dc737f322b..80a4df756d2 100644
---
a/features/broadcast/distsql/handler/src/test/java/org/apache/shardingsphere/broadcast/distsql/handler/update/DropBroadcastTableRuleExecutorTest.java
+++
b/features/broadcast/distsql/handler/src/test/java/org/apache/shardingsphere/broadcast/distsql/handler/update/DropBroadcastTableRuleExecutorTest.java
@@ -57,7 +57,7 @@ class DropBroadcastTableRuleExecutorTest {
when(rule.getConfiguration().getTables()).thenReturn(Collections.singleton("foo_tbl"));
ContextManager contextManager = mockContextManager(database, rule);
new DistSQLUpdateExecuteEngine(sqlStatement, "foo_db",
contextManager).executeUpdate();
- MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+ MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
verify(metaDataManagerPersistService).removeRuleConfiguration(database,
"broadcast");
}
diff --git
a/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/AlterEncryptRuleExecutorTest.java
b/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/AlterEncryptRuleExecutorTest.java
index c9d63d14b53..dfcbbd2d9ae 100644
---
a/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/AlterEncryptRuleExecutorTest.java
+++
b/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/AlterEncryptRuleExecutorTest.java
@@ -88,7 +88,7 @@ class AlterEncryptRuleExecutorTest {
when(rule.getAllTableNames()).thenReturn(Collections.singleton("t_encrypt"));
when(rule.getConfiguration()).thenReturn(createCurrentRuleConfiguration());
ContextManager contextManager = mockContextManager(rule);
- MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+ MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
new
DistSQLUpdateExecuteEngine(createSQLStatementWithAssistQueryAndLikeColumns(),
"foo_db", contextManager).executeUpdate();
metaDataManagerPersistService.removeRuleConfigurationItem(any(),
ArgumentMatchers.argThat(this::assertToBeDroppedRuleConfiguration));
metaDataManagerPersistService.alterRuleConfiguration(any(),
ArgumentMatchers.argThat(this::assertToBeAlteredRuleConfiguration));
@@ -101,7 +101,7 @@ class AlterEncryptRuleExecutorTest {
when(rule.getConfiguration()).thenReturn(createCurrentRuleConfiguration());
ContextManager contextManager = mockContextManager(rule);
new
DistSQLUpdateExecuteEngine(createSQLStatementWithoutAssistQueryAndLikeColumns(),
"foo_db", contextManager).executeUpdate();
- MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+ MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
metaDataManagerPersistService.removeRuleConfigurationItem(any(),
ArgumentMatchers.argThat(this::assertToBeDroppedRuleConfiguration));
metaDataManagerPersistService.alterRuleConfiguration(any(),
ArgumentMatchers.argThat(this::assertToBeAlteredRuleConfiguration));
}
diff --git
a/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/CreateEncryptRuleExecutorTest.java
b/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/CreateEncryptRuleExecutorTest.java
index f846b784cc1..b67d83154da 100644
---
a/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/CreateEncryptRuleExecutorTest.java
+++
b/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/CreateEncryptRuleExecutorTest.java
@@ -103,7 +103,7 @@ class CreateEncryptRuleExecutorTest {
CreateEncryptRuleStatement sqlStatement =
createAESEncryptRuleSQLStatement(true);
ContextManager contextManager = mockContextManager(rule);
new DistSQLUpdateExecuteEngine(sqlStatement, "foo_db",
contextManager).executeUpdate();
- MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+ MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
metaDataManagerPersistService.alterRuleConfiguration(any(),
ArgumentMatchers.argThat(this::assertIfNotExistsRuleConfiguration));
}
diff --git
a/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/DropEncryptRuleExecutorTest.java
b/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/DropEncryptRuleExecutorTest.java
index 8be14c436e4..d09534a9608 100644
---
a/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/DropEncryptRuleExecutorTest.java
+++
b/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/DropEncryptRuleExecutorTest.java
@@ -68,7 +68,7 @@ class DropEncryptRuleExecutorTest {
when(rule.getConfiguration()).thenReturn(ruleConfig);
ContextManager contextManager = mockContextManager(rule);
new DistSQLUpdateExecuteEngine(createSQLStatement("T_ENCRYPT"),
"foo_db", contextManager).executeUpdate();
- MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+ MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
metaDataManagerPersistService.alterRuleConfiguration(any(),
ArgumentMatchers.argThat(this::assertRuleConfiguration));
}
@@ -86,7 +86,7 @@ class DropEncryptRuleExecutorTest {
when(rule.getAllTableNames().contains(anyString())).thenReturn(true);
ContextManager contextManager = mockContextManager(rule);
new DistSQLUpdateExecuteEngine(createSQLStatement("T_ENCRYPT"),
"foo_db", contextManager).executeUpdate();
- MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+ MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
metaDataManagerPersistService.alterRuleConfiguration(any(),
ArgumentMatchers.argThat(this::assertRuleConfigurationWithoutEncryptors));
}
@@ -104,7 +104,7 @@ class DropEncryptRuleExecutorTest {
when(rule.getAllTableNames().contains(anyString())).thenReturn(true);
ContextManager contextManager = mockContextManager(rule);
new DistSQLUpdateExecuteEngine(statement, "foo_db",
contextManager).executeUpdate();
- MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+ MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
metaDataManagerPersistService.alterRuleConfiguration(any(),
ArgumentMatchers.argThat(this::assertRuleConfigurationWithoutEncryptors));
}
diff --git
a/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/AlterMaskRuleExecutorTest.java
b/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/AlterMaskRuleExecutorTest.java
index c73c7e27f44..9ac2832d589 100644
---
a/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/AlterMaskRuleExecutorTest.java
+++
b/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/AlterMaskRuleExecutorTest.java
@@ -67,7 +67,7 @@ class AlterMaskRuleExecutorTest {
when(rule.getConfiguration()).thenReturn(currentRuleConfig);
ContextManager contextManager = mockContextManager(rule);
new DistSQLUpdateExecuteEngine(sqlStatement, "foo_db",
contextManager).executeUpdate();
- MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+ MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
metaDataManagerPersistService.removeRuleConfigurationItem(any(),
ArgumentMatchers.argThat(this::assertToBeDroppedRuleConfiguration));
metaDataManagerPersistService.alterRuleConfiguration(any(),
ArgumentMatchers.argThat(this::assertToBeAlteredRuleConfiguration));
}
diff --git
a/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/CreateMaskRuleExecutorTest.java
b/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/CreateMaskRuleExecutorTest.java
index 9da63cc2e40..3a42039de0d 100644
---
a/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/CreateMaskRuleExecutorTest.java
+++
b/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/CreateMaskRuleExecutorTest.java
@@ -65,7 +65,7 @@ class CreateMaskRuleExecutorTest {
when(rule.getConfiguration()).thenReturn(currentRuleConfig);
ContextManager contextManager = mockContextManager(rule);
new DistSQLUpdateExecuteEngine(sqlStatement, "foo_db",
contextManager).executeUpdate();
- MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+ MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
metaDataManagerPersistService.alterRuleConfiguration(any(),
ArgumentMatchers.argThat(this::assertRuleConfiguration));
}
@@ -77,7 +77,7 @@ class CreateMaskRuleExecutorTest {
when(rule.getConfiguration()).thenReturn(currentRuleConfig);
ContextManager contextManager = mockContextManager(rule);
new DistSQLUpdateExecuteEngine(sqlStatement, "foo_db",
contextManager).executeUpdate();
- MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+ MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
metaDataManagerPersistService.alterRuleConfiguration(any(),
ArgumentMatchers.argThat(this::assertRuleConfiguration));
}
diff --git
a/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/DropMaskRuleExecutorTest.java
b/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/DropMaskRuleExecutorTest.java
index dde951ef799..fb7bb834ac8 100644
---
a/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/DropMaskRuleExecutorTest.java
+++
b/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/DropMaskRuleExecutorTest.java
@@ -60,7 +60,7 @@ class DropMaskRuleExecutorTest {
when(rule.getConfiguration()).thenReturn(ruleConfig);
ContextManager contextManager = mockContextManager(rule);
new DistSQLUpdateExecuteEngine(createSQLStatement(false, "T_MASK"),
"foo_db", contextManager).executeUpdate();
- MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+ MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
metaDataManagerPersistService.alterRuleConfiguration(any(),
ArgumentMatchers.argThat(this::assertRuleConfigurationWithoutIfExists));
}
@@ -78,7 +78,7 @@ class DropMaskRuleExecutorTest {
when(rule.getConfiguration()).thenReturn(ruleConfig);
ContextManager contextManager = mockContextManager(rule);
new DistSQLUpdateExecuteEngine(createSQLStatement(true, "T_USER"),
"foo_db", contextManager).executeUpdate();
- MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+ MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
metaDataManagerPersistService.alterRuleConfiguration(any(),
ArgumentMatchers.argThat(this::assertRuleConfigurationWithoutIfExists));
metaDataManagerPersistService.alterRuleConfiguration(any(),
ArgumentMatchers.argThat(this::assertRuleConfigurationWithIfExists));
}
diff --git
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/AlterDatabaseRuleOperator.java
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/AlterDatabaseRuleOperator.java
index 222f487f866..1faf2ef7f8a 100644
---
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/AlterDatabaseRuleOperator.java
+++
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/AlterDatabaseRuleOperator.java
@@ -48,7 +48,7 @@ public final class AlterDatabaseRuleOperator implements
DatabaseRuleOperator {
@SuppressWarnings("unchecked")
public void operate(final DatabaseRuleDefinitionStatement sqlStatement,
final ShardingSphereDatabase database, final RuleConfiguration
currentRuleConfig) throws SQLException {
RuleConfiguration toBeAlteredRuleConfig =
executor.buildToBeAlteredRuleConfiguration(sqlStatement);
- MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+ MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
metaDataManagerPersistService.alterRuleConfiguration(database,
decorateRuleConfiguration(database, toBeAlteredRuleConfig));
RuleConfiguration toBeDroppedRuleConfig =
executor.buildToBeDroppedRuleConfiguration(toBeAlteredRuleConfig);
metaDataManagerPersistService.removeRuleConfigurationItem(database,
toBeDroppedRuleConfig);
diff --git
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/CreateDatabaseRuleOperator.java
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/CreateDatabaseRuleOperator.java
index 79abcc49f2b..5a35e8df86f 100644
---
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/CreateDatabaseRuleOperator.java
+++
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/CreateDatabaseRuleOperator.java
@@ -48,7 +48,7 @@ public final class CreateDatabaseRuleOperator implements
DatabaseRuleOperator {
@SuppressWarnings("unchecked")
public void operate(final DatabaseRuleDefinitionStatement sqlStatement,
final ShardingSphereDatabase database, final RuleConfiguration
currentRuleConfig) throws SQLException {
RuleConfiguration toBeCreatedRuleConfig =
executor.buildToBeCreatedRuleConfiguration(sqlStatement);
- MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+ MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
metaDataManagerPersistService.alterRuleConfiguration(database,
decorateRuleConfiguration(database, toBeCreatedRuleConfig));
}
diff --git
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/DropDatabaseRuleOperator.java
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/DropDatabaseRuleOperator.java
index 33752187dd5..66be5392005 100644
---
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/DropDatabaseRuleOperator.java
+++
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/DropDatabaseRuleOperator.java
@@ -60,7 +60,7 @@ public final class DropDatabaseRuleOperator implements
DatabaseRuleOperator {
}
// TODO refactor to new metadata refresh way
}
- MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+ MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
RuleConfiguration toBeDroppedRuleConfig =
executor.buildToBeDroppedRuleConfiguration(sqlStatement);
metaDataManagerPersistService.removeRuleConfigurationItem(database,
toBeDroppedRuleConfig);
RuleConfiguration toBeAlteredRuleConfig =
executor.buildToBeAlteredRuleConfiguration(sqlStatement);
diff --git
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/global/GlobalRuleDefinitionExecuteEngine.java
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/global/GlobalRuleDefinitionExecuteEngine.java
index 0d88bc9c859..393c6e80ea4 100644
---
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/global/GlobalRuleDefinitionExecuteEngine.java
+++
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/global/GlobalRuleDefinitionExecuteEngine.java
@@ -48,6 +48,7 @@ public final class GlobalRuleDefinitionExecuteEngine {
ShardingSphereRule rule =
contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getSingleRule(executor.getRuleClass());
executor.setRule(rule);
executor.checkBeforeUpdate(sqlStatement);
-
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService().alterGlobalRuleConfiguration(executor.buildToBeAlteredRuleConfiguration(sqlStatement));
+
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService()
+
.alterGlobalRuleConfiguration(executor.buildToBeAlteredRuleConfiguration(sqlStatement));
}
}
diff --git
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/AlterStorageUnitExecutor.java
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/AlterStorageUnitExecutor.java
index 4f23d7f0b78..9e00c0f095c 100644
---
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/AlterStorageUnitExecutor.java
+++
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/AlterStorageUnitExecutor.java
@@ -66,7 +66,7 @@ public final class AlterStorageUnitExecutor implements
DistSQLUpdateExecutor<Alt
Map<String, DataSourcePoolProperties> propsMap =
DataSourceSegmentsConverter.convert(database.getProtocolType(),
sqlStatement.getStorageUnits());
validateHandler.validate(propsMap,
getExpectedPrivileges(sqlStatement));
try {
-
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService().alterStorageUnits(database,
propsMap);
+
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService().alterStorageUnits(database,
propsMap);
} catch (final ShardingSphereExternalException ex) {
throw new StorageUnitsOperateException("alter", propsMap.keySet(),
ex);
}
diff --git
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/RegisterStorageUnitExecutor.java
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/RegisterStorageUnitExecutor.java
index a64f663f9c8..b1476330eca 100644
---
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/RegisterStorageUnitExecutor.java
+++
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/RegisterStorageUnitExecutor.java
@@ -67,7 +67,7 @@ public final class RegisterStorageUnitExecutor implements
DistSQLUpdateExecutor<
}
validateHandler.validate(propsMap,
getExpectedPrivileges(sqlStatement));
try {
-
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService().registerStorageUnits(database.getName(),
propsMap);
+
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService().registerStorageUnits(database.getName(),
propsMap);
} catch (final ShardingSphereExternalException ex) {
throw new StorageUnitsOperateException("register",
propsMap.keySet(), ex);
}
diff --git
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/UnregisterStorageUnitExecutor.java
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/UnregisterStorageUnitExecutor.java
index 57f713484e7..c8175ca5063 100644
---
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/UnregisterStorageUnitExecutor.java
+++
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/UnregisterStorageUnitExecutor.java
@@ -56,7 +56,7 @@ public final class UnregisterStorageUnitExecutor implements
DistSQLUpdateExecuto
}
checkInUsed(sqlStatement);
try {
-
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService().unregisterStorageUnits(database,
sqlStatement.getStorageUnitNames());
+
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService().unregisterStorageUnits(database,
sqlStatement.getStorageUnitNames());
} catch (final ShardingSphereServerException ex) {
throw new StorageUnitsOperateException("unregister",
sqlStatement.getStorageUnitNames(), ex);
}
diff --git
a/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/UnregisterStorageUnitExecutorTest.java
b/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/UnregisterStorageUnitExecutorTest.java
index 245b07d1447..131cf8b016c 100644
---
a/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/UnregisterStorageUnitExecutorTest.java
+++
b/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/UnregisterStorageUnitExecutorTest.java
@@ -85,7 +85,7 @@ class UnregisterStorageUnitExecutorTest {
MetaDataContexts metaDataContexts = mock(MetaDataContexts.class,
RETURNS_DEEP_STUBS);
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
when(result.getMetaDataContexts()).thenReturn(metaDataContexts);
-
when(result.getPersistServiceFacade().getMetaDataManagerPersistService()).thenReturn(metaDataManagerPersistService);
+
when(result.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService()).thenReturn(metaDataManagerPersistService);
when(result.getDatabase("foo_db")).thenReturn(database);
return result;
}
diff --git
a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/reflect-config.json
b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/reflect-config.json
index 787710ad3ba..f49373c6be8 100644
---
a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/reflect-config.json
+++
b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/reflect-config.json
@@ -2108,7 +2108,7 @@
},
{
"condition":{"typeReachable":"org.apache.shardingsphere.mode.persist.PersistServiceFacade"},
-
"name":"org.apache.shardingsphere.mode.manager.cluster.persist.builder.ClusterPersistServiceBuilder",
+
"name":"org.apache.shardingsphere.mode.manager.cluster.persist.facade.ClusterPersistServiceFacadeBuilder",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
@@ -2117,7 +2117,7 @@
},
{
"condition":{"typeReachable":"org.apache.shardingsphere.mode.persist.PersistServiceFacade"},
-
"name":"org.apache.shardingsphere.mode.manager.standalone.persist.builder.StandalonePersistServiceBuilder",
+
"name":"org.apache.shardingsphere.mode.manager.standalone.persist.facade.StandalonePersistServiceFacadeBuilder",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
diff --git
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/DriverExecuteExecutor.java
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/DriverExecuteExecutor.java
index 5b1c4ec7de4..bfaeea26c09 100644
---
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/DriverExecuteExecutor.java
+++
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/DriverExecuteExecutor.java
@@ -102,7 +102,7 @@ public final class DriverExecuteExecutor {
return null != resultSet;
}
FederationMetaDataRefreshEngine federationMetaDataRefreshEngine = new
FederationMetaDataRefreshEngine(
-
connection.getContextManager().getPersistServiceFacade().getMetaDataManagerPersistService(),
database);
+
connection.getContextManager().getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService(),
database);
if (sqlFederationEngine.enabled() &&
federationMetaDataRefreshEngine.isNeedRefresh(queryContext.getSqlStatementContext()))
{
federationMetaDataRefreshEngine.refresh(queryContext.getSqlStatementContext());
return true;
diff --git
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/pushdown/jdbc/DriverJDBCPushDownExecuteExecutor.java
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/pushdown/jdbc/DriverJDBCPushDownExecuteExecutor.java
index 3c757c02243..9b0efbb3d5c 100644
---
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/pushdown/jdbc/DriverJDBCPushDownExecuteExecutor.java
+++
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/pushdown/jdbc/DriverJDBCPushDownExecuteExecutor.java
@@ -107,7 +107,7 @@ public final class DriverJDBCPushDownExecuteExecutor {
if
(isNeedImplicitCommit(executionContext.getSqlStatementContext())) {
connection.commit();
}
- new
PushDownMetaDataRefreshEngine(connection.getContextManager().getPersistServiceFacade().getMetaDataManagerPersistService(),
database, metaData.getProps())
+ new
PushDownMetaDataRefreshEngine(connection.getContextManager().getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService(),
database, metaData.getProps())
.refresh(executionContext.getSqlStatementContext(),
executionContext.getRouteContext().getRouteUnits());
return null != results && !results.isEmpty() && null !=
results.get(0) && results.get(0);
} finally {
diff --git
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/pushdown/jdbc/DriverJDBCPushDownExecuteUpdateExecutor.java
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/pushdown/jdbc/DriverJDBCPushDownExecuteUpdateExecutor.java
index a53e9aabe6d..2f82ad7035c 100644
---
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/pushdown/jdbc/DriverJDBCPushDownExecuteUpdateExecutor.java
+++
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/pushdown/jdbc/DriverJDBCPushDownExecuteUpdateExecutor.java
@@ -109,7 +109,7 @@ public final class DriverJDBCPushDownExecuteUpdateExecutor {
.newInstance(database,
executionContext.getSqlStatementContext().getSqlStatement(), updateCallback);
List<Integer> updateCounts =
jdbcExecutor.execute(executionGroupContext, callback);
PushDownMetaDataRefreshEngine pushDownMetaDataRefreshEngine =
- new
PushDownMetaDataRefreshEngine(connection.getContextManager().getPersistServiceFacade().getMetaDataManagerPersistService(),
database, props);
+ new
PushDownMetaDataRefreshEngine(connection.getContextManager().getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService(),
database, props);
if
(pushDownMetaDataRefreshEngine.isNeedRefresh(executionContext.getSqlStatementContext()))
{
if
(isNeedImplicitCommit(executionContext.getSqlStatementContext())) {
connection.commit();
diff --git
a/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/update/LoadSingleTableExecutorTest.java
b/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/update/LoadSingleTableExecutorTest.java
index f1b93d172d6..170ef7900d1 100644
---
a/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/update/LoadSingleTableExecutorTest.java
+++
b/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/update/LoadSingleTableExecutorTest.java
@@ -145,7 +145,7 @@ class LoadSingleTableExecutorTest {
when(rule.getConfiguration()).thenReturn(currentConfig);
ContextManager contextManager = mockContextManager(rule);
new DistSQLUpdateExecuteEngine(sqlStatement, "foo_db",
contextManager).executeUpdate();
- MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+ MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
verify(metaDataManagerPersistService).alterRuleConfiguration(any(),
any());
}
@@ -164,7 +164,7 @@ class LoadSingleTableExecutorTest {
when(rule.getConfiguration()).thenReturn(currentConfig);
ContextManager contextManager = mockContextManager(null);
new DistSQLUpdateExecuteEngine(sqlStatement, "foo_db",
contextManager).executeUpdate();
- MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+ MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
verify(metaDataManagerPersistService).alterRuleConfiguration(any(),
any());
}
}
diff --git
a/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/update/SetDefaultSingleTableStorageUnitExecutorTest.java
b/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/update/SetDefaultSingleTableStorageUnitExecutorTest.java
index bfd7d8ee89e..0e2ab746942 100644
---
a/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/update/SetDefaultSingleTableStorageUnitExecutorTest.java
+++
b/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/update/SetDefaultSingleTableStorageUnitExecutorTest.java
@@ -63,7 +63,7 @@ class SetDefaultSingleTableStorageUnitExecutorTest {
when(rule.getConfiguration()).thenReturn(new
SingleRuleConfiguration(Collections.emptyList(), "foo_ds"));
ContextManager contextManager = mockContextManager(database, rule);
new DistSQLUpdateExecuteEngine(new
SetDefaultSingleTableStorageUnitStatement(null), "foo_db",
contextManager).executeUpdate();
- MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+ MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
verify(metaDataManagerPersistService).removeRuleConfigurationItem(any(),
ArgumentMatchers.<SingleRuleConfiguration>argThat(x ->
x.getDefaultDataSource().equals(Optional.of("foo_ds"))));
verify(metaDataManagerPersistService).alterRuleConfiguration(any(),
ArgumentMatchers.<SingleRuleConfiguration>argThat(x ->
!x.getDefaultDataSource().isPresent()));
}
@@ -79,7 +79,7 @@ class SetDefaultSingleTableStorageUnitExecutorTest {
when(rule.getAttributes().findAttribute(DataSourceMapperRuleAttribute.class)).thenReturn(Optional.empty());
ContextManager contextManager = mockContextManager(database, rule);
new DistSQLUpdateExecuteEngine(new
SetDefaultSingleTableStorageUnitStatement("bar_ds"), "foo_db",
contextManager).executeUpdate();
- MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+ MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
verify(metaDataManagerPersistService).removeRuleConfigurationItem(database,
null);
verify(metaDataManagerPersistService).alterRuleConfiguration(any(),
ArgumentMatchers.<SingleRuleConfiguration>argThat(x ->
x.getDefaultDataSource().equals(Optional.of("bar_ds"))));
}
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
index 56be3b0bae9..a49a5df7498 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
@@ -236,6 +236,6 @@ public final class ContextManager implements AutoCloseable {
}
executorEngine.close();
metaDataContexts.getMetaData().close();
- persistServiceFacade.close(computeNodeInstanceContext.getInstance());
+ persistServiceFacade.close();
}
}
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/PersistServiceFacade.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/PersistServiceFacade.java
index 6f1074f8933..8bfbfb44cfa 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/PersistServiceFacade.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/PersistServiceFacade.java
@@ -19,56 +19,42 @@ package org.apache.shardingsphere.mode.persist;
import lombok.Getter;
import org.apache.shardingsphere.infra.config.mode.ModeConfiguration;
-import org.apache.shardingsphere.infra.instance.ComputeNodeInstance;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.mode.metadata.manager.MetaDataContextManager;
import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistFacade;
-import
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService;
-import org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder;
-import org.apache.shardingsphere.mode.persist.service.ProcessPersistService;
+import
org.apache.shardingsphere.mode.node.QualifiedDataSourceStatePersistService;
+import org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacade;
+import
org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacadeBuilder;
import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.apache.shardingsphere.mode.state.StatePersistService;
-import org.apache.shardingsphere.mode.node.ComputeNodePersistService;
-import
org.apache.shardingsphere.mode.node.QualifiedDataSourceStatePersistService;
/**
* Persist service facade.
*/
@Getter
-public final class PersistServiceFacade {
+public final class PersistServiceFacade implements AutoCloseable {
private final PersistRepository repository;
private final MetaDataPersistFacade metaDataPersistFacade;
- private final ComputeNodePersistService computeNodePersistService;
-
private final StatePersistService statePersistService;
- private final MetaDataManagerPersistService metaDataManagerPersistService;
-
- private final ProcessPersistService processPersistService;
-
private final QualifiedDataSourceStatePersistService
qualifiedDataSourceStatePersistService;
+ private final ModePersistServiceFacade modePersistServiceFacade;
+
public PersistServiceFacade(final PersistRepository repository, final
ModeConfiguration modeConfig, final MetaDataContextManager
metaDataContextManager) {
this.repository = repository;
metaDataPersistFacade = new MetaDataPersistFacade(repository);
- computeNodePersistService = new ComputeNodePersistService(repository);
statePersistService = new StatePersistService(repository);
qualifiedDataSourceStatePersistService = new
QualifiedDataSourceStatePersistService(repository);
- PersistServiceBuilder persistServiceBuilder =
TypedSPILoader.getService(PersistServiceBuilder.class, modeConfig.getType());
- metaDataManagerPersistService =
persistServiceBuilder.buildMetaDataManagerPersistService(repository,
metaDataContextManager);
- processPersistService =
persistServiceBuilder.buildProcessPersistService(repository);
+ modePersistServiceFacade =
TypedSPILoader.getService(ModePersistServiceFacadeBuilder.class,
modeConfig.getType()).build(metaDataContextManager, repository);
}
- /**
- * Close persist service facade.
- *
- * @param computeNodeInstance compute node instance
- */
- public void close(final ComputeNodeInstance computeNodeInstance) {
- computeNodePersistService.offline(computeNodeInstance);
+ @Override
+ public void close() {
+ modePersistServiceFacade.close();
repository.close();
}
}
diff --git
a/mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/PersistServiceBuilderFixture.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/mode/ModePersistServiceFacade.java
similarity index 54%
copy from
mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/PersistServiceBuilderFixture.java
copy to
mode/core/src/main/java/org/apache/shardingsphere/mode/persist/mode/ModePersistServiceFacade.java
index f8794fd2fa7..197a4c8f897 100644
---
a/mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/PersistServiceBuilderFixture.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/mode/ModePersistServiceFacade.java
@@ -15,33 +15,38 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.mode.fixture;
+package org.apache.shardingsphere.mode.persist.mode;
-import org.apache.shardingsphere.mode.metadata.manager.MetaDataContextManager;
+import
org.apache.shardingsphere.mode.persist.service.ComputeNodePersistService;
import
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService;
-import org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder;
import org.apache.shardingsphere.mode.persist.service.ProcessPersistService;
-import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
-public final class PersistServiceBuilderFixture implements
PersistServiceBuilder {
+/**
+ * Mode persist service facade.
+ */
+public interface ModePersistServiceFacade extends AutoCloseable {
- @Override
- public MetaDataManagerPersistService
buildMetaDataManagerPersistService(final PersistRepository repository, final
MetaDataContextManager metaDataContextManager) {
- return null;
- }
+ /**
+ * Get meta data manager persist service.
+ *
+ * @return meta data manager persist service
+ */
+ MetaDataManagerPersistService getMetaDataManagerPersistService();
- @Override
- public ProcessPersistService buildProcessPersistService(final
PersistRepository repository) {
- return null;
- }
+ /**
+ * Get compute node persist service.
+ *
+ * @return compute node persist service
+ */
+ ComputeNodePersistService getComputeNodePersistService();
- @Override
- public Object getType() {
- return "foo_type";
- }
+ /**
+ * Get process persist service.
+ *
+ * @return process persist service
+ */
+ ProcessPersistService getProcessPersistService();
@Override
- public boolean isDefault() {
- return true;
- }
+ void close();
}
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/PersistServiceBuilder.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/mode/ModePersistServiceFacadeBuilder.java
similarity index 65%
copy from
mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/PersistServiceBuilder.java
copy to
mode/core/src/main/java/org/apache/shardingsphere/mode/persist/mode/ModePersistServiceFacadeBuilder.java
index c60d8729c7b..f8882c8c012 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/PersistServiceBuilder.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/mode/ModePersistServiceFacadeBuilder.java
@@ -15,31 +15,23 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.mode.persist.service;
+package org.apache.shardingsphere.mode.persist.mode;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPI;
import org.apache.shardingsphere.mode.metadata.manager.MetaDataContextManager;
import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
/**
- * Persist service builder.
+ * Mode persist service facade builder.
*/
-public interface PersistServiceBuilder extends TypedSPI {
+public interface ModePersistServiceFacadeBuilder extends TypedSPI {
/**
- * Build meta data manager persist service.
+ * Build mode persist service facade.
*
- * @param repository persist repository
* @param metaDataContextManager meta data context manager
- * @return meta data manager persist service
- */
- MetaDataManagerPersistService
buildMetaDataManagerPersistService(PersistRepository repository,
MetaDataContextManager metaDataContextManager);
-
- /**
- * Build process persist service.
- *
* @param repository persist repository
- * @return process persist service
+ * @return built facade
*/
- ProcessPersistService buildProcessPersistService(PersistRepository
repository);
+ ModePersistServiceFacade build(MetaDataContextManager
metaDataContextManager, PersistRepository repository);
}
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/PersistServiceBuilder.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/ComputeNodePersistService.java
similarity index 50%
rename from
mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/PersistServiceBuilder.java
rename to
mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/ComputeNodePersistService.java
index c60d8729c7b..a6d4e7fd17e 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/PersistServiceBuilder.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/ComputeNodePersistService.java
@@ -17,29 +17,19 @@
package org.apache.shardingsphere.mode.persist.service;
-import org.apache.shardingsphere.infra.spi.type.typed.TypedSPI;
-import org.apache.shardingsphere.mode.metadata.manager.MetaDataContextManager;
-import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
+import org.apache.shardingsphere.infra.instance.ComputeNodeInstance;
+
+import java.util.Collection;
/**
- * Persist service builder.
+ * Compute node persist service.
*/
-public interface PersistServiceBuilder extends TypedSPI {
-
- /**
- * Build meta data manager persist service.
- *
- * @param repository persist repository
- * @param metaDataContextManager meta data context manager
- * @return meta data manager persist service
- */
- MetaDataManagerPersistService
buildMetaDataManagerPersistService(PersistRepository repository,
MetaDataContextManager metaDataContextManager);
+public interface ComputeNodePersistService {
/**
- * Build process persist service.
+ * Load all compute node instances.
*
- * @param repository persist repository
- * @return process persist service
+ * @return loaded instances
*/
- ProcessPersistService buildProcessPersistService(PersistRepository
repository);
+ Collection<ComputeNodeInstance> loadAllInstances();
}
diff --git
a/mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/PersistServiceBuilderFixture.java
b/mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/ModePersistServiceFacadeBuilderFixture.java
similarity index 58%
copy from
mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/PersistServiceBuilderFixture.java
copy to
mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/ModePersistServiceFacadeBuilderFixture.java
index f8794fd2fa7..570e069f344 100644
---
a/mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/PersistServiceBuilderFixture.java
+++
b/mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/ModePersistServiceFacadeBuilderFixture.java
@@ -18,30 +18,21 @@
package org.apache.shardingsphere.mode.fixture;
import org.apache.shardingsphere.mode.metadata.manager.MetaDataContextManager;
-import
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService;
-import org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder;
-import org.apache.shardingsphere.mode.persist.service.ProcessPersistService;
+import org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacade;
+import
org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacadeBuilder;
import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
-public final class PersistServiceBuilderFixture implements
PersistServiceBuilder {
-
- @Override
- public MetaDataManagerPersistService
buildMetaDataManagerPersistService(final PersistRepository repository, final
MetaDataContextManager metaDataContextManager) {
- return null;
- }
+import static org.mockito.Mockito.mock;
+
+public final class ModePersistServiceFacadeBuilderFixture implements
ModePersistServiceFacadeBuilder {
@Override
- public ProcessPersistService buildProcessPersistService(final
PersistRepository repository) {
- return null;
+ public ModePersistServiceFacade build(final MetaDataContextManager
metaDataContextManager, final PersistRepository repository) {
+ return mock();
}
@Override
public Object getType() {
- return "foo_type";
- }
-
- @Override
- public boolean isDefault() {
- return true;
+ return "FIXTURE";
}
}
diff --git
a/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
b/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
index 533658cd875..d7f59c54d40 100644
---
a/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
+++
b/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
@@ -38,7 +38,6 @@ import
org.apache.shardingsphere.infra.rule.attribute.RuleAttributes;
import
org.apache.shardingsphere.infra.rule.attribute.datanode.MutableDataNodeRuleAttribute;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
-import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -87,8 +86,8 @@ class ContextManagerTest {
when(metaDataContexts.getMetaData().getDatabase("foo_db")).thenReturn(database);
when(metaDataContexts.getMetaData().getAllDatabases()).thenReturn(Collections.singleton(database));
when(computeNodeInstanceContext.getInstance()).thenReturn(new
ComputeNodeInstance(new ProxyInstanceMetaData("foo_id", 3307),
Collections.emptyList()));
-
when(computeNodeInstanceContext.getModeConfiguration()).thenReturn(mock(ModeConfiguration.class));
- contextManager = new ContextManager(metaDataContexts,
computeNodeInstanceContext, mock(PersistRepository.class));
+ when(computeNodeInstanceContext.getModeConfiguration()).thenReturn(new
ModeConfiguration("FIXTURE", mock()));
+ contextManager = new ContextManager(metaDataContexts,
computeNodeInstanceContext, mock());
}
private ShardingSphereDatabase mockDatabase() throws SQLException {
diff --git
a/mode/core/src/test/resources/META-INF/services/org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder
b/mode/core/src/test/resources/META-INF/services/org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacadeBuilder
similarity index 90%
rename from
mode/core/src/test/resources/META-INF/services/org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder
rename to
mode/core/src/test/resources/META-INF/services/org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacadeBuilder
index 43ab8da1766..d71728fd7f5 100644
---
a/mode/core/src/test/resources/META-INF/services/org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder
+++
b/mode/core/src/test/resources/META-INF/services/org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacadeBuilder
@@ -15,4 +15,4 @@
# limitations under the License.
#
-org.apache.shardingsphere.mode.fixture.PersistServiceBuilderFixture
+org.apache.shardingsphere.mode.fixture.ModePersistServiceFacadeBuilderFixture
diff --git a/mode/core/src/test/resources/logback-test.xml
b/mode/core/src/test/resources/logback-test.xml
index a32da0f9c2d..dcfff477299 100644
--- a/mode/core/src/test/resources/logback-test.xml
+++ b/mode/core/src/test/resources/logback-test.xml
@@ -26,7 +26,7 @@
<logger name="org.apache.shardingsphere" level="warn" additivity="false">
<appender-ref ref="console" />
</logger>
- <logger
name="org.apache.shardingsphere.mode.node.ComputeNodePersistService"
level="off" />
+ <logger
name="org.apache.shardingsphere.mode.manager.cluster.persist.service.ClusterComputeNodePersistService"
level="off" />
<root>
<level value="error" />
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
index fa63d5e2570..1f62f2c1539 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
@@ -35,6 +35,7 @@ import
org.apache.shardingsphere.mode.manager.cluster.dispatch.listener.DataChan
import
org.apache.shardingsphere.mode.manager.cluster.exception.MissingRequiredClusterRepositoryConfigurationException;
import org.apache.shardingsphere.mode.manager.cluster.lock.ClusterLockContext;
import
org.apache.shardingsphere.mode.manager.cluster.lock.GlobalLockPersistService;
+import
org.apache.shardingsphere.mode.manager.cluster.persist.facade.ClusterPersistServiceFacade;
import
org.apache.shardingsphere.mode.manager.cluster.workerid.ClusterWorkerIdGenerator;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.mode.metadata.factory.MetaDataContextsFactory;
@@ -75,9 +76,10 @@ public final class ClusterContextManagerBuilder implements
ContextManagerBuilder
}
private void registerOnline(final ComputeNodeInstanceContext
computeNodeInstanceContext, final ContextManagerBuilderParameter param, final
ContextManager contextManager) {
-
contextManager.getPersistServiceFacade().getComputeNodePersistService().registerOnline(computeNodeInstanceContext.getInstance());
+ ClusterPersistServiceFacade clusterPersistServiceFacade =
(ClusterPersistServiceFacade)
contextManager.getPersistServiceFacade().getModePersistServiceFacade();
+
clusterPersistServiceFacade.getComputeNodePersistService().registerOnline(computeNodeInstanceContext.getInstance());
contextManager.getComputeNodeInstanceContext().getClusterInstanceRegistry().getAllClusterInstances()
-
.addAll(contextManager.getPersistServiceFacade().getComputeNodePersistService().loadAllInstances());
+
.addAll(clusterPersistServiceFacade.getComputeNodePersistService().loadAllInstances());
new DataChangedEventListenerRegistry(contextManager,
getDatabaseNames(param,
contextManager.getPersistServiceFacade().getMetaDataPersistFacade())).register();
}
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/compute/type/ComputeNodeOnlineHandler.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/compute/type/ComputeNodeOnlineHandler.java
index a5ef64ee4bf..13e70156b8f 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/compute/type/ComputeNodeOnlineHandler.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/compute/type/ComputeNodeOnlineHandler.java
@@ -30,6 +30,7 @@ import org.apache.shardingsphere.mode.event.DataChangedEvent;
import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
import org.apache.shardingsphere.mode.manager.ContextManager;
import
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.node.compute.ComputeNodeChangedHandler;
+import
org.apache.shardingsphere.mode.manager.cluster.persist.facade.ClusterPersistServiceFacade;
import org.apache.shardingsphere.mode.node.path.NodePath;
import
org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathSearcher;
import
org.apache.shardingsphere.mode.node.path.type.global.node.compute.status.OnlineNodePath;
@@ -64,7 +65,8 @@ public final class ComputeNodeOnlineHandler implements
ComputeNodeChangedHandler
InstanceMetaData instanceMetaData =
InstanceMetaDataFactory.create(instanceId, instanceType, computeNodeData);
switch (event.getType()) {
case ADDED:
-
clusterInstanceRegistry.add(contextManager.getPersistServiceFacade().getComputeNodePersistService().loadInstance(instanceMetaData));
+ ClusterPersistServiceFacade clusterPersistServiceFacade =
(ClusterPersistServiceFacade)
contextManager.getPersistServiceFacade().getModePersistServiceFacade();
+
clusterInstanceRegistry.add(clusterPersistServiceFacade.getComputeNodePersistService().loadInstance(instanceMetaData));
break;
case DELETED:
clusterInstanceRegistry.delete(new
ComputeNodeInstance(instanceMetaData));
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/builder/ClusterPersistServiceBuilder.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/builder/ClusterPersistServiceBuilder.java
deleted file mode 100644
index b20438a3269..00000000000
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/builder/ClusterPersistServiceBuilder.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.mode.manager.cluster.persist.builder;
-
-import
org.apache.shardingsphere.mode.manager.cluster.persist.service.ClusterMetaDataManagerPersistService;
-import
org.apache.shardingsphere.mode.manager.cluster.persist.service.ClusterProcessPersistService;
-import org.apache.shardingsphere.mode.metadata.manager.MetaDataContextManager;
-import
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService;
-import org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder;
-import org.apache.shardingsphere.mode.persist.service.ProcessPersistService;
-import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
-
-/**
- * Cluster persist service builder.
- */
-public final class ClusterPersistServiceBuilder implements
PersistServiceBuilder {
-
- @Override
- public MetaDataManagerPersistService
buildMetaDataManagerPersistService(final PersistRepository repository, final
MetaDataContextManager metaDataContextManager) {
- return new
ClusterMetaDataManagerPersistService(metaDataContextManager, repository);
- }
-
- @Override
- public ProcessPersistService buildProcessPersistService(final
PersistRepository repository) {
- return new ClusterProcessPersistService(repository);
- }
-
- @Override
- public Object getType() {
- return "Cluster";
- }
-}
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/facade/ClusterPersistServiceFacade.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/facade/ClusterPersistServiceFacade.java
new file mode 100644
index 00000000000..e57d875410b
--- /dev/null
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/facade/ClusterPersistServiceFacade.java
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shardingsphere.mode.manager.cluster.persist.facade;
+
+import lombok.AccessLevel;
+import lombok.Getter;
+import org.apache.shardingsphere.infra.instance.ComputeNodeInstance;
+import
org.apache.shardingsphere.mode.manager.cluster.persist.service.ClusterComputeNodePersistService;
+import
org.apache.shardingsphere.mode.manager.cluster.persist.service.ClusterMetaDataManagerPersistService;
+import
org.apache.shardingsphere.mode.manager.cluster.persist.service.ClusterProcessPersistService;
+import org.apache.shardingsphere.mode.metadata.manager.MetaDataContextManager;
+import org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacade;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
+
+/**
+ * Cluster persist service facade.
+ */
+@Getter
+public final class ClusterPersistServiceFacade implements
ModePersistServiceFacade {
+
+ private final ClusterMetaDataManagerPersistService
metaDataManagerPersistService;
+
+ private final ClusterComputeNodePersistService computeNodePersistService;
+
+ private final ClusterProcessPersistService processPersistService;
+
+ @Getter(AccessLevel.NONE)
+ private final ComputeNodeInstance computeNodeInstance;
+
+ public ClusterPersistServiceFacade(final MetaDataContextManager
metaDataContextManager, final PersistRepository repository) {
+ metaDataManagerPersistService = new
ClusterMetaDataManagerPersistService(metaDataContextManager, repository);
+ computeNodePersistService = new
ClusterComputeNodePersistService(repository);
+ processPersistService = new ClusterProcessPersistService(repository);
+ computeNodeInstance =
metaDataContextManager.getComputeNodeInstanceContext().getInstance();
+ }
+
+ @Override
+ public void close() {
+ computeNodePersistService.offline(computeNodeInstance);
+ }
+}
diff --git
a/mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/PersistServiceBuilderFixture.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/facade/ClusterPersistServiceFacadeBuilder.java
similarity index 56%
copy from
mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/PersistServiceBuilderFixture.java
copy to
mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/facade/ClusterPersistServiceFacadeBuilder.java
index f8794fd2fa7..35c166f61f1 100644
---
a/mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/PersistServiceBuilderFixture.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/facade/ClusterPersistServiceFacadeBuilder.java
@@ -15,33 +15,25 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.mode.fixture;
+package org.apache.shardingsphere.mode.manager.cluster.persist.facade;
import org.apache.shardingsphere.mode.metadata.manager.MetaDataContextManager;
-import
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService;
-import org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder;
-import org.apache.shardingsphere.mode.persist.service.ProcessPersistService;
+import org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacade;
+import
org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacadeBuilder;
import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
-public final class PersistServiceBuilderFixture implements
PersistServiceBuilder {
-
- @Override
- public MetaDataManagerPersistService
buildMetaDataManagerPersistService(final PersistRepository repository, final
MetaDataContextManager metaDataContextManager) {
- return null;
- }
+/**
+ * Cluster persist service facade builder.
+ */
+public final class ClusterPersistServiceFacadeBuilder implements
ModePersistServiceFacadeBuilder {
@Override
- public ProcessPersistService buildProcessPersistService(final
PersistRepository repository) {
- return null;
+ public ModePersistServiceFacade build(final MetaDataContextManager
metaDataContextManager, final PersistRepository repository) {
+ return new ClusterPersistServiceFacade(metaDataContextManager,
repository);
}
@Override
public Object getType() {
- return "foo_type";
- }
-
- @Override
- public boolean isDefault() {
- return true;
+ return "Cluster";
}
}
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/node/ComputeNodePersistService.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterComputeNodePersistService.java
similarity index 96%
rename from
mode/core/src/main/java/org/apache/shardingsphere/mode/node/ComputeNodePersistService.java
rename to
mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterComputeNodePersistService.java
index 30c629503d9..ac95c21aaa1 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/node/ComputeNodePersistService.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterComputeNodePersistService.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.mode.node;
+package org.apache.shardingsphere.mode.manager.cluster.persist.service;
import com.google.common.base.Strings;
import lombok.RequiredArgsConstructor;
@@ -34,6 +34,7 @@ import
org.apache.shardingsphere.mode.node.path.type.global.node.compute.label.L
import
org.apache.shardingsphere.mode.node.path.type.global.node.compute.status.OnlineNodePath;
import
org.apache.shardingsphere.mode.node.path.type.global.node.compute.status.StatusNodePath;
import
org.apache.shardingsphere.mode.node.path.type.global.node.compute.workerid.ComputeNodeWorkerIDNodePath;
+import
org.apache.shardingsphere.mode.persist.service.ComputeNodePersistService;
import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import java.util.Arrays;
@@ -45,11 +46,11 @@ import java.util.Optional;
import java.util.stream.Collectors;
/**
- * Compute node persist service.
+ * Cluster compute node persist service.
*/
@RequiredArgsConstructor
@Slf4j
-public final class ComputeNodePersistService {
+public final class ClusterComputeNodePersistService implements
ComputeNodePersistService {
private final PersistRepository repository;
@@ -80,26 +81,6 @@ public final class ComputeNodePersistService {
repository.delete(NodePathGenerator.toPath(new
OnlineNodePath(computeNodeInstance.getMetaData().getType(),
computeNodeInstance.getMetaData().getId())));
}
- /**
- * Load all compute node instances.
- *
- * @return loaded instances
- */
- public Collection<ComputeNodeInstance> loadAllInstances() {
- return Arrays.stream(InstanceType.values()).flatMap(each ->
loadInstances(each).stream()).collect(Collectors.toList());
- }
-
- private Collection<ComputeNodeInstance> loadInstances(final InstanceType
instanceType) {
- Collection<ComputeNodeInstance> result = new LinkedList<>();
- for (String each :
repository.getChildrenKeys(NodePathGenerator.toPath(new
OnlineNodePath(instanceType, null)))) {
- String value = repository.query(NodePathGenerator.toPath(new
OnlineNodePath(instanceType, each)));
- if (!Strings.isNullOrEmpty(value)) {
- result.add(loadInstance(InstanceMetaDataFactory.create(each,
instanceType, new
YamlComputeNodeDataSwapper().swapToObject(YamlEngine.unmarshal(value,
YamlComputeNodeData.class)))));
- }
- }
- return result;
- }
-
/**
* Load compute node instance.
*
@@ -180,4 +161,20 @@ public final class ComputeNodePersistService {
return instanceIds.stream().map(each ->
repository.query(NodePathGenerator.toPath(new
ComputeNodeWorkerIDNodePath(each))))
.filter(Objects::nonNull).map(Integer::parseInt).collect(Collectors.toSet());
}
+
+ @Override
+ public Collection<ComputeNodeInstance> loadAllInstances() {
+ return Arrays.stream(InstanceType.values()).flatMap(each ->
loadInstances(each).stream()).collect(Collectors.toList());
+ }
+
+ private Collection<ComputeNodeInstance> loadInstances(final InstanceType
instanceType) {
+ Collection<ComputeNodeInstance> result = new LinkedList<>();
+ for (String each :
repository.getChildrenKeys(NodePathGenerator.toPath(new
OnlineNodePath(instanceType, null)))) {
+ String value = repository.query(NodePathGenerator.toPath(new
OnlineNodePath(instanceType, each)));
+ if (!Strings.isNullOrEmpty(value)) {
+ result.add(loadInstance(InstanceMetaDataFactory.create(each,
instanceType, new
YamlComputeNodeDataSwapper().swapToObject(YamlEngine.unmarshal(value,
YamlComputeNodeData.class)))));
+ }
+ }
+ return result;
+ }
}
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/workerid/ClusterWorkerIdGenerator.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/workerid/ClusterWorkerIdGenerator.java
index 0c1dc137884..41ebc9920ab 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/workerid/ClusterWorkerIdGenerator.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/workerid/ClusterWorkerIdGenerator.java
@@ -22,7 +22,7 @@ import lombok.extern.slf4j.Slf4j;
import
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
import
org.apache.shardingsphere.infra.instance.workerid.WorkerIdAssignedException;
import org.apache.shardingsphere.infra.instance.workerid.WorkerIdGenerator;
-import org.apache.shardingsphere.mode.node.ComputeNodePersistService;
+import
org.apache.shardingsphere.mode.manager.cluster.persist.service.ClusterComputeNodePersistService;
import
org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository;
import java.util.Collection;
@@ -41,7 +41,7 @@ public final class ClusterWorkerIdGenerator implements
WorkerIdGenerator {
private final String instanceId;
- private final ComputeNodePersistService computeNodePersistService;
+ private final ClusterComputeNodePersistService computeNodePersistService;
private final ReservationPersistService reservationPersistService;
@@ -49,7 +49,7 @@ public final class ClusterWorkerIdGenerator implements
WorkerIdGenerator {
public ClusterWorkerIdGenerator(final ClusterPersistRepository repository,
final String instanceId) {
this.instanceId = instanceId;
- computeNodePersistService = new ComputeNodePersistService(repository);
+ computeNodePersistService = new
ClusterComputeNodePersistService(repository);
reservationPersistService = new ReservationPersistService(repository);
}
diff --git
a/mode/type/cluster/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder
b/mode/type/cluster/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacadeBuilder
similarity index 89%
rename from
mode/type/cluster/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder
rename to
mode/type/cluster/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacadeBuilder
index d2c393c4c33..17d9f371de6 100644
---
a/mode/type/cluster/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder
+++
b/mode/type/cluster/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacadeBuilder
@@ -15,4 +15,4 @@
# limitations under the License.
#
-org.apache.shardingsphere.mode.manager.cluster.persist.builder.ClusterPersistServiceBuilder
+org.apache.shardingsphere.mode.manager.cluster.persist.facade.ClusterPersistServiceFacadeBuilder
diff --git
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/compute/type/ComputeNodeOnlineHandlerTest.java
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/compute/type/ComputeNodeOnlineHandlerTest.java
index 848b563dc9d..fec5b1fc0b6 100644
---
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/compute/type/ComputeNodeOnlineHandlerTest.java
+++
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/compute/type/ComputeNodeOnlineHandlerTest.java
@@ -23,6 +23,7 @@ import org.apache.shardingsphere.mode.event.DataChangedEvent;
import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
import org.apache.shardingsphere.mode.manager.ContextManager;
import
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.GlobalDataChangedEventHandler;
+import
org.apache.shardingsphere.mode.manager.cluster.persist.facade.ClusterPersistServiceFacade;
import
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerator;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -32,6 +33,7 @@ import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
@@ -60,7 +62,9 @@ class ComputeNodeOnlineHandlerTest {
@Test
void assertHandleWithInstanceOnlineEvent() {
ComputeNodeInstance computeNodeInstance =
mock(ComputeNodeInstance.class);
-
when(contextManager.getPersistServiceFacade().getComputeNodePersistService().loadInstance(any())).thenReturn(computeNodeInstance);
+ ClusterPersistServiceFacade clusterPersistServiceFacade =
mock(ClusterPersistServiceFacade.class, RETURNS_DEEP_STUBS);
+
when(clusterPersistServiceFacade.getComputeNodePersistService().loadInstance(any())).thenReturn(computeNodeInstance);
+
when(contextManager.getPersistServiceFacade().getModePersistServiceFacade()).thenReturn(clusterPersistServiceFacade);
handler.handle(contextManager, new
DataChangedEvent("/nodes/compute_nodes/online/proxy/foo_instance_id",
"{attribute: 127.0.0.1@3307,version: 1}", Type.ADDED));
verify(contextManager.getComputeNodeInstanceContext().getClusterInstanceRegistry()).add(computeNodeInstance);
}
diff --git
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/builder/ClusterPersistServiceBuilderTest.java
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/builder/ClusterPersistServiceBuilderTest.java
deleted file mode 100644
index 0fb8dc81449..00000000000
---
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/builder/ClusterPersistServiceBuilderTest.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.mode.manager.cluster.persist.builder;
-
-import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
-import
org.apache.shardingsphere.mode.manager.cluster.persist.service.ClusterMetaDataManagerPersistService;
-import
org.apache.shardingsphere.mode.manager.cluster.persist.service.ClusterProcessPersistService;
-import org.apache.shardingsphere.mode.metadata.manager.MetaDataContextManager;
-import org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder;
-import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
-import org.junit.jupiter.api.Test;
-
-import static org.hamcrest.CoreMatchers.instanceOf;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.mockito.Mockito.mock;
-
-class ClusterPersistServiceBuilderTest {
-
- private final PersistServiceBuilder persistServiceBuilder =
TypedSPILoader.getService(PersistServiceBuilder.class, "Cluster");
-
- @Test
- void assertBuildMetaDataManagerPersistService() {
-
assertThat(persistServiceBuilder.buildMetaDataManagerPersistService(mock(PersistRepository.class),
mock(MetaDataContextManager.class)),
- instanceOf(ClusterMetaDataManagerPersistService.class));
- }
-
- @Test
- void assertBuildProcessPersistService() {
-
assertThat(persistServiceBuilder.buildProcessPersistService(mock(PersistRepository.class)),
instanceOf(ClusterProcessPersistService.class));
- }
-}
diff --git
a/mode/core/src/test/java/org/apache/shardingsphere/mode/node/ComputeNodePersistServiceTest.java
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterComputeNodePersistServiceTest.java
similarity index 96%
rename from
mode/core/src/test/java/org/apache/shardingsphere/mode/node/ComputeNodePersistServiceTest.java
rename to
mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterComputeNodePersistServiceTest.java
index bea3bda4566..a1ebd6f7b90 100644
---
a/mode/core/src/test/java/org/apache/shardingsphere/mode/node/ComputeNodePersistServiceTest.java
+++
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterComputeNodePersistServiceTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.mode.node;
+package org.apache.shardingsphere.mode.manager.cluster.persist.service;
import org.apache.shardingsphere.infra.instance.ComputeNodeInstance;
import org.apache.shardingsphere.infra.instance.metadata.InstanceMetaData;
@@ -45,16 +45,16 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@ExtendWith(MockitoExtension.class)
-class ComputeNodePersistServiceTest {
+class ClusterComputeNodePersistServiceTest {
- private ComputeNodePersistService computeNodePersistService;
+ private ClusterComputeNodePersistService computeNodePersistService;
@Mock
private PersistRepository repository;
@BeforeEach
void setUp() {
- computeNodePersistService = new ComputeNodePersistService(repository);
+ computeNodePersistService = new
ClusterComputeNodePersistService(repository);
}
@Test
diff --git
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/workerid/ClusterWorkerIdGeneratorTest.java
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/workerid/ClusterWorkerIdGeneratorTest.java
index a2a093e13ca..649c46b7ed7 100644
---
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/workerid/ClusterWorkerIdGeneratorTest.java
+++
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/workerid/ClusterWorkerIdGeneratorTest.java
@@ -20,7 +20,7 @@ package
org.apache.shardingsphere.mode.manager.cluster.workerid;
import lombok.SneakyThrows;
import
org.apache.shardingsphere.infra.instance.workerid.WorkerIdAssignedException;
import org.apache.shardingsphere.infra.instance.workerid.WorkerIdGenerator;
-import org.apache.shardingsphere.mode.node.ComputeNodePersistService;
+import
org.apache.shardingsphere.mode.manager.cluster.persist.service.ClusterComputeNodePersistService;
import
org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository;
import org.apache.shardingsphere.test.util.PropertiesBuilder;
import org.apache.shardingsphere.test.util.PropertiesBuilder.Property;
@@ -48,7 +48,7 @@ class ClusterWorkerIdGeneratorTest {
private ClusterWorkerIdGenerator workerIdGenerator;
@Mock
- private ComputeNodePersistService computeNodePersistService;
+ private ClusterComputeNodePersistService computeNodePersistService;
@Mock
private ReservationPersistService reservationPersistService;
diff --git
a/mode/type/cluster/repository/provider/zookeeper/src/main/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/listener/SessionConnectionReconnectListener.java
b/mode/type/cluster/repository/provider/zookeeper/src/main/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/listener/SessionConnectionReconnectListener.java
index 54397b13462..2428a9633b3 100644
---
a/mode/type/cluster/repository/provider/zookeeper/src/main/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/listener/SessionConnectionReconnectListener.java
+++
b/mode/type/cluster/repository/provider/zookeeper/src/main/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/listener/SessionConnectionReconnectListener.java
@@ -23,8 +23,8 @@ import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.state.ConnectionState;
import org.apache.curator.framework.state.ConnectionStateListener;
import org.apache.shardingsphere.infra.instance.ComputeNodeInstanceContext;
+import
org.apache.shardingsphere.mode.manager.cluster.persist.service.ClusterComputeNodePersistService;
import
org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository;
-import org.apache.shardingsphere.mode.node.ComputeNodePersistService;
import java.util.Properties;
@@ -38,11 +38,11 @@ public final class SessionConnectionReconnectListener
implements ConnectionState
private final ComputeNodeInstanceContext computeNodeInstanceContext;
- private final ComputeNodePersistService computeNodePersistService;
+ private final ClusterComputeNodePersistService computeNodePersistService;
public SessionConnectionReconnectListener(final ComputeNodeInstanceContext
computeNodeInstanceContext, final ClusterPersistRepository repository) {
this.computeNodeInstanceContext = computeNodeInstanceContext;
- this.computeNodePersistService = new
ComputeNodePersistService(repository);
+ computeNodePersistService = new
ClusterComputeNodePersistService(repository);
}
@Override
diff --git
a/mode/type/cluster/repository/provider/zookeeper/src/test/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/listener/SessionConnectionReconnectListenerTest.java
b/mode/type/cluster/repository/provider/zookeeper/src/test/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/listener/SessionConnectionReconnectListenerTest.java
index ac2b20320e4..4df51b1fc4a 100644
---
a/mode/type/cluster/repository/provider/zookeeper/src/test/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/listener/SessionConnectionReconnectListenerTest.java
+++
b/mode/type/cluster/repository/provider/zookeeper/src/test/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/listener/SessionConnectionReconnectListenerTest.java
@@ -21,7 +21,7 @@ import lombok.SneakyThrows;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.state.ConnectionState;
import org.apache.shardingsphere.infra.instance.ComputeNodeInstanceContext;
-import org.apache.shardingsphere.mode.node.ComputeNodePersistService;
+import
org.apache.shardingsphere.mode.manager.cluster.persist.service.ClusterComputeNodePersistService;
import
org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -58,7 +58,7 @@ class SessionConnectionReconnectListenerTest {
@Test
void assertChangeToLostStateWithGenerateWorkerId() throws
InterruptedException {
- ComputeNodePersistService computeNodePersistService =
mock(ComputeNodePersistService.class);
+ ClusterComputeNodePersistService computeNodePersistService =
mock(ClusterComputeNodePersistService.class);
when(client.getZookeeperClient().blockUntilConnectedOrTimedOut()).thenReturn(false,
true);
getSessionConnectionReconnectListener(computeNodePersistService).stateChanged(client,
ConnectionState.LOST);
verify(computeNodeInstanceContext).generateWorkerId(new Properties());
@@ -67,7 +67,7 @@ class SessionConnectionReconnectListenerTest {
@Test
void assertChangeToLostStateWithoutGenerateWorkerId() throws
InterruptedException {
- ComputeNodePersistService computeNodePersistService =
mock(ComputeNodePersistService.class);
+ ClusterComputeNodePersistService computeNodePersistService =
mock(ClusterComputeNodePersistService.class);
when(client.getZookeeperClient().blockUntilConnectedOrTimedOut()).thenReturn(true);
when(computeNodeInstanceContext.getInstance().getWorkerId()).thenReturn(-1);
getSessionConnectionReconnectListener(computeNodePersistService).stateChanged(client,
ConnectionState.LOST);
@@ -76,7 +76,7 @@ class SessionConnectionReconnectListenerTest {
}
@SneakyThrows(ReflectiveOperationException.class)
- private SessionConnectionReconnectListener
getSessionConnectionReconnectListener(final ComputeNodePersistService
computeNodePersistService) {
+ private SessionConnectionReconnectListener
getSessionConnectionReconnectListener(final ClusterComputeNodePersistService
computeNodePersistService) {
SessionConnectionReconnectListener result = new
SessionConnectionReconnectListener(computeNodeInstanceContext, repository);
Plugins.getMemberAccessor().set(SessionConnectionReconnectListener.class.getDeclaredField("computeNodePersistService"),
result, computeNodePersistService);
return result;
diff --git
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/builder/StandalonePersistServiceBuilder.java
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/facade/StandalonePersistServiceFacade.java
similarity index 53%
rename from
mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/builder/StandalonePersistServiceBuilder.java
rename to
mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/facade/StandalonePersistServiceFacade.java
index 8133669d3e4..4475b7aeafa 100644
---
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/builder/StandalonePersistServiceBuilder.java
+++
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/facade/StandalonePersistServiceFacade.java
@@ -15,38 +15,34 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.mode.manager.standalone.persist.builder;
+package org.apache.shardingsphere.mode.manager.standalone.persist.facade;
+import lombok.Getter;
+import
org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneComputeNodePersistService;
import
org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneMetaDataManagerPersistService;
import
org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneProcessPersistService;
import org.apache.shardingsphere.mode.metadata.manager.MetaDataContextManager;
-import
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService;
-import org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder;
-import org.apache.shardingsphere.mode.persist.service.ProcessPersistService;
-import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
+import org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacade;
/**
- * Standalone meta data manager persist service builder.
+ * Standalone persist service facade.
*/
-public final class StandalonePersistServiceBuilder implements
PersistServiceBuilder {
+@Getter
+public final class StandalonePersistServiceFacade implements
ModePersistServiceFacade {
- @Override
- public MetaDataManagerPersistService
buildMetaDataManagerPersistService(final PersistRepository repository, final
MetaDataContextManager metaDataContextManager) {
- return new
StandaloneMetaDataManagerPersistService(metaDataContextManager);
- }
+ private final StandaloneMetaDataManagerPersistService
metaDataManagerPersistService;
- @Override
- public ProcessPersistService buildProcessPersistService(final
PersistRepository repository) {
- return new StandaloneProcessPersistService();
- }
+ private final StandaloneComputeNodePersistService
computeNodePersistService;
- @Override
- public Object getType() {
- return "Standalone";
+ private final StandaloneProcessPersistService processPersistService;
+
+ public StandalonePersistServiceFacade(final MetaDataContextManager
metaDataContextManager) {
+ metaDataManagerPersistService = new
StandaloneMetaDataManagerPersistService(metaDataContextManager);
+ computeNodePersistService = new
StandaloneComputeNodePersistService(metaDataContextManager.getComputeNodeInstanceContext().getInstance());
+ processPersistService = new StandaloneProcessPersistService();
}
@Override
- public boolean isDefault() {
- return true;
+ public void close() {
}
}
diff --git
a/mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/PersistServiceBuilderFixture.java
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/facade/StandalonePersistServiceFacadeBuilder.java
similarity index 60%
rename from
mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/PersistServiceBuilderFixture.java
rename to
mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/facade/StandalonePersistServiceFacadeBuilder.java
index f8794fd2fa7..08e604e8425 100644
---
a/mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/PersistServiceBuilderFixture.java
+++
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/facade/StandalonePersistServiceFacadeBuilder.java
@@ -15,29 +15,26 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.mode.fixture;
+package org.apache.shardingsphere.mode.manager.standalone.persist.facade;
import org.apache.shardingsphere.mode.metadata.manager.MetaDataContextManager;
-import
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService;
-import org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder;
-import org.apache.shardingsphere.mode.persist.service.ProcessPersistService;
+import org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacade;
+import
org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacadeBuilder;
import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
-public final class PersistServiceBuilderFixture implements
PersistServiceBuilder {
-
- @Override
- public MetaDataManagerPersistService
buildMetaDataManagerPersistService(final PersistRepository repository, final
MetaDataContextManager metaDataContextManager) {
- return null;
- }
+/**
+ * Standalone persist service facade builder.
+ */
+public final class StandalonePersistServiceFacadeBuilder implements
ModePersistServiceFacadeBuilder {
@Override
- public ProcessPersistService buildProcessPersistService(final
PersistRepository repository) {
- return null;
+ public ModePersistServiceFacade build(final MetaDataContextManager
metaDataContextManager, final PersistRepository repository) {
+ return new StandalonePersistServiceFacade(metaDataContextManager);
}
@Override
public Object getType() {
- return "foo_type";
+ return "Standalone";
}
@Override
diff --git
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneComputeNodePersistService.java
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneComputeNodePersistService.java
new file mode 100644
index 00000000000..f242a0a778d
--- /dev/null
+++
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneComputeNodePersistService.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shardingsphere.mode.manager.standalone.persist.service;
+
+import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.infra.instance.ComputeNodeInstance;
+import
org.apache.shardingsphere.mode.persist.service.ComputeNodePersistService;
+
+import java.util.Collection;
+import java.util.Collections;
+
+/**
+ * Standalone compute node persist service.
+ */
+@RequiredArgsConstructor
+public final class StandaloneComputeNodePersistService implements
ComputeNodePersistService {
+
+ private final ComputeNodeInstance computeNodeInstance;
+
+ @Override
+ public Collection<ComputeNodeInstance> loadAllInstances() {
+ return Collections.singleton(computeNodeInstance);
+ }
+}
diff --git
a/mode/type/standalone/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder
b/mode/type/standalone/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacadeBuilder
similarity index 88%
rename from
mode/type/standalone/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder
rename to
mode/type/standalone/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacadeBuilder
index 47181acf88d..be8778248f6 100644
---
a/mode/type/standalone/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder
+++
b/mode/type/standalone/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacadeBuilder
@@ -15,4 +15,4 @@
# limitations under the License.
#
-org.apache.shardingsphere.mode.manager.standalone.persist.builder.StandalonePersistServiceBuilder
+org.apache.shardingsphere.mode.manager.standalone.persist.facade.StandalonePersistServiceFacadeBuilder
diff --git
a/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/builder/StandalonePersistServiceBuilderTest.java
b/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/builder/StandalonePersistServiceBuilderTest.java
deleted file mode 100644
index 283bb54fd3e..00000000000
---
a/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/builder/StandalonePersistServiceBuilderTest.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.mode.manager.standalone.persist.builder;
-
-import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
-import
org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneMetaDataManagerPersistService;
-import
org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneProcessPersistService;
-import org.apache.shardingsphere.mode.metadata.manager.MetaDataContextManager;
-import org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder;
-import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
-import org.junit.jupiter.api.Test;
-
-import static org.hamcrest.CoreMatchers.instanceOf;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.mockito.Mockito.mock;
-
-class StandalonePersistServiceBuilderTest {
-
- private final PersistServiceBuilder persistServiceBuilder =
TypedSPILoader.getService(PersistServiceBuilder.class, "Standalone");
-
- @Test
- void assertBuildMetaDataManagerPersistService() {
-
assertThat(persistServiceBuilder.buildMetaDataManagerPersistService(mock(PersistRepository.class),
mock(MetaDataContextManager.class)),
- instanceOf(StandaloneMetaDataManagerPersistService.class));
- }
-
- @Test
- void assertBuildProcessPersistService() {
-
assertThat(persistServiceBuilder.buildProcessPersistService(mock(PersistRepository.class)),
instanceOf(StandaloneProcessPersistService.class));
- }
-}
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/StandardDatabaseConnector.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/StandardDatabaseConnector.java
index f25008d1cf2..e47939b16c5 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/StandardDatabaseConnector.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/StandardDatabaseConnector.java
@@ -137,8 +137,8 @@ public final class StandardDatabaseConnector implements
DatabaseConnector {
}
proxySQLExecutor = new ProxySQLExecutor(driverType,
databaseConnectionManager, this, queryContext);
pushDownMetaDataRefreshEngine = new PushDownMetaDataRefreshEngine(
-
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService(),
database, contextManager.getMetaDataContexts().getMetaData().getProps());
- federationMetaDataRefreshEngine = new
FederationMetaDataRefreshEngine(contextManager.getPersistServiceFacade().getMetaDataManagerPersistService(),
database);
+
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService(),
database, contextManager.getMetaDataContexts().getMetaData().getProps());
+ federationMetaDataRefreshEngine = new
FederationMetaDataRefreshEngine(contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService(),
database);
}
private void checkBackendReady(final SQLStatementContext
sqlStatementContext) {
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/database/CreateDatabaseBackendHandler.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/database/CreateDatabaseBackendHandler.java
index 5c75e6ead7c..cd276470c20 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/database/CreateDatabaseBackendHandler.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/database/CreateDatabaseBackendHandler.java
@@ -38,7 +38,7 @@ public final class CreateDatabaseBackendHandler implements
ProxyBackendHandler {
@Override
public ResponseHeader execute() throws SQLException {
check(sqlStatement);
-
ProxyContext.getInstance().getContextManager().getPersistServiceFacade().getMetaDataManagerPersistService().createDatabase(sqlStatement.getDatabaseName());
+
ProxyContext.getInstance().getContextManager().getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService().createDatabase(sqlStatement.getDatabaseName());
return new UpdateResponseHeader(sqlStatement);
}
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/database/DropDatabaseBackendHandler.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/database/DropDatabaseBackendHandler.java
index 463c0b968be..35435d2ead0 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/database/DropDatabaseBackendHandler.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/database/DropDatabaseBackendHandler.java
@@ -56,7 +56,7 @@ public final class DropDatabaseBackendHandler implements
ProxyBackendHandler {
}
if
(ProxyContext.getInstance().databaseExists(sqlStatement.getDatabaseName())) {
ShardingSphereDatabase database =
ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabase(sqlStatement.getDatabaseName());
-
ProxyContext.getInstance().getContextManager().getPersistServiceFacade().getMetaDataManagerPersistService().dropDatabase(database);
+
ProxyContext.getInstance().getContextManager().getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService().dropDatabase(database);
}
return new UpdateResponseHeader(sqlStatement);
}
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/computenode/ShowComputeNodesExecutor.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/computenode/ShowComputeNodesExecutor.java
index c6ad283cca3..5e1ecbb9299 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/computenode/ShowComputeNodesExecutor.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/computenode/ShowComputeNodesExecutor.java
@@ -27,7 +27,6 @@ import org.apache.shardingsphere.mode.manager.ContextManager;
import java.util.Arrays;
import java.util.Collection;
-import java.util.Collections;
import java.util.stream.Collectors;
/**
@@ -43,9 +42,7 @@ public final class ShowComputeNodesExecutor implements
DistSQLQueryExecutor<Show
@Override
public Collection<LocalDataQueryResultRow> getRows(final
ShowComputeNodesStatement sqlStatement, final ContextManager contextManager) {
String modeType =
contextManager.getComputeNodeInstanceContext().getModeConfiguration().getType();
- Collection<ComputeNodeInstance> instances =
"Standalone".equals(modeType)
- ?
Collections.singleton(contextManager.getComputeNodeInstanceContext().getInstance())
- :
contextManager.getPersistServiceFacade().getComputeNodePersistService().loadAllInstances();
+ Collection<ComputeNodeInstance> instances =
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getComputeNodePersistService().loadAllInstances();
return instances.stream().map(each -> buildRow(each,
modeType)).collect(Collectors.toList());
}
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/computenode/SetComputeNodeStateExecutor.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/computenode/SetComputeNodeStateExecutor.java
index 48a7ad99f37..f3c088883b5 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/computenode/SetComputeNodeStateExecutor.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/computenode/SetComputeNodeStateExecutor.java
@@ -24,6 +24,7 @@ import
org.apache.shardingsphere.infra.exception.core.ShardingSpherePrecondition
import
org.apache.shardingsphere.infra.exception.generic.UnsupportedSQLOperationException;
import org.apache.shardingsphere.infra.state.instance.InstanceState;
import org.apache.shardingsphere.mode.manager.ContextManager;
+import
org.apache.shardingsphere.mode.manager.cluster.persist.facade.ClusterPersistServiceFacade;
/**
* Set compute node state executor.
@@ -38,8 +39,11 @@ public final class SetComputeNodeStateExecutor implements
DistSQLUpdateExecutor<
} else {
checkEnablingIsValid(contextManager, sqlStatement.getInstanceId());
}
-
contextManager.getPersistServiceFacade().getComputeNodePersistService().updateState(sqlStatement.getInstanceId(),
- "DISABLE".equals(sqlStatement.getState()) ?
InstanceState.CIRCUIT_BREAK : InstanceState.OK);
+ if
(contextManager.getComputeNodeInstanceContext().getModeConfiguration().isCluster())
{
+ ClusterPersistServiceFacade clusterPersistServiceFacade =
(ClusterPersistServiceFacade)
contextManager.getPersistServiceFacade().getModePersistServiceFacade();
+
clusterPersistServiceFacade.getComputeNodePersistService().updateState(sqlStatement.getInstanceId(),
+ "DISABLE".equals(sqlStatement.getState()) ?
InstanceState.CIRCUIT_BREAK : InstanceState.OK);
+ }
}
private void checkEnablingIsValid(final ContextManager contextManager,
final String instanceId) {
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/label/LabelComputeNodeExecutor.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/label/LabelComputeNodeExecutor.java
index 9481acea69a..c2de95b2532 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/label/LabelComputeNodeExecutor.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/label/LabelComputeNodeExecutor.java
@@ -17,11 +17,12 @@
package
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.label;
-import
org.apache.shardingsphere.distsql.handler.required.DistSQLExecutorClusterModeRequired;
import
org.apache.shardingsphere.distsql.handler.engine.update.DistSQLUpdateExecutor;
+import
org.apache.shardingsphere.distsql.handler.required.DistSQLExecutorClusterModeRequired;
import
org.apache.shardingsphere.distsql.statement.ral.updatable.LabelComputeNodeStatement;
import org.apache.shardingsphere.infra.instance.ComputeNodeInstance;
import org.apache.shardingsphere.mode.manager.ContextManager;
+import
org.apache.shardingsphere.mode.manager.cluster.persist.facade.ClusterPersistServiceFacade;
import java.sql.SQLException;
import java.util.Collection;
@@ -37,6 +38,9 @@ public final class LabelComputeNodeExecutor implements
DistSQLUpdateExecutor<Lab
@Override
public void executeUpdate(final LabelComputeNodeStatement sqlStatement,
final ContextManager contextManager) throws SQLException {
+ if
(!contextManager.getComputeNodeInstanceContext().getModeConfiguration().isCluster())
{
+ return;
+ }
String instanceId = sqlStatement.getInstanceId();
Optional<ComputeNodeInstance> computeNodeInstance =
contextManager.getComputeNodeInstanceContext().getClusterInstanceRegistry().find(instanceId);
if (computeNodeInstance.isPresent()) {
@@ -44,7 +48,8 @@ public final class LabelComputeNodeExecutor implements
DistSQLUpdateExecutor<Lab
if (!sqlStatement.isOverwrite()) {
labels.addAll(computeNodeInstance.get().getLabels());
}
-
contextManager.getPersistServiceFacade().getComputeNodePersistService().persistLabels(instanceId,
new LinkedList<>(labels));
+ ClusterPersistServiceFacade clusterPersistServiceFacade =
(ClusterPersistServiceFacade)
contextManager.getPersistServiceFacade().getModePersistServiceFacade();
+
clusterPersistServiceFacade.getComputeNodePersistService().persistLabels(instanceId,
new LinkedList<>(labels));
}
}
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/label/UnlabelComputeNodeExecutor.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/label/UnlabelComputeNodeExecutor.java
index bc4897303d9..6e1b4a3aa7f 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/label/UnlabelComputeNodeExecutor.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/label/UnlabelComputeNodeExecutor.java
@@ -22,6 +22,7 @@ import
org.apache.shardingsphere.distsql.handler.engine.update.DistSQLUpdateExec
import
org.apache.shardingsphere.distsql.statement.ral.updatable.UnlabelComputeNodeStatement;
import org.apache.shardingsphere.infra.instance.ComputeNodeInstance;
import org.apache.shardingsphere.mode.manager.ContextManager;
+import
org.apache.shardingsphere.mode.manager.cluster.persist.facade.ClusterPersistServiceFacade;
import java.util.ArrayList;
import java.util.Collection;
@@ -37,15 +38,19 @@ public final class UnlabelComputeNodeExecutor implements
DistSQLUpdateExecutor<U
@Override
public void executeUpdate(final UnlabelComputeNodeStatement sqlStatement,
final ContextManager contextManager) {
+ if
(!contextManager.getComputeNodeInstanceContext().getModeConfiguration().isCluster())
{
+ return;
+ }
String instanceId = sqlStatement.getInstanceId();
Optional<ComputeNodeInstance> computeNodeInstance =
contextManager.getComputeNodeInstanceContext().getClusterInstanceRegistry().find(instanceId);
if (computeNodeInstance.isPresent()) {
+ ClusterPersistServiceFacade clusterPersistServiceFacade =
(ClusterPersistServiceFacade)
contextManager.getPersistServiceFacade().getModePersistServiceFacade();
Collection<String> labels = new
LinkedHashSet<>(computeNodeInstance.get().getLabels());
if (sqlStatement.getLabels().isEmpty()) {
-
contextManager.getPersistServiceFacade().getComputeNodePersistService().persistLabels(instanceId,
Collections.emptyList());
+
clusterPersistServiceFacade.getComputeNodePersistService().persistLabels(instanceId,
Collections.emptyList());
} else {
labels.removeAll(sqlStatement.getLabels());
-
contextManager.getPersistServiceFacade().getComputeNodePersistService().persistLabels(instanceId,
new ArrayList<>(labels));
+
clusterPersistServiceFacade.getComputeNodePersistService().persistLabels(instanceId,
new ArrayList<>(labels));
}
}
}
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/variable/SetDistVariableExecutor.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/variable/SetDistVariableExecutor.java
index b4a274b27d1..3c478f8ee47 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/variable/SetDistVariableExecutor.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/variable/SetDistVariableExecutor.java
@@ -71,7 +71,7 @@ public final class SetDistVariableExecutor implements
DistSQLUpdateExecutor<SetD
props.putAll(metaDataContexts.getMetaData().getProps().getProps());
props.putAll(metaDataContexts.getMetaData().getTemporaryProps().getProps());
props.put(propertyKey.getKey(), getValue(propertyKey, value));
-
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService().alterProperties(props);
+
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService().alterProperties(props);
refreshRootLogger(props);
syncSQLShowToLoggingRule(propertyKey, metaDataContexts, value,
contextManager);
syncSQLSimpleToLoggingRule(propertyKey, metaDataContexts, value,
contextManager);
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/MetaDataImportExecutor.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/MetaDataImportExecutor.java
index 6f90d231b43..ba9f68cbc6d 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/MetaDataImportExecutor.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/MetaDataImportExecutor.java
@@ -71,12 +71,12 @@ public final class MetaDataImportExecutor {
private void importGlobalRules(final YamlProxyServerConfiguration
yamlServerConfig) {
Collection<RuleConfiguration> rules =
ruleConfigSwapperEngine.swapToRuleConfigurations(yamlServerConfig.getRules());
for (RuleConfiguration each : rules) {
-
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService().alterGlobalRuleConfiguration(each);
+
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService().alterGlobalRuleConfiguration(each);
}
}
private void importProps(final YamlProxyServerConfiguration
yamlServerConfig) {
-
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService().alterProperties(yamlServerConfig.getProps());
+
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService().alterProperties(yamlServerConfig.getProps());
}
private Collection<YamlProxyDatabaseConfiguration>
getYamlProxyDatabaseConfigurations(final ExportedMetaData exportedMetaData) {
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/YamlDatabaseConfigurationImportExecutor.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/YamlDatabaseConfigurationImportExecutor.java
index dcc5a5042b6..6a7fa8b5910 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/YamlDatabaseConfigurationImportExecutor.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/YamlDatabaseConfigurationImportExecutor.java
@@ -98,7 +98,7 @@ public final class YamlDatabaseConfigurationImportExecutor {
}
private void addDatabase(final String databaseName) {
-
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService().createDatabase(databaseName);
+
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService().createDatabase(databaseName);
DatabaseType protocolType =
DatabaseTypeEngine.getProtocolType(Collections.emptyMap(),
contextManager.getMetaDataContexts().getMetaData().getProps());
contextManager.getMetaDataContexts().getMetaData().addDatabase(databaseName,
protocolType, contextManager.getMetaDataContexts().getMetaData().getProps());
}
@@ -110,7 +110,7 @@ public final class YamlDatabaseConfigurationImportExecutor {
propsMap.put(entry.getKey(),
DataSourcePoolPropertiesCreator.create(dataSourceConfig));
}
validateHandler.validate(propsMap);
-
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService().registerStorageUnits(databaseName,
propsMap);
+
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService().registerStorageUnits(databaseName,
propsMap);
Map<String, StorageUnit> storageUnits =
contextManager.getMetaDataContexts().getMetaData().getDatabase(databaseName).getResourceMetaData().getStorageUnits();
Map<String, StorageNode> toBeAddedStorageNode =
StorageUnitNodeMapCreator.create(propsMap);
for (Entry<String, DataSourcePoolProperties> entry :
propsMap.entrySet()) {
@@ -154,6 +154,6 @@ public final class YamlDatabaseConfigurationImportExecutor {
}
private void dropDatabase(final ShardingSphereDatabase database) {
-
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService().dropDatabase(database);
+
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService().dropDatabase(database);
}
}
diff --git
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLBackendHandlerFactoryTest.java
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLBackendHandlerFactoryTest.java
index b2af07b30b4..1920f3ba850 100644
---
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLBackendHandlerFactoryTest.java
+++
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLBackendHandlerFactoryTest.java
@@ -101,7 +101,7 @@ class DistSQLBackendHandlerFactoryTest {
MetaDataContexts metaDataContexts = mockMetaDataContexts(database);
when(result.getDatabase("foo_db")).thenReturn(database);
when(result.getMetaDataContexts()).thenReturn(metaDataContexts);
-
when(result.getPersistServiceFacade().getMetaDataManagerPersistService()).thenReturn(mock(MetaDataManagerPersistService.class));
+
when(result.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService()).thenReturn(mock(MetaDataManagerPersistService.class));
when(result.getComputeNodeInstanceContext().getModeConfiguration().getType()).thenReturn("Cluster");
return result;
}
diff --git
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/computenode/ShowComputeNodesExecutorTest.java
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/computenode/ShowComputeNodesExecutorTest.java
index 2ee5a716bab..422126044a2 100644
---
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/computenode/ShowComputeNodesExecutorTest.java
+++
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/computenode/ShowComputeNodesExecutorTest.java
@@ -26,6 +26,9 @@ import
org.apache.shardingsphere.infra.instance.metadata.proxy.ProxyInstanceMeta
import
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
import org.apache.shardingsphere.infra.state.instance.InstanceStateContext;
import org.apache.shardingsphere.mode.manager.ContextManager;
+import
org.apache.shardingsphere.mode.manager.cluster.persist.facade.ClusterPersistServiceFacade;
+import
org.apache.shardingsphere.mode.manager.standalone.persist.facade.StandalonePersistServiceFacade;
+import org.apache.shardingsphere.mode.metadata.manager.MetaDataContextManager;
import
org.apache.shardingsphere.mode.repository.standalone.StandalonePersistRepositoryConfiguration;
import org.junit.jupiter.api.Test;
@@ -44,9 +47,13 @@ class ShowComputeNodesExecutorTest {
@Test
void assertExecuteWithStandaloneMode() {
ShowComputeNodesExecutor executor = new ShowComputeNodesExecutor();
- ContextManager contextManager = mock(ContextManager.class);
+ ContextManager contextManager = mock(ContextManager.class,
RETURNS_DEEP_STUBS);
ComputeNodeInstanceContext computeNodeInstanceContext =
createStandaloneInstanceContext();
when(contextManager.getComputeNodeInstanceContext()).thenReturn(computeNodeInstanceContext);
+ MetaDataContextManager metaDataContextManager =
mock(MetaDataContextManager.class, RETURNS_DEEP_STUBS);
+
when(metaDataContextManager.getComputeNodeInstanceContext()).thenReturn(computeNodeInstanceContext);
+ StandalonePersistServiceFacade standalonePersistServiceFacade = new
StandalonePersistServiceFacade(metaDataContextManager);
+
when(contextManager.getPersistServiceFacade().getModePersistServiceFacade()).thenReturn(standalonePersistServiceFacade);
Collection<LocalDataQueryResultRow> actual =
executor.getRows(mock(ShowComputeNodesStatement.class), contextManager);
assertThat(actual.size(), is(1));
LocalDataQueryResultRow row = actual.iterator().next();
@@ -62,6 +69,15 @@ class ShowComputeNodesExecutorTest {
assertThat(row.getCell(10), is(""));
}
+ private ComputeNodeInstanceContext createStandaloneInstanceContext() {
+ ComputeNodeInstanceContext result =
mock(ComputeNodeInstanceContext.class, RETURNS_DEEP_STUBS);
+ when(result.getInstance().getMetaData()).thenReturn(new
ProxyInstanceMetaData("foo", "127.0.0.1@3308", "foo_version"));
+ when(result.getInstance().getState()).thenReturn(new
InstanceStateContext());
+ when(result.getModeConfiguration()).thenReturn(new
ModeConfiguration("Standalone", new
StandalonePersistRepositoryConfiguration("H2", new Properties())));
+ when(result.getInstance().getWorkerId()).thenReturn(0);
+ return result;
+ }
+
@Test
void assertExecuteWithClusterMode() {
ShowComputeNodesExecutor executor = new ShowComputeNodesExecutor();
@@ -83,15 +99,6 @@ class ShowComputeNodesExecutorTest {
assertThat(row.getCell(10), is(""));
}
- private ComputeNodeInstanceContext createStandaloneInstanceContext() {
- ComputeNodeInstanceContext result =
mock(ComputeNodeInstanceContext.class, RETURNS_DEEP_STUBS);
- when(result.getInstance().getMetaData()).thenReturn(new
ProxyInstanceMetaData("foo", "127.0.0.1@3308", "foo_version"));
- when(result.getInstance().getState()).thenReturn(new
InstanceStateContext());
- when(result.getModeConfiguration()).thenReturn(new
ModeConfiguration("Standalone", new
StandalonePersistRepositoryConfiguration("H2", new Properties())));
- when(result.getInstance().getWorkerId()).thenReturn(0);
- return result;
- }
-
private ComputeNodeInstanceContext createClusterInstanceContext(final
ContextManager contextManager) {
ComputeNodeInstanceContext result =
mock(ComputeNodeInstanceContext.class, RETURNS_DEEP_STUBS);
when(result.getModeConfiguration()).thenReturn(new
ModeConfiguration("Cluster", mock(PersistRepositoryConfiguration.class)));
@@ -100,7 +107,9 @@ class ShowComputeNodesExecutorTest {
when(computeNodeInstance.getState()).thenReturn(new
InstanceStateContext());
when(computeNodeInstance.getWorkerId()).thenReturn(1);
when(result.getClusterInstanceRegistry().getAllClusterInstances()).thenReturn(Collections.singleton(computeNodeInstance));
-
when(contextManager.getPersistServiceFacade().getComputeNodePersistService().loadAllInstances()).thenReturn(Collections.singleton(computeNodeInstance));
+ ClusterPersistServiceFacade clusterPersistServiceFacade =
mock(ClusterPersistServiceFacade.class, RETURNS_DEEP_STUBS);
+
when(clusterPersistServiceFacade.getComputeNodePersistService().loadAllInstances()).thenReturn(Collections.singleton(computeNodeInstance));
+
when(contextManager.getPersistServiceFacade().getModePersistServiceFacade()).thenReturn(clusterPersistServiceFacade);
return result;
}
}
diff --git
a/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/KillProcessExecutor.java
b/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/KillProcessExecutor.java
index 8fe70daa26c..1bad91917c6 100644
---
a/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/KillProcessExecutor.java
+++
b/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/KillProcessExecutor.java
@@ -47,6 +47,6 @@ public final class KillProcessExecutor implements
DatabaseAdminExecutor {
ShardingSpherePreconditions.checkState(QUERY_SCOPE.equalsIgnoreCase(killStatement.getScope()),
() -> new UnsupportedSQLOperationException("Only `KILL QUERY
<processId>` SQL syntax is supported"));
String processId = killStatement.getProcessId();
-
ProxyContext.getInstance().getContextManager().getPersistServiceFacade().getProcessPersistService().killProcess(processId);
+
ProxyContext.getInstance().getContextManager().getPersistServiceFacade().getModePersistServiceFacade().getProcessPersistService().killProcess(processId);
}
}
diff --git
a/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcessListExecutor.java
b/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcessListExecutor.java
index 3254b62ee3f..22b6f38075a 100644
---
a/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcessListExecutor.java
+++
b/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcessListExecutor.java
@@ -61,7 +61,7 @@ public final class ShowProcessListExecutor implements
DatabaseAdminQueryExecutor
}
private QueryResult getQueryResult() {
- Collection<Process> processes =
ProxyContext.getInstance().getContextManager().getPersistServiceFacade().getProcessPersistService().getProcessList();
+ Collection<Process> processes =
ProxyContext.getInstance().getContextManager().getPersistServiceFacade().getModePersistServiceFacade().getProcessPersistService().getProcessList();
if (processes.isEmpty()) {
return new RawMemoryQueryResult(queryResultMetaData,
Collections.emptyList());
}
diff --git
a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcessListExecutorTest.java
b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcessListExecutorTest.java
index 16ad4602956..bbc61ca7c12 100644
---
a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcessListExecutorTest.java
+++
b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcessListExecutorTest.java
@@ -49,7 +49,7 @@ class ShowProcessListExecutorTest {
void assertExecute() throws SQLException {
ContextManager contextManager = mock(ContextManager.class,
RETURNS_DEEP_STUBS);
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-
when(contextManager.getPersistServiceFacade().getProcessPersistService().getProcessList()).thenReturn(mockProcessList());
+
when(contextManager.getPersistServiceFacade().getModePersistServiceFacade().getProcessPersistService().getProcessList()).thenReturn(mockProcessList());
ShowProcessListExecutor showProcessListExecutor = new
ShowProcessListExecutor(false);
showProcessListExecutor.execute(new
ConnectionSession(mock(MySQLDatabaseType.class), new DefaultAttributeMap()));
assertThat(showProcessListExecutor.getQueryResultMetaData().getColumnCount(),
is(8));
diff --git
a/test/it/distsql/src/main/java/org/apache/shardingsphere/test/it/distsql/handler/engine/update/GlobalRuleDefinitionExecutorTest.java
b/test/it/distsql/src/main/java/org/apache/shardingsphere/test/it/distsql/handler/engine/update/GlobalRuleDefinitionExecutorTest.java
index 2e3bdf48720..e6f48fe3ba4 100644
---
a/test/it/distsql/src/main/java/org/apache/shardingsphere/test/it/distsql/handler/engine/update/GlobalRuleDefinitionExecutorTest.java
+++
b/test/it/distsql/src/main/java/org/apache/shardingsphere/test/it/distsql/handler/engine/update/GlobalRuleDefinitionExecutorTest.java
@@ -52,7 +52,7 @@ public abstract class GlobalRuleDefinitionExecutorTest {
return;
}
engine.executeUpdate();
- MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+ MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
verify(metaDataManagerPersistService).alterGlobalRuleConfiguration(deepEq(matchedRuleConfig));
}