1plugins { 2 id "java-library" 3 id "maven-publish" 4 5 id "me.champeau.gradle.japicmp" 6 id "me.champeau.jmh" 7 id "ru.vyarus.animalsniffer" 8} 9 10description = "gRPC: Netty" 11 12configurations { 13 alpnagent 14} 15 16dependencies { 17 api project(':grpc-core'), 18 libraries.netty.codec.http2 19 implementation libs.netty.handler.proxy, 20 libraries.guava, 21 libraries.errorprone.annotations, 22 libraries.perfmark.api, 23 libraries.netty.unix.common 24 25 // Tests depend on base class defined by core module. 26 testImplementation testFixtures(project(':grpc-core')), 27 testFixtures(project(':grpc-api')), 28 project(':grpc-testing'), 29 project(':grpc-testing-proto'), 30 libraries.conscrypt, 31 libraries.netty.transport.epoll 32 testRuntimeOnly libraries.netty.tcnative, 33 libraries.netty.tcnative.classes 34 testRuntimeOnly (libraries.netty.tcnative) { 35 artifact { 36 classifier = "linux-x86_64" 37 } 38 } 39 testRuntimeOnly (libraries.netty.tcnative) { 40 artifact { 41 classifier = "linux-aarch_64" 42 } 43 } 44 testRuntimeOnly (libraries.netty.tcnative) { 45 artifact { 46 classifier = "osx-x86_64" 47 } 48 } 49 testRuntimeOnly (libraries.netty.tcnative) { 50 artifact { 51 classifier = "osx-aarch_64" 52 } 53 } 54 testRuntimeOnly (libraries.netty.tcnative) { 55 artifact { 56 classifier = "windows-x86_64" 57 } 58 } 59 testRuntimeOnly (libraries.netty.transport.epoll) { 60 artifact { 61 classifier = "linux-x86_64" 62 } 63 } 64 signature libraries.signature.java 65 signature libraries.signature.android 66 alpnagent libraries.jetty.alpn.agent 67} 68 69import net.ltgt.gradle.errorprone.CheckSeverity 70 71[tasks.named("compileJava"), tasks.named("compileTestJava")]*.configure { 72 // Netty retuns a lot of futures that we mostly don't care about. 73 options.errorprone.check("FutureReturnValueIgnored", CheckSeverity.OFF) 74} 75 76tasks.named("javadoc").configure { 77 options.links 'http://netty.io/4.1/api/' 78 exclude 'io/grpc/netty/Internal*' 79} 80 81tasks.named("test").configure { 82 // Allow testing Jetty ALPN in TlsTest 83 jvmArgs "-javaagent:" + configurations.alpnagent.asPath 84} 85 86tasks.named("jmh").configure { 87 // Workaround 88 // https://github.com/melix/jmh-gradle-plugin/issues/97#issuecomment-316664026 89 includeTests = true 90} 91 92tasks.named("checkstyleMain").configure { 93 source = source.minus(fileTree(dir: "src/main", include: "**/Http2ControlFrameLimitEncoder.java")) 94} 95