plugins {
    id "java-library"
    id "java-test-fixtures"
    id "maven-publish"

    id "me.champeau.jmh"
    id "ru.vyarus.animalsniffer"
}

description = 'gRPC: API'

dependencies {
    api project(':grpc-context'),
            libraries.jsr305,
            libraries.errorprone.annotations
    implementation libraries.guava

    testFixturesImplementation libraries.guava,
            libraries.junit,
            libraries.mockito.core
    testImplementation testFixtures(project(':grpc-context')),
            project(':grpc-testing'),
            project(':grpc-grpclb')
    testImplementation (libraries.guava.testlib) {
        exclude group: 'junit', module: 'junit'
    }
    jmh project(':grpc-core')

    signature libraries.signature.java
    signature libraries.signature.android
}

tasks.named("javadoc").configure {
    // We want io.grpc.Internal, but not io.grpc.Internal*
    exclude 'io/grpc/Internal?*.java'
}

components.java.withVariantsFromConfiguration(configurations.testFixturesApiElements) { skip() }
components.java.withVariantsFromConfiguration(configurations.testFixturesRuntimeElements) { skip() }
