From c87ec5a50ca9cd7d870190fe5cb10ce036643378 Mon Sep 17 00:00:00 2001
From: Akash Kulkarni <113392464+akashkulk@users.noreply.github.com>
Date: Thu, 4 Apr 2024 17:29:23 -0700
Subject: [PATCH] [Source-mongo] : Migrate to Kotlin (#36845)
---
airbyte-cdk/java/airbyte-cdk/README.md | 1 +
.../airbyte-cdk/core/src/main/resources/version.properties | 2 +-
.../integrations/debezium/internals/DebeziumEventConverter.kt | 2 ++
.../kotlin/io/airbyte/commons/util/AutoCloseableIterators.kt | 2 ++
airbyte-integrations/connectors/source-mongodb-v2/build.gradle | 2 +-
.../connectors/source-mongodb-v2/metadata.yaml | 2 +-
.../source/mongodb/cdc/MongoDbCdcTargetPosition.java | 3 ++-
docs/integrations/sources/mongodb-v2.md | 3 ++-
8 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/airbyte-cdk/java/airbyte-cdk/README.md b/airbyte-cdk/java/airbyte-cdk/README.md
index f93281cd983b61..6b969de6cdb3f5 100644
--- a/airbyte-cdk/java/airbyte-cdk/README.md
+++ b/airbyte-cdk/java/airbyte-cdk/README.md
@@ -144,6 +144,7 @@ Maven and Gradle will automatically reference the correct (pinned) version of th
| Version | Date | Pull Request | Subject |
|:--------|:-----------|:-----------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| 0.29.2 | 2024-04-04 | [\#36845](https://github.com/airbytehq/airbyte/pull/36772) | Changes to make source-mongo compileable |
| 0.29.1 | 2024-04-03 | [\#36772](https://github.com/airbytehq/airbyte/pull/36772) | Changes to make source-mssql compileable |
| 0.29.0 | 2024-04-02 | [\#36759](https://github.com/airbytehq/airbyte/pull/36759) | Build artifact publication changes and fixes. |
| 0.28.21 | 2024-04-02 | [\#36673](https://github.com/airbytehq/airbyte/pull/36673) | Change the destination message parsing to use standard java/kotlin classes. Adds logging to catch empty lines. |
diff --git a/airbyte-cdk/java/airbyte-cdk/core/src/main/resources/version.properties b/airbyte-cdk/java/airbyte-cdk/core/src/main/resources/version.properties
index 6641e2c0c94ce6..0fbdd8f0eb9362 100644
--- a/airbyte-cdk/java/airbyte-cdk/core/src/main/resources/version.properties
+++ b/airbyte-cdk/java/airbyte-cdk/core/src/main/resources/version.properties
@@ -1 +1 @@
-version=0.29.1
\ No newline at end of file
+version=0.29.2
\ No newline at end of file
diff --git a/airbyte-cdk/java/airbyte-cdk/db-sources/src/main/kotlin/io/airbyte/cdk/integrations/debezium/internals/DebeziumEventConverter.kt b/airbyte-cdk/java/airbyte-cdk/db-sources/src/main/kotlin/io/airbyte/cdk/integrations/debezium/internals/DebeziumEventConverter.kt
index 806371b69f749f..dc149a08c258d9 100644
--- a/airbyte-cdk/java/airbyte-cdk/db-sources/src/main/kotlin/io/airbyte/cdk/integrations/debezium/internals/DebeziumEventConverter.kt
+++ b/airbyte-cdk/java/airbyte-cdk/db-sources/src/main/kotlin/io/airbyte/cdk/integrations/debezium/internals/DebeziumEventConverter.kt
@@ -14,6 +14,7 @@ interface DebeziumEventConverter {
fun toAirbyteMessage(event: ChangeEventWithMetadata): AirbyteMessage
companion object {
+ @JvmStatic
fun buildAirbyteMessage(
source: JsonNode?,
cdcMetadataInjector: CdcMetadataInjector<*>,
@@ -35,6 +36,7 @@ interface DebeziumEventConverter {
.withRecord(airbyteRecordMessage)
}
+ @JvmStatic
fun addCdcMetadata(
baseNode: ObjectNode,
source: JsonNode,
diff --git a/airbyte-cdk/java/airbyte-cdk/dependencies/src/main/kotlin/io/airbyte/commons/util/AutoCloseableIterators.kt b/airbyte-cdk/java/airbyte-cdk/dependencies/src/main/kotlin/io/airbyte/commons/util/AutoCloseableIterators.kt
index 4f5f8f1bc31cdb..7c800c1022caa3 100644
--- a/airbyte-cdk/java/airbyte-cdk/dependencies/src/main/kotlin/io/airbyte/commons/util/AutoCloseableIterators.kt
+++ b/airbyte-cdk/java/airbyte-cdk/dependencies/src/main/kotlin/io/airbyte/commons/util/AutoCloseableIterators.kt
@@ -109,6 +109,7 @@ object AutoCloseableIterators {
* @param type
* @return new autocloseable iterator with the close function appended
*/
+ @JvmStatic
fun appendOnClose(
autoCloseableIterator: AutoCloseableIterator,
voidCallable: VoidCallable
@@ -254,6 +255,7 @@ object AutoCloseableIterators {
return CompositeIterator(iterators, airbyteStreamStatusConsumer)
}
+ @JvmStatic
fun concatWithEagerClose(iterators: List>): CompositeIterator {
return concatWithEagerClose(iterators, null)
}
diff --git a/airbyte-integrations/connectors/source-mongodb-v2/build.gradle b/airbyte-integrations/connectors/source-mongodb-v2/build.gradle
index 53c68f25beb7b0..5a744495b8d62e 100644
--- a/airbyte-integrations/connectors/source-mongodb-v2/build.gradle
+++ b/airbyte-integrations/connectors/source-mongodb-v2/build.gradle
@@ -3,7 +3,7 @@ plugins {
}
airbyteJavaConnector {
- cdkVersionRequired = '0.28.0'
+ cdkVersionRequired = '0.29.2'
features = ['db-sources', 'datastore-mongo']
useLocalCdk = false
}
diff --git a/airbyte-integrations/connectors/source-mongodb-v2/metadata.yaml b/airbyte-integrations/connectors/source-mongodb-v2/metadata.yaml
index 88a3ae139b5f54..be47934f9a240e 100644
--- a/airbyte-integrations/connectors/source-mongodb-v2/metadata.yaml
+++ b/airbyte-integrations/connectors/source-mongodb-v2/metadata.yaml
@@ -5,7 +5,7 @@ data:
connectorSubtype: database
connectorType: source
definitionId: b2e713cd-cc36-4c0a-b5bd-b47cb8a0561e
- dockerImageTag: 1.3.1
+ dockerImageTag: 1.3.2
dockerRepository: airbyte/source-mongodb-v2
documentationUrl: https://docs.airbyte.com/integrations/sources/mongodb-v2
githubIssueLabel: source-mongodb-v2
diff --git a/airbyte-integrations/connectors/source-mongodb-v2/src/main/java/io/airbyte/integrations/source/mongodb/cdc/MongoDbCdcTargetPosition.java b/airbyte-integrations/connectors/source-mongodb-v2/src/main/java/io/airbyte/integrations/source/mongodb/cdc/MongoDbCdcTargetPosition.java
index c2d20f9bc4e986..bd114760c4281d 100644
--- a/airbyte-integrations/connectors/source-mongodb-v2/src/main/java/io/airbyte/integrations/source/mongodb/cdc/MongoDbCdcTargetPosition.java
+++ b/airbyte-integrations/connectors/source-mongodb-v2/src/main/java/io/airbyte/integrations/source/mongodb/cdc/MongoDbCdcTargetPosition.java
@@ -13,6 +13,7 @@
import io.debezium.connector.mongodb.ResumeTokens;
import java.util.Map;
import java.util.Objects;
+import javax.annotation.Nullable;
import org.bson.BsonDocument;
import org.bson.BsonTimestamp;
import org.slf4j.Logger;
@@ -88,7 +89,7 @@ public boolean isEventAheadOffset(final Map offset, final Change
}
@Override
- public boolean isSameOffset(final Map offsetA, final Map offsetB) {
+ public boolean isSameOffset(@Nullable final Map offsetA, @Nullable final Map offsetB) {
if (offsetA == null || offsetA.size() != 1) {
return false;
}
diff --git a/docs/integrations/sources/mongodb-v2.md b/docs/integrations/sources/mongodb-v2.md
index 8fbfff8d2e5144..da3e90ff7b52c6 100644
--- a/docs/integrations/sources/mongodb-v2.md
+++ b/docs/integrations/sources/mongodb-v2.md
@@ -221,7 +221,8 @@ For more information regarding configuration parameters, please see [MongoDb Doc
| Version | Date | Pull Request | Subject |
|:--------|:-----------|:---------------------------------------------------------|:----------------------------------------------------------------------------------------------------------|
-| 1.3.1 | 2024-04-04 | [36837](https://github.com/airbytehq/airbyte/pull/36837) | Full refresh read of collections. |
+| 1.3.2 | 2024-04-04 | [36845](https://github.com/airbytehq/airbyte/pull/36845) | Adopt Kotlin CDK. |
+| 1.3.1 | 2024-04-04 | [36837](https://github.com/airbytehq/airbyte/pull/36837) | Adopt CDK 0.28.0. |
| 1.3.0 | 2024-03-15 | [35669](https://github.com/airbytehq/airbyte/pull/35669) | Full refresh read of collections. |
| 1.2.16 | 2024-03-06 | [35669](https://github.com/airbytehq/airbyte/pull/35669) | State message will now include record count. |
| 1.2.15 | 2024-02-27 | [35673](https://github.com/airbytehq/airbyte/pull/35673) | Consume user provided connection string. |