From 6cdc96587b99a518fc23f514fb5c1146a5068c5d 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 | 16 +- gradle.properties | 1 + gradle/errorprone.gradle | 6 - gradle/java-library.gradle | 4 +- gradle/mockito-core/java-8-docs/package-list | 217 ------------- .../{java-8-docs => java-docs}/element-list | 305 +++++++++++------- gradle/mockito-core/javadoc.gradle | 10 +- gradle/root/coverage.gradle | 10 +- settings.gradle.kts | 9 +- subprojects/androidTest/androidTest.gradle | 4 +- subprojects/errorprone/errorprone.gradle | 15 +- subprojects/inline/inline.gradle | 6 +- subprojects/module-test/module-test.gradle | 8 +- 14 files changed, 224 insertions(+), 393 deletions(-) delete mode 100644 gradle/mockito-core/java-8-docs/package-list rename gradle/mockito-core/{java-8-docs => java-docs}/element-list (57%) 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 8ec866b947..3e7be8a749 100644 --- a/build.gradle +++ b/build.gradle @@ -24,7 +24,7 @@ plugins { id 'eclipse' id 'com.github.ben-manes.versions' version '0.44.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) { @@ -107,6 +105,12 @@ dependencies { animalsniffer { sourceSets = [sourceSets.main] annotation = 'org.mockito.internal.SuppressSignatureCheck' + // See please https://github.com/mojohaus/animal-sniffer/issues/172 + ignore += [ + 'java.lang.instrument.Instrumentation', + 'java.lang.invoke.MethodHandle', + 'java.lang.invoke.MethodHandles$Lookup' + ] } spotless { 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/mockito-core/java-8-docs/package-list b/gradle/mockito-core/java-8-docs/package-list deleted file mode 100644 index 351c186855..0000000000 --- a/gradle/mockito-core/java-8-docs/package-list +++ /dev/null @@ -1,217 +0,0 @@ -java.applet -java.awt -java.awt.color -java.awt.datatransfer -java.awt.dnd -java.awt.event -java.awt.font -java.awt.geom -java.awt.im -java.awt.im.spi -java.awt.image -java.awt.image.renderable -java.awt.print -java.beans -java.beans.beancontext -java.io -java.lang -java.lang.annotation -java.lang.instrument -java.lang.invoke -java.lang.management -java.lang.ref -java.lang.reflect -java.math -java.net -java.nio -java.nio.channels -java.nio.channels.spi -java.nio.charset -java.nio.charset.spi -java.nio.file -java.nio.file.attribute -java.nio.file.spi -java.rmi -java.rmi.activation -java.rmi.dgc -java.rmi.registry -java.rmi.server -java.security -java.security.acl -java.security.cert -java.security.interfaces -java.security.spec -java.sql -java.text -java.text.spi -java.time -java.time.chrono -java.time.format -java.time.temporal -java.time.zone -java.util -java.util.concurrent -java.util.concurrent.atomic -java.util.concurrent.locks -java.util.function -java.util.jar -java.util.logging -java.util.prefs -java.util.regex -java.util.spi -java.util.stream -java.util.zip -javax.accessibility -javax.activation -javax.activity -javax.annotation -javax.annotation.processing -javax.crypto -javax.crypto.interfaces -javax.crypto.spec -javax.imageio -javax.imageio.event -javax.imageio.metadata -javax.imageio.plugins.bmp -javax.imageio.plugins.jpeg -javax.imageio.spi -javax.imageio.stream -javax.jws -javax.jws.soap -javax.lang.model -javax.lang.model.element -javax.lang.model.type -javax.lang.model.util -javax.management -javax.management.loading -javax.management.modelmbean -javax.management.monitor -javax.management.openmbean -javax.management.relation -javax.management.remote -javax.management.remote.rmi -javax.management.timer -javax.naming -javax.naming.directory -javax.naming.event -javax.naming.ldap -javax.naming.spi -javax.net -javax.net.ssl -javax.print -javax.print.attribute -javax.print.attribute.standard -javax.print.event -javax.rmi -javax.rmi.CORBA -javax.rmi.ssl -javax.script -javax.security.auth -javax.security.auth.callback -javax.security.auth.kerberos -javax.security.auth.login -javax.security.auth.spi -javax.security.auth.x500 -javax.security.cert -javax.security.sasl -javax.sound.midi -javax.sound.midi.spi -javax.sound.sampled -javax.sound.sampled.spi -javax.sql -javax.sql.rowset -javax.sql.rowset.serial -javax.sql.rowset.spi -javax.swing -javax.swing.border -javax.swing.colorchooser -javax.swing.event -javax.swing.filechooser -javax.swing.plaf -javax.swing.plaf.basic -javax.swing.plaf.metal -javax.swing.plaf.multi -javax.swing.plaf.nimbus -javax.swing.plaf.synth -javax.swing.table -javax.swing.text -javax.swing.text.html -javax.swing.text.html.parser -javax.swing.text.rtf -javax.swing.tree -javax.swing.undo -javax.tools -javax.transaction -javax.transaction.xa -javax.xml -javax.xml.bind -javax.xml.bind.annotation -javax.xml.bind.annotation.adapters -javax.xml.bind.attachment -javax.xml.bind.helpers -javax.xml.bind.util -javax.xml.crypto -javax.xml.crypto.dom -javax.xml.crypto.dsig -javax.xml.crypto.dsig.dom -javax.xml.crypto.dsig.keyinfo -javax.xml.crypto.dsig.spec -javax.xml.datatype -javax.xml.namespace -javax.xml.parsers -javax.xml.soap -javax.xml.stream -javax.xml.stream.events -javax.xml.stream.util -javax.xml.transform -javax.xml.transform.dom -javax.xml.transform.sax -javax.xml.transform.stax -javax.xml.transform.stream -javax.xml.validation -javax.xml.ws -javax.xml.ws.handler -javax.xml.ws.handler.soap -javax.xml.ws.http -javax.xml.ws.soap -javax.xml.ws.spi -javax.xml.ws.spi.http -javax.xml.ws.wsaddressing -javax.xml.xpath -org.ietf.jgss -org.omg.CORBA -org.omg.CORBA.DynAnyPackage -org.omg.CORBA.ORBPackage -org.omg.CORBA.TypeCodePackage -org.omg.CORBA.portable -org.omg.CORBA_2_3 -org.omg.CORBA_2_3.portable -org.omg.CosNaming -org.omg.CosNaming.NamingContextExtPackage -org.omg.CosNaming.NamingContextPackage -org.omg.Dynamic -org.omg.DynamicAny -org.omg.DynamicAny.DynAnyFactoryPackage -org.omg.DynamicAny.DynAnyPackage -org.omg.IOP -org.omg.IOP.CodecFactoryPackage -org.omg.IOP.CodecPackage -org.omg.Messaging -org.omg.PortableInterceptor -org.omg.PortableInterceptor.ORBInitInfoPackage -org.omg.PortableServer -org.omg.PortableServer.CurrentPackage -org.omg.PortableServer.POAManagerPackage -org.omg.PortableServer.POAPackage -org.omg.PortableServer.ServantLocatorPackage -org.omg.PortableServer.portable -org.omg.SendingContext -org.omg.stub.java.rmi -org.w3c.dom -org.w3c.dom.bootstrap -org.w3c.dom.events -org.w3c.dom.ls -org.w3c.dom.views -org.xml.sax -org.xml.sax.ext -org.xml.sax.helpers diff --git a/gradle/mockito-core/java-8-docs/element-list b/gradle/mockito-core/java-docs/element-list similarity index 57% rename from gradle/mockito-core/java-8-docs/element-list rename to gradle/mockito-core/java-docs/element-list index 351c186855..4cfabf8fdf 100644 --- a/gradle/mockito-core/java-8-docs/element-list +++ b/gradle/mockito-core/java-docs/element-list @@ -1,28 +1,14 @@ -java.applet -java.awt -java.awt.color -java.awt.datatransfer -java.awt.dnd -java.awt.event -java.awt.font -java.awt.geom -java.awt.im -java.awt.im.spi -java.awt.image -java.awt.image.renderable -java.awt.print -java.beans -java.beans.beancontext +module:java.base java.io java.lang java.lang.annotation -java.lang.instrument java.lang.invoke -java.lang.management +java.lang.module java.lang.ref java.lang.reflect java.math java.net +java.net.spi java.nio java.nio.channels java.nio.channels.spi @@ -31,17 +17,11 @@ java.nio.charset.spi java.nio.file java.nio.file.attribute java.nio.file.spi -java.rmi -java.rmi.activation -java.rmi.dgc -java.rmi.registry -java.rmi.server java.security java.security.acl java.security.cert java.security.interfaces java.security.spec -java.sql java.text java.text.spi java.time @@ -55,73 +35,63 @@ java.util.concurrent.atomic java.util.concurrent.locks java.util.function java.util.jar -java.util.logging -java.util.prefs java.util.regex java.util.spi java.util.stream java.util.zip -javax.accessibility -javax.activation -javax.activity -javax.annotation -javax.annotation.processing javax.crypto javax.crypto.interfaces javax.crypto.spec +javax.net +javax.net.ssl +javax.security.auth +javax.security.auth.callback +javax.security.auth.login +javax.security.auth.spi +javax.security.auth.x500 +javax.security.cert +module:java.compiler +javax.annotation.processing +javax.lang.model +javax.lang.model.element +javax.lang.model.type +javax.lang.model.util +javax.tools +module:java.datatransfer +java.awt.datatransfer +module:java.desktop +java.applet +java.awt +java.awt.color +java.awt.desktop +java.awt.dnd +java.awt.event +java.awt.font +java.awt.geom +java.awt.im +java.awt.im.spi +java.awt.image +java.awt.image.renderable +java.awt.print +java.beans +java.beans.beancontext +javax.accessibility javax.imageio javax.imageio.event javax.imageio.metadata javax.imageio.plugins.bmp javax.imageio.plugins.jpeg +javax.imageio.plugins.tiff javax.imageio.spi javax.imageio.stream -javax.jws -javax.jws.soap -javax.lang.model -javax.lang.model.element -javax.lang.model.type -javax.lang.model.util -javax.management -javax.management.loading -javax.management.modelmbean -javax.management.monitor -javax.management.openmbean -javax.management.relation -javax.management.remote -javax.management.remote.rmi -javax.management.timer -javax.naming -javax.naming.directory -javax.naming.event -javax.naming.ldap -javax.naming.spi -javax.net -javax.net.ssl javax.print javax.print.attribute javax.print.attribute.standard javax.print.event -javax.rmi -javax.rmi.CORBA -javax.rmi.ssl -javax.script -javax.security.auth -javax.security.auth.callback -javax.security.auth.kerberos -javax.security.auth.login -javax.security.auth.spi -javax.security.auth.x500 -javax.security.cert -javax.security.sasl javax.sound.midi javax.sound.midi.spi javax.sound.sampled javax.sound.sampled.spi -javax.sql -javax.sql.rowset -javax.sql.rowset.serial -javax.sql.rowset.spi javax.swing javax.swing.border javax.swing.colorchooser @@ -140,26 +110,64 @@ javax.swing.text.html.parser javax.swing.text.rtf javax.swing.tree javax.swing.undo -javax.tools -javax.transaction +module:java.instrument +java.lang.instrument +module:java.logging +java.util.logging +module:java.management +java.lang.management +javax.management +javax.management.loading +javax.management.modelmbean +javax.management.monitor +javax.management.openmbean +javax.management.relation +javax.management.remote +javax.management.timer +module:java.management.rmi +javax.management.remote.rmi +module:java.naming +javax.naming +javax.naming.directory +javax.naming.event +javax.naming.ldap +javax.naming.spi +module:java.net.http +java.net.http +module:java.prefs +java.util.prefs +module:java.rmi +java.rmi +java.rmi.activation +java.rmi.dgc +java.rmi.registry +java.rmi.server +javax.rmi.ssl +module:java.scripting +javax.script +module:java.se +module:java.security.jgss +javax.security.auth.kerberos +org.ietf.jgss +module:java.security.sasl +javax.security.sasl +module:java.smartcardio +javax.smartcardio +module:java.sql +java.sql +javax.sql +module:java.sql.rowset +javax.sql.rowset +javax.sql.rowset.serial +javax.sql.rowset.spi +module:java.transaction.xa javax.transaction.xa +module:java.xml javax.xml -javax.xml.bind -javax.xml.bind.annotation -javax.xml.bind.annotation.adapters -javax.xml.bind.attachment -javax.xml.bind.helpers -javax.xml.bind.util -javax.xml.crypto -javax.xml.crypto.dom -javax.xml.crypto.dsig -javax.xml.crypto.dsig.dom -javax.xml.crypto.dsig.keyinfo -javax.xml.crypto.dsig.spec +javax.xml.catalog javax.xml.datatype javax.xml.namespace javax.xml.parsers -javax.xml.soap javax.xml.stream javax.xml.stream.events javax.xml.stream.util @@ -169,49 +177,106 @@ javax.xml.transform.sax javax.xml.transform.stax javax.xml.transform.stream javax.xml.validation -javax.xml.ws -javax.xml.ws.handler -javax.xml.ws.handler.soap -javax.xml.ws.http -javax.xml.ws.soap -javax.xml.ws.spi -javax.xml.ws.spi.http -javax.xml.ws.wsaddressing javax.xml.xpath -org.ietf.jgss -org.omg.CORBA -org.omg.CORBA.DynAnyPackage -org.omg.CORBA.ORBPackage -org.omg.CORBA.TypeCodePackage -org.omg.CORBA.portable -org.omg.CORBA_2_3 -org.omg.CORBA_2_3.portable -org.omg.CosNaming -org.omg.CosNaming.NamingContextExtPackage -org.omg.CosNaming.NamingContextPackage -org.omg.Dynamic -org.omg.DynamicAny -org.omg.DynamicAny.DynAnyFactoryPackage -org.omg.DynamicAny.DynAnyPackage -org.omg.IOP -org.omg.IOP.CodecFactoryPackage -org.omg.IOP.CodecPackage -org.omg.Messaging -org.omg.PortableInterceptor -org.omg.PortableInterceptor.ORBInitInfoPackage -org.omg.PortableServer -org.omg.PortableServer.CurrentPackage -org.omg.PortableServer.POAManagerPackage -org.omg.PortableServer.POAPackage -org.omg.PortableServer.ServantLocatorPackage -org.omg.PortableServer.portable -org.omg.SendingContext -org.omg.stub.java.rmi org.w3c.dom org.w3c.dom.bootstrap org.w3c.dom.events org.w3c.dom.ls +org.w3c.dom.ranges +org.w3c.dom.traversal org.w3c.dom.views org.xml.sax org.xml.sax.ext org.xml.sax.helpers +module:java.xml.crypto +javax.xml.crypto +javax.xml.crypto.dom +javax.xml.crypto.dsig +javax.xml.crypto.dsig.dom +javax.xml.crypto.dsig.keyinfo +javax.xml.crypto.dsig.spec +module:jdk.accessibility +com.sun.java.accessibility.util +module:jdk.attach +com.sun.tools.attach +com.sun.tools.attach.spi +module:jdk.charsets +module:jdk.compiler +com.sun.source.doctree +com.sun.source.tree +com.sun.source.util +com.sun.tools.javac +module:jdk.crypto.cryptoki +module:jdk.crypto.ec +module:jdk.dynalink +jdk.dynalink +jdk.dynalink.beans +jdk.dynalink.linker +jdk.dynalink.linker.support +jdk.dynalink.support +module:jdk.editpad +module:jdk.hotspot.agent +module:jdk.httpserver +com.sun.net.httpserver +com.sun.net.httpserver.spi +module:jdk.jartool +com.sun.jarsigner +jdk.security.jarsigner +module:jdk.javadoc +com.sun.javadoc +com.sun.tools.javadoc +jdk.javadoc.doclet +module:jdk.jcmd +module:jdk.jconsole +com.sun.tools.jconsole +module:jdk.jdeps +module:jdk.jdi +com.sun.jdi +com.sun.jdi.connect +com.sun.jdi.connect.spi +com.sun.jdi.event +com.sun.jdi.request +module:jdk.jdwp.agent +module:jdk.jfr +jdk.jfr +jdk.jfr.consumer +module:jdk.jlink +module:jdk.jshell +jdk.jshell +jdk.jshell.execution +jdk.jshell.spi +jdk.jshell.tool +module:jdk.jsobject +netscape.javascript +module:jdk.jstatd +module:jdk.localedata +module:jdk.management +com.sun.management +module:jdk.management.agent +module:jdk.management.jfr +jdk.management.jfr +module:jdk.naming.dns +module:jdk.naming.rmi +module:jdk.net +jdk.net +jdk.nio +module:jdk.pack +module:jdk.rmic +module:jdk.scripting.nashorn +jdk.nashorn.api.scripting +jdk.nashorn.api.tree +module:jdk.sctp +com.sun.nio.sctp +module:jdk.security.auth +com.sun.security.auth +com.sun.security.auth.callback +com.sun.security.auth.login +com.sun.security.auth.module +module:jdk.security.jgss +com.sun.security.jgss +module:jdk.xml.dom +org.w3c.dom.css +org.w3c.dom.html +org.w3c.dom.stylesheets +org.w3c.dom.xpath +module:jdk.zipfs diff --git a/gradle/mockito-core/javadoc.gradle b/gradle/mockito-core/javadoc.gradle index b4334b1b2a..9a995ec45d 100644 --- a/gradle/mockito-core/javadoc.gradle +++ b/gradle/mockito-core/javadoc.gradle @@ -1,10 +1,6 @@ //It seems the gradle javadoc task works file by file and as such disable some features of javadoc tool //such as link to packages, https://groups.google.com/d/msg/gradle-dev/R83dy_6PHMc/bgw0cUTMFAAJ - -// In this directory we keep two copies of the `package-list` file for java 8 api docs: -// - as `package-list` for Java 9+ -// - as `element-list` for java 8 -def java8DocsDir = 'gradle/mockito-core/java-8-docs' +def javaDocsDir = 'gradle/mockito-core/java-docs' javadoc { description "Creates javadoc html for Mockito API." @@ -44,8 +40,8 @@ javadoc { options.noIndex = false options.noNavBar = false options.noTree = false - options.links('https://junit.org/junit4/javadoc/4.12/') - options.linksOffline('https://docs.oracle.com/javase/8/docs/api/', java8DocsDir) + options.links('https://junit.org/junit4/javadoc/4.13.2/') + options.linksOffline('https://docs.oracle.com/en/java/javase/11/docs/api/', javaDocsDir) options.bottom(""" diff --git a/gradle/root/coverage.gradle b/gradle/root/coverage.gradle index 87d0d7da01..cd48775763 100644 --- a/gradle/root/coverage.gradle +++ b/gradle/root/coverage.gradle @@ -5,21 +5,13 @@ task mockitoCoverage(type: JacocoReport) { if (currentProject.name in ['android']) { return } - // We only run these tests on Java 9+ - if (currentProject.name in ['module-test'] && !JavaVersion.current().isJava9Compatible()) { - return - } - // We only run these tests on Java 8 - if (currentProject.name in ['errorprone'] && JavaVersion.current().isJava9Compatible()) { - return - } plugins.withId("java") { mockitoCoverage.sourceSets currentProject.sourceSets.main 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/settings.gradle.kts b/settings.gradle.kts index 313149df98..54b604b4f7 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -17,13 +17,8 @@ include("inline", "memory-test", "junitJupiterParallelTest", "osgi-test", - "bom") - -if (JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_11)) { - include("errorprone") -} else { - logger.info("Not including errorprone, which requires minimum JDK 11+") -} + "bom", + "errorprone") if (!JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_17) && (System.getenv("ANDROID_SDK_ROOT") != null || File(".local.properties").exists())) { include("androidTest") 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..f3a22029cc 100644 --- a/subprojects/errorprone/errorprone.gradle +++ b/subprojects/errorprone/errorprone.gradle @@ -10,14 +10,21 @@ 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" } + +tasks.withType(Javadoc) { + options.addBooleanOption("-add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED", true) +} \ No newline at end of file diff --git a/subprojects/inline/inline.gradle b/subprojects/inline/inline.gradle index f96cffce9f..ef421f0c02 100644 --- a/subprojects/inline/inline.gradle +++ b/subprojects/inline/inline.gradle @@ -14,8 +14,6 @@ tasks.javadoc.enabled = false test.maxHeapSize = "256m" retryTest.maxHeapSize = "256m" -if (JavaVersion.current().java9Compatible) { - test { - jvmArgs '--illegal-access=deny' - } +test { + jvmArgs '--illegal-access=deny' } 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