Skip to content

Commit

Permalink
Refactor DatabaseRuleMetaDataNode
Browse files Browse the repository at this point in the history
  • Loading branch information
terrymanu committed Jan 7, 2025
1 parent 67e2f69 commit b5dc640
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@
import lombok.NoArgsConstructor;

/**
* Database rule meta data node.
* Database rule meta data node path.
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class DatabaseRuleMetaDataNode {
public final class DatabaseRuleMetaDataNodePath {

private static final String ROOT_NODE = "/metadata";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
import org.apache.shardingsphere.infra.metadata.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.metadata.persist.node.metadata.DatabaseRuleMetaDataNode;
import org.apache.shardingsphere.metadata.persist.node.metadata.DatabaseRuleMetaDataNodePath;
import org.apache.shardingsphere.metadata.persist.service.config.RepositoryTuplePersistService;
import org.apache.shardingsphere.metadata.persist.service.version.MetaDataVersionPersistService;
import org.apache.shardingsphere.mode.spi.PersistRepository;
Expand Down Expand Up @@ -60,7 +60,7 @@ public DatabaseRulePersistService(final PersistRepository repository) {
* @return configurations
*/
public Collection<RuleConfiguration> load(final String databaseName) {
return new RepositoryTupleSwapperEngine().swapToRuleConfigurations(repositoryTuplePersistService.load(DatabaseRuleMetaDataNode.getRootPath(databaseName)));
return new RepositoryTupleSwapperEngine().swapToRuleConfigurations(repositoryTuplePersistService.load(DatabaseRuleMetaDataNodePath.getRootPath(databaseName)));
}

/**
Expand All @@ -85,19 +85,19 @@ public Collection<MetaDataVersion> persist(final String databaseName, final Coll
private Collection<MetaDataVersion> persistDataNodes(final String databaseName, final String ruleName, final Collection<RepositoryTuple> repositoryTuples) {
Collection<MetaDataVersion> result = new LinkedList<>();
for (RepositoryTuple each : repositoryTuples) {
List<String> versions = metaDataVersionPersistService.getVersions(DatabaseRuleMetaDataNode.getVersionsPath(databaseName, ruleName, each.getKey()));
List<String> versions = metaDataVersionPersistService.getVersions(DatabaseRuleMetaDataNodePath.getVersionsPath(databaseName, ruleName, each.getKey()));
String nextVersion = versions.isEmpty() ? MetaDataVersion.DEFAULT_VERSION : String.valueOf(Integer.parseInt(versions.get(0)) + 1);
repository.persist(DatabaseRuleMetaDataNode.getVersionPath(databaseName, ruleName, each.getKey(), nextVersion), each.getValue());
repository.persist(DatabaseRuleMetaDataNodePath.getVersionPath(databaseName, ruleName, each.getKey(), nextVersion), each.getValue());
if (Strings.isNullOrEmpty(getActiveVersion(databaseName, ruleName, each.getKey()))) {
repository.persist(DatabaseRuleMetaDataNode.getActiveVersionPath(databaseName, ruleName, each.getKey()), MetaDataVersion.DEFAULT_VERSION);
repository.persist(DatabaseRuleMetaDataNodePath.getActiveVersionPath(databaseName, ruleName, each.getKey()), MetaDataVersion.DEFAULT_VERSION);
}
result.add(new MetaDataVersion(DatabaseRuleMetaDataNode.getRulePath(databaseName, ruleName, each.getKey()), getActiveVersion(databaseName, ruleName, each.getKey()), nextVersion));
result.add(new MetaDataVersion(DatabaseRuleMetaDataNodePath.getRulePath(databaseName, ruleName, each.getKey()), getActiveVersion(databaseName, ruleName, each.getKey()), nextVersion));
}
return result;
}

private String getActiveVersion(final String databaseName, final String ruleName, final String key) {
return repository.query(DatabaseRuleMetaDataNode.getActiveVersionPath(databaseName, ruleName, key));
return repository.query(DatabaseRuleMetaDataNodePath.getActiveVersionPath(databaseName, ruleName, key));
}

/**
Expand All @@ -107,7 +107,7 @@ private String getActiveVersion(final String databaseName, final String ruleName
* @param ruleTypeName rule type name
*/
public void delete(final String databaseName, final String ruleTypeName) {
repository.delete(DatabaseRuleMetaDataNode.getRulePath(databaseName, ruleTypeName));
repository.delete(DatabaseRuleMetaDataNodePath.getRulePath(databaseName, ruleTypeName));
}

