Skip to content

Link Groovy javadoc through a local package-list instead of fetching it - #146

Open
vharseko wants to merge 1 commit into
OpenIdentityPlatform:masterfrom
vharseko:groovy-javadoc-offline-link
Open

vharseko wants to merge 1 commit into
OpenIdentityPlatform:masterfrom
vharseko:groovy-javadoc-offline-link

Conversation

@vharseko

Copy link
Copy Markdown
Member

Problem

Scattered build-maven matrix cells keep failing in javadoc:jar (attach-javadocs) with

Error fetching URL: https://docs.groovy-lang.org/latest/html/api/ (java.io.FileNotFoundException: .../package-list)

The javadoc <link> to docs.groovy-lang.org/latest makes every build fetch the Groovy link list over the network. javadoc tries element-list first and falls back to package-list. The latest docs now return 404 for package-list, so a single transient miss on element-list fails the build. The same link has also been seen to hang javadoc until the 6-hour job limit. Recent examples are #130, #142 and #145, whose failed cells went green on a plain re-run.

Change

  • OpenICF-java-framework/pom.xml: remove the Groovy link. None of the framework modules expose Groovy types in their public API, so the link added nothing there.
  • OpenICF-java-framework/bundles-parent/pom.xml: replace both <links> blocks (pluginManagement and <reporting>) with an offlineLink. It points at a committed package-list under bundles-parent/src/javadoc/groovy-2.4.21/. The URL now targets the Groovy version the build actually uses (2.4.21) instead of latest, which currently holds the Groovy 5 docs. The connectors that expose Groovy types (groovy, ssh, kerberos) keep their cross-links.
  • If the local file cannot be found, for example in the src/it invoker projects, the plugin only logs an error and skips the link. It does not fail the build.
  • The file must be refreshed when the Groovy version changes. The comment next to the groovyJavadocPackageList property says so.

Verification

  • package with attach-javadocs (failOnWarnings=true) on JDK 26 for connector-framework-contract, connector-framework-internal, groovy-connector, ssh-connector and kerberos-connector, plus groovy-connector on JDK 11: BUILD SUCCESS.
  • The javadoc options file (-Ddebug=true) has no network -link left. Groovy is passed as -linkoffline https://docs.groovy-lang.org/2.4.21/html/api <local dir>.
  • The generated HTML links to docs.groovy-lang.org/2.4.21 in 30 files for groovy-connector (e.g. groovy/lang/Closure.html, CompilerConfiguration.html), 6 for ssh and 4 for kerberos. No links to latest remain.

The javadoc <link> to docs.groovy-lang.org/latest made every build
download the Groovy element-list/package-list at javadoc time. The
"latest" docs no longer serve package-list, so any transient miss on
element-list failed attach-javadocs, which kept turning random
build-maven matrix cells red.

- Drop the link from the framework modules: none of them expose Groovy
  types in their public API.
- In bundles-parent, replace it with an offlineLink backed by a
  committed package-list, pointing at the Groovy version the build
  actually uses (2.4.21) rather than "latest".
@vharseko vharseko added bug Something isn't working ci CI, build & workflow changes build Maven build configuration and plugins documentation README, docs, license headers labels Sep 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working build Maven build configuration and plugins ci CI, build & workflow changes documentation README, docs, license headers

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant