You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by su...@apache.org on 2022/10/14 16:53:57 UTC
[shardingsphere] branch master updated: Refactor JobDataNodeEntry (#21572)
This is an automated email from the ASF dual-hosted git repository.
sunnianjun 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 00f5553fa3b Refactor JobDataNodeEntry (#21572)
00f5553fa3b is described below
commit 00f5553fa3b5ba2b772e9fecb58fe72f6ee4119e
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Sat Oct 15 00:53:47 2022 +0800
Refactor JobDataNodeEntry (#21572)
* Refactor JobDataNodeEntry
* For code format
---
.../inline/InlineShardingAlgorithmTest.java | 8 +++---
.../pipeline/api/datanode/JobDataNodeEntry.java | 31 +++-------------------
.../scenario/migration/MigrationJobAPIImpl.java | 2 +-
.../api/datanode/JobDataNodeEntryTest.java | 18 ++++---------
4 files changed, 13 insertions(+), 46 deletions(-)
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/algorithm/sharding/inline/InlineShardingAlgorithmTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/algorithm/sharding/inline/InlineShardingAlgorithmTest.java
index e1e950abf18..7444822c9c7 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/algorithm/sharding/inline/InlineShardingAlgorithmTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/algorithm/sharding/inline/InlineShardingAlgorithmTest.java
@@ -109,13 +109,13 @@ public final class InlineShardingAlgorithmTest {
@Test
public void assertDoShardingWithLargeValues() {
List<String> availableTargetNames = Lists.newArrayList("t_order_0", "t_order_1", "t_order_2", "t_order_3");
- assertThat(inlineShardingAlgorithm.doSharding(availableTargetNames,
+ assertThat(inlineShardingAlgorithm.doSharding(availableTargetNames,
new PreciseShardingValue<>("t_order", "order_id", DATA_NODE_INFO, 787694822390497280L)), is("t_order_0"));
- assertThat(inlineShardingAlgorithm.doSharding(availableTargetNames,
+ assertThat(inlineShardingAlgorithm.doSharding(availableTargetNames,
new PreciseShardingValue<>("t_order", "order_id", DATA_NODE_INFO, new BigInteger("787694822390497280787694822390497280"))), is("t_order_0"));
- assertThat(inlineShardingAlgorithmWithSimplified.doSharding(availableTargetNames,
+ assertThat(inlineShardingAlgorithmWithSimplified.doSharding(availableTargetNames,
new PreciseShardingValue<>("t_order", "order_id", DATA_NODE_INFO, 787694822390497280L)), is("t_order_0"));
- assertThat(inlineShardingAlgorithmWithSimplified.doSharding(availableTargetNames,
+ assertThat(inlineShardingAlgorithmWithSimplified.doSharding(availableTargetNames,
new PreciseShardingValue<>("t_order", "order_id", DATA_NODE_INFO, new BigInteger("787694822390497280787694822390497280"))), is("t_order_0"));
}
}
diff --git a/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/api/datanode/JobDataNodeEntry.java b/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/api/datanode/JobDataNodeEntry.java
index 3d78b074981..d0d831078e8 100644
--- a/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/api/datanode/JobDataNodeEntry.java
+++ b/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/api/datanode/JobDataNodeEntry.java
@@ -17,45 +17,20 @@
package org.apache.shardingsphere.data.pipeline.api.datanode;
-import com.google.common.base.Splitter;
-import lombok.Getter;
-import lombok.NonNull;
import lombok.RequiredArgsConstructor;
-import lombok.ToString;
import org.apache.shardingsphere.infra.datanode.DataNode;
-import java.util.LinkedList;
-import java.util.List;
+import java.util.Collection;
/**
* Job data node entry.
*/
-@Getter
@RequiredArgsConstructor
-@ToString
public final class JobDataNodeEntry {
- @NonNull
private final String logicTableName;
- @NonNull
- private final List<DataNode> dataNodes;
-
- /**
- * Unmarshal from text.
- *
- * @param text marshalled entry
- * @return entry
- */
- public static JobDataNodeEntry unmarshal(final String text) {
- List<String> segments = Splitter.on(":").splitToList(text);
- String logicTableName = segments.get(0);
- List<DataNode> dataNodes = new LinkedList<>();
- for (String each : Splitter.on(",").omitEmptyStrings().splitToList(segments.get(1))) {
- dataNodes.add(new DataNode(each));
- }
- return new JobDataNodeEntry(logicTableName, dataNodes);
- }
+ private final Collection<DataNode> dataNodes;
/**
* Marshal to text.
@@ -78,7 +53,7 @@ public final class JobDataNodeEntry {
/**
* Get marshalled text estimated length.
*
- * @return length
+ * @return marshalled text estimated length
*/
public int getMarshalledTextEstimatedLength() {
return logicTableName.length() + 1 + dataNodes.stream().mapToInt(DataNode::getFormattedTextLength).sum() + dataNodes.size();
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/MigrationJobAPIImpl.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/MigrationJobAPIImpl.java
index c78bd95f05b..25b4d8a602e 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/MigrationJobAPIImpl.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/MigrationJobAPIImpl.java
@@ -147,7 +147,7 @@ public final class MigrationJobAPIImpl extends AbstractInventoryIncrementalJobAP
config.setTargetDatabaseType(targetDataSourceConfig.getDatabaseType().getType());
}
// target table name is logic table name, source table name is actual table name.
- JobDataNodeEntry nodeEntry = new JobDataNodeEntry(config.getTargetTableName(), Collections.singletonList(new DataNode(config.getSourceResourceName(), config.getSourceTableName())));
+ JobDataNodeEntry nodeEntry = new JobDataNodeEntry(config.getTargetTableName(), Collections.singleton(new DataNode(config.getSourceResourceName(), config.getSourceTableName())));
String dataNodeLine = new JobDataNodeLine(Collections.singleton(nodeEntry)).marshal();
config.setTablesFirstDataNodes(dataNodeLine);
config.setJobShardingDataNodes(Collections.singletonList(dataNodeLine));
diff --git a/test/pipeline/src/test/java/org/apache/shardingsphere/data/pipeline/api/datanode/JobDataNodeEntryTest.java b/test/pipeline/src/test/java/org/apache/shardingsphere/data/pipeline/api/datanode/JobDataNodeEntryTest.java
index ab88e87a7f9..2be0612bbc5 100644
--- a/test/pipeline/src/test/java/org/apache/shardingsphere/data/pipeline/api/datanode/JobDataNodeEntryTest.java
+++ b/test/pipeline/src/test/java/org/apache/shardingsphere/data/pipeline/api/datanode/JobDataNodeEntryTest.java
@@ -20,25 +20,17 @@ package org.apache.shardingsphere.data.pipeline.api.datanode;
import org.apache.shardingsphere.infra.datanode.DataNode;
import org.junit.Test;
-import java.util.List;
+import java.util.Arrays;
import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertNotNull;
import static org.hamcrest.MatcherAssert.assertThat;
public final class JobDataNodeEntryTest {
@Test
- public void assertSerialization() {
- String text = "t_order:ds_0.t_order_0,ds_0.t_order_1";
- JobDataNodeEntry actual = JobDataNodeEntry.unmarshal(text);
- assertNotNull(actual);
- assertThat(actual.marshal(), is(text));
- assertThat(actual.getLogicTableName(), is("t_order"));
- List<DataNode> dataNodes = actual.getDataNodes();
- assertNotNull(dataNodes);
- assertThat(dataNodes.size(), is(2));
- assertThat(dataNodes.get(0).format(), is("ds_0.t_order_0"));
- assertThat(dataNodes.get(1).format(), is("ds_0.t_order_1"));
+ public void assertMarshal() {
+ String actual = new JobDataNodeEntry("t_order", Arrays.asList(new DataNode("ds_0.t_order_0"), new DataNode("ds_0.t_order_1"))).marshal();
+ String expected = "t_order:ds_0.t_order_0,ds_0.t_order_1";
+ assertThat(actual, is(expected));
}
}