1
0
mirror of synced 2025-12-21 02:51:29 -05:00
Files
airbyte/airbyte-integrations/connectors/source-mongodb-v2/build.gradle

126 lines
4.3 KiB
Groovy

plugins {
id 'airbyte-java-connector'
id "io.airbyte.gradle.docker"
id 'airbyte-connector-docker-convention'
}
airbyteJavaConnector {
cdkVersionRequired = '0.48.9'
features = ['db-sources', 'datastore-mongo']
useLocalCdk = false
}
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')
}
}
}
java {
compileJava {
options.compilerArgs += "-Xlint:-try,-rawtypes"
}
}
dependencies {
implementation 'io.debezium:debezium-embedded:2.6.2.Final'
implementation 'io.debezium:debezium-connector-mongodb:2.6.2.Final'
testImplementation 'org.testcontainers:mongodb:1.19.0'
dataGeneratorImplementation project(':airbyte-integrations:connectors:source-mongodb-v2')
dataGeneratorImplementation platform('com.fasterxml.jackson:jackson-bom:2.15.2')
dataGeneratorImplementation 'com.fasterxml.jackson.core:jackson-databind'
dataGeneratorImplementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310'
dataGeneratorImplementation ('com.github.javafaker:javafaker:1.0.2') { exclude module: 'snakeyaml' }
dataGeneratorImplementation 'io.github.oshai:kotlin-logging-jvm:5.1.0'
dataGeneratorImplementation 'org.jetbrains.kotlinx:kotlinx-cli-jvm:0.3.5'
dataGeneratorImplementation 'org.mongodb:mongodb-driver-sync:4.10.2'
debeziumTestImplementation 'io.debezium:debezium-embedded:2.6.0.Final'
debeziumTestImplementation 'io.debezium:debezium-connector-mongodb:2.6.0.Final'
debeziumTestImplementation 'org.jetbrains.kotlinx:kotlinx-cli-jvm:0.3.5'
debeziumTestImplementation 'com.github.spotbugs:spotbugs-annotations:4.7.3'
}
/*
* 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
}