dependencies {
    api project(':envoy-control-services')

    implementation group: 'org.jetbrains.kotlin', name: 'kotlin-stdlib'
    api group: 'com.fasterxml.jackson.module', name: 'jackson-module-afterburner'
    api group: 'com.fasterxml.jackson.module', name: 'jackson-module-kotlin'
    implementation group: 'org.jetbrains.kotlin', name: 'kotlin-reflect'
    api group: 'io.dropwizard.metrics', name: 'metrics-core', version: versions.dropwizard
    api group: 'io.micrometer', name: 'micrometer-core'

    implementation group: 'com.google.re2j', name: 're2j', version: versions.re2j
    implementation("com.github.ben-manes.caffeine:caffeine:3.2.0")

    api group: 'io.envoyproxy.controlplane', name: 'server', version: versions.java_controlplane

    implementation group: 'io.grpc', name: 'grpc-netty', version: versions.grpc

    implementation group: 'io.projectreactor', name: 'reactor-core'

    implementation group: 'org.slf4j', name: 'jcl-over-slf4j'
    implementation group: 'ch.qos.logback', name: 'logback-classic'

    testImplementation group: 'io.grpc', name: 'grpc-testing', version: versions.grpc
    testImplementation group: 'io.projectreactor', name: 'reactor-test'
    testImplementation group: 'org.mockito', name: 'mockito-core'
    testImplementation group: 'net.bytebuddy', name: 'byte-buddy', version: versions.bytebuddy

    testImplementation group: 'org.awaitility', name: 'awaitility'

    testImplementation group: 'org.testcontainers', name: 'testcontainers'
    testImplementation group: 'org.testcontainers', name: 'junit-jupiter'
}

tasks.withType(GroovyCompile) {
    groovyOptions.optimizationOptions.indy = true
    options.encoding = 'UTF-8'
}

test {
    maxParallelForks = 1
    useJUnitPlatform()
}

