From c09599e3e0f0e5e71b3fe163721756705d27f13b Mon Sep 17 00:00:00 2001 From: laglangyue <373435126@qq.com> Date: Tue, 18 Oct 2022 23:55:51 +0800 Subject: [PATCH] fix --- .../connector-jdbc/pom.xml | 7 +++- .../connector-jdbc-e2e/pom.xml | 5 +++ .../connectors/seatunnel/jdbc/JdbcDb2IT.java | 33 +++++++++---------- .../resources/jdbc_db2_source_and_sink.conf | 12 +++---- .../connector-jdbc-spark-e2e/pom.xml | 6 ---- 5 files changed, 32 insertions(+), 31 deletions(-) diff --git a/seatunnel-connectors-v2/connector-jdbc/pom.xml b/seatunnel-connectors-v2/connector-jdbc/pom.xml index bd22d6758ed6..ed706fa5819d 100644 --- a/seatunnel-connectors-v2/connector-jdbc/pom.xml +++ b/seatunnel-connectors-v2/connector-jdbc/pom.xml @@ -77,6 +77,12 @@ ${oracle.version} provided + + com.ibm.db2.jcc + db2jcc + ${db2.version} + provided + @@ -112,7 +118,6 @@ com.ibm.db2.jcc db2jcc - ${db2.version} diff --git a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/pom.xml b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/pom.xml index 000ce2c49722..c383e0593cd7 100644 --- a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/pom.xml +++ b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/pom.xml @@ -70,6 +70,11 @@ ojdbc8 test + + com.ibm.db2.jcc + db2jcc + test + diff --git a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/JdbcDb2IT.java b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/JdbcDb2IT.java index c43a92312cab..b4692b895a7c 100644 --- a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/JdbcDb2IT.java +++ b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/JdbcDb2IT.java @@ -40,35 +40,36 @@ public class JdbcDb2IT extends TestSuiteBase implements TestResource { * db2 in dockerhub */ private static final String IMAGE = "ibmcom/db2:latest"; - private static final String HOST = "spark_e2e_db2"; + private static final String HOST = "e2e_db2"; private static final int PORT = 50000; - private static final int LOCAL_PORT = 50000; + private static final int LOCAL_PORT = 50001; private static final String USER = "DB2INST1"; private static final String PASSWORD = "123456"; private static final String DRIVER = "com.ibm.db2.jcc.DB2Driver"; - private static final String DATABASE = "testdb"; + private static final String DATABASE = "E2E"; private static final String SOURCE_TABLE = "E2E_TABLE_SOURCE"; private static final String SINK_TABLE = "E2E_TABLE_SINK"; private String jdbcUrl; - private GenericContainer dbserver; + private GenericContainer dbServer; private Connection jdbcConnection; @BeforeAll @Override public void startUp() throws Exception { - dbserver = new GenericContainer<>(IMAGE) - .withNetwork(TestContainer.NETWORK) + dbServer = new GenericContainer<>(IMAGE) + .withNetwork(NETWORK) .withNetworkAliases(HOST) .withPrivilegedMode(true) .withLogConsumer(new Slf4jLogConsumer(LOG)) .withEnv("DB2INST1_PASSWORD", PASSWORD) .withEnv("DBNAME", DATABASE) .withEnv("LICENSE", "accept") + .withSharedMemorySize(4 * 1024 * 1024 * 1024L) ; - dbserver.setPortBindings(Lists.newArrayList(String.format("%s:%s", LOCAL_PORT, PORT))); - Startables.deepStart(Stream.of(dbserver)).join(); - jdbcUrl = String.format("jdbc:db2://%s:%s/%s", dbserver.getHost(), LOCAL_PORT, DATABASE); + dbServer.setPortBindings(Lists.newArrayList(String.format("%s:%s", LOCAL_PORT, PORT))); + Startables.deepStart(Stream.of(dbServer)).join(); + jdbcUrl = String.format("jdbc:db2://%s:%s/%s", dbServer.getHost(), LOCAL_PORT, DATABASE); LOG.info("DB2 container started"); given().ignoreExceptions() .await() @@ -82,8 +83,8 @@ public void tearDown() throws Exception { if (jdbcConnection != null) { jdbcConnection.close(); } - if (dbserver != null) { - dbserver.close(); + if (dbServer != null) { + dbServer.close(); } } @@ -127,11 +128,7 @@ private void initializeJdbcTable() { } } - private void assertHasData(String table) throws SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException { - if(jdbcConnection.isValid(10)){ - initializeJdbcConnection(); - } - + private void assertHasData(String table) { try (Statement statement = jdbcConnection.createStatement()) { String sql = String.format("select * from \"%s\".%s", USER, table); ResultSet source = statement.executeQuery(sql); @@ -142,13 +139,13 @@ private void assertHasData(String table) throws SQLException, ClassNotFoundExcep } @Test - void pullImageOK() throws SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException { + void pullImageOK() { assertHasData(SOURCE_TABLE); } @TestTemplate @DisplayName("JDBC-Db2 end to end test") - public void testJdbcSourceAndSink(TestContainer container) throws IOException, InterruptedException, SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException { + public void testJdbcSourceAndSink(TestContainer container) throws IOException, InterruptedException { assertHasData(SOURCE_TABLE); Container.ExecResult execResult = container.executeJob("/jdbc_db2_source_and_sink.conf"); Assertions.assertEquals(0, execResult.getExitCode()); diff --git a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/src/test/resources/jdbc_db2_source_and_sink.conf b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/src/test/resources/jdbc_db2_source_and_sink.conf index 829467bb4b0c..6a67a63fa840 100644 --- a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/src/test/resources/jdbc_db2_source_and_sink.conf +++ b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/src/test/resources/jdbc_db2_source_and_sink.conf @@ -24,9 +24,9 @@ source { # This is a example source plugin **only for test and demonstrate the feature source plugin** Jdbc { driver = com.ibm.db2.jcc.DB2Driver - url = "jdbc:db2://spark_e2e_db2:50000/testdb" - user = DB2INST1 - password = 123456 + url = "jdbc:db2://e2e_db2:50000/E2E" + user = "DB2INST1" + password = "123456" query = """ select COL_BOOLEAN, COL_INT, @@ -65,9 +65,9 @@ transform { sink { Jdbc { driver = com.ibm.db2.jcc.DB2Driver - url = "jdbc:db2://spark_e2e_db2:50000/testdb" - user = DB2INST1 - password = 123456 + url = "jdbc:db2://e2e_db2:50000/E2E" + user = "DB2INST1" + password = "123456" query = """ insert into "DB2INST1".E2E_TABLE_SINK(COL_BOOLEAN, COL_INT, COL_INTEGER, COL_SMALLINT, COL_BIGINT, COL_DECIMAL, COL_DEC, COL_NUMERIC, COL_NUMBER, COL_REAL, COL_FLOAT, diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/pom.xml b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/pom.xml index cd86cbb81f79..a0cb7eeadc33 100644 --- a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/pom.xml +++ b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/pom.xml @@ -96,12 +96,6 @@ com.microsoft.sqlserver mssql-jdbc - - com.ibm.db2.jcc - db2jcc - db2jcc4 - test - org.testcontainers