You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@seatunnel.apache.org by we...@apache.org on 2022/04/21 05:32:14 UTC

[incubator-seatunnel] branch dev updated: [Bug][IT]Fix it run problem in windows (#1719)

This is an automated email from the ASF dual-hosted git repository.

wenjun pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-seatunnel.git


The following commit(s) were added to refs/heads/dev by this push:
     new f452f087 [Bug][IT]Fix it run problem in windows (#1719)
f452f087 is described below

commit f452f08776cf1a8cda667edd9b0c55dee886fee0
Author: tmljob <69...@users.noreply.github.com>
AuthorDate: Thu Apr 21 13:32:08 2022 +0800

    [Bug][IT]Fix it run problem in windows (#1719)
    
    * fix-it-run-problem-in-windows
    * modify flink container and add a comment
---
 .../java/org/apache/seatunnel/e2e/flink/FlinkContainer.java   | 11 ++++++++---
 .../java/org/apache/seatunnel/e2e/spark/SparkContainer.java   | 11 ++++++++---
 2 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/seatunnel-e2e/seatunnel-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/FlinkContainer.java b/seatunnel-e2e/seatunnel-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/FlinkContainer.java
index 9489acd3..04e21ccd 100644
--- a/seatunnel-e2e/seatunnel-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/FlinkContainer.java
+++ b/seatunnel-e2e/seatunnel-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/FlinkContainer.java
@@ -30,6 +30,7 @@ import org.testcontainers.utility.MountableFile;
 
 import java.io.File;
 import java.io.IOException;
+import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -106,11 +107,14 @@ public abstract class FlinkContainer {
         final String targetConfInContainer = Paths.get("/tmp", confFile).toString();
         jobManager.copyFileToContainer(MountableFile.forHostPath(confPath), targetConfInContainer);
 
+        // Running IT use cases under Windows requires replacing \ with /
+        String jar = FLINK_JAR_PATH.replaceAll("\\\\", "/");
+        String conf = targetConfInContainer.replaceAll("\\\\", "/");
         final List<String> command = new ArrayList<>();
         command.add("flink");
         command.add("run");
-        command.add("-c org.apache.seatunnel.SeatunnelFlink " + FLINK_JAR_PATH);
-        command.add("--config " + targetConfInContainer);
+        command.add("-c org.apache.seatunnel.SeatunnelFlink " + jar);
+        command.add("--config " + conf);
 
         Container.ExecResult execResult = jobManager.execInContainer("bash", "-c", String.join(" ", command));
         LOG.info(execResult.getStdout());
@@ -122,7 +126,8 @@ public abstract class FlinkContainer {
 
     protected void copySeaTunnelFlinkCoreJar() {
         String currentModuleHome = System.getProperty("user.dir");
-        String seatunnelCoreFlinkJarPath = currentModuleHome.replace("/seatunnel-e2e/seatunnel-flink-e2e", "")
+        Path prjRootPath = Paths.get(currentModuleHome).getParent().getParent();
+        String seatunnelCoreFlinkJarPath = prjRootPath
             + "/seatunnel-core/seatunnel-core-flink/target/seatunnel-core-flink.jar";
         jobManager.copyFileToContainer(MountableFile.forHostPath(seatunnelCoreFlinkJarPath), FLINK_JAR_PATH);
     }
diff --git a/seatunnel-e2e/seatunnel-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/SparkContainer.java b/seatunnel-e2e/seatunnel-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/SparkContainer.java
index 149d848f..42305bd4 100644
--- a/seatunnel-e2e/seatunnel-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/SparkContainer.java
+++ b/seatunnel-e2e/seatunnel-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/SparkContainer.java
@@ -30,6 +30,7 @@ import org.testcontainers.utility.MountableFile;
 
 import java.io.File;
 import java.io.IOException;
+import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.List;
@@ -84,6 +85,9 @@ public abstract class SparkContainer {
         master.copyFileToContainer(MountableFile.forHostPath(confPath), targetConfInContainer);
 
         // TODO: use start-seatunnel-spark.sh to run the spark job. Need to modified the SparkStarter can find the seatunnel-core-spark.jar.
+        // Running IT use cases under Windows requires replacing \ with /
+        String jar = SPARK_JAR_PATH.replaceAll("\\\\", "/");
+        String conf = targetConfInContainer.replaceAll("\\\\", "/");
         final List<String> command = new ArrayList<>();
         command.add("spark-submit");
         command.add("--class");
@@ -94,9 +98,9 @@ public abstract class SparkContainer {
         command.add("local");
         command.add("--deploy-mode");
         command.add("client");
-        command.add(SPARK_JAR_PATH);
+        command.add(jar);
         command.add("-c");
-        command.add(targetConfInContainer);
+        command.add(conf);
         command.add("--master");
         command.add("local");
         command.add("--deploy-mode");
@@ -112,8 +116,9 @@ public abstract class SparkContainer {
 
     protected void copySeaTunnelSparkCoreJar() {
         String currentModuleHome = System.getProperty("user.dir");
+        Path prjRootPath = Paths.get(currentModuleHome).getParent().getParent();
         // copy jar to container
-        String seatunnelCoreSparkJarPath = currentModuleHome.replace("/seatunnel-e2e/seatunnel-spark-e2e", "")
+        String seatunnelCoreSparkJarPath = prjRootPath
             + "/seatunnel-core/seatunnel-core-spark/target/seatunnel-core-spark.jar";
         master.copyFileToContainer(MountableFile.forHostPath(seatunnelCoreSparkJarPath), SPARK_JAR_PATH);
     }