RFR: 8240169: javadoc fails to link to non-modular api docs
Jonathan Gibbons
jonathan.gibbons at oracle.com
Wed Apr 8 21:10:35 UTC 2020
Generally looks good, and is generally what I expected.
The change in the arg for checkExit is a pleasant surprise ;-) That
being said, ideally, in general, there should be a checkExit call after
each invocation of javadoc, but that's a pretty minor detail.
-- Jon
On 4/8/20 1:15 PM, Hannes Wallnoefer wrote:
> Jon,
>
> I pushed the changeset with separated source directories for modules
> and packages, which worked fine.
>
> Here are the changes in the test:
>
> http://hg.openjdk.java.net/jdk/jdk/rev/3b557aef43c4#l3.13
>
> Hannes
>
>> Am 08.04.2020 um 11:42 schrieb Hannes Wallnoefer
>> <hannes.wallnoefer at oracle.com <mailto:hannes.wallnoefer at oracle.com>>:
>>
>> Thanks for the review, Jon.
>>
>> I agree the test is weird. I had to check it does the right thing
>> with everything in the same directory.
>>
>> I’ll rewrite it to use separate directories as you suggest.
>>
>> Hannes
>>
>>> Am 07.04.2020 um 19:32 schrieb Jonathan Gibbons
>>> <jonathan.gibbons at oracle.com <mailto:jonathan.gibbons at oracle.com>>:
>>>
>>> Hannes,
>>>
>>> The test is weird, and it took me a while to understand what I think
>>> is going on. This predates your changes, but is still very confusing.
>>>
>>> If I understand the code correctly, initModulesAndPackages creates
>>> both packages and modules (which contain packages) in the same "src"
>>> directory. The same "src" directory is then used as an argument for
>>> both the module source path and source path, in different runs of
>>> javadoc. This is confusing, at least to me, because you can put a
>>> module on the source path and have javadoc recognize it as a module.
>>> But, it seems to work in the test because the test is relying on the
>>> naming conventions for qualified module names, and so it doesn't get
>>> confused when looking for packages or modules. But, I'm mildly
>>> surprised javac/javadoc doesn't complain at the "packages" found on
>>> the module source path.
>>>
>>> The test would be clearer if initModulesAndPackages wrote into two
>>> separate directories, one for module source code and the other for
>>> package source code. This would then affect/improve all the existing
>>> @Test methods by making it clear which directory structure they are
>>> reading source code from.
>>>
>>> If this simple refactoring works, the review is Approved.
>>> Otherwise, I'd like to understand the issues in more detail.
>>>
>>> -- Jon
>>>
>>>
>>> On 4/3/20 1:38 AM, Hannes Wallnoefer wrote:
>>>> I realised there’s a simpler solution to the problem. Instead of
>>>> using a Set to track packages with non-modular documentation we
>>>> can just return the module name that matches our internal model in
>>>> #checkLinkCompatibility.
>>>>
>>>> I also changed the JBS summary to „javadoc fails to link to docs
>>>> with non-matching modularity“ so it covers both cases.
>>>>
>>>> New Webrev: http://cr.openjdk.java.net/~hannesw/8240169/webrev.01/
>>>>
>>>> Hannes
>>>>
>>>>
>>>>> Am 02.04.2020 um 16:06 schrieb Hannes Wallnoefer
>>>>> <hannes.wallnoefer at oracle.com <mailto:hannes.wallnoefer at oracle.com>>:
>>>>>
>>>>> Please review:
>>>>>
>>>>> JBS: https://bugs.openjdk.java.net/browse/JDK-8240169
>>>>> Webrev: http://cr.openjdk.java.net/~hannesw/8240169/webrev.00/
>>>>>
>>>>> This patch allows using external documentation even if it doesn’t
>>>>> match the external library in terms of modularity, i.e.
>>>>> non-modular documentation can be used for an modular library and
>>>>> vice versa. Instead of showing an error a warning is issued. There
>>>>> is still a warning if code and documentation do not match, but we
>>>>> use the check to tweak reference lookup so that we are still able
>>>>> to link to the appropriate documentation.
>>>>>
>>>>> I think that all relevant cases for combinations of modular and
>>>>> non-modular code are covered by existing tests (some of
>>>>> which change with this patch obviouly).
>>>>>
>>>>> TestLinkOptionWithAutomaticModule.java covers using a jar file as
>>>>> automatic or unnamed module, both of which cases were
>>>>> already supported as of JDK-8212233, so no changes there.
>>>>>
>>>>> TestLinkOptionWithModule.java covers all combinations of modular
>>>>> and non-modular code and documentation. For the two tests
>>>>> that cover non-matching combinations, I changed the expected
>>>>> return code to OK and added expected output with the link HTML.
>>>>> The message about the mismatching documentation is still there,
>>>>> but it is a warning instead of an error.
>>>>>
>>>>> I also added the JBS id to the @bug tag in
>>>>> TestLinkOptionWithModule.java as well as in
>>>>> TestClassCrossReferences.java which is another test that contains
>>>>> significant changes.
>>>>>
>>>>> Thanks,
>>>>> Hannes
>>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/javadoc-dev/attachments/20200408/f54354b9/attachment.htm>
More information about the javadoc-dev
mailing list