This is an automated email from the ASF dual-hosted git repository. menghaoran pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push: new fb360effe07 Move MetaDataVersion from common to mode node (#34946) fb360effe07 is described below commit fb360effe07b562e357f7277104966fa5f485cae Author: Haoran Meng <menghaora...@gmail.com> AuthorDate: Mon Mar 10 16:24:04 2025 +0800 Move MetaDataVersion from common to mode node (#34946) * Move MetaDataVersion from common to mode node * Fix spotless issue --- .../persist/config/database/DatabaseRulePersistService.java | 11 +++++------ .../metadata/persist/version/VersionPersistService.java | 2 +- .../config/database/DatabaseRulePersistServiceTest.java | 2 +- .../mode/node/path}/version/MetaDataVersion.java | 9 +++++---- .../service/StandaloneMetaDataManagerPersistService.java | 6 +++--- .../StandaloneMetaDataManagerPersistServiceTest.java | 13 +++++++------ 6 files changed, 22 insertions(+), 21 deletions(-) diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/config/database/DatabaseRulePersistService.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/config/database/DatabaseRulePersistService.java index d587e9ab076..dea58865b1e 100644 --- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/config/database/DatabaseRulePersistService.java +++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/config/database/DatabaseRulePersistService.java @@ -18,7 +18,7 @@ package org.apache.shardingsphere.mode.metadata.persist.config.database; import org.apache.shardingsphere.infra.config.rule.RuleConfiguration; -import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion; +import org.apache.shardingsphere.mode.node.path.version.MetaDataVersion; import org.apache.shardingsphere.infra.yaml.config.pojo.rule.YamlRuleConfiguration; import org.apache.shardingsphere.infra.yaml.config.swapper.rule.YamlRuleConfigurationSwapperEngine; import org.apache.shardingsphere.mode.metadata.persist.version.VersionPersistService; @@ -113,8 +113,8 @@ public final class DatabaseRulePersistService { } private Collection<MetaDataVersion> persistTuples(final Collection<RuleNodeTuple> tuples) { - return tuples.stream().map(each -> new MetaDataVersion( - each.getPath(), Math.max(MetaDataVersion.INIT_VERSION, versionPersistService.persist(new VersionNodePath(each.getNodePath()), each.getContent()) - 1))).collect(Collectors.toList()); + return tuples.stream().map(each -> new MetaDataVersion(each.getNodePath(), + Math.max(MetaDataVersion.INIT_VERSION, versionPersistService.persist(new VersionNodePath(each.getNodePath()), each.getContent()) - 1))).collect(Collectors.toList()); } /** @@ -147,9 +147,8 @@ public final class DatabaseRulePersistService { private Collection<MetaDataVersion> deleteTuples(final Collection<RuleNodeTuple> tuples) { Collection<MetaDataVersion> result = new LinkedList<>(); for (RuleNodeTuple each : tuples) { - String path = each.getPath(); - repository.delete(path); - result.add(new MetaDataVersion(path)); + repository.delete(each.getPath()); + result.add(new MetaDataVersion(each.getNodePath())); } return result; } diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/version/VersionPersistService.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/version/VersionPersistService.java index 477e0af59b4..5d993c68518 100644 --- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/version/VersionPersistService.java +++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/version/VersionPersistService.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.mode.metadata.persist.version; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion; +import org.apache.shardingsphere.mode.node.path.version.MetaDataVersion; import org.apache.shardingsphere.mode.node.path.version.VersionNodePath; import org.apache.shardingsphere.mode.spi.repository.PersistRepository; diff --git a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/config/database/DatabaseRulePersistServiceTest.java b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/config/database/DatabaseRulePersistServiceTest.java index 98c2b7da454..a85fb4f451b 100644 --- a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/config/database/DatabaseRulePersistServiceTest.java +++ b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/config/database/DatabaseRulePersistServiceTest.java @@ -18,7 +18,7 @@ package org.apache.shardingsphere.mode.metadata.persist.config.database; import org.apache.shardingsphere.infra.config.rule.RuleConfiguration; -import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion; +import org.apache.shardingsphere.mode.node.path.version.MetaDataVersion; import org.apache.shardingsphere.mode.spi.repository.PersistRepository; import org.apache.shardingsphere.test.fixture.infra.rule.MockedRuleConfiguration; import org.junit.jupiter.api.BeforeEach; diff --git a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/version/MetaDataVersion.java b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/version/MetaDataVersion.java similarity index 81% rename from infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/version/MetaDataVersion.java rename to mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/version/MetaDataVersion.java index 7e0a8fd83e4..d70edf4f2e5 100644 --- a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/version/MetaDataVersion.java +++ b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/version/MetaDataVersion.java @@ -15,10 +15,11 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.metadata.version; +package org.apache.shardingsphere.mode.node.path.version; import lombok.Getter; import lombok.RequiredArgsConstructor; +import org.apache.shardingsphere.mode.node.path.NodePath; /** * Meta data version. @@ -29,11 +30,11 @@ public final class MetaDataVersion { public static final int INIT_VERSION = 0; - private final String path; + private final NodePath nodePath; private final int activeVersion; - public MetaDataVersion(final String path) { - this(path, INIT_VERSION); + public MetaDataVersion(final NodePath nodePath) { + this(nodePath, INIT_VERSION); } } 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 f8654f39eb0..76f93d32ab5 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 @@ -25,7 +25,7 @@ import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData; import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema; import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable; import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereView; -import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion; +import org.apache.shardingsphere.mode.node.path.version.MetaDataVersion; import org.apache.shardingsphere.infra.rule.scope.GlobalRule; import org.apache.shardingsphere.infra.rule.scope.GlobalRule.GlobalRuleChangedType; import org.apache.shardingsphere.infra.spi.type.ordered.cache.OrderedServicesCache; @@ -218,7 +218,7 @@ public final class StandaloneMetaDataManagerPersistService implements MetaDataMa return; } for (MetaDataVersion each : metaDataPersistFacade.getDatabaseRuleService().persist(database.getName(), Collections.singleton(toBeAlteredRuleConfig))) { - Optional<DatabaseRuleNodePath> databaseRuleNodePath = ruleItemChangedNodePathBuilder.build(database.getName(), each.getPath()); + Optional<DatabaseRuleNodePath> databaseRuleNodePath = ruleItemChangedNodePathBuilder.build(database.getName(), new VersionNodePath(each.getNodePath()).getActiveVersionPath()); if (databaseRuleNodePath.isPresent() && new ActiveVersionChecker(metaDataPersistFacade.getRepository()).checkSame(new VersionNodePath(databaseRuleNodePath.get()), each.getActiveVersion())) { metaDataContextManager.getDatabaseRuleItemManager().alter(databaseRuleNodePath.get()); @@ -234,7 +234,7 @@ public final class StandaloneMetaDataManagerPersistService implements MetaDataMa } Collection<MetaDataVersion> metaDataVersions = metaDataPersistFacade.getDatabaseRuleService().delete(database.getName(), Collections.singleton(toBeRemovedRuleConfig)); for (MetaDataVersion each : metaDataVersions) { - Optional<DatabaseRuleNodePath> databaseRuleNodePath = ruleItemChangedNodePathBuilder.build(database.getName(), each.getPath()); + Optional<DatabaseRuleNodePath> databaseRuleNodePath = ruleItemChangedNodePathBuilder.build(database.getName(), new VersionNodePath(each.getNodePath()).getActiveVersionPath()); if (databaseRuleNodePath.isPresent()) { metaDataContextManager.getDatabaseRuleItemManager().drop(databaseRuleNodePath.get()); } 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 313bcda412a..ad901f74cba 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 @@ -26,12 +26,12 @@ import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase; import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData; import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema; import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable; -import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion; import org.apache.shardingsphere.mode.metadata.changed.RuleItemChangedNodePathBuilder; import org.apache.shardingsphere.mode.metadata.manager.MetaDataContextManager; import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistFacade; import org.apache.shardingsphere.mode.metadata.persist.metadata.DatabaseMetaDataPersistFacade; import org.apache.shardingsphere.mode.node.path.type.database.metadata.rule.DatabaseRuleNodePath; +import org.apache.shardingsphere.mode.node.path.version.MetaDataVersion; import org.apache.shardingsphere.single.config.SingleRuleConfiguration; import org.apache.shardingsphere.single.rule.SingleRule; import org.junit.jupiter.api.BeforeEach; @@ -43,7 +43,6 @@ import org.mockito.internal.configuration.plugins.Plugins; import org.mockito.junit.jupiter.MockitoExtension; import java.sql.SQLException; -import java.util.Collection; import java.util.Collections; import java.util.LinkedList; import java.util.Optional; @@ -171,9 +170,10 @@ class StandaloneMetaDataManagerPersistServiceTest { ShardingSphereMetaData metaData = new ShardingSphereMetaData(Collections.singleton(database), mock(), mock(), new ConfigurationProperties(new Properties())); when(metaDataContextManager.getMetaDataContexts().getMetaData()).thenReturn(metaData); RuleConfiguration ruleConfig = mock(RuleConfiguration.class, RETURNS_DEEP_STUBS); - Collection<MetaDataVersion> metaDataVersions = Collections.singleton(mock(MetaDataVersion.class)); - when(metaDataPersistFacade.getDatabaseRuleService().persist("foo_db", Collections.singleton(ruleConfig))).thenReturn(metaDataVersions); + MetaDataVersion metaDataVersion = mock(MetaDataVersion.class); + when(metaDataPersistFacade.getDatabaseRuleService().persist("foo_db", Collections.singleton(ruleConfig))).thenReturn(Collections.singleton(metaDataVersion)); DatabaseRuleNodePath databaseRuleNodePath = mock(DatabaseRuleNodePath.class); + when(metaDataVersion.getNodePath()).thenReturn(databaseRuleNodePath); RuleItemChangedNodePathBuilder ruleItemChangedNodePathBuilder = mock(RuleItemChangedNodePathBuilder.class); when(ruleItemChangedNodePathBuilder.build(eq("foo_db"), any())).thenReturn(Optional.of(databaseRuleNodePath)); setRuleItemChangedBuildExecutor(ruleItemChangedNodePathBuilder); @@ -191,10 +191,11 @@ class StandaloneMetaDataManagerPersistServiceTest { @Test void assertRemoveRuleConfigurationItem() throws SQLException { RuleConfiguration ruleConfig = mock(RuleConfiguration.class, RETURNS_DEEP_STUBS); - Collection<MetaDataVersion> metaDataVersion = Collections.singleton(mock(MetaDataVersion.class)); - when(metaDataPersistFacade.getDatabaseRuleService().delete("foo_db", Collections.singleton(ruleConfig))).thenReturn(metaDataVersion); + MetaDataVersion metaDataVersion = mock(MetaDataVersion.class); + when(metaDataPersistFacade.getDatabaseRuleService().delete("foo_db", Collections.singleton(ruleConfig))).thenReturn(Collections.singleton(metaDataVersion)); RuleItemChangedNodePathBuilder ruleItemChangedNodePathBuilder = mock(RuleItemChangedNodePathBuilder.class); DatabaseRuleNodePath databaseRuleNodePath = mock(DatabaseRuleNodePath.class); + when(metaDataVersion.getNodePath()).thenReturn(databaseRuleNodePath); when(ruleItemChangedNodePathBuilder.build(eq("foo_db"), any())).thenReturn(Optional.of(databaseRuleNodePath)); setRuleItemChangedBuildExecutor(ruleItemChangedNodePathBuilder); metaDataManagerPersistService.removeRuleConfigurationItem(new ShardingSphereDatabase("foo_db", mock(), mock(), mock(), Collections.emptyList()), ruleConfig);