From 2f513d24e589e21636fd4973f1b68731ceb9412c Mon Sep 17 00:00:00 2001 From: Andriy Redko Date: Mon, 28 Nov 2022 11:35:25 -0500 Subject: [PATCH] Update minimum support Java version from 8 to 11. Fixes #2798 Signed-off-by: Andriy Redko --- .github/workflows/ci.yml | 6 +++--- build.gradle | 10 ++++------ gradle.properties | 1 + gradle/errorprone.gradle | 6 ------ gradle/java-library.gradle | 4 ++-- gradle/root/coverage.gradle | 2 +- subprojects/androidTest/androidTest.gradle | 4 ++-- subprojects/errorprone/errorprone.gradle | 11 +++++++---- subprojects/module-test/module-test.gradle | 8 ++------ 9 files changed, 22 insertions(+), 30 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bc0694a891..51a396ed01 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -29,7 +29,7 @@ jobs: # Definition of the build matrix strategy: matrix: - java: [8, 11, 17] + java: [11, 17] mock-maker: ['mock-maker-default', 'mock-maker-inline'] # All build steps @@ -48,11 +48,11 @@ jobs: java-version: ${{ matrix.java }} - name: 3. Validate Gradle wrapper - if: matrix.java == 8 && matrix.mock-maker == 'mock-maker-default' # SINGLE-MATRIX-JOB + if: matrix.java == 11 && matrix.mock-maker == 'mock-maker-default' # SINGLE-MATRIX-JOB uses: gradle/wrapper-validation-action@v1.0.5 # https://github.com/gradle/wrapper-validation-action - name: 4. Build and check reproducibility of artifacts (single job only) - if: matrix.java == 8 && matrix.mock-maker == 'mock-maker-default' # SINGLE-MATRIX-JOB + if: matrix.java == 11 && matrix.mock-maker == 'mock-maker-default' # SINGLE-MATRIX-JOB run: ./check_reproducibility.sh - name: 5. Spotless check (single job only). Run './gradlew spotlessApply' locally if this job fails. diff --git a/build.gradle b/build.gradle index d55818690a..7fa62e5a29 100644 --- a/build.gradle +++ b/build.gradle @@ -24,7 +24,7 @@ plugins { id 'eclipse' id 'com.github.ben-manes.versions' version '0.42.0' id 'biz.aQute.bnd.builder' version '6.3.1' - id 'ru.vyarus.animalsniffer' version '1.5.2' + id 'ru.vyarus.animalsniffer' version '1.6.0' } description = 'Mockito mock objects library core API and implementation' @@ -52,10 +52,8 @@ allprojects { proj -> mavenCentral() google() } - if (JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_11)) { - plugins.withId('java') { - proj.apply from: "$rootDir/gradle/errorprone.gradle" - } + plugins.withId('java') { + proj.apply from: "$rootDir/gradle/errorprone.gradle" } tasks.withType(JavaCompile) { //I don't believe those warnings add value given modern IDEs @@ -66,7 +64,7 @@ allprojects { proj -> options.addStringOption('Xdoclint:none', '-quiet') options.addStringOption('encoding', 'UTF-8') options.addStringOption('charSet', 'UTF-8') - options.setSource('8') + options.setSource('11') } tasks.withType(AbstractArchiveTask) { diff --git a/gradle.properties b/gradle.properties index 3ccf4c9a66..ad11ad8da0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,6 +4,7 @@ org.gradle.caching=true org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 \ -XX:+IgnoreUnrecognizedVMOptions \ --add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED \ + --add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED \ --add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED \ --add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED \ --add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED \ diff --git a/gradle/errorprone.gradle b/gradle/errorprone.gradle index 1d9cf7428e..d7d551432f 100644 --- a/gradle/errorprone.gradle +++ b/gradle/errorprone.gradle @@ -1,12 +1,6 @@ apply plugin: "net.ltgt.errorprone" -if (JavaVersion.current() == JavaVersion.VERSION_1_8) { - dependencies { - errorproneJavac("com.google.errorprone:javac:9+181-r4173-1") - } -} - dependencies { errorprone libraries.errorprone } diff --git a/gradle/java-library.gradle b/gradle/java-library.gradle index b5949b76fe..5e91b74443 100644 --- a/gradle/java-library.gradle +++ b/gradle/java-library.gradle @@ -14,8 +14,8 @@ generatePomFileForJavaLibraryPublication.doLast { assert pom.name == archivesBaseName } -sourceCompatibility = 1.8 -targetCompatibility = 1.8 +sourceCompatibility = 11 +targetCompatibility = 11 test { include "**/*Test.class" diff --git a/gradle/root/coverage.gradle b/gradle/root/coverage.gradle index 87d0d7da01..c5f0dc2981 100644 --- a/gradle/root/coverage.gradle +++ b/gradle/root/coverage.gradle @@ -19,7 +19,7 @@ task mockitoCoverage(type: JacocoReport) { apply plugin: "jacoco" jacoco { - toolVersion = '0.8.7' + toolVersion = '0.8.8' if (currentProject != rootProject) { //already automatically enhanced in mockito main project as "java" plugin was applied before applyTo test diff --git a/subprojects/androidTest/androidTest.gradle b/subprojects/androidTest/androidTest.gradle index b6c32495be..037b99cf72 100644 --- a/subprojects/androidTest/androidTest.gradle +++ b/subprojects/androidTest/androidTest.gradle @@ -26,8 +26,8 @@ android { } } compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } kotlinOptions { jvmTarget = '1.8' diff --git a/subprojects/errorprone/errorprone.gradle b/subprojects/errorprone/errorprone.gradle index e3ef7a7b77..07b0a61ac4 100644 --- a/subprojects/errorprone/errorprone.gradle +++ b/subprojects/errorprone/errorprone.gradle @@ -10,14 +10,17 @@ dependencies { implementation project.rootProject implementation libraries.errorprone - testImplementation 'junit:junit:4.13-beta-1' + testImplementation 'junit:junit:4.13.2' testImplementation libraries.errorproneTestApi } test { inputs.files(configurations.errorproneJavac).withNormalizer(ClasspathNormalizer) - jvmArgs += "-Xbootclasspath/p:${configurations.errorproneJavac.asPath}" + jvmArgs += "-Xbootclasspath/a:${configurations.errorproneJavac.asPath}" +} - // ErrorProne can only run on JDK 8 - it.enabled = !JavaVersion.current().isJava9Compatible() +tasks.withType(JavaCompile) { + options.compilerArgs << "--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED" + options.compilerArgs << "--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED" + options.compilerArgs << "--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED" } diff --git a/subprojects/module-test/module-test.gradle b/subprojects/module-test/module-test.gradle index 3be8730cc6..d38a32c7d1 100644 --- a/subprojects/module-test/module-test.gradle +++ b/subprojects/module-test/module-test.gradle @@ -2,10 +2,6 @@ plugins { id 'java' } -if (JavaVersion.current() == JavaVersion.VERSION_1_8) { - project.tasks.all { task -> task.enabled = false } -} - description = "Test suite for Java 9 modules with Mockito" apply from: "$rootDir/gradle/dependencies.gradle" @@ -18,5 +14,5 @@ dependencies { tasks.javadoc.enabled = false -sourceCompatibility = 1.9 -targetCompatibility = 1.9 +sourceCompatibility = 11 +targetCompatibility = 11