summaryrefslogtreecommitdiff
path: root/lib/java
diff options
context:
space:
mode:
authorJiayu Liu <Jimexist@users.noreply.github.com>2022-05-08 13:01:41 +0800
committerGitHub <noreply@github.com>2022-05-08 01:01:41 -0400
commiteb62fa8d13f9860c4c877d0252e67ef21b013488 (patch)
tree1f4ff1428c8f81ce20ae4e2be6f1c6cf6de45585 /lib/java
parentbcac978ce97e9808866ed639f88095473ba5c261 (diff)
downloadthrift-eb62fa8d13f9860c4c877d0252e67ef21b013488.tar.gz
THRIFT-5553: use newer gradle API (#2561)
Prepare for moving to Gradle 7 by removing use of older Gradle directives (except the use of maven; the transition to maven-publish is not included here)
Diffstat (limited to 'lib/java')
-rw-r--r--lib/java/build.gradle2
-rw-r--r--lib/java/gradle/environment.gradle16
-rw-r--r--lib/java/gradle/functionalTests.gradle36
3 files changed, 32 insertions, 22 deletions
diff --git a/lib/java/build.gradle b/lib/java/build.gradle
index 726d7b7f6..3e750fddc 100644
--- a/lib/java/build.gradle
+++ b/lib/java/build.gradle
@@ -39,7 +39,7 @@ plugins {
id 'java-library'
id 'maven'
id 'signing'
- id 'com.github.johnrengelman.shadow' version '4.0.4'
+ id 'com.github.johnrengelman.shadow' version '6.1.0'
id "com.github.spotbugs" version "4.7.1"
id "com.diffplug.spotless" version "6.4.2"
}
diff --git a/lib/java/gradle/environment.gradle b/lib/java/gradle/environment.gradle
index 2f49a0d2a..224f10fec 100644
--- a/lib/java/gradle/environment.gradle
+++ b/lib/java/gradle/environment.gradle
@@ -64,14 +64,14 @@ repositories {
}
dependencies {
- compile "org.slf4j:slf4j-api:${slf4jVersion}"
- compile "org.apache.httpcomponents:httpclient:${httpclientVersion}"
- compile "org.apache.httpcomponents:httpcore:${httpcoreVersion}"
- compile "javax.servlet:javax.servlet-api:${servletVersion}"
- compile "javax.annotation:javax.annotation-api:${javaxAnnotationVersion}"
- compile "org.apache.commons:commons-lang3:3.12.0"
+ implementation "org.slf4j:slf4j-api:${slf4jVersion}"
+ implementation "org.apache.httpcomponents:httpclient:${httpclientVersion}"
+ implementation "org.apache.httpcomponents:httpcore:${httpcoreVersion}"
+ implementation "javax.servlet:javax.servlet-api:${servletVersion}"
+ implementation "javax.annotation:javax.annotation-api:${javaxAnnotationVersion}"
+ implementation "org.apache.commons:commons-lang3:3.12.0"
testImplementation "org.junit.jupiter:junit-jupiter:${junitVersion}"
- testCompile "org.mockito:mockito-all:${mockitoVersion}"
- testRuntime "org.slf4j:slf4j-log4j12:${slf4jVersion}"
+ testImplementation "org.mockito:mockito-all:${mockitoVersion}"
+ testRuntimeOnly "org.slf4j:slf4j-log4j12:${slf4jVersion}"
}
diff --git a/lib/java/gradle/functionalTests.gradle b/lib/java/gradle/functionalTests.gradle
index 15737f56e..e8a3e8955 100644
--- a/lib/java/gradle/functionalTests.gradle
+++ b/lib/java/gradle/functionalTests.gradle
@@ -34,15 +34,27 @@ sourceSets {
}
}
+// see https://docs.gradle.org/current/userguide/java_library_plugin.html
+// 1. defines cross test implementation that includes all test implementation, which in turn
+// contains all implementation dependencies
+// 2. defines cross test runtime that further includes test runtime only dependencies
+// 3. the cross test implementation will need to depends on main and test output
+// 4. shadow jar will package both main and test source set, along with cross test runtime dependencies
configurations {
- crossTestCompile { extendsFrom testCompile }
- crossTestRuntime { extendsFrom crossTestCompile, testRuntime }
+ crossTestImplementation {
+ description "implementation for cross test"
+ extendsFrom testImplementation
+ }
+ crossTestRuntime {
+ description "runtime dependencies for cross test"
+ extendsFrom crossTestImplementation, testRuntimeOnly
+ }
}
dependencies {
- crossTestCompile "org.apache.tomcat.embed:tomcat-embed-core:${tomcatEmbedVersion}"
- crossTestCompile sourceSets.main.output
- crossTestCompile sourceSets.test.output
+ crossTestImplementation "org.apache.tomcat.embed:tomcat-embed-core:${tomcatEmbedVersion}"
+ crossTestImplementation sourceSets.main.output
+ crossTestImplementation sourceSets.test.output
}
// I am using shadow plugin to make a self contained functional test Uber JAR that
@@ -53,19 +65,17 @@ shadowJar {
description = 'Assemble a test JAR file for cross-check execution'
// make sure the runners are created when this runs
dependsOn 'generateRunnerScriptForClient', 'generateRunnerScriptForServer', 'generateRunnerScriptForNonblockingServer', 'generateRunnerScriptForTServletServer'
-
- baseName = 'functionalTest'
- destinationDir = file("$buildDir/functionalTestJar")
- classifier = null
-
+ archiveBaseName.set('functionalTest')
+ destinationDirectory = file("$buildDir/functionalTestJar")
+ archiveClassifier.set(null)
// We do not need a version number for this internal jar
- version = null
-
+ archiveVersion.set(null)
// Bundle the complete set of unit test classes including generated code
// and the runtime dependencies in one JAR to expedite execution.
+ // see https://imperceptiblethoughts.com/shadow/custom-tasks/
from sourceSets.test.output
from sourceSets.crossTest.output
- configurations = [project.configurations.testRuntime]
+ configurations = [project.configurations.crossTestRuntime]
}
// Common script runner configuration elements