Co-authored-by: Marius Posta <marius@airbyte.io> Co-authored-by: postamar <postamar@users.noreply.github.com>
132 lines
4.4 KiB
Groovy
132 lines
4.4 KiB
Groovy
plugins {
|
|
id 'application'
|
|
id 'airbyte-java-connector'
|
|
alias(libs.plugins.kotlin.jvm)
|
|
}
|
|
|
|
airbyteJavaConnector {
|
|
cdkVersionRequired = '0.1.2'
|
|
features = ['db-sources']
|
|
useLocalCdk = false
|
|
}
|
|
|
|
airbyteJavaConnector.addCdkDependencies()
|
|
|
|
application {
|
|
mainClass = 'io.airbyte.integrations.source.mongodb.MongoDbSource'
|
|
applicationDefaultJvmArgs = ['-XX:+ExitOnOutOfMemoryError', '-XX:MaxRAMPercentage=75.0']
|
|
}
|
|
|
|
configurations {
|
|
dataGenerator.extendsFrom testImplementation
|
|
debeziumTest.extendsFrom testImplementation
|
|
}
|
|
|
|
sourceSets {
|
|
dataGenerator {
|
|
kotlin {
|
|
srcDirs('src/test/generator')
|
|
}
|
|
}
|
|
debeziumTest {
|
|
kotlin {
|
|
srcDirs('src/test/debezium')
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
implementation libs.airbyte.protocol
|
|
implementation libs.mongo.driver.sync
|
|
|
|
testImplementation testFixtures(project(':airbyte-integrations:bases:debezium'))
|
|
testImplementation libs.testcontainers.mongodb
|
|
|
|
integrationTestJavaImplementation libs.apache.commons.lang
|
|
integrationTestJavaImplementation project(':airbyte-integrations:bases:standard-source-test')
|
|
integrationTestJavaImplementation project(':airbyte-integrations:connectors:source-mongodb-v2')
|
|
|
|
dataGeneratorImplementation project(":airbyte-commons")
|
|
dataGeneratorImplementation project(':airbyte-integrations:connectors:source-mongodb-v2')
|
|
dataGeneratorImplementation libs.mongo.driver.sync
|
|
dataGeneratorImplementation libs.kotlin.logging
|
|
dataGeneratorImplementation libs.kotlinx.cli
|
|
dataGeneratorImplementation (libs.java.faker) {
|
|
exclude module: 'snakeyaml'
|
|
}
|
|
dataGeneratorImplementation libs.jackson.databind
|
|
dataGeneratorImplementation libs.bundles.slf4j
|
|
dataGeneratorImplementation libs.slf4j.simple
|
|
dataGeneratorImplementation libs.kotlinx.cli.jvm
|
|
dataGeneratorImplementation 'org.yaml:snakeyaml:2.2'
|
|
|
|
debeziumTestImplementation libs.bundles.debezium.bundle
|
|
debeziumTestImplementation libs.bundles.slf4j
|
|
debeziumTestImplementation libs.slf4j.simple
|
|
debeziumTestImplementation libs.kotlinx.cli.jvm
|
|
debeziumTestImplementation libs.spotbugs.annotations
|
|
}
|
|
|
|
/*
|
|
* Executes the script that generates test data and inserts it into the provided database/collection.
|
|
*
|
|
* To execute this task, use the following command:
|
|
*
|
|
* ./gradlew :airbyte-integrations:connectors:source-mongodb-v2:generateTestData -PconnectionString=<connection string> -PdatabaseName=<database name> -PcollectionName=<collection name> -Pusername=<username>
|
|
*
|
|
* Optionally, you can provide -PnumberOfDocuments to change the number of generated documents from the default (10,000).
|
|
*/
|
|
tasks.register('generateTestData', JavaExec) {
|
|
def arguments = []
|
|
|
|
if(project.hasProperty('collectionName')) {
|
|
arguments.addAll(['--collection-name', collectionName])
|
|
}
|
|
if(project.hasProperty('connectionString')) {
|
|
arguments.addAll(['--connection-string', connectionString])
|
|
}
|
|
if(project.hasProperty('databaseName')) {
|
|
arguments.addAll(['--database-name', databaseName])
|
|
}
|
|
if (project.hasProperty('numberOfDocuments')) {
|
|
arguments.addAll(['--number', numberOfDocuments])
|
|
}
|
|
if(project.hasProperty('username')) {
|
|
arguments.addAll(['--username', username])
|
|
}
|
|
|
|
classpath = sourceSets.dataGenerator.runtimeClasspath
|
|
main 'io.airbyte.integrations.source.mongodb.MongoDbInsertClient'
|
|
standardInput = System.in
|
|
args arguments
|
|
}
|
|
|
|
/**
|
|
* Executes the Debezium MongoDB Connector test harness.
|
|
*
|
|
* To execute this task, use the following command:
|
|
*
|
|
* ./gradlew :airbyte-integrations:connectors:source-mongodb-v2:debeziumTest -PconnectionString=<connection string> -PdatabaseName=<database name> -PcollectionName=<collection name> -Pusername=<username>
|
|
*/
|
|
tasks.register('debeziumTest', JavaExec) {
|
|
def arguments = []
|
|
|
|
if(project.hasProperty('collectionName')) {
|
|
arguments.addAll(['--collection-name', collectionName])
|
|
}
|
|
if(project.hasProperty('connectionString')) {
|
|
arguments.addAll(['--connection-string', connectionString])
|
|
}
|
|
if(project.hasProperty('databaseName')) {
|
|
arguments.addAll(['--database-name', databaseName])
|
|
}
|
|
if(project.hasProperty('username')) {
|
|
arguments.addAll(['--username', username])
|
|
}
|
|
|
|
classpath = sourceSets.debeziumTest.runtimeClasspath
|
|
main 'io.airbyte.integrations.source.mongodb.DebeziumMongoDbConnectorTest'
|
|
standardInput = System.in
|
|
args arguments
|
|
}
|