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 f3636ae0ccc2e..f34df04c6232e 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 @@ void assertExecuteUpdateWithIfNotExists() throws SQLException { 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.argThat(x -> x.getTables().equals(new HashSet<>(Arrays.asList("foo_tbl", "bar_tbl"))))); } @@ -84,7 +84,7 @@ void assertExecuteUpdateWithoutIfNotExists() throws SQLException { 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.argThat(x -> x.getTables().equals(new HashSet<>(Arrays.asList("foo_tbl", "bar_tbl"))))); } @@ -95,7 +95,7 @@ void assertExecuteUpdateWithoutExistedRule() throws SQLException { 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.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 6dc737f322be0..80a4df756d211 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 @@ void assertExecuteUpdate() throws SQLException { 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 c9d63d14b5367..dfcbbd2d9ae7c 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 @@ void assertExecuteUpdateWithAssistQueryAndLikeColumns() throws SQLException { 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 @@ void assertExecuteUpdateWithoutAssistQueryAndLikeColumns() throws SQLException { 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 f846b784cc1d6..b67d83154da91 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 @@ void assertExecuteUpdateWithIfNotExists() throws SQLException { 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 8be14c436e4a3..d09534a960844 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 @@ void assertExecuteUpdate() throws SQLException { 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 @@ void assertExecuteUpdateWithInUsedEncryptor() throws SQLException { 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 @@ void assertExecuteUpdateWithIfExists() throws SQLException { 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 c73c7e27f445c..9ac2832d589e6 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 @@ void assertExecuteUpdate() throws SQLException { 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 9da63cc2e4053..3a42039de0de1 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 @@ void assertExecuteUpdateWithoutIfNotExists() throws SQLException { 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 @@ void assertExecuteUpdateWithIfNotExists() throws SQLException { 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 dde951ef799e9..fb7bb834ac86d 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 @@ void assertExecuteUpdateWithoutIfExists() throws SQLException { 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 @@ void assertExecuteUpdateWithIfExists() throws SQLException { 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 222f487f8668d..1faf2ef7f8a8e 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 79abcc49f2bdd..5a35e8df86fb6 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 33752187dd542..66be539200521 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 void operate(final DatabaseRuleDefinitionStatement sqlStatement, final Sh } // 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 0d88bc9c859f6..393c6e80ea419 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 void executeUpdate() throws SQLException { 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 4f23d7f0b7835..9e00c0f095c5f 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 void executeUpdate(final AlterStorageUnitStatement sqlStatement, final Co Map 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 a64f663f9c805..b1476330eca46 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 void executeUpdate(final RegisterStorageUnitStatement sqlStatement, final } 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 57f713484e70e..c8175ca50633a 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 void executeUpdate(final UnregisterStorageUnitStatement sqlStatement, fin } 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 245b07d1447ea..131cf8b016cc4 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 @@ private ContextManager mockContextManager() { 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 787710ad3ba94..f49373c6be86b 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":"","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":"","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 5b1c4ec7de48d..bfaeea26c0982 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 boolean execute(final ShardingSphereDatabase database, final QueryContext 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 3c757c0224340..9b0efbb3d5c44 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 @@ private boolean doExecute(final ShardingSphereDatabase database, final Execution 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 a53e9aabe6db5..2f82ad7035c23 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 @@ private int doExecuteUpdate(final ShardingSphereDatabase database, final Executi .newInstance(database, executionContext.getSqlStatementContext().getSqlStatement(), updateCallback); List 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 f1b93d172d6f5..170ef7900d103 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 @@ void assertExecuteUpdateWithSingleRule() throws SQLException { 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 @@ void assertExecuteUpdateWithoutSingleRule() throws SQLException { 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 bfd7d8ee89eff..0e2ab74694261 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 @@ void assertExecuteUpdateWithoutDefaultStorageUnit() throws SQLException { 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.argThat(x -> x.getDefaultDataSource().equals(Optional.of("foo_ds")))); verify(metaDataManagerPersistService).alterRuleConfiguration(any(), ArgumentMatchers.argThat(x -> !x.getDefaultDataSource().isPresent())); } @@ -79,7 +79,7 @@ void assertExecuteUpdateWithDefaultStorageUnit() throws SQLException { 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.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 56be3b0bae93c..a49a5df7498e5 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 void close() { } 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 6f1074f8933bb..8bfbfb44cfad8 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 @@ 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/main/java/org/apache/shardingsphere/mode/persist/mode/ModePersistServiceFacade.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/mode/ModePersistServiceFacade.java new file mode 100644 index 0000000000000..197a4c8f897c8 --- /dev/null +++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/mode/ModePersistServiceFacade.java @@ -0,0 +1,52 @@ +/* + * 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.persist.mode; + +import org.apache.shardingsphere.mode.persist.service.ComputeNodePersistService; +import org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService; +import org.apache.shardingsphere.mode.persist.service.ProcessPersistService; + +/** + * Mode persist service facade. + */ +public interface ModePersistServiceFacade extends AutoCloseable { + + /** + * Get meta data manager persist service. + * + * @return meta data manager persist service + */ + MetaDataManagerPersistService getMetaDataManagerPersistService(); + + /** + * Get compute node persist service. + * + * @return compute node persist service + */ + ComputeNodePersistService getComputeNodePersistService(); + + /** + * Get process persist service. + * + * @return process persist service + */ + ProcessPersistService getProcessPersistService(); + + @Override + 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% 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/mode/ModePersistServiceFacadeBuilder.java index c60d8729c7bad..f8882c8c01280 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/ComputeNodePersistService.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/ComputeNodePersistService.java new file mode 100644 index 0000000000000..a6d4e7fd17ee5 --- /dev/null +++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/ComputeNodePersistService.java @@ -0,0 +1,35 @@ +/* + * 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.persist.service; + +import org.apache.shardingsphere.infra.instance.ComputeNodeInstance; + +import java.util.Collection; + +/** + * Compute node persist service. + */ +public interface ComputeNodePersistService { + + /** + * Load all compute node instances. + * + * @return loaded instances + */ + Collection loadAllInstances(); +} diff --git a/mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/ModePersistServiceFacadeBuilderFixture.java b/mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/ModePersistServiceFacadeBuilderFixture.java new file mode 100644 index 0000000000000..570e069f34499 --- /dev/null +++ b/mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/ModePersistServiceFacadeBuilderFixture.java @@ -0,0 +1,38 @@ +/* + * 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.fixture; + +import org.apache.shardingsphere.mode.metadata.manager.MetaDataContextManager; +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 static org.mockito.Mockito.mock; + +public final class ModePersistServiceFacadeBuilderFixture implements ModePersistServiceFacadeBuilder { + + @Override + public ModePersistServiceFacade build(final MetaDataContextManager metaDataContextManager, final PersistRepository repository) { + return mock(); + } + + @Override + public Object getType() { + 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 533658cd875c3..d7f59c54d4004 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.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 @@ void setUp() throws SQLException { 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 43ab8da176659..d71728fd7f576 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 a32da0f9c2d4f..dcfff4772991f 100644 --- a/mode/core/src/test/resources/logback-test.xml +++ b/mode/core/src/test/resources/logback-test.xml @@ -26,7 +26,7 @@ - + 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 fa63d5e257072..1f62f2c1539f5 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.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 @@ private ClusterPersistRepository getClusterPersistRepository(final ClusterPersis } 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 a5ef64ee4bfea..13e70156b8f29 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.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 void handle(final ContextManager contextManager, final DataChangedEvent e 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 b20438a32691d..0000000000000 --- 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 0000000000000..e57d875410bdf --- /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/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/facade/ClusterPersistServiceFacadeBuilder.java b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/facade/ClusterPersistServiceFacadeBuilder.java new file mode 100644 index 0000000000000..35c166f61f151 --- /dev/null +++ b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/facade/ClusterPersistServiceFacadeBuilder.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.cluster.persist.facade; + +import org.apache.shardingsphere.mode.metadata.manager.MetaDataContextManager; +import org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacade; +import org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacadeBuilder; +import org.apache.shardingsphere.mode.spi.repository.PersistRepository; + +/** + * Cluster persist service facade builder. + */ +public final class ClusterPersistServiceFacadeBuilder implements ModePersistServiceFacadeBuilder { + + @Override + public ModePersistServiceFacade build(final MetaDataContextManager metaDataContextManager, final PersistRepository repository) { + return new ClusterPersistServiceFacade(metaDataContextManager, repository); + } + + @Override + public Object getType() { + 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 30c629503d906..ac95c21aaa130 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.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.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 void offline(final ComputeNodeInstance computeNodeInstance) { repository.delete(NodePathGenerator.toPath(new OnlineNodePath(computeNodeInstance.getMetaData().getType(), computeNodeInstance.getMetaData().getId()))); } - /** - * Load all compute node instances. - * - * @return loaded instances - */ - public Collection loadAllInstances() { - return Arrays.stream(InstanceType.values()).flatMap(each -> loadInstances(each).stream()).collect(Collectors.toList()); - } - - private Collection loadInstances(final InstanceType instanceType) { - Collection 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 Collection getAssignedWorkerIds() { return instanceIds.stream().map(each -> repository.query(NodePathGenerator.toPath(new ComputeNodeWorkerIDNodePath(each)))) .filter(Objects::nonNull).map(Integer::parseInt).collect(Collectors.toSet()); } + + @Override + public Collection loadAllInstances() { + return Arrays.stream(InstanceType.values()).flatMap(each -> loadInstances(each).stream()).collect(Collectors.toList()); + } + + private Collection loadInstances(final InstanceType instanceType) { + Collection 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 0c1dc137884c7..41ebc9920ab97 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 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 d2c393c4c3315..17d9f371de619 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 848b563dc9dac..fec5b1fc0b617 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.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.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 @@ void assertHandleWithInvalidInstanceOnlinePath() { @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 0fb8dc814496d..0000000000000 --- 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 bea3bda45667f..a1ebd6f7b90f2 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.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 a2a093e13cafd..649c46b7ed794 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 @@ 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 54397b134626f..2428a9633b3b9 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.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 ac2b20320e470..4df51b1fc4ad8 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 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 @@ void assertChangeToConnectedState() throws InterruptedException { @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 @@ void assertChangeToLostStateWithGenerateWorkerId() throws InterruptedException { @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 @@ void assertChangeToLostStateWithoutGenerateWorkerId() throws InterruptedExceptio } @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 8133669d3e4a5..4475b7aeafa56 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 f8794fd2fa73c..08e604e84257e 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 0000000000000..f242a0a778dc0 --- /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 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 47181acf88dc0..be8778248f694 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 283bb54fd3e23..0000000000000 --- 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 f25008d1cf279..e47939b16c5c0 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 StandardDatabaseConnector(final String driverType, final QueryContext que } 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 5c75e6ead7c7f..cd276470c2004 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 463c0b968be20..35435d2ead099 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 ResponseHeader execute() throws SQLException { } 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 c6ad283cca30e..5e1ecbb929935 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 java.util.Arrays; import java.util.Collection; -import java.util.Collections; import java.util.stream.Collectors; /** @@ -43,9 +42,7 @@ public Collection getColumnNames(final ShowComputeNodesStatement sqlStat @Override public Collection getRows(final ShowComputeNodesStatement sqlStatement, final ContextManager contextManager) { String modeType = contextManager.getComputeNodeInstanceContext().getModeConfiguration().getType(); - Collection instances = "Standalone".equals(modeType) - ? Collections.singleton(contextManager.getComputeNodeInstanceContext().getInstance()) - : contextManager.getPersistServiceFacade().getComputeNodePersistService().loadAllInstances(); + Collection 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 48a7ad99f3735..f3c088883b518 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.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 void executeUpdate(final SetComputeNodeStateStatement sqlStatement, final } 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 9481acea69a43..c2de95b2532a4 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 computeNodeInstance = contextManager.getComputeNodeInstanceContext().getClusterInstanceRegistry().find(instanceId); if (computeNodeInstance.isPresent()) { @@ -44,7 +48,8 @@ public void executeUpdate(final LabelComputeNodeStatement sqlStatement, final Co 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 bc4897303d978..6e1b4a3aa7f27 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.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 computeNodeInstance = contextManager.getComputeNodeInstanceContext().getClusterInstanceRegistry().find(instanceId); if (computeNodeInstance.isPresent()) { + ClusterPersistServiceFacade clusterPersistServiceFacade = (ClusterPersistServiceFacade) contextManager.getPersistServiceFacade().getModePersistServiceFacade(); Collection 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 b4a274b27d18d..3c478f8ee4711 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 @@ private void handleConfigurationProperty(final ContextManager contextManager, fi 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 6f90d231b43f4..ba9f68cbc6d6e 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 @@ private void importServerConfiguration(final ExportedMetaData exportedMetaData) private void importGlobalRules(final YamlProxyServerConfiguration yamlServerConfig) { Collection 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 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 dcc5a5042b641..6a7fa8b5910ae 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 @@ private void checkDatabase(final String databaseName) { } 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 @@ private void importDataSources(final String databaseName, final Map storageUnits = contextManager.getMetaDataContexts().getMetaData().getDatabase(databaseName).getResourceMetaData().getStorageUnits(); Map toBeAddedStorageNode = StorageUnitNodeMapCreator.create(propsMap); for (Entry entry : propsMap.entrySet()) { @@ -154,6 +154,6 @@ private Map swapToRuleConfigs(final Collection actual = executor.getRows(mock(ShowComputeNodesStatement.class), contextManager); assertThat(actual.size(), is(1)); LocalDataQueryResultRow row = actual.iterator().next(); @@ -62,6 +69,15 @@ void assertExecuteWithStandaloneMode() { 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 @@ void assertExecuteWithClusterMode() { 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 @@ private ComputeNodeInstanceContext createClusterInstanceContext(final ContextMan 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 8fe70daa26cdb..1bad91917c6ba 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 void execute(final ConnectionSession connectionSession) throws SQLExcepti ShardingSpherePreconditions.checkState(QUERY_SCOPE.equalsIgnoreCase(killStatement.getScope()), () -> new UnsupportedSQLOperationException("Only `KILL QUERY ` 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 3254b62ee3f5d..22b6f38075ae4 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 void execute(final ConnectionSession connectionSession) { } private QueryResult getQueryResult() { - Collection processes = ProxyContext.getInstance().getContextManager().getPersistServiceFacade().getProcessPersistService().getProcessList(); + Collection 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 16ad4602956a0..bbc61ca7c126e 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 2e3bdf4872089..e6f48fe3ba4ba 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 @@ protected void assertExecuteUpdate(final GlobalRuleConfiguration ruleConfig, return; } engine.executeUpdate(); - MetaDataManagerPersistService metaDataManagerPersistService = contextManager.getPersistServiceFacade().getMetaDataManagerPersistService(); + MetaDataManagerPersistService metaDataManagerPersistService = contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService(); verify(metaDataManagerPersistService).alterGlobalRuleConfiguration(deepEq(matchedRuleConfig)); }