You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@seatunnel.apache.org by zo...@apache.org on 2022/10/06 16:00:21 UTC
[incubator-seatunnel] branch dev updated: [hotfix][e2e][jdbc] fix some error when docker version is old (#2907)
This is an automated email from the ASF dual-hosted git repository.
zongwen 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 4c761298d [hotfix][e2e][jdbc] fix some error when docker version is old (#2907)
4c761298d is described below
commit 4c761298d8ec31f35b2b4e0c736631315870c4f3
Author: liugddx <80...@qq.com>
AuthorDate: Fri Oct 7 00:00:15 2022 +0800
[hotfix][e2e][jdbc] fix some error when docker version is old (#2907)
refer to
https://stackoverflow.com/questions/69706677/cannot-start-postgresql-docker-container-docker-entrypoint-initdb-d-oper
https://hub.docker.com/layers/bitnami/mysql/8.0.29/images/sha256-15b89acd8f2971ea127934a186e6d2483b97ffe325619d8b1bc747b303636f57?context=explore
---
.../seatunnel/e2e/flink/v2/jdbc/JdbcMysqlIT.java | 28 +++++++++++-----------
.../e2e/flink/v2/jdbc/JdbcPostgresIT.java | 13 ++++++----
.../jdbc/jdbc_postgres_source_and_sink.conf | 6 ++---
.../jdbc_postgres_source_and_sink_parallel.conf | 6 ++---
...tgres_source_and_sink_parallel_upper_lower.conf | 6 ++---
.../jdbc/jdbc_postgres_source_and_sink_xa.conf | 6 ++---
.../seatunnel/e2e/spark/v2/jdbc/JdbcMysqlIT.java | 22 ++++++++---------
.../e2e/spark/v2/jdbc/JdbcPostgresIT.java | 2 +-
.../jdbc/jdbc_postgres_source_and_sink.conf | 2 +-
.../jdbc_postgres_source_and_sink_parallel.conf | 2 +-
...tgres_source_and_sink_parallel_upper_lower.conf | 2 +-
.../jdbc/jdbc_postgres_source_and_sink_xa.conf | 2 +-
12 files changed, 49 insertions(+), 48 deletions(-)
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcMysqlIT.java b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcMysqlIT.java
index c6ff38b64..351f0e93e 100644
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcMysqlIT.java
+++ b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcMysqlIT.java
@@ -39,6 +39,8 @@ import org.testcontainers.lifecycle.Startables;
import org.testcontainers.utility.DockerImageName;
import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
import java.nio.file.Paths;
import java.sql.Connection;
import java.sql.DriverManager;
@@ -50,6 +52,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
+import java.util.Objects;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -62,9 +65,9 @@ public class JdbcMysqlIT extends FlinkContainer {
@SuppressWarnings("checkstyle:MagicNumber")
@BeforeEach
- public void startPostgreSqlContainer() throws Exception {
+ public void startMySqlContainer() throws Exception {
// Non-root users need to grant XA_RECOVER_ADMIN permission on is_exactly_once = "true"
- mc = new MySQLContainer<>(DockerImageName.parse("mysql:8.0.29"))
+ mc = new MySQLContainer<>(DockerImageName.parse("bitnami/mysql:8.0.29").asCompatibleSubstituteFor("mysql"))
.withNetwork(NETWORK)
.withNetworkAliases("mysql")
.withUsername("root")
@@ -77,17 +80,14 @@ public class JdbcMysqlIT extends FlinkContainer {
.atLeast(100, TimeUnit.MILLISECONDS)
.pollInterval(500, TimeUnit.MILLISECONDS)
.atMost(5, TimeUnit.SECONDS)
- .untilAsserted(() -> initializeJdbcTable());
+ .untilAsserted(this::initializeJdbcTable);
batchInsertData();
}
- private void initializeJdbcTable() {
- java.net.URL resource = FlinkContainer.class.getResource("/jdbc/init_sql/mysql_init.conf");
- if (resource == null) {
- throw new IllegalArgumentException("can't find find file");
- }
+ private void initializeJdbcTable() throws URISyntaxException {
+ URI resource = Objects.requireNonNull(FlinkContainer.class.getResource("/jdbc/init_sql/mysql_init.conf")).toURI();
- config = new ConfigBuilder(Paths.get(resource.getPath())).getConfig();
+ config = new ConfigBuilder(Paths.get(resource)).getConfig();
CheckConfigUtil.checkAllExists(this.config, "source_table", "sink_table", "type_source_table",
"type_sink_table", "insert_type_source_table_sql", "check_type_sink_table_sql");
@@ -125,7 +125,7 @@ public class JdbcMysqlIT extends FlinkContainer {
@Test
public void testJdbcMysqlSourceAndSink() throws Exception {
Container.ExecResult execResult = executeSeaTunnelFlinkJob("/jdbc/jdbc_mysql_source_and_sink.conf");
- Assertions.assertEquals(0, execResult.getExitCode());
+ Assertions.assertEquals(0, execResult.getExitCode(), execResult.getStderr());
Assertions.assertIterableEquals(generateTestDataset(), queryResult());
}
@@ -133,7 +133,7 @@ public class JdbcMysqlIT extends FlinkContainer {
@Test
public void testJdbcMysqlSourceAndSinkParallel() throws Exception {
Container.ExecResult execResult = executeSeaTunnelFlinkJob("/jdbc/jdbc_mysql_source_and_sink_parallel.conf");
- Assertions.assertEquals(0, execResult.getExitCode());
+ Assertions.assertEquals(0, execResult.getExitCode(), execResult.getStderr());
//Sorting is required, because it is read in parallel, so there will be out of order
List<List> sortedResult = queryResult().stream().sorted(Comparator.comparing(list -> (Integer) list.get(1)))
@@ -145,7 +145,7 @@ public class JdbcMysqlIT extends FlinkContainer {
public void testJdbcMysqlSourceAndSinkParallelUpperLower() throws Exception {
Container.ExecResult execResult =
executeSeaTunnelFlinkJob("/jdbc/jdbc_mysql_source_and_sink_parallel_upper_lower.conf");
- Assertions.assertEquals(0, execResult.getExitCode());
+ Assertions.assertEquals(0, execResult.getExitCode(), execResult.getStderr());
//Sorting is required, because it is read in parallel, so there will be out of order
List<List> sortedResult = queryResult().stream().sorted(Comparator.comparing(list -> (Integer) list.get(1)))
@@ -167,7 +167,7 @@ public class JdbcMysqlIT extends FlinkContainer {
@Test
public void testJdbcMysqlSourceAndSinkDataType() throws Exception {
Container.ExecResult execResult = executeSeaTunnelFlinkJob("/jdbc/jdbc_mysql_source_and_sink_datatype.conf");
- Assertions.assertEquals(0, execResult.getExitCode());
+ Assertions.assertEquals(0, execResult.getExitCode(), execResult.getStderr());
checkSinkDataTypeTable();
}
@@ -213,7 +213,7 @@ public class JdbcMysqlIT extends FlinkContainer {
}
@AfterEach
- public void closePostgreSqlContainer() {
+ public void closeMySqlContainer() {
if (mc != null) {
mc.stop();
}
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcPostgresIT.java b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcPostgresIT.java
index bff84732a..8fa6e6e81 100644
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcPostgresIT.java
+++ b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcPostgresIT.java
@@ -21,6 +21,7 @@ import static org.awaitility.Awaitility.given;
import org.apache.seatunnel.e2e.flink.FlinkContainer;
+import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
@@ -49,6 +50,7 @@ import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import java.util.stream.Stream;
+@Slf4j
public class JdbcPostgresIT extends FlinkContainer {
private static final Logger LOGGER = LoggerFactory.getLogger(JdbcPostgresIT.class);
private PostgreSQLContainer<?> pg;
@@ -57,10 +59,11 @@ public class JdbcPostgresIT extends FlinkContainer {
@SuppressWarnings("checkstyle:MagicNumber")
@BeforeEach
public void startPostgreSqlContainer() throws Exception {
- pg = new PostgreSQLContainer<>(DockerImageName.parse("postgres:14.3"))
+ pg = new PostgreSQLContainer<>(DockerImageName.parse("postgres:14-alpine"))
.withNetwork(NETWORK)
.withNetworkAliases("postgresql")
.withCommand("postgres -c max_prepared_transactions=100")
+ .withUsername("root")
.withLogConsumer(new Slf4jLogConsumer(LOGGER));
Startables.deepStart(Stream.of(pg)).join();
LOGGER.info("Postgres container started");
@@ -115,14 +118,14 @@ public class JdbcPostgresIT extends FlinkContainer {
@Test
public void testJdbcPostgresSourceAndSink() throws Exception {
Container.ExecResult execResult = executeSeaTunnelFlinkJob("/jdbc/jdbc_postgres_source_and_sink.conf");
- Assertions.assertEquals(0, execResult.getExitCode());
+ Assertions.assertEquals(0, execResult.getExitCode(), execResult.getStderr());
Assertions.assertIterableEquals(generateTestDataset(), queryResult());
}
@Test
public void testJdbcPostgresSourceAndSinkParallel() throws Exception {
Container.ExecResult execResult = executeSeaTunnelFlinkJob("/jdbc/jdbc_postgres_source_and_sink_parallel.conf");
- Assertions.assertEquals(0, execResult.getExitCode());
+ Assertions.assertEquals(0, execResult.getExitCode(), execResult.getStderr());
//Sorting is required, because it is read in parallel, so there will be out of order
List<List> sortedResult = queryResult().stream().sorted(Comparator.comparing(list -> (Integer) list.get(1)))
@@ -134,7 +137,7 @@ public class JdbcPostgresIT extends FlinkContainer {
public void testJdbcPostgresSourceAndSinkParallelUpperLower() throws Exception {
Container.ExecResult execResult =
executeSeaTunnelFlinkJob("/jdbc/jdbc_postgres_source_and_sink_parallel_upper_lower.conf");
- Assertions.assertEquals(0, execResult.getExitCode());
+ Assertions.assertEquals(0, execResult.getExitCode(), execResult.getStderr());
//Sorting is required, because it is read in parallel, so there will be out of order
List<List> sortedResult = queryResult().stream().sorted(Comparator.comparing(list -> (Integer) list.get(1)))
@@ -148,7 +151,7 @@ public class JdbcPostgresIT extends FlinkContainer {
@Test
public void testJdbcPostgresSourceAndSinkXA() throws Exception {
Container.ExecResult execResult = executeSeaTunnelFlinkJob("/jdbc/jdbc_postgres_source_and_sink_xa.conf");
- Assertions.assertEquals(0, execResult.getExitCode());
+ Assertions.assertEquals(0, execResult.getExitCode(), execResult.getStderr());
Assertions.assertIterableEquals(generateTestDataset(), queryResult());
}
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink.conf
index 20244099e..9ac57a899 100644
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink.conf
+++ b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink.conf
@@ -24,7 +24,7 @@ source{
jdbc{
url = "jdbc:postgresql://postgresql:5432/test"
driver = "org.postgresql.Driver"
- user = "test"
+ user = "root"
password = "test"
query = "select name , age from source"
}
@@ -37,8 +37,8 @@ sink {
jdbc {
url = "jdbc:postgresql://postgresql:5432/test"
driver = "org.postgresql.Driver"
- user = "test"
+ user = "root"
password = "test"
query = "insert into sink(name,age) values(?,?)"
}
-}
\ No newline at end of file
+}
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink_parallel.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink_parallel.conf
index d60fbca69..887066eff 100644
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink_parallel.conf
+++ b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink_parallel.conf
@@ -24,7 +24,7 @@ source{
jdbc{
url = "jdbc:postgresql://postgresql:5432/test"
driver = "org.postgresql.Driver"
- user = "test"
+ user = "root"
password = "test"
query = "select user_id, name , age from source"
partition_column= "user_id"
@@ -44,9 +44,9 @@ sink {
url = "jdbc:postgresql://postgresql:5432/test"
driver = "org.postgresql.Driver"
- user = "test"
+ user = "root"
password = "test"
connection_check_timeout_sec = 100
query = "insert into sink(name,age) values(?,?)"
}
-}
\ No newline at end of file
+}
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink_parallel_upper_lower.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink_parallel_upper_lower.conf
index e285aae4d..38d9ac960 100644
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink_parallel_upper_lower.conf
+++ b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink_parallel_upper_lower.conf
@@ -24,7 +24,7 @@ source{
jdbc{
url = "jdbc:postgresql://postgresql:5432/test"
driver = "org.postgresql.Driver"
- user = "test"
+ user = "root"
password = "test"
query = "select user_id, name , age from source"
partition_column= "user_id"
@@ -47,9 +47,9 @@ sink {
url = "jdbc:postgresql://postgresql:5432/test"
driver = "org.postgresql.Driver"
- user = "test"
+ user = "root"
password = "test"
connection_check_timeout_sec = 100
query = "insert into sink(name,age) values(?,?)"
}
-}
\ No newline at end of file
+}
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink_xa.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink_xa.conf
index 33662ae58..bb338391b 100644
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink_xa.conf
+++ b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink_xa.conf
@@ -25,7 +25,7 @@ source {
jdbc{
url = "jdbc:postgresql://postgresql:5432/test"
driver = "org.postgresql.Driver"
- user = "test"
+ user = "root"
password = "test"
query = "select name , age from source"
}
@@ -38,7 +38,7 @@ sink {
jdbc {
url = "jdbc:postgresql://postgresql:5432/test"
driver = "org.postgresql.Driver"
- user = "test"
+ user = "root"
password = "test"
max_retries = 0
@@ -50,4 +50,4 @@ sink {
max_commit_attempts = 3
transaction_timeout_sec = 86400
}
-}
\ No newline at end of file
+}
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/jdbc/JdbcMysqlIT.java b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/jdbc/JdbcMysqlIT.java
index a9b70b5eb..217731032 100644
--- a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/jdbc/JdbcMysqlIT.java
+++ b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/jdbc/JdbcMysqlIT.java
@@ -39,7 +39,8 @@ import org.testcontainers.lifecycle.Startables;
import org.testcontainers.utility.DockerImageName;
import java.io.IOException;
-import java.net.URL;
+import java.net.URI;
+import java.net.URISyntaxException;
import java.nio.file.Paths;
import java.sql.Connection;
import java.sql.DriverManager;
@@ -51,6 +52,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
+import java.util.Objects;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -63,9 +65,9 @@ public class JdbcMysqlIT extends SparkContainer {
@SuppressWarnings("checkstyle:MagicNumber")
@BeforeEach
- public void startPostgreSqlContainer() throws Exception {
+ public void startMySqlContainer() throws Exception {
// Non-root users need to grant XA_RECOVER_ADMIN permission on is_exactly_once = "true"
- mc = new MySQLContainer<>(DockerImageName.parse("mysql:8.0.29"))
+ mc = new MySQLContainer<>(DockerImageName.parse("bitnami/mysql:8.0.29").asCompatibleSubstituteFor("mysql"))
.withNetwork(NETWORK)
.withNetworkAliases("mysql")
.withUsername("root")
@@ -78,18 +80,14 @@ public class JdbcMysqlIT extends SparkContainer {
.atLeast(100, TimeUnit.MILLISECONDS)
.pollInterval(500, TimeUnit.MILLISECONDS)
.atMost(5, TimeUnit.SECONDS)
- .untilAsserted(() -> initializeJdbcTable());
+ .untilAsserted(this::initializeJdbcTable);
batchInsertData();
}
- private void initializeJdbcTable() {
- URL resource = JdbcMysqlIT.class.getResource("/jdbc/init_sql/mysql_init.conf");
- if (resource == null) {
- throw new IllegalArgumentException("can't find find file");
- }
-
- config = new ConfigBuilder(Paths.get(resource.getPath())).getConfig();
+ private void initializeJdbcTable() throws URISyntaxException {
+ URI resource = Objects.requireNonNull(JdbcMysqlIT.class.getResource("/jdbc/init_sql/mysql_init.conf")).toURI();
+ config = new ConfigBuilder(Paths.get(resource)).getConfig();
CheckConfigUtil.checkAllExists(this.config, "source_table", "sink_table", "type_source_table",
"type_sink_table", "insert_type_source_table_sql", "check_type_sink_table_sql");
@@ -213,7 +211,7 @@ public class JdbcMysqlIT extends SparkContainer {
}
@AfterEach
- public void closePostgreSqlContainer() {
+ public void closeMySqlContainer() {
if (mc != null) {
mc.stop();
}
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/jdbc/JdbcPostgresIT.java b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/jdbc/JdbcPostgresIT.java
index 0a32cca25..bbc2bae7f 100644
--- a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/jdbc/JdbcPostgresIT.java
+++ b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/jdbc/JdbcPostgresIT.java
@@ -57,7 +57,7 @@ public class JdbcPostgresIT extends SparkContainer {
@SuppressWarnings("checkstyle:MagicNumber")
@BeforeEach
public void startPostgreSqlContainer() throws Exception {
- pg = new PostgreSQLContainer<>(DockerImageName.parse("postgres:14.3"))
+ pg = new PostgreSQLContainer<>(DockerImageName.parse("postgres:14-alpine"))
.withNetwork(NETWORK)
.withNetworkAliases("postgresql")
.withCommand("postgres -c max_prepared_transactions=100")
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink.conf b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink.conf
index 0e5642551..27f2ba66c 100644
--- a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink.conf
+++ b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink.conf
@@ -41,4 +41,4 @@ sink {
password = "test"
query = "insert into sink(name,age) values(?,?)"
}
-}
\ No newline at end of file
+}
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink_parallel.conf b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink_parallel.conf
index d1febbe57..0b13a1530 100644
--- a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink_parallel.conf
+++ b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink_parallel.conf
@@ -50,4 +50,4 @@ sink {
connection_check_timeout_sec = 100
query = "insert into sink(name,age) values(?,?)"
}
-}
\ No newline at end of file
+}
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink_parallel_upper_lower.conf b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink_parallel_upper_lower.conf
index 8c9163ac2..33e1d8a03 100644
--- a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink_parallel_upper_lower.conf
+++ b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink_parallel_upper_lower.conf
@@ -52,4 +52,4 @@ sink {
connection_check_timeout_sec = 100
query = "insert into sink(name,age) values(?,?)"
}
-}
\ No newline at end of file
+}
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink_xa.conf b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink_xa.conf
index f632d63e7..9ef416769 100644
--- a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink_xa.conf
+++ b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink_xa.conf
@@ -50,4 +50,4 @@ sink {
max_commit_attempts = 3
transaction_timeout_sec = 86400
}
-}
\ No newline at end of file
+}