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));
     }
 }

Reply via email to