This is an automated email from the ASF dual-hosted git repository.
zhangliang 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 89f574a4ca2 Add NodePathVersionGenerator (#34694)
89f574a4ca2 is described below
commit 89f574a4ca256bd96b531a02f18cf7269e2d1518
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Feb 16 14:28:23 2025 +0800
Add NodePathVersionGenerator (#34694)
* Add NodePathVersionGenerator
* Add NodePathVersionGenerator
---
.../config/global/PropertiesPersistService.java | 6 ++---
...enerator.java => NodePathVersionGenerator.java} | 30 +++++++---------------
.../global/GlobalPropertiesNodePathGenerator.java | 12 +++------
.../config/global/GlobalRuleNodePathGenerator.java | 15 ++++-------
.../metadata/database/TableNodePathGenerator.java | 15 ++++-------
.../metadata/database/ViewNodePathGenerator.java | 15 ++++-------
.../rule/DatabaseRuleItemNodePathGenerator.java | 15 ++++-------
.../storage/StorageNodeNodePathGenerator.java | 15 ++++-------
.../storage/StorageUnitNodePathGenerator.java | 15 ++++-------
.../GlobalPropertiesNodePathGeneratorTest.java | 2 +-
10 files changed, 47 insertions(+), 93 deletions(-)
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/config/global/PropertiesPersistService.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/config/global/PropertiesPersistService.java
index 63cdfd65684..242bbdbe02a 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/config/global/PropertiesPersistService.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/config/global/PropertiesPersistService.java
@@ -45,12 +45,12 @@ public final class PropertiesPersistService {
*/
public Properties load() {
return loadActiveVersion()
- .map(optional -> YamlEngine.unmarshal(repository.query(new
GlobalPropertiesNodePathGenerator().getVersion().getVersionPath(optional)),
Properties.class))
+ .map(optional -> YamlEngine.unmarshal(repository.query(new
GlobalPropertiesNodePathGenerator().getVersion("").getVersionPath(optional)),
Properties.class))
.orElse(new Properties());
}
private Optional<Integer> loadActiveVersion() {
- String value = repository.query(new
GlobalPropertiesNodePathGenerator().getVersion().getActiveVersionPath());
+ String value = repository.query(new
GlobalPropertiesNodePathGenerator().getVersion("").getActiveVersionPath());
return Strings.isNullOrEmpty(value) ? Optional.empty() :
Optional.of(Integer.parseInt(value));
}
@@ -60,7 +60,7 @@ public final class PropertiesPersistService {
* @param props properties
*/
public void persist(final Properties props) {
- VersionNodePathGenerator versionNodePathGenerator = new
GlobalPropertiesNodePathGenerator().getVersion();
+ VersionNodePathGenerator versionNodePathGenerator = new
GlobalPropertiesNodePathGenerator().getVersion("");
metaDataVersionPersistService.persist(versionNodePathGenerator,
YamlEngine.marshal(props));
}
}
diff --git
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/config/global/GlobalPropertiesNodePathGenerator.java
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/NodePathVersionGenerator.java
similarity index 53%
copy from
mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/config/global/GlobalPropertiesNodePathGenerator.java
copy to
mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/NodePathVersionGenerator.java
index 679d1238bb6..d5e38e2f7f1 100644
---
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/config/global/GlobalPropertiesNodePathGenerator.java
+++
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/NodePathVersionGenerator.java
@@ -15,34 +15,22 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.mode.node.path.config.global;
+package org.apache.shardingsphere.mode.node.path;
-import org.apache.shardingsphere.mode.node.path.NodePathGenerator;
import
org.apache.shardingsphere.mode.node.path.version.VersionNodePathGenerator;
/**
- * Global properties node path generator.
+ * Node path generator.
+ *
+ * @param <T> type of node
*/
-public final class GlobalPropertiesNodePathGenerator implements
NodePathGenerator<String> {
-
- private static final String ROOT_NODE = "/props";
-
- @Override
- public String getRootPath() {
- return ROOT_NODE;
- }
-
- @Override
- public String getPath(final String node) {
- throw new UnsupportedOperationException("Global properties node do not
need path.");
- }
+public interface NodePathVersionGenerator<T> extends NodePathGenerator<T> {
/**
- * Get properties version node path generator.
+ * Get table version node path generator.
*
- * @return properties version node path generator
+ * @param node table name
+ * @return table version node path generator
*/
- public VersionNodePathGenerator getVersion() {
- return new VersionNodePathGenerator(getRootPath());
- }
+ VersionNodePathGenerator getVersion(T node);
}
diff --git
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/config/global/GlobalPropertiesNodePathGenerator.java
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/config/global/GlobalPropertiesNodePathGenerator.java
index 679d1238bb6..721245d8b07 100644
---
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/config/global/GlobalPropertiesNodePathGenerator.java
+++
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/config/global/GlobalPropertiesNodePathGenerator.java
@@ -17,13 +17,13 @@
package org.apache.shardingsphere.mode.node.path.config.global;
-import org.apache.shardingsphere.mode.node.path.NodePathGenerator;
+import org.apache.shardingsphere.mode.node.path.NodePathVersionGenerator;
import
org.apache.shardingsphere.mode.node.path.version.VersionNodePathGenerator;
/**
* Global properties node path generator.
*/
-public final class GlobalPropertiesNodePathGenerator implements
NodePathGenerator<String> {
+public final class GlobalPropertiesNodePathGenerator implements
NodePathVersionGenerator<String> {
private static final String ROOT_NODE = "/props";
@@ -37,12 +37,8 @@ public final class GlobalPropertiesNodePathGenerator
implements NodePathGenerato
throw new UnsupportedOperationException("Global properties node do not
need path.");
}
- /**
- * Get properties version node path generator.
- *
- * @return properties version node path generator
- */
- public VersionNodePathGenerator getVersion() {
+ @Override
+ public VersionNodePathGenerator getVersion(final String node) {
return new VersionNodePathGenerator(getRootPath());
}
}
diff --git
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/config/global/GlobalRuleNodePathGenerator.java
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/config/global/GlobalRuleNodePathGenerator.java
index e1c14867017..1d0ef912344 100644
---
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/config/global/GlobalRuleNodePathGenerator.java
+++
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/config/global/GlobalRuleNodePathGenerator.java
@@ -17,13 +17,13 @@
package org.apache.shardingsphere.mode.node.path.config.global;
-import org.apache.shardingsphere.mode.node.path.NodePathGenerator;
+import org.apache.shardingsphere.mode.node.path.NodePathVersionGenerator;
import
org.apache.shardingsphere.mode.node.path.version.VersionNodePathGenerator;
/**
* Global props node path generator.
*/
-public final class GlobalRuleNodePathGenerator implements
NodePathGenerator<String> {
+public final class GlobalRuleNodePathGenerator implements
NodePathVersionGenerator<String> {
private static final String ROOT_NODE = "/rules";
@@ -37,13 +37,8 @@ public final class GlobalRuleNodePathGenerator implements
NodePathGenerator<Stri
return String.join("/", getRootPath(), node);
}
- /**
- * Get global rule version node path generator.
- *
- * @param ruleType rule type
- * @return global rule version node path generator
- */
- public VersionNodePathGenerator getVersion(final String ruleType) {
- return new VersionNodePathGenerator(getPath(ruleType));
+ @Override
+ public VersionNodePathGenerator getVersion(final String node) {
+ return new VersionNodePathGenerator(getPath(node));
}
}
diff --git
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/database/TableNodePathGenerator.java
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/database/TableNodePathGenerator.java
index 1e9ad9a3d1f..28d43c78603 100644
---
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/database/TableNodePathGenerator.java
+++
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/database/TableNodePathGenerator.java
@@ -17,13 +17,13 @@
package org.apache.shardingsphere.mode.node.path.metadata.database;
-import org.apache.shardingsphere.mode.node.path.NodePathGenerator;
+import org.apache.shardingsphere.mode.node.path.NodePathVersionGenerator;
import
org.apache.shardingsphere.mode.node.path.version.VersionNodePathGenerator;
/**
* Table node path generator.
*/
-public final class TableNodePathGenerator implements NodePathGenerator<String>
{
+public final class TableNodePathGenerator implements
NodePathVersionGenerator<String> {
private static final String TABLES_NODE = "tables";
@@ -46,13 +46,8 @@ public final class TableNodePathGenerator implements
NodePathGenerator<String> {
return String.join("/", getRootPath(), node);
}
- /**
- * Get table version node path generator.
- *
- * @param tableName table name
- * @return table version node path generator
- */
- public VersionNodePathGenerator getVersion(final String tableName) {
- return new VersionNodePathGenerator(getPath(tableName));
+ @Override
+ public VersionNodePathGenerator getVersion(final String node) {
+ return new VersionNodePathGenerator(getPath(node));
}
}
diff --git
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/database/ViewNodePathGenerator.java
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/database/ViewNodePathGenerator.java
index 274f7298c70..189c82610e9 100644
---
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/database/ViewNodePathGenerator.java
+++
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/database/ViewNodePathGenerator.java
@@ -17,13 +17,13 @@
package org.apache.shardingsphere.mode.node.path.metadata.database;
-import org.apache.shardingsphere.mode.node.path.NodePathGenerator;
+import org.apache.shardingsphere.mode.node.path.NodePathVersionGenerator;
import
org.apache.shardingsphere.mode.node.path.version.VersionNodePathGenerator;
/**
* View path generator.
*/
-public final class ViewNodePathGenerator implements NodePathGenerator<String> {
+public final class ViewNodePathGenerator implements
NodePathVersionGenerator<String> {
private static final String VIEWS_NODE = "views";
@@ -46,13 +46,8 @@ public final class ViewNodePathGenerator implements
NodePathGenerator<String> {
return String.join("/", getRootPath(), node);
}
- /**
- * Get view version node path generator.
- *
- * @param viewName view name
- * @return view version node path generator
- */
- public VersionNodePathGenerator getVersion(final String viewName) {
- return new VersionNodePathGenerator(getPath(viewName));
+ @Override
+ public VersionNodePathGenerator getVersion(final String node) {
+ return new VersionNodePathGenerator(getPath(node));
}
}
diff --git
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/rule/DatabaseRuleItemNodePathGenerator.java
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/rule/DatabaseRuleItemNodePathGenerator.java
index 97d43a9e785..ede8227adca 100644
---
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/rule/DatabaseRuleItemNodePathGenerator.java
+++
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/rule/DatabaseRuleItemNodePathGenerator.java
@@ -17,14 +17,14 @@
package org.apache.shardingsphere.mode.node.path.metadata.rule;
-import org.apache.shardingsphere.mode.node.path.NodePathGenerator;
+import org.apache.shardingsphere.mode.node.path.NodePathVersionGenerator;
import
org.apache.shardingsphere.mode.node.path.config.database.item.DatabaseRuleItem;
import
org.apache.shardingsphere.mode.node.path.version.VersionNodePathGenerator;
/**
* Database rule item node path generator.
*/
-public final class DatabaseRuleItemNodePathGenerator implements
NodePathGenerator<DatabaseRuleItem> {
+public final class DatabaseRuleItemNodePathGenerator implements
NodePathVersionGenerator<DatabaseRuleItem> {
private final DatabaseRuleNodePathGenerator databaseRuleNodePathGenerator;
@@ -45,13 +45,8 @@ public final class DatabaseRuleItemNodePathGenerator
implements NodePathGenerato
return String.join("/", getRootPath(), databaseRuleItem.toString());
}
- /**
- * Get database rule item version node path generator.
- *
- * @param databaseRuleItem database rule item
- * @return database rule item version node path generator
- */
- public VersionNodePathGenerator getVersion(final DatabaseRuleItem
databaseRuleItem) {
- return new VersionNodePathGenerator(getPath(databaseRuleItem));
+ @Override
+ public VersionNodePathGenerator getVersion(final DatabaseRuleItem node) {
+ return new VersionNodePathGenerator(getPath(node));
}
}
diff --git
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/storage/StorageNodeNodePathGenerator.java
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/storage/StorageNodeNodePathGenerator.java
index dc1cebe3cd0..2f63018182a 100644
---
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/storage/StorageNodeNodePathGenerator.java
+++
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/storage/StorageNodeNodePathGenerator.java
@@ -18,14 +18,14 @@
package org.apache.shardingsphere.mode.node.path.metadata.storage;
import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.mode.node.path.NodePathGenerator;
+import org.apache.shardingsphere.mode.node.path.NodePathVersionGenerator;
import
org.apache.shardingsphere.mode.node.path.version.VersionNodePathGenerator;
/**
* Storage node node path generator.
*/
@RequiredArgsConstructor
-public final class StorageNodeNodePathGenerator implements
NodePathGenerator<String> {
+public final class StorageNodeNodePathGenerator implements
NodePathVersionGenerator<String> {
private static final String NODES_NODE = "nodes";
@@ -41,13 +41,8 @@ public final class StorageNodeNodePathGenerator implements
NodePathGenerator<Str
return String.join("/", getRootPath(), node);
}
- /**
- * Get storage node version node path generator.
- *
- * @param storageNodeName storage node name
- * @return storage node version node path generator
- */
- public VersionNodePathGenerator getVersion(final String storageNodeName) {
- return new VersionNodePathGenerator(String.join("/", getRootPath(),
storageNodeName));
+ @Override
+ public VersionNodePathGenerator getVersion(final String node) {
+ return new VersionNodePathGenerator(String.join("/", getRootPath(),
node));
}
}
diff --git
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/storage/StorageUnitNodePathGenerator.java
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/storage/StorageUnitNodePathGenerator.java
index b828b22b8ff..ad34dabd0bb 100644
---
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/storage/StorageUnitNodePathGenerator.java
+++
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/storage/StorageUnitNodePathGenerator.java
@@ -18,14 +18,14 @@
package org.apache.shardingsphere.mode.node.path.metadata.storage;
import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.mode.node.path.NodePathGenerator;
+import org.apache.shardingsphere.mode.node.path.NodePathVersionGenerator;
import
org.apache.shardingsphere.mode.node.path.version.VersionNodePathGenerator;
/**
* Storage unit node path generator.
*/
@RequiredArgsConstructor
-public final class StorageUnitNodePathGenerator implements
NodePathGenerator<String> {
+public final class StorageUnitNodePathGenerator implements
NodePathVersionGenerator<String> {
private static final String UNITS_NODE = "units";
@@ -41,13 +41,8 @@ public final class StorageUnitNodePathGenerator implements
NodePathGenerator<Str
return String.join("/", getRootPath(), storageUnitName);
}
- /**
- * Get storage unit version node path generator.
- *
- * @param storageUnitName storage unit name
- * @return storage unit version node path generator
- */
- public VersionNodePathGenerator getVersion(final String storageUnitName) {
- return new VersionNodePathGenerator(String.join("/", getRootPath(),
storageUnitName));
+ @Override
+ public VersionNodePathGenerator getVersion(final String node) {
+ return new VersionNodePathGenerator(String.join("/", getRootPath(),
node));
}
}
diff --git
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/config/global/GlobalPropertiesNodePathGeneratorTest.java
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/config/global/GlobalPropertiesNodePathGeneratorTest.java
index 150565bac92..8fa725e2acf 100644
---
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/config/global/GlobalPropertiesNodePathGeneratorTest.java
+++
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/config/global/GlobalPropertiesNodePathGeneratorTest.java
@@ -32,7 +32,7 @@ class GlobalPropertiesNodePathGeneratorTest {
@Test
void assertGetVersion() {
- VersionNodePathGenerator versionNodePathGenerator = new
GlobalPropertiesNodePathGenerator().getVersion();
+ VersionNodePathGenerator versionNodePathGenerator = new
GlobalPropertiesNodePathGenerator().getVersion("");
assertThat(versionNodePathGenerator.getActiveVersionPath(),
is("/props/active_version"));
assertThat(versionNodePathGenerator.getVersionsPath(),
is("/props/versions"));
assertThat(versionNodePathGenerator.getVersionPath(0),
is("/props/versions/0"));