/**
Expand Down Expand Up @@ -135,7 +135,7 @@ public Collection<MetaDataVersion> delete(final String databaseName, final Colle
private Collection<MetaDataVersion> delete(final String databaseName, final String ruleName, final Collection<RepositoryTuple> repositoryTuples) {
Collection<MetaDataVersion> result = new LinkedList<>();
for (RepositoryTuple each : repositoryTuples) {
String toBeDeletedKey = DatabaseRuleMetaDataNode.getRulePath(databaseName, ruleName, each.getKey());
String toBeDeletedKey = DatabaseRuleMetaDataNodePath.getRulePath(databaseName, ruleName, each.getKey());
repository.delete(toBeDeletedKey);
result.add(new MetaDataVersion(toBeDeletedKey));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,35 +21,35 @@
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;

class DatabaseRuleMetaDataNodeTest {
class DatabaseRuleMetaDataNodePathTest {

@Test
void assertGetRootPath() {
assertThat(DatabaseRuleMetaDataNode.getRootPath("foo_db"), is("/metadata/foo_db/rules"));
assertThat(DatabaseRuleMetaDataNodePath.getRootPath("foo_db"), is("/metadata/foo_db/rules"));
}

@Test
void assertGetRulePath() {
assertThat(DatabaseRuleMetaDataNode.getRulePath("foo_db", "foo_rule"), is("/metadata/foo_db/rules/foo_rule"));
assertThat(DatabaseRuleMetaDataNodePath.getRulePath("foo_db", "foo_rule"), is("/metadata/foo_db/rules/foo_rule"));
}

@Test
void assertGetRulePathWithKey() {
assertThat(DatabaseRuleMetaDataNode.getRulePath("foo_db", "foo_rule", "sharding"), is("/metadata/foo_db/rules/foo_rule/sharding"));
assertThat(DatabaseRuleMetaDataNodePath.getRulePath("foo_db", "foo_rule", "sharding"), is("/metadata/foo_db/rules/foo_rule/sharding"));
}

@Test
void assertGetVersionsPath() {
assertThat(DatabaseRuleMetaDataNode.getVersionsPath("foo_db", "sharding", "foo_key"), is("/metadata/foo_db/rules/sharding/foo_key/versions"));
assertThat(DatabaseRuleMetaDataNodePath.getVersionsPath("foo_db", "sharding", "foo_key"), is("/metadata/foo_db/rules/sharding/foo_key/versions"));
}

@Test
void assertGetVersionPath() {
assertThat(DatabaseRuleMetaDataNode.getVersionPath("foo_db", "foo_rule", "foo_tbl", "1"), is("/metadata/foo_db/rules/foo_rule/foo_tbl/versions/1"));
assertThat(DatabaseRuleMetaDataNodePath.getVersionPath("foo_db", "foo_rule", "foo_tbl", "1"), is("/metadata/foo_db/rules/foo_rule/foo_tbl/versions/1"));
}

@Test
void assertGetActiveVersionPath() {
assertThat(DatabaseRuleMetaDataNode.getActiveVersionPath("foo_db", "foo_rule", "foo_tbl"), is("/metadata/foo_db/rules/foo_rule/foo_tbl/active_version"));
assertThat(DatabaseRuleMetaDataNodePath.getActiveVersionPath("foo_db", "foo_rule", "foo_tbl"), is("/metadata/foo_db/rules/foo_rule/foo_tbl/active_version"));
}
}

0 comments on commit b5dc640

Please sign in to comment.