xref: /aosp_15_r20/external/grpc-grpc-java/alts/build.gradle (revision e07d83d3ffcef9ecfc9f7f475418ec639ff0e5fe)
1*e07d83d3SAndroid Build Coastguard Workerplugins {
2*e07d83d3SAndroid Build Coastguard Worker    id "java-library"
3*e07d83d3SAndroid Build Coastguard Worker    id "maven-publish"
4*e07d83d3SAndroid Build Coastguard Worker
5*e07d83d3SAndroid Build Coastguard Worker    id "com.github.johnrengelman.shadow"
6*e07d83d3SAndroid Build Coastguard Worker    id "com.google.protobuf"
7*e07d83d3SAndroid Build Coastguard Worker    id "ru.vyarus.animalsniffer"
8*e07d83d3SAndroid Build Coastguard Worker}
9*e07d83d3SAndroid Build Coastguard Worker
10*e07d83d3SAndroid Build Coastguard Workerdescription = "gRPC: ALTS"
11*e07d83d3SAndroid Build Coastguard Worker
12*e07d83d3SAndroid Build Coastguard Workerdependencies {
13*e07d83d3SAndroid Build Coastguard Worker    api project(':grpc-core')
14*e07d83d3SAndroid Build Coastguard Worker    implementation project(':grpc-auth'),
15*e07d83d3SAndroid Build Coastguard Worker            project(':grpc-grpclb'),
16*e07d83d3SAndroid Build Coastguard Worker            project(':grpc-protobuf'),
17*e07d83d3SAndroid Build Coastguard Worker            project(':grpc-stub'),
18*e07d83d3SAndroid Build Coastguard Worker            libraries.protobuf.java,
19*e07d83d3SAndroid Build Coastguard Worker            libraries.conscrypt,
20*e07d83d3SAndroid Build Coastguard Worker            libraries.guava.jre, // JRE required by protobuf-java-util from grpclb
21*e07d83d3SAndroid Build Coastguard Worker            libraries.google.auth.oauth2Http
22*e07d83d3SAndroid Build Coastguard Worker    def nettyDependency = implementation project(':grpc-netty')
23*e07d83d3SAndroid Build Coastguard Worker    compileOnly libraries.javax.annotation
24*e07d83d3SAndroid Build Coastguard Worker
25*e07d83d3SAndroid Build Coastguard Worker    shadow configurations.implementation.getDependencies().minus(nettyDependency)
26*e07d83d3SAndroid Build Coastguard Worker    shadow project(path: ':grpc-netty-shaded', configuration: 'shadow')
27*e07d83d3SAndroid Build Coastguard Worker
28*e07d83d3SAndroid Build Coastguard Worker    testImplementation project(':grpc-testing'),
29*e07d83d3SAndroid Build Coastguard Worker            testFixtures(project(':grpc-core')),
30*e07d83d3SAndroid Build Coastguard Worker            project(':grpc-testing-proto'),
31*e07d83d3SAndroid Build Coastguard Worker            libraries.guava,
32*e07d83d3SAndroid Build Coastguard Worker            libraries.junit,
33*e07d83d3SAndroid Build Coastguard Worker            libraries.mockito.core,
34*e07d83d3SAndroid Build Coastguard Worker            libraries.truth
35*e07d83d3SAndroid Build Coastguard Worker
36*e07d83d3SAndroid Build Coastguard Worker    testImplementation (libraries.guava.testlib) {
37*e07d83d3SAndroid Build Coastguard Worker        exclude group: 'junit', module: 'junit'
38*e07d83d3SAndroid Build Coastguard Worker    }
39*e07d83d3SAndroid Build Coastguard Worker    testRuntimeOnly libraries.netty.tcnative,
40*e07d83d3SAndroid Build Coastguard Worker            libraries.netty.tcnative.classes
41*e07d83d3SAndroid Build Coastguard Worker    testRuntimeOnly (libraries.netty.transport.epoll) {
42*e07d83d3SAndroid Build Coastguard Worker        artifact {
43*e07d83d3SAndroid Build Coastguard Worker            classifier = "linux-x86_64"
44*e07d83d3SAndroid Build Coastguard Worker        }
45*e07d83d3SAndroid Build Coastguard Worker    }
46*e07d83d3SAndroid Build Coastguard Worker    signature libraries.signature.java
47*e07d83d3SAndroid Build Coastguard Worker}
48*e07d83d3SAndroid Build Coastguard Worker
49*e07d83d3SAndroid Build Coastguard WorkerconfigureProtoCompilation()
50*e07d83d3SAndroid Build Coastguard Worker
51*e07d83d3SAndroid Build Coastguard Workerimport net.ltgt.gradle.errorprone.CheckSeverity
52*e07d83d3SAndroid Build Coastguard Worker
53*e07d83d3SAndroid Build Coastguard Worker[tasks.named("compileJava"), tasks.named("compileTestJava")]*.configure {
54*e07d83d3SAndroid Build Coastguard Worker    // protobuf calls valueof. Will be fixed in next release (google/protobuf#4046)
55*e07d83d3SAndroid Build Coastguard Worker    options.compilerArgs += [
56*e07d83d3SAndroid Build Coastguard Worker        "-Xlint:-deprecation"
57*e07d83d3SAndroid Build Coastguard Worker    ]
58*e07d83d3SAndroid Build Coastguard Worker    // ALTS returns a lot of futures that we mostly don't care about.
59*e07d83d3SAndroid Build Coastguard Worker    options.errorprone.check("FutureReturnValueIgnored", CheckSeverity.OFF)
60*e07d83d3SAndroid Build Coastguard Worker}
61*e07d83d3SAndroid Build Coastguard Worker
62*e07d83d3SAndroid Build Coastguard Workertasks.named("javadoc").configure {
63*e07d83d3SAndroid Build Coastguard Worker    exclude 'io/grpc/alts/internal/**'
64*e07d83d3SAndroid Build Coastguard Worker    exclude 'io/grpc/alts/Internal*'
65*e07d83d3SAndroid Build Coastguard Worker}
66*e07d83d3SAndroid Build Coastguard Worker
67*e07d83d3SAndroid Build Coastguard Workertasks.named("jar").configure {
68*e07d83d3SAndroid Build Coastguard Worker    // Must use a different archiveClassifier to avoid conflicting with shadowJar
69*e07d83d3SAndroid Build Coastguard Worker    archiveClassifier = 'original'
70*e07d83d3SAndroid Build Coastguard Worker}
71*e07d83d3SAndroid Build Coastguard Worker
72*e07d83d3SAndroid Build Coastguard Worker// We want to use grpc-netty-shaded instead of grpc-netty. But we also want our
73*e07d83d3SAndroid Build Coastguard Worker// source to work with Bazel, so we rewrite the code as part of the build.
74*e07d83d3SAndroid Build Coastguard Workertasks.named("shadowJar").configure {
75*e07d83d3SAndroid Build Coastguard Worker    archiveClassifier = null
76*e07d83d3SAndroid Build Coastguard Worker    dependencies {
77*e07d83d3SAndroid Build Coastguard Worker        exclude(dependency {true})
78*e07d83d3SAndroid Build Coastguard Worker    }
79*e07d83d3SAndroid Build Coastguard Worker    relocate 'io.grpc.netty', 'io.grpc.netty.shaded.io.grpc.netty'
80*e07d83d3SAndroid Build Coastguard Worker    relocate 'io.netty', 'io.grpc.netty.shaded.io.netty'
81*e07d83d3SAndroid Build Coastguard Worker}
82*e07d83d3SAndroid Build Coastguard Worker
83*e07d83d3SAndroid Build Coastguard Workerpublishing {
84*e07d83d3SAndroid Build Coastguard Worker    publications {
85*e07d83d3SAndroid Build Coastguard Worker        maven(MavenPublication) {
86*e07d83d3SAndroid Build Coastguard Worker            // We want this to throw an exception if it isn't working
87*e07d83d3SAndroid Build Coastguard Worker            def originalJar = artifacts.find { dep -> dep.classifier == 'original'}
88*e07d83d3SAndroid Build Coastguard Worker            artifacts.remove(originalJar)
89*e07d83d3SAndroid Build Coastguard Worker
90*e07d83d3SAndroid Build Coastguard Worker            pom.withXml {
91*e07d83d3SAndroid Build Coastguard Worker                def dependenciesNode = new Node(null, 'dependencies')
92*e07d83d3SAndroid Build Coastguard Worker                project.configurations.shadow.allDependencies.each { dep ->
93*e07d83d3SAndroid Build Coastguard Worker                    def dependencyNode = dependenciesNode.appendNode('dependency')
94*e07d83d3SAndroid Build Coastguard Worker                    dependencyNode.appendNode('groupId', dep.group)
95*e07d83d3SAndroid Build Coastguard Worker                    dependencyNode.appendNode('artifactId', dep.name)
96*e07d83d3SAndroid Build Coastguard Worker                    dependencyNode.appendNode('version', dep.version)
97*e07d83d3SAndroid Build Coastguard Worker                    dependencyNode.appendNode('scope', 'compile')
98*e07d83d3SAndroid Build Coastguard Worker                }
99*e07d83d3SAndroid Build Coastguard Worker                asNode().dependencies[0].replaceNode(dependenciesNode)
100*e07d83d3SAndroid Build Coastguard Worker            }
101*e07d83d3SAndroid Build Coastguard Worker        }
102*e07d83d3SAndroid Build Coastguard Worker    }
103*e07d83d3SAndroid Build Coastguard Worker}
104