mirror of https://github.com/grpc/grpc-java.git
servlet: Support configuration avoidance in build
Instead of adding explicit dependsOn to compileJava and sourcesJar, adding the sync task to the sourceSet automatically propagates the dependency to all consumers of the code.
This commit is contained in:
parent
0fd4e3b122
commit
b13a656f46
|
|
@ -64,7 +64,7 @@ dependencies {
|
||||||
libraries.protobuf.java
|
libraries.protobuf.java
|
||||||
}
|
}
|
||||||
|
|
||||||
test {
|
tasks.named("test").configure {
|
||||||
if (JavaVersion.current().isJava9Compatible()) {
|
if (JavaVersion.current().isJava9Compatible()) {
|
||||||
jvmArgs += [
|
jvmArgs += [
|
||||||
// required for Lincheck
|
// required for Lincheck
|
||||||
|
|
@ -76,11 +76,11 @@ test {
|
||||||
|
|
||||||
// Set up individual classpaths for each test, to avoid any mismatch,
|
// Set up individual classpaths for each test, to avoid any mismatch,
|
||||||
// and ensure they are only used when supported by the current jvm
|
// and ensure they are only used when supported by the current jvm
|
||||||
check.dependsOn(tasks.register('undertowTest', Test) {
|
def undertowTest = tasks.register('undertowTest', Test) {
|
||||||
classpath = sourceSets.undertowTest.runtimeClasspath
|
classpath = sourceSets.undertowTest.runtimeClasspath
|
||||||
testClassesDirs = sourceSets.undertowTest.output.classesDirs
|
testClassesDirs = sourceSets.undertowTest.output.classesDirs
|
||||||
})
|
}
|
||||||
check.dependsOn(tasks.register('tomcat9Test', Test) {
|
def tomcat9Test = tasks.register('tomcat9Test', Test) {
|
||||||
classpath = sourceSets.tomcatTest.runtimeClasspath
|
classpath = sourceSets.tomcatTest.runtimeClasspath
|
||||||
testClassesDirs = sourceSets.tomcatTest.output.classesDirs
|
testClassesDirs = sourceSets.tomcatTest.output.classesDirs
|
||||||
|
|
||||||
|
|
@ -97,19 +97,30 @@ check.dependsOn(tasks.register('tomcat9Test', Test) {
|
||||||
if (JavaVersion.current().isJava9Compatible()) {
|
if (JavaVersion.current().isJava9Compatible()) {
|
||||||
jvmArgs += ['--add-opens=java.base/java.io=ALL-UNNAMED', '--add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED']
|
jvmArgs += ['--add-opens=java.base/java.io=ALL-UNNAMED', '--add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED']
|
||||||
}
|
}
|
||||||
})
|
}
|
||||||
|
|
||||||
|
tasks.named("check").configure {
|
||||||
|
dependsOn undertowTest, tomcat9Test
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.named("jacocoTestReport").configure {
|
||||||
|
// Must use executionData(Task...) override. The executionData(Object...) override doesn't find
|
||||||
|
// execution data correctly for tasks.
|
||||||
|
executionData undertowTest.get(), tomcat9Test.get()
|
||||||
|
}
|
||||||
|
|
||||||
// Only run these tests if java 11+ is being used
|
// Only run these tests if java 11+ is being used
|
||||||
if (JavaVersion.current().isJava11Compatible()) {
|
if (JavaVersion.current().isJava11Compatible()) {
|
||||||
check.dependsOn(tasks.register('jettyTest', Test) {
|
def jettyTest = tasks.register('jettyTest', Test) {
|
||||||
classpath = sourceSets.jettyTest.runtimeClasspath
|
classpath = sourceSets.jettyTest.runtimeClasspath
|
||||||
testClassesDirs = sourceSets.jettyTest.output.classesDirs
|
testClassesDirs = sourceSets.jettyTest.output.classesDirs
|
||||||
})
|
}
|
||||||
}
|
tasks.named("check").configure {
|
||||||
|
dependsOn jettyTest
|
||||||
jacocoTestReport {
|
}
|
||||||
executionData undertowTest, tomcat9Test
|
tasks.named("jacocoTestReport").configure {
|
||||||
if (JavaVersion.current().isJava11Compatible()) {
|
// Must use executionData(Task...) override. The executionData(Object...) override doesn't
|
||||||
executionData jettyTest
|
// find execution data correctly for tasks.
|
||||||
|
executionData jettyTest.get()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -42,33 +42,30 @@ java {
|
||||||
// Mechanically transform sources from grpc-servlet to use the corrected packages
|
// Mechanically transform sources from grpc-servlet to use the corrected packages
|
||||||
def migrate(String name, String inputDir, SourceSet sourceSet) {
|
def migrate(String name, String inputDir, SourceSet sourceSet) {
|
||||||
def outputDir = layout.buildDirectory.dir('generated/sources/jakarta-' + name)
|
def outputDir = layout.buildDirectory.dir('generated/sources/jakarta-' + name)
|
||||||
sourceSet.java.srcDir outputDir
|
sourceSet.java.srcDir tasks.register('migrateSources' + name.capitalize(), Sync) { task ->
|
||||||
return tasks.register('migrateSources' + name.capitalize(), Sync) { task ->
|
|
||||||
into(outputDir)
|
into(outputDir)
|
||||||
from("$inputDir/io/grpc/servlet") {
|
from("$inputDir/io/grpc/servlet") {
|
||||||
into('io/grpc/servlet/jakarta')
|
into('io/grpc/servlet/jakarta')
|
||||||
filter { String line ->
|
filter { String line ->
|
||||||
line.replaceAll('javax\\.servlet', 'jakarta.servlet')
|
line.replace('javax.servlet', 'jakarta.servlet')
|
||||||
.replaceAll('io\\.grpc\\.servlet', 'io.grpc.servlet.jakarta')
|
.replace('io.grpc.servlet', 'io.grpc.servlet.jakarta')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
compileJava.dependsOn migrate('main', '../src/main/java', sourceSets.main)
|
migrate('main', '../src/main/java', sourceSets.main)
|
||||||
|
|
||||||
sourcesJar.dependsOn migrateSourcesMain
|
|
||||||
|
|
||||||
// Build the set of sourceSets and classpaths to modify, since Jetty 11 requires Java 11
|
// Build the set of sourceSets and classpaths to modify, since Jetty 11 requires Java 11
|
||||||
// and must be skipped
|
// and must be skipped
|
||||||
compileUndertowTestJava.dependsOn(migrate('undertowTest', '../src/undertowTest/java', sourceSets.undertowTest))
|
migrate('undertowTest', '../src/undertowTest/java', sourceSets.undertowTest)
|
||||||
compileTomcatTestJava.dependsOn(migrate('tomcatTest', '../src/tomcatTest/java', sourceSets.tomcatTest))
|
migrate('tomcatTest', '../src/tomcatTest/java', sourceSets.tomcatTest)
|
||||||
if (JavaVersion.current().isJava11Compatible()) {
|
if (JavaVersion.current().isJava11Compatible()) {
|
||||||
compileJettyTestJava.dependsOn(migrate('jettyTest', '../src/jettyTest/java', sourceSets.jettyTest))
|
migrate('jettyTest', '../src/jettyTest/java', sourceSets.jettyTest)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Disable checkstyle for this project, since it consists only of generated code
|
// Disable checkstyle for this project, since it consists only of generated code
|
||||||
tasks.withType(Checkstyle) {
|
tasks.withType(Checkstyle).configureEach {
|
||||||
enabled = false
|
enabled = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -106,11 +103,11 @@ dependencies {
|
||||||
|
|
||||||
// Set up individual classpaths for each test, to avoid any mismatch,
|
// Set up individual classpaths for each test, to avoid any mismatch,
|
||||||
// and ensure they are only used when supported by the current jvm
|
// and ensure they are only used when supported by the current jvm
|
||||||
check.dependsOn(tasks.register('undertowTest', Test) {
|
def undertowTest = tasks.register('undertowTest', Test) {
|
||||||
classpath = sourceSets.undertowTest.runtimeClasspath
|
classpath = sourceSets.undertowTest.runtimeClasspath
|
||||||
testClassesDirs = sourceSets.undertowTest.output.classesDirs
|
testClassesDirs = sourceSets.undertowTest.output.classesDirs
|
||||||
})
|
}
|
||||||
check.dependsOn(tasks.register('tomcat10Test', Test) {
|
def tomcat10Test = tasks.register('tomcat10Test', Test) {
|
||||||
classpath = sourceSets.tomcatTest.runtimeClasspath
|
classpath = sourceSets.tomcatTest.runtimeClasspath
|
||||||
testClassesDirs = sourceSets.tomcatTest.output.classesDirs
|
testClassesDirs = sourceSets.tomcatTest.output.classesDirs
|
||||||
|
|
||||||
|
|
@ -127,11 +124,20 @@ check.dependsOn(tasks.register('tomcat10Test', Test) {
|
||||||
if (JavaVersion.current().isJava9Compatible()) {
|
if (JavaVersion.current().isJava9Compatible()) {
|
||||||
jvmArgs += ['--add-opens=java.base/java.io=ALL-UNNAMED', '--add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED']
|
jvmArgs += ['--add-opens=java.base/java.io=ALL-UNNAMED', '--add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED']
|
||||||
}
|
}
|
||||||
})
|
}
|
||||||
|
|
||||||
|
tasks.named("check").configure {
|
||||||
|
dependsOn undertowTest, tomcat10Test
|
||||||
|
}
|
||||||
|
|
||||||
// Only run these tests if java 11+ is being used
|
// Only run these tests if java 11+ is being used
|
||||||
if (JavaVersion.current().isJava11Compatible()) {
|
if (JavaVersion.current().isJava11Compatible()) {
|
||||||
check.dependsOn(tasks.register('jetty11Test', Test) {
|
def jetty11Test = tasks.register('jetty11Test', Test) {
|
||||||
classpath = sourceSets.jettyTest.runtimeClasspath
|
classpath = sourceSets.jettyTest.runtimeClasspath
|
||||||
testClassesDirs = sourceSets.jettyTest.output.classesDirs
|
testClassesDirs = sourceSets.jettyTest.output.classesDirs
|
||||||
})
|
}
|
||||||
|
|
||||||
|
tasks.named("check").configure {
|
||||||
|
dependsOn jetty11Test
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue