From 3fbd506de8f2c2d2aa8004db2a41c8a803f4333f Mon Sep 17 00:00:00 2001
From: ismail simsek <6005685+ismailsimsek@users.noreply.github.com>
Date: Sun, 12 Feb 2023 17:19:01 +0100
Subject: [PATCH] improve test dependencies and code (#177)
---
debezium-server-iceberg-sink/pom.xml | 15 ++-------
...onfigSource.java => TestConfigSource.java} | 33 +++++++++++++++----
.../server/iceberg/TestIcebergUtil.java | 16 +++++----
.../iceberg/testresources/BaseSparkTest.java | 2 +-
.../server/iceberg/testresources/S3Minio.java | 8 ++---
.../iceberg/testresources/SourceMysqlDB.java | 2 +-
.../testresources/SourcePostgresqlDB.java | 2 +-
...lipse.microprofile.config.spi.ConfigSource | 2 +-
8 files changed, 46 insertions(+), 34 deletions(-)
rename debezium-server-iceberg-sink/src/test/java/io/debezium/server/iceberg/{ConfigSource.java => TestConfigSource.java} (85%)
diff --git a/debezium-server-iceberg-sink/pom.xml b/debezium-server-iceberg-sink/pom.xml
index 28a5a877..19c0ac68 100644
--- a/debezium-server-iceberg-sink/pom.xml
+++ b/debezium-server-iceberg-sink/pom.xml
@@ -214,19 +214,6 @@
4.2.0
test
-
- io.debezium
- debezium-core
- ${version.debezium}
- test-jar
- test
-
-
- io.debezium
- debezium-server-core
- test-jar
- test
-
org.testcontainers
testcontainers
@@ -242,11 +229,13 @@
io.debezium
debezium-connector-postgres
+ ${version.debezium}
test
io.debezium
debezium-connector-mysql
+ ${version.debezium}
test
diff --git a/debezium-server-iceberg-sink/src/test/java/io/debezium/server/iceberg/ConfigSource.java b/debezium-server-iceberg-sink/src/test/java/io/debezium/server/iceberg/TestConfigSource.java
similarity index 85%
rename from debezium-server-iceberg-sink/src/test/java/io/debezium/server/iceberg/ConfigSource.java
rename to debezium-server-iceberg-sink/src/test/java/io/debezium/server/iceberg/TestConfigSource.java
index 98b5009c..f3498def 100644
--- a/debezium-server-iceberg-sink/src/test/java/io/debezium/server/iceberg/ConfigSource.java
+++ b/debezium-server-iceberg-sink/src/test/java/io/debezium/server/iceberg/TestConfigSource.java
@@ -8,14 +8,20 @@
package io.debezium.server.iceberg;
-import io.debezium.server.TestConfigSource;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
-public class ConfigSource extends TestConfigSource {
+import org.eclipse.microprofile.config.spi.ConfigSource;
+
+public class TestConfigSource implements ConfigSource {
public static final String S3_REGION = "us-east-1";
public static final String S3_BUCKET = "test-bucket";
+ protected Map config = new HashMap<>();
+
- public ConfigSource() {
+ public TestConfigSource() {
config.put("quarkus.profile", "postgresql");
// common sink conf
config.put("debezium.sink.type", "iceberg");
@@ -69,9 +75,22 @@ public ConfigSource() {
}
@Override
- public int getOrdinal() {
- // Configuration property precedence is based on ordinal values and since we override the
- // properties in TestConfigSource, we should give this a higher priority.
- return super.getOrdinal() + 1;
+ public Map getProperties() {
+ return config;
+ }
+
+ @Override
+ public String getName() {
+ return "test";
+ }
+
+ @Override
+ public Set getPropertyNames() {
+ return config.keySet();
+ }
+
+ @Override
+ public String getValue(String propertyName) {
+ return config.get(propertyName);
}
}
diff --git a/debezium-server-iceberg-sink/src/test/java/io/debezium/server/iceberg/TestIcebergUtil.java b/debezium-server-iceberg-sink/src/test/java/io/debezium/server/iceberg/TestIcebergUtil.java
index f92ec654..5dcf8eff 100644
--- a/debezium-server-iceberg-sink/src/test/java/io/debezium/server/iceberg/TestIcebergUtil.java
+++ b/debezium-server-iceberg-sink/src/test/java/io/debezium/server/iceberg/TestIcebergUtil.java
@@ -9,9 +9,10 @@
package io.debezium.server.iceberg;
import io.debezium.serde.DebeziumSerdes;
-import io.debezium.util.Testing;
import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
import java.util.Collections;
import com.fasterxml.jackson.core.JsonProcessingException;
@@ -25,11 +26,14 @@
import static org.junit.jupiter.api.Assertions.*;
class TestIcebergUtil {
- final String serdeWithSchema = Testing.Files.readResourceAsString("json/serde-with-schema.json");
- final String unwrapWithSchema = Testing.Files.readResourceAsString("json/unwrap-with-schema.json");
- final String unwrapWithGeomSchema = Testing.Files.readResourceAsString("json/serde-with-schema_geom.json");
- final String unwrapWithArraySchema = Testing.Files.readResourceAsString("json/serde-with-array.json");
- final String unwrapWithArraySchema2 = Testing.Files.readResourceAsString("json/serde-with-array2.json");
+ final String serdeWithSchema = Files.readString(Path.of("src/test/resources/json/serde-with-schema.json"));
+ final String unwrapWithSchema = Files.readString(Path.of("src/test/resources/json/unwrap-with-schema.json"));
+ final String unwrapWithGeomSchema = Files.readString(Path.of("src/test/resources/json/serde-with-schema_geom.json"));
+ final String unwrapWithArraySchema = Files.readString(Path.of("src/test/resources/json/serde-with-array.json"));
+ final String unwrapWithArraySchema2 = Files.readString(Path.of("src/test/resources/json/serde-with-array2.json"));
+
+ TestIcebergUtil() throws IOException {
+ }
@Test
public void testNestedJsonRecord() throws JsonProcessingException {
diff --git a/debezium-server-iceberg-sink/src/test/java/io/debezium/server/iceberg/testresources/BaseSparkTest.java b/debezium-server-iceberg-sink/src/test/java/io/debezium/server/iceberg/testresources/BaseSparkTest.java
index 22d76f77..31dd2953 100644
--- a/debezium-server-iceberg-sink/src/test/java/io/debezium/server/iceberg/testresources/BaseSparkTest.java
+++ b/debezium-server-iceberg-sink/src/test/java/io/debezium/server/iceberg/testresources/BaseSparkTest.java
@@ -24,7 +24,7 @@
import org.eclipse.microprofile.config.ConfigProvider;
import org.eclipse.microprofile.config.inject.ConfigProperty;
import org.junit.jupiter.api.BeforeAll;
-import static io.debezium.server.iceberg.ConfigSource.S3_BUCKET;
+import static io.debezium.server.iceberg.TestConfigSource.S3_BUCKET;
/**
* Integration test that uses spark to consumer data is consumed.
diff --git a/debezium-server-iceberg-sink/src/test/java/io/debezium/server/iceberg/testresources/S3Minio.java b/debezium-server-iceberg-sink/src/test/java/io/debezium/server/iceberg/testresources/S3Minio.java
index b2c6e000..2cbd5388 100644
--- a/debezium-server-iceberg-sink/src/test/java/io/debezium/server/iceberg/testresources/S3Minio.java
+++ b/debezium-server-iceberg-sink/src/test/java/io/debezium/server/iceberg/testresources/S3Minio.java
@@ -8,7 +8,7 @@
package io.debezium.server.iceberg.testresources;
-import io.debezium.server.iceberg.ConfigSource;
+import io.debezium.server.iceberg.TestConfigSource;
import io.minio.ListObjectsArgs;
import io.minio.MakeBucketArgs;
import io.minio.MinioClient;
@@ -46,7 +46,7 @@ public class S3Minio implements QuarkusTestResourceLifecycleManager {
.withStartupTimeout(Duration.ofSeconds(30)))
.withEnv("MINIO_ACCESS_KEY", MINIO_ACCESS_KEY)
.withEnv("MINIO_SECRET_KEY", MINIO_SECRET_KEY)
- .withEnv("MINIO_REGION_NAME", ConfigSource.S3_REGION)
+ .withEnv("MINIO_REGION_NAME", TestConfigSource.S3_REGION)
.withCommand("server " + DEFAULT_STORAGE_DIRECTORY)
.withExposedPorts(MINIO_DEFAULT_PORT);
public static MinioClient client;
@@ -120,8 +120,8 @@ public Map start() {
try {
client.ignoreCertCheck();
client.makeBucket(MakeBucketArgs.builder()
- .region(ConfigSource.S3_REGION)
- .bucket(ConfigSource.S3_BUCKET)
+ .region(TestConfigSource.S3_REGION)
+ .bucket(TestConfigSource.S3_BUCKET)
.build());
} catch (Exception e) {
e.printStackTrace();
diff --git a/debezium-server-iceberg-sink/src/test/java/io/debezium/server/iceberg/testresources/SourceMysqlDB.java b/debezium-server-iceberg-sink/src/test/java/io/debezium/server/iceberg/testresources/SourceMysqlDB.java
index 751d53ad..06501576 100644
--- a/debezium-server-iceberg-sink/src/test/java/io/debezium/server/iceberg/testresources/SourceMysqlDB.java
+++ b/debezium-server-iceberg-sink/src/test/java/io/debezium/server/iceberg/testresources/SourceMysqlDB.java
@@ -30,7 +30,7 @@ public class SourceMysqlDB implements QuarkusTestResourceLifecycleManager {
public static final String MYSQL_PASSWORD = "mysqlpw";
public static final String MYSQL_DEBEZIUM_USER = "debezium";
public static final String MYSQL_DEBEZIUM_PASSWORD = "dbz";
- public static final String MYSQL_IMAGE = "debezium/example-mysql:1.9.2.Final";
+ public static final String MYSQL_IMAGE = "debezium/example-mysql:2.1.2.Final";
public static final String MYSQL_HOST = "127.0.0.1";
public static final String MYSQL_DATABASE = "inventory";
public static final Integer MYSQL_PORT_DEFAULT = 3306;
diff --git a/debezium-server-iceberg-sink/src/test/java/io/debezium/server/iceberg/testresources/SourcePostgresqlDB.java b/debezium-server-iceberg-sink/src/test/java/io/debezium/server/iceberg/testresources/SourcePostgresqlDB.java
index 8a0ab6a1..7e380682 100644
--- a/debezium-server-iceberg-sink/src/test/java/io/debezium/server/iceberg/testresources/SourcePostgresqlDB.java
+++ b/debezium-server-iceberg-sink/src/test/java/io/debezium/server/iceberg/testresources/SourcePostgresqlDB.java
@@ -28,7 +28,7 @@ public class SourcePostgresqlDB implements QuarkusTestResourceLifecycleManager {
public static final String POSTGRES_USER = "postgres";
public static final String POSTGRES_PASSWORD = "postgres";
public static final String POSTGRES_DBNAME = "postgres";
- public static final String POSTGRES_IMAGE = "debezium/example-postgres:1.9.2.Final";
+ public static final String POSTGRES_IMAGE = "debezium/example-postgres:2.1.2.Final";
public static final String POSTGRES_HOST = "localhost";
public static final Integer POSTGRES_PORT_DEFAULT = 5432;
private static final Logger LOGGER = LoggerFactory.getLogger(SourcePostgresqlDB.class);
diff --git a/debezium-server-iceberg-sink/src/test/resources/META-INF/services/org.eclipse.microprofile.config.spi.ConfigSource b/debezium-server-iceberg-sink/src/test/resources/META-INF/services/org.eclipse.microprofile.config.spi.ConfigSource
index ab3550eb..bdaeb9f3 100644
--- a/debezium-server-iceberg-sink/src/test/resources/META-INF/services/org.eclipse.microprofile.config.spi.ConfigSource
+++ b/debezium-server-iceberg-sink/src/test/resources/META-INF/services/org.eclipse.microprofile.config.spi.ConfigSource
@@ -30,4 +30,4 @@
# */
#
-io.debezium.server.iceberg.ConfigSource
\ No newline at end of file
+io.debezium.server.iceberg.TestConfigSource
\ No newline at end of file