RFR: JDK-8260388: Listing (sub)packages at package level of API documentation

Jonathan Gibbons jjg at openjdk.java.net
Fri Mar 12 17:40:06 UTC 2021


On Wed, 10 Mar 2021 16:44:14 GMT, Hannes Wallnöfer <hannesw at openjdk.org> wrote:

> This adds a "Related Packages" table to package summary pages with a list of neighboring tables. The rules for including packages is as follows:
> 
>  1. The super package of the current package is included if it exists.
>  2. Direct subpackages of the current package are included, but only if their number does not exceed 20, in which case no subpackages are included.
>  3. If steps 1 and 2 did not produce more than 5 packages, sibling packages of the current package are included, but only if their number is not greater than 5.
> 
> In steps 2. and 3. above, either all or no candidate packages are included. In other words, if the threshold is exceeded none of the candidate packages are included in the list. The cut-off values are arbitrary, but have shown to produce reasonably good results with various codebases.
> 
> A few example of API documentation generated with this feature:
> 
> http://cr.openjdk.java.net/~hannesw/8260388/api.01/
> http://cr.openjdk.java.net/~hannesw/8260388/javafx.01/
> http://cr.openjdk.java.net/~hannesw/8260388/tomcat.02/
> http://cr.openjdk.java.net/~hannesw/8260388/servlet.01/
> 
> This is a first step to introduce the new feature. There may be future enhancements to fine-tune the feature or make it more customizable.

All OK; some suggestions for future work/cleanup/improvement

src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/PackageSummaryBuilder.java line 68:

> 66:     private final static int MAX_SUBPACKAGES = 20;
> 67:     private final static int MAX_SIBLING_PACKAGES = 5;
> 68: 

For future work, move these to a config file.

Short-term "workaround" suggestions still for a separate RFR: annotate these and similar declarations with an internal source-retention annotation of `@Configuration`

-------------

Marked as reviewed by jjg (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/2917


More information about the javadoc-dev mailing list