plugins { id "java-library" id "maven-publish" id "me.champeau.gradle.japicmp" id "me.champeau.jmh" id "ru.vyarus.animalsniffer" } description = "gRPC: Netty" configurations { alpnagent } dependencies { api project(':grpc-core'), libraries.netty.codec.http2 implementation libs.netty.handler.proxy, libraries.guava, libraries.errorprone.annotations, libraries.perfmark.api, libraries.netty.unix.common // Tests depend on base class defined by core module. testImplementation testFixtures(project(':grpc-core')), testFixtures(project(':grpc-api')), project(':grpc-testing'), project(':grpc-testing-proto'), libraries.conscrypt, libraries.netty.transport.epoll testRuntimeOnly libraries.netty.tcnative, libraries.netty.tcnative.classes testRuntimeOnly (libraries.netty.tcnative) { artifact { classifier = "linux-x86_64" } } testRuntimeOnly (libraries.netty.tcnative) { artifact { classifier = "linux-aarch_64" } } testRuntimeOnly (libraries.netty.tcnative) { artifact { classifier = "osx-x86_64" } } testRuntimeOnly (libraries.netty.tcnative) { artifact { classifier = "osx-aarch_64" } } testRuntimeOnly (libraries.netty.tcnative) { artifact { classifier = "windows-x86_64" } } testRuntimeOnly (libraries.netty.transport.epoll) { artifact { classifier = "linux-x86_64" } } signature libraries.signature.java signature libraries.signature.android alpnagent libraries.jetty.alpn.agent } import net.ltgt.gradle.errorprone.CheckSeverity [tasks.named("compileJava"), tasks.named("compileTestJava")]*.configure { // Netty retuns a lot of futures that we mostly don't care about. options.errorprone.check("FutureReturnValueIgnored", CheckSeverity.OFF) } tasks.named("javadoc").configure { options.links 'http://netty.io/4.1/api/' exclude 'io/grpc/netty/Internal*' } tasks.named("test").configure { // Allow testing Jetty ALPN in TlsTest jvmArgs "-javaagent:" + configurations.alpnagent.asPath } tasks.named("jmh").configure { // Workaround // https://github.com/melix/jmh-gradle-plugin/issues/97#issuecomment-316664026 includeTests = true } tasks.named("checkstyleMain").configure { source = source.minus(fileTree(dir: "src/main", include: "**/Http2ControlFrameLimitEncoder.java")) }