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 28bf978f1b9 Refactor JobDataNodeLine (#21565)
28bf978f1b9 is described below
commit 28bf978f1b90e52107c0e4b51e966b8ae1fc8681
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Oct 14 17:21:38 2022 +0800
Refactor JobDataNodeLine (#21565)
* Refactor JobDataNodeLine
---
.../pipeline/api/datanode/JobDataNodeLine.java | 35 +++-------------------
.../scenario/migration/MigrationJobAPIImpl.java | 5 ++--
.../pipeline/api/datanode/JobDataNodeLineTest.java | 20 +++++--------
3 files changed, 14 insertions(+), 46 deletions(-)
diff --git
a/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/api/datanode/JobDataNodeLine.java
b/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/api/datanode/JobDataNodeLine.java
index 851106c2cb3..1b261025476 100644
---
a/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/api/datanode/JobDataNodeLine.java
+++
b/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/api/datanode/JobDataNodeLine.java
@@ -17,48 +17,25 @@
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 java.util.ArrayList;
-import java.util.List;
+import java.util.Collection;
/**
* Job data node line.
*/
-@Getter
@RequiredArgsConstructor
-@ToString
public final class JobDataNodeLine {
- @NonNull
- private final List<JobDataNodeEntry> entries;
-
- /**
- * Unmarshal from text.
- *
- * @param text marshalled line
- * @return line
- */
- public static JobDataNodeLine unmarshal(final String text) {
- List<String> segments =
Splitter.on('|').omitEmptyStrings().splitToList(text);
- List<JobDataNodeEntry> entries = new ArrayList<>(segments.size());
- for (String each : segments) {
- entries.add(JobDataNodeEntry.unmarshal(each));
- }
- return new JobDataNodeLine(entries);
- }
+ private final Collection<JobDataNodeEntry> entries;
/**
* Marshal to text.
*
- * @return text, format: entry1|entry2, e.g.
t_order:ds_0.t_order_0,ds_0.t_order_1|t_order_item:ds_0.t_order_item_0,ds_0.t_order_item_1
+ * @return marshaled text, format: entry1|entry2, e.g.
t_order:ds_0.t_order_0,ds_0.t_order_1|t_order_item:ds_0.t_order_item_0,ds_0.t_order_item_1
*/
public String marshal() {
- StringBuilder result = new
StringBuilder(getMarshalledTextEstimatedLength());
+ StringBuilder result = new
StringBuilder(entries.stream().mapToInt(JobDataNodeEntry::getMarshalledTextEstimatedLength).sum()
+ entries.size());
for (JobDataNodeEntry each : entries) {
result.append(each.marshal()).append('|');
}
@@ -67,8 +44,4 @@ public final class JobDataNodeLine {
}
return result.toString();
}
-
- private int getMarshalledTextEstimatedLength() {
- return
entries.stream().mapToInt(JobDataNodeEntry::getMarshalledTextEstimatedLength).sum()
+ entries.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 c269a2dbf9f..c78bd95f05b 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,9 +147,8 @@ 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())));
- String dataNodeLine = new
JobDataNodeLine(Collections.singletonList(nodeEntry)).marshal();
+ JobDataNodeEntry nodeEntry = new
JobDataNodeEntry(config.getTargetTableName(), Collections.singletonList(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/JobDataNodeLineTest.java
b/test/pipeline/src/test/java/org/apache/shardingsphere/data/pipeline/api/datanode/JobDataNodeLineTest.java
index 09748293e5b..7c279245e2a 100644
---
a/test/pipeline/src/test/java/org/apache/shardingsphere/data/pipeline/api/datanode/JobDataNodeLineTest.java
+++
b/test/pipeline/src/test/java/org/apache/shardingsphere/data/pipeline/api/datanode/JobDataNodeLineTest.java
@@ -17,26 +17,22 @@
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 JobDataNodeLineTest {
@Test
- public void assertSerialization() {
- String text =
"t_order:ds_0.t_order_0,ds_0.t_order_1|t_order_item:ds_0.t_order_item_0,ds_0.t_order_item_1";
- JobDataNodeLine actual = JobDataNodeLine.unmarshal(text);
- assertNotNull(actual);
- assertThat(actual.marshal(), is(text));
- List<JobDataNodeEntry> entries = actual.getEntries();
- assertNotNull(entries);
- assertThat(entries.size(), is(2));
- assertThat(entries.get(0).getLogicTableName(), is("t_order"));
- assertThat(entries.get(1).getLogicTableName(), is("t_order_item"));
+ public void assertMarshal() {
+ String actual = new JobDataNodeLine(Arrays.asList(
+ new JobDataNodeEntry("t_order", Arrays.asList(new
DataNode("ds_0.t_order_0"), new DataNode("ds_0.t_order_1"))),
+ new JobDataNodeEntry("t_order_item", Arrays.asList(new
DataNode("ds_0.t_order_item_0"), new
DataNode("ds_0.t_order_item_1"))))).marshal();
+ String expected =
"t_order:ds_0.t_order_0,ds_0.t_order_1|t_order_item:ds_0.t_order_item_0,ds_0.t_order_item_1";
+ assertThat(actual, is(expected));
}
}