/
build.gradle
131 lines (115 loc) · 4.45 KB
/
build.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
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
}