diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/MetaDataContextManager.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/MetaDataContextManager.java index 44d6872301a96..84638d4b9c9a4 100644 --- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/MetaDataContextManager.java +++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/MetaDataContextManager.java @@ -25,7 +25,7 @@ import org.apache.shardingsphere.mode.metadata.manager.rule.DatabaseRuleConfigurationManager; import org.apache.shardingsphere.mode.metadata.manager.rule.GlobalConfigurationManager; import org.apache.shardingsphere.mode.metadata.manager.resource.ResourceSwitchManager; -import org.apache.shardingsphere.mode.metadata.manager.rule.RuleItemManager; +import org.apache.shardingsphere.mode.metadata.manager.rule.DatabaseRuleItemManager; import org.apache.shardingsphere.mode.metadata.manager.statistics.StatisticsManager; import org.apache.shardingsphere.mode.metadata.manager.resource.StorageUnitManager; import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistFacade; @@ -48,7 +48,7 @@ public class MetaDataContextManager { private final DatabaseMetaDataManager databaseMetaDataManager; - private final RuleItemManager ruleItemManager; + private final DatabaseRuleItemManager databaseRuleItemManager; private final ResourceSwitchManager resourceSwitchManager; @@ -67,7 +67,7 @@ public MetaDataContextManager(final MetaDataContexts metaDataContexts, final Com storageUnitManager = new StorageUnitManager(metaDataContexts, computeNodeInstanceContext, resourceSwitchManager, metaDataPersistFacade); databaseRuleConfigurationManager = new DatabaseRuleConfigurationManager(metaDataContexts, computeNodeInstanceContext, metaDataPersistFacade); databaseMetaDataManager = new DatabaseMetaDataManager(metaDataContexts, metaDataPersistFacade); - ruleItemManager = new RuleItemManager(metaDataContexts, databaseRuleConfigurationManager, metaDataPersistFacade); + databaseRuleItemManager = new DatabaseRuleItemManager(metaDataContexts, databaseRuleConfigurationManager, metaDataPersistFacade); globalConfigurationManager = new GlobalConfigurationManager(metaDataContexts, metaDataPersistFacade); } } diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/rule/RuleItemManager.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/rule/DatabaseRuleItemManager.java similarity index 86% rename from mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/rule/RuleItemManager.java rename to mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/rule/DatabaseRuleItemManager.java index b0b357b399f5f..b0e5c1f0e2b1a 100644 --- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/rule/RuleItemManager.java +++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/rule/DatabaseRuleItemManager.java @@ -30,25 +30,25 @@ import java.sql.SQLException; /** - * Rule item manager. + * Database rule item manager. */ @RequiredArgsConstructor -public final class RuleItemManager { +public final class DatabaseRuleItemManager { private final MetaDataContexts metaDataContexts; - private final DatabaseRuleConfigurationManager ruleConfigManager; + private final DatabaseRuleConfigurationManager databaseRuleConfigManager; private final MetaDataPersistFacade metaDataPersistFacade; /** - * Alter with rule item. + * Alter rule item. * * @param alterRuleItem alter rule item * @throws SQLException SQL Exception */ @SuppressWarnings({"rawtypes", "unchecked"}) - public void alterRuleItem(final AlterRuleItem alterRuleItem) throws SQLException { + public void alter(final AlterRuleItem alterRuleItem) throws SQLException { Preconditions.checkArgument(alterRuleItem.getActiveVersion().equals(metaDataPersistFacade.getRepository().query(alterRuleItem.getActiveVersionKey())), "Invalid active version: %s of key: %s", alterRuleItem.getActiveVersion(), alterRuleItem.getActiveVersionKey()); RuleItemConfigurationChangedProcessor processor = TypedSPILoader.getService(RuleItemConfigurationChangedProcessor.class, alterRuleItem.getType()); @@ -57,25 +57,25 @@ public void alterRuleItem(final AlterRuleItem alterRuleItem) throws SQLException RuleConfiguration currentRuleConfig = processor.findRuleConfiguration(metaDataContexts.getMetaData().getDatabase(databaseName)); synchronized (this) { processor.changeRuleItemConfiguration(alterRuleItem, currentRuleConfig, processor.swapRuleItemConfiguration(alterRuleItem, yamlContent)); - ruleConfigManager.alterRuleConfiguration(databaseName, currentRuleConfig); + databaseRuleConfigManager.alterRuleConfiguration(databaseName, currentRuleConfig); } } /** - * Drop with rule item. + * Drop rule item. * * @param dropRuleItem drop rule item * @throws SQLException SQL Exception */ @SuppressWarnings({"rawtypes", "unchecked"}) - public void dropRuleItem(final DropRuleItem dropRuleItem) throws SQLException { + public void drop(final DropRuleItem dropRuleItem) throws SQLException { String databaseName = dropRuleItem.getDatabaseName(); Preconditions.checkState(metaDataContexts.getMetaData().containsDatabase(databaseName), "No database '%s' exists.", databaseName); RuleItemConfigurationChangedProcessor processor = TypedSPILoader.getService(RuleItemConfigurationChangedProcessor.class, dropRuleItem.getType()); RuleConfiguration currentRuleConfig = processor.findRuleConfiguration(metaDataContexts.getMetaData().getDatabase(databaseName)); synchronized (this) { processor.dropRuleItemConfiguration(dropRuleItem, currentRuleConfig); - ruleConfigManager.dropRuleConfiguration(databaseName, currentRuleConfig); + databaseRuleConfigManager.dropRuleConfiguration(databaseName, currentRuleConfig); } } } diff --git a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/type/NamedRuleItemChangedHandler.java b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/type/NamedRuleItemChangedHandler.java index 2aaefbaa6181a..053c1612e264b 100644 --- a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/type/NamedRuleItemChangedHandler.java +++ b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/type/NamedRuleItemChangedHandler.java @@ -48,9 +48,9 @@ public final class NamedRuleItemChangedHandler { public void handle(final RuleNodePath ruleNodePath, final String databaseName, final String itemName, final String path, final DataChangedEvent event) throws SQLException { String type = ruleNodePath.getRoot().getRuleType() + "." + path; if (Type.ADDED == event.getType() || Type.UPDATED == event.getType()) { - contextManager.getMetaDataContextManager().getRuleItemManager().alterRuleItem(new AlterNamedRuleItem(databaseName, itemName, event.getKey(), event.getValue(), type)); + contextManager.getMetaDataContextManager().getDatabaseRuleItemManager().alter(new AlterNamedRuleItem(databaseName, itemName, event.getKey(), event.getValue(), type)); } else if (Type.DELETED == event.getType()) { - contextManager.getMetaDataContextManager().getRuleItemManager().dropRuleItem(new DropNamedRuleItem(databaseName, itemName, type)); + contextManager.getMetaDataContextManager().getDatabaseRuleItemManager().drop(new DropNamedRuleItem(databaseName, itemName, type)); } } } diff --git a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/type/UniqueRuleItemChangedHandler.java b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/type/UniqueRuleItemChangedHandler.java index dc88ecae3f5e2..a1ae4b4645a60 100644 --- a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/type/UniqueRuleItemChangedHandler.java +++ b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/type/UniqueRuleItemChangedHandler.java @@ -47,9 +47,9 @@ public final class UniqueRuleItemChangedHandler { public void handle(final RuleNodePath ruleNodePath, final String databaseName, final String path, final DataChangedEvent event) throws SQLException { String type = ruleNodePath.getRoot().getRuleType() + "." + path; if (Type.ADDED == event.getType() || Type.UPDATED == event.getType()) { - contextManager.getMetaDataContextManager().getRuleItemManager().alterRuleItem(new AlterUniqueRuleItem(databaseName, event.getKey(), event.getValue(), type)); + contextManager.getMetaDataContextManager().getDatabaseRuleItemManager().alter(new AlterUniqueRuleItem(databaseName, event.getKey(), event.getValue(), type)); } else if (Type.DELETED == event.getType()) { - contextManager.getMetaDataContextManager().getRuleItemManager().dropRuleItem(new DropUniqueRuleItem(databaseName, type)); + contextManager.getMetaDataContextManager().getDatabaseRuleItemManager().drop(new DropUniqueRuleItem(databaseName, type)); } } } diff --git a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/RuleConfigurationChangedHandlerTest.java b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/RuleConfigurationChangedHandlerTest.java index eb0237144cd39..c89e54050d79f 100644 --- a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/RuleConfigurationChangedHandlerTest.java +++ b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/RuleConfigurationChangedHandlerTest.java @@ -65,64 +65,64 @@ void setUp() { @Test void assertHandleWithInvalidPath() throws SQLException { handler.handle("foo_db", new DataChangedEvent("/metadata/invalid/rules/fixture", "foo", Type.ADDED)); - verify(contextManager.getMetaDataContextManager().getRuleItemManager(), times(0)).alterRuleItem(any()); - verify(contextManager.getMetaDataContextManager().getRuleItemManager(), times(0)).dropRuleItem(any()); + verify(contextManager.getMetaDataContextManager().getDatabaseRuleItemManager(), times(0)).alter(any()); + verify(contextManager.getMetaDataContextManager().getDatabaseRuleItemManager(), times(0)).drop(any()); } @Test void assertHandleWithEmptyValue() throws SQLException { handler.handle("foo_db", new DataChangedEvent("/metadata/fixture/rules/fixture/versions/0", "", Type.ADDED)); - verify(contextManager.getMetaDataContextManager().getRuleItemManager(), times(0)).alterRuleItem(any()); - verify(contextManager.getMetaDataContextManager().getRuleItemManager(), times(0)).dropRuleItem(any()); + verify(contextManager.getMetaDataContextManager().getDatabaseRuleItemManager(), times(0)).alter(any()); + verify(contextManager.getMetaDataContextManager().getDatabaseRuleItemManager(), times(0)).drop(any()); } @Test void assertHandleWithPathNotFound() throws SQLException { handler.handle("foo_db", new DataChangedEvent("/metadata/fixture/rules/fixture/versions/0", "foo", Type.ADDED)); - verify(contextManager.getMetaDataContextManager().getRuleItemManager(), times(0)).alterRuleItem(any()); - verify(contextManager.getMetaDataContextManager().getRuleItemManager(), times(0)).dropRuleItem(any()); + verify(contextManager.getMetaDataContextManager().getDatabaseRuleItemManager(), times(0)).alter(any()); + verify(contextManager.getMetaDataContextManager().getDatabaseRuleItemManager(), times(0)).drop(any()); } @Test void assertHandleWithIgnoreType() throws SQLException { handler.handle("foo_db", new DataChangedEvent("/metadata/fixture/rules/fixture/named/xxx/active_version", "foo", Type.IGNORED)); - verify(contextManager.getMetaDataContextManager().getRuleItemManager(), times(0)).alterRuleItem(any()); - verify(contextManager.getMetaDataContextManager().getRuleItemManager(), times(0)).dropRuleItem(any()); + verify(contextManager.getMetaDataContextManager().getDatabaseRuleItemManager(), times(0)).alter(any()); + verify(contextManager.getMetaDataContextManager().getDatabaseRuleItemManager(), times(0)).drop(any()); } @Test void assertHandleWithNamedRuleItemAdded() throws SQLException { handler.handle("foo_db", new DataChangedEvent("/metadata/fixture/rules/fixture/named/xxx/active_version", "foo", Type.ADDED)); - verify(contextManager.getMetaDataContextManager().getRuleItemManager()).alterRuleItem(any(AlterNamedRuleItem.class)); + verify(contextManager.getMetaDataContextManager().getDatabaseRuleItemManager()).alter(any(AlterNamedRuleItem.class)); } @Test void assertHandleWithNamedRuleItemAltered() throws SQLException { handler.handle("foo_db", new DataChangedEvent("/metadata/fixture/rules/fixture/named/xxx/active_version", "foo", Type.UPDATED)); - verify(contextManager.getMetaDataContextManager().getRuleItemManager()).alterRuleItem(any(AlterNamedRuleItem.class)); + verify(contextManager.getMetaDataContextManager().getDatabaseRuleItemManager()).alter(any(AlterNamedRuleItem.class)); } @Test void assertHandleWithNamedRuleItemDropped() throws SQLException { handler.handle("foo_db", new DataChangedEvent("/metadata/fixture/rules/fixture/named/xxx", "foo", Type.DELETED)); - verify(contextManager.getMetaDataContextManager().getRuleItemManager()).dropRuleItem(any(DropNamedRuleItem.class)); + verify(contextManager.getMetaDataContextManager().getDatabaseRuleItemManager()).drop(any(DropNamedRuleItem.class)); } @Test void assertHandleWithUniqueRuleItemAdded() throws SQLException { handler.handle("foo_db", new DataChangedEvent("/metadata/fixture/rules/fixture/unique/active_version", "foo", Type.ADDED)); - verify(contextManager.getMetaDataContextManager().getRuleItemManager()).alterRuleItem(any(AlterUniqueRuleItem.class)); + verify(contextManager.getMetaDataContextManager().getDatabaseRuleItemManager()).alter(any(AlterUniqueRuleItem.class)); } @Test void assertHandleWithUniqueRuleItemAltered() throws SQLException { handler.handle("foo_db", new DataChangedEvent("/metadata/fixture/rules/fixture/unique/active_version", "foo", Type.UPDATED)); - verify(contextManager.getMetaDataContextManager().getRuleItemManager()).alterRuleItem(any(AlterUniqueRuleItem.class)); + verify(contextManager.getMetaDataContextManager().getDatabaseRuleItemManager()).alter(any(AlterUniqueRuleItem.class)); } @Test void assertHandleWithUniqueRuleItemDropped() throws SQLException { handler.handle("foo_db", new DataChangedEvent("/metadata/fixture/rules/fixture/unique/active_version", "foo", Type.DELETED)); - verify(contextManager.getMetaDataContextManager().getRuleItemManager()).dropRuleItem(any(DropUniqueRuleItem.class)); + verify(contextManager.getMetaDataContextManager().getDatabaseRuleItemManager()).drop(any(DropUniqueRuleItem.class)); } } diff --git a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.java b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.java index 9dd08ae473b24..a4e1a77c04602 100644 --- a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.java +++ b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.java @@ -215,7 +215,7 @@ public void alterRuleConfiguration(final String databaseName, final RuleConfigur // TODO double check here, when ruleItemEvent not existed or not AlterRuleItemEvent @haoran Optional ruleItemChanged = buildRuleChangedItem(databaseName, each, Type.UPDATED); if (ruleItemChanged.isPresent() && ruleItemChanged.get() instanceof AlterRuleItem) { - metaDataContextManager.getRuleItemManager().alterRuleItem((AlterRuleItem) ruleItemChanged.get()); + metaDataContextManager.getDatabaseRuleItemManager().alter((AlterRuleItem) ruleItemChanged.get()); } } clearServiceCache(); @@ -235,7 +235,7 @@ public void removeRuleConfigurationItem(final String databaseName, final RuleCon Optional ruleItemChanged = buildRuleChangedItem(databaseName, metaDataVersion, Type.DELETED); // TODO double check here, when ruleItemEvent not existed or not AlterRuleItemEvent @haoran if (ruleItemChanged.isPresent() && ruleItemChanged.get() instanceof DropRuleItem) { - metaDataContextManager.getRuleItemManager().dropRuleItem((DropRuleItem) ruleItemChanged.get()); + metaDataContextManager.getDatabaseRuleItemManager().drop((DropRuleItem) ruleItemChanged.get()); } } clearServiceCache(); diff --git a/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistServiceTest.java b/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistServiceTest.java index 67cf7f64b2830..c7c5d6cbf3560 100644 --- a/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistServiceTest.java +++ b/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistServiceTest.java @@ -178,7 +178,7 @@ void assertAlterRuleConfiguration() throws SQLException { setRuleConfigurationEventBuilder(ruleItemChangedBuilder); metaDataManagerPersistService.alterRuleConfiguration("foo_db", ruleConfig); verify(metaDataPersistFacade.getMetaDataVersionService()).switchActiveVersion(metaDataVersion); - verify(metaDataContextManager.getRuleItemManager()).alterRuleItem(any(AlterRuleItem.class)); + verify(metaDataContextManager.getDatabaseRuleItemManager()).alter(any(AlterRuleItem.class)); } @Test @@ -197,7 +197,7 @@ void assertRemoveRuleConfigurationItem() throws SQLException { when(ruleItemChangedBuilder.build(eq("foo_db"), any(), any(), any())).thenReturn(Optional.of(dropRuleItem)); setRuleConfigurationEventBuilder(ruleItemChangedBuilder); metaDataManagerPersistService.removeRuleConfigurationItem("foo_db", ruleConfig); - verify(metaDataContextManager.getRuleItemManager()).dropRuleItem(any(DropRuleItem.class)); + verify(metaDataContextManager.getDatabaseRuleItemManager()).drop(any(DropRuleItem.class)); } @Test