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.wallnoe...@oracle.com <mailto:hannes.wallnoe...@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.gibb...@oracle.com <mailto:jonathan.gibb...@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.wallnoe...@oracle.com <mailto:hannes.wallnoe...@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