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