On Wed, 25 Oct 2023 23:06:59 GMT, Jonathan Gibbons <[email protected]> wrote:
> Please review an update to the way that `javadoc` handles the default legal
> notices when generating docs.
>
> Previously, the default notices were taken from the module's `legal`
> directory (`$JAVA_HOME/legal/jdk.javadoc`), but in some contexts, these files
> were either symbolic links, or "descriptive links" -- text files containing
> the words "Please see ..." -- on platforms that did not support symbolic
> links. This was set up when using `jlink` to create the image. These
> "descriptive links" were insufficient and inappropriate when used in a
> generated docs bundle.
>
> The solution is to put a copy of the necessary files into the `jdk.javadoc`
> module itself, at build time, as resource files, and to copy the files from
> there instead of the module's `legal` directory.
>
> The set of files may vary depending on the kind of build, so care is taken to
> not hardwire any specific list of names into the code. This means using
> direct access to the underlying `jrt:` file system in order to determine the
> set of legal notices that were set up at build time.
>
> The main test for legal notices is updated to verify that the words "Please
> see ..." do not appear in any of the legal notices in a generated docs
> bundle. There should be no other change to the set of legal notices.
>
> Two other tests were affected, because they provided their own minimal file
> manager for use with `javadoc`, which relied on default methods in the file
> manager API. These default methods are not sufficiently for handling paths in
> non-default file systems, such as the `jrt:` file system used to access the
> resources for the legal notices. The fix is just to override the necessary
> methods.
make/modules/jdk.javadoc/Copy.gmk line 44:
> 42: $(eval $(call SetupCopyFiles, COPY_JAVADOC_COMMON_LEGAL_RESOURCES, \
> 43: DEST := $(JDK_JAVADOC_DOCLET_RESOURCE_DIR)/legal, \
> 44: FILES := $(wildcard $(SUPPORT_OUTPUTDIR)/modules_legal/common/*), \
Suggestion:
FILES := $(wildcard $(COMMON_LEGAL_DST_DIR)/*), \
This is already defined in CopyCommon...
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/16370#discussion_r1373180381