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. |