From 6a1cec4812a320d82ded51288eb6e71adac4f591 Mon Sep 17 00:00:00 2001 From: andrepaschoal Date: Sun, 16 Oct 2022 15:36:25 +0200 Subject: [PATCH 1/6] issue-2765: add de.undercouch.download plugin, download javase/6/docs/api/package-list inside build dir as javase-6-docs/element-list, move javase/6/docs from links to linksOffline --- build.gradle | 1 + gradle/mockito-core/javadoc.gradle | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index d1ef4dc1be..2615a69304 100644 --- a/build.gradle +++ b/build.gradle @@ -25,6 +25,7 @@ plugins { 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 'de.undercouch.download' version '5.3.0' } description = 'Mockito mock objects library core API and implementation' diff --git a/gradle/mockito-core/javadoc.gradle b/gradle/mockito-core/javadoc.gradle index 3d42d21e1f..0e87267ce9 100644 --- a/gradle/mockito-core/javadoc.gradle +++ b/gradle/mockito-core/javadoc.gradle @@ -38,8 +38,8 @@ javadoc { options.noIndex = false options.noNavBar = false options.noTree = false - options.links = ['https://docs.oracle.com/javase/6/docs/api/', - 'https://junit.org/junit4/javadoc/4.12/'] + options.links('https://junit.org/junit4/javadoc/4.12/') + options.linksOffline('https://docs.oracle.com/javase/6/docs/api/', "$buildDir/javase-6-docs/") options.bottom(""" @@ -52,6 +52,17 @@ javadoc { options.addStringOption('Xwerror', '-quiet') options.addBooleanOption('-allow-script-in-comments', true) + // attempt to fix https://github.com/mockito/mockito/issues/2765 + doFirst { + download.run { + src 'https://docs.oracle.com/javase/6/docs/api/package-list' + // somehow downloading src/javadoc or buildDir/javadoc didn't work, probably something related to the folder + // lifecycle + dest "$buildDir/javase-6-docs/element-list" + overwrite true + } + } + doLast { copy { from "src/javadoc" From fec799a01b04142de1cfd3eb44248da7966c4998 Mon Sep 17 00:00:00 2001 From: andrepaschoal Date: Mon, 17 Oct 2022 09:46:09 +0200 Subject: [PATCH 2/6] issue-2765: dumbly download the package-list file again, but now as package-list --- gradle/mockito-core/javadoc.gradle | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gradle/mockito-core/javadoc.gradle b/gradle/mockito-core/javadoc.gradle index 0e87267ce9..99871cfe91 100644 --- a/gradle/mockito-core/javadoc.gradle +++ b/gradle/mockito-core/javadoc.gradle @@ -61,6 +61,12 @@ javadoc { dest "$buildDir/javase-6-docs/element-list" overwrite true } + // dumbly downloading again just to see if we can make all jdks happy + download.run { + src 'https://docs.oracle.com/javase/6/docs/api/package-list' + dest "$buildDir/javase-6-docs/element-list" + overwrite true + } } doLast { From a1d5e79abe6c4112c2634bb64757847c5705040f Mon Sep 17 00:00:00 2001 From: andrepaschoal Date: Mon, 17 Oct 2022 10:03:38 +0200 Subject: [PATCH 3/6] issue-2765: dumbly download the package-list file again, but now as package-list --- gradle/mockito-core/javadoc.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/mockito-core/javadoc.gradle b/gradle/mockito-core/javadoc.gradle index 99871cfe91..d3dc2623a0 100644 --- a/gradle/mockito-core/javadoc.gradle +++ b/gradle/mockito-core/javadoc.gradle @@ -64,7 +64,7 @@ javadoc { // dumbly downloading again just to see if we can make all jdks happy download.run { src 'https://docs.oracle.com/javase/6/docs/api/package-list' - dest "$buildDir/javase-6-docs/element-list" + dest "$buildDir/javase-6-docs/package-list" overwrite true } } From 129afa475aa8c194cbe701264f611d007830bc56 Mon Sep 17 00:00:00 2001 From: andrepaschoal Date: Mon, 17 Oct 2022 19:06:39 +0200 Subject: [PATCH 4/6] issue-2765: Introduce gradle tasks for downloading the package-list file for java 8 and 9+ --- gradle/mockito-core/javadoc.gradle | 43 +++++++++++++++++------------- 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/gradle/mockito-core/javadoc.gradle b/gradle/mockito-core/javadoc.gradle index d3dc2623a0..2f7912af0e 100644 --- a/gradle/mockito-core/javadoc.gradle +++ b/gradle/mockito-core/javadoc.gradle @@ -1,7 +1,31 @@ //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 + +def java8DocsUrl = 'https://docs.oracle.com/javase/8/docs/api/' +def packageListUrl = "$java8DocsUrl/package-list" +def java8DocsDir = "$buildDir/javase-8-docs" + +// Temporary workaround for https://github.com/mockito/mockito/issues/2765 +// For Java 8, download the `package-list` as `element-list` +task downloadJava8ElementList(type: Download) { + src packageListUrl + // Since the JavaDoc output is generated in `$buildDir/javadoc`, specify a different location for this task + dest "$java8DocsDir/element-list" + overwrite true +} + +// Temporary workaround for https://github.com/mockito/mockito/issues/2765 +// For Java 9+, download the `package-list` as-is +task downloadJava9PlusPackageList(type: Download, dependsOn: downloadJava8ElementList) { + src packageListUrl + // Since the JavaDoc output is generated in `$buildDir/javadoc`, specify a different location for this task + dest java8DocsDir + overwrite true +} + javadoc { description "Creates javadoc html for Mockito API." + dependsOn downloadJava9PlusPackageList // For more details on the format // see https://docs.oracle.com/javase/8/docs/technotes/tools/windows/javadoc.html @@ -39,7 +63,7 @@ javadoc { options.noNavBar = false options.noTree = false options.links('https://junit.org/junit4/javadoc/4.12/') - options.linksOffline('https://docs.oracle.com/javase/6/docs/api/', "$buildDir/javase-6-docs/") + options.linksOffline(java8DocsUrl, java8DocsDir) options.bottom(""" @@ -52,23 +76,6 @@ javadoc { options.addStringOption('Xwerror', '-quiet') options.addBooleanOption('-allow-script-in-comments', true) - // attempt to fix https://github.com/mockito/mockito/issues/2765 - doFirst { - download.run { - src 'https://docs.oracle.com/javase/6/docs/api/package-list' - // somehow downloading src/javadoc or buildDir/javadoc didn't work, probably something related to the folder - // lifecycle - dest "$buildDir/javase-6-docs/element-list" - overwrite true - } - // dumbly downloading again just to see if we can make all jdks happy - download.run { - src 'https://docs.oracle.com/javase/6/docs/api/package-list' - dest "$buildDir/javase-6-docs/package-list" - overwrite true - } - } - doLast { copy { from "src/javadoc" From 4dcca6230e678cf4feb599afeaa36e2466ef6f5d Mon Sep 17 00:00:00 2001 From: andrepaschoal Date: Mon, 17 Oct 2022 19:57:20 +0200 Subject: [PATCH 5/6] issue-2765: Add package-list file for Java 8 into gradle/mockito-core/java-8-docs dir, replace download tasks by a copy folder one --- gradle/mockito-core/java-8-docs/element-list | 217 +++++++++++++++++++ gradle/mockito-core/java-8-docs/package-list | 217 +++++++++++++++++++ gradle/mockito-core/javadoc.gradle | 30 +-- 3 files changed, 443 insertions(+), 21 deletions(-) create mode 100644 gradle/mockito-core/java-8-docs/element-list create mode 100644 gradle/mockito-core/java-8-docs/package-list diff --git a/gradle/mockito-core/java-8-docs/element-list b/gradle/mockito-core/java-8-docs/element-list new file mode 100644 index 0000000000..351c186855 --- /dev/null +++ b/gradle/mockito-core/java-8-docs/element-list @@ -0,0 +1,217 @@ +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/package-list b/gradle/mockito-core/java-8-docs/package-list new file mode 100644 index 0000000000..351c186855 --- /dev/null +++ b/gradle/mockito-core/java-8-docs/package-list @@ -0,0 +1,217 @@ +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/javadoc.gradle b/gradle/mockito-core/javadoc.gradle index 2f7912af0e..f45dd38382 100644 --- a/gradle/mockito-core/javadoc.gradle +++ b/gradle/mockito-core/javadoc.gradle @@ -1,31 +1,19 @@ //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 -def java8DocsUrl = 'https://docs.oracle.com/javase/8/docs/api/' -def packageListUrl = "$java8DocsUrl/package-list" -def java8DocsDir = "$buildDir/javase-8-docs" +// 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 = "$buildDir/java-8-docs" -// Temporary workaround for https://github.com/mockito/mockito/issues/2765 -// For Java 8, download the `package-list` as `element-list` -task downloadJava8ElementList(type: Download) { - src packageListUrl - // Since the JavaDoc output is generated in `$buildDir/javadoc`, specify a different location for this task - dest "$java8DocsDir/element-list" - overwrite true -} - -// Temporary workaround for https://github.com/mockito/mockito/issues/2765 -// For Java 9+, download the `package-list` as-is -task downloadJava9PlusPackageList(type: Download, dependsOn: downloadJava8ElementList) { - src packageListUrl - // Since the JavaDoc output is generated in `$buildDir/javadoc`, specify a different location for this task - dest java8DocsDir - overwrite true +task copyJava8Docs(type: Copy) { + from "gradle/mockito-core/java-8-docs" + into java8DocsDir } javadoc { description "Creates javadoc html for Mockito API." - dependsOn downloadJava9PlusPackageList + dependsOn copyJava8Docs // For more details on the format // see https://docs.oracle.com/javase/8/docs/technotes/tools/windows/javadoc.html @@ -63,7 +51,7 @@ javadoc { options.noNavBar = false options.noTree = false options.links('https://junit.org/junit4/javadoc/4.12/') - options.linksOffline(java8DocsUrl, java8DocsDir) + options.linksOffline('https://docs.oracle.com/javase/8/docs/api/', java8DocsDir) options.bottom(""" From b35540cf2b34052a17fb94b3bdcf2e90b636bfdf Mon Sep 17 00:00:00 2001 From: andrepaschoal Date: Mon, 17 Oct 2022 20:08:07 +0200 Subject: [PATCH 6/6] issue-2765: Drop download plugin, and copy task, pointing linkOffline directly to gradle/mockito-core/java-8-docs --- build.gradle | 1 - gradle/mockito-core/javadoc.gradle | 8 +------- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/build.gradle b/build.gradle index 2615a69304..d1ef4dc1be 100644 --- a/build.gradle +++ b/build.gradle @@ -25,7 +25,6 @@ plugins { 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 'de.undercouch.download' version '5.3.0' } description = 'Mockito mock objects library core API and implementation' diff --git a/gradle/mockito-core/javadoc.gradle b/gradle/mockito-core/javadoc.gradle index f45dd38382..b4334b1b2a 100644 --- a/gradle/mockito-core/javadoc.gradle +++ b/gradle/mockito-core/javadoc.gradle @@ -4,16 +4,10 @@ // 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 = "$buildDir/java-8-docs" - -task copyJava8Docs(type: Copy) { - from "gradle/mockito-core/java-8-docs" - into java8DocsDir -} +def java8DocsDir = 'gradle/mockito-core/java-8-docs' javadoc { description "Creates javadoc html for Mockito API." - dependsOn copyJava8Docs // For more details on the format // see https://docs.oracle.com/javase/8/docs/technotes/tools/windows/javadoc.html