RFR: JDK-8202947: Fix minor issues with taglets

Jonathan Gibbons jonathan.gibbons at oracle.com
Thu May 17 18:04:06 UTC 2018


Please review some changes to the doclet support for taglets.

The change was initially motivated by a desire to better understand 
which tags were supported in which contexts, to fix some issues in the 
doc comment specification [1].  That in turn led to some cleanup in the 
code to better understand the handling of such information in the code 
itself. Finally, after doing before/after checking on the Java SE API 
docs to verify that no change had occurred in the generated docs, a 
change -was- identified, fixing a previously unknown bug, which caused 
incorrect/inappropriate version info to appear in the generated docs for 
JDK 9 and 10.

The JBS issue for this work is [2], but any changes that would allow 
tags to appear in more places (implying a potential spec change) have 
been deferred for now.  In addition, as well as the previously unknown 
bug described above, another previously unknown bug has been identified, 
in the handling of the -tag option. This will be investigated 
separately, and additional tests provided.

In terms of this work, the primary file to review first is TagletManager 
[3].  While it is mostly cleanup, there is a new method to print out a 
dump of the taglet table, which can be activated by a new 
hidden/undocumented option. Secondarily, BaseTaglet [4] has been 
improved, to make it unnecessary for subtypes to override methods that 
define where the tag(let) can be used: the functionality is replaced by 
passing in a Set<Site> to the BaseTaglet constructor, where Site is a 
new enum whose members indicate the different places where a tag(let) 
may appear.

A minor change to SimpleTaglet allows a taglet to be disabled. This is 
used by the -author, -version, -nosince options, and by the 'X' 
character in the `locations` part of a `-tag` option.  Because this 
changes the way that @author and @version tags are handled, new tests 
are added for those tags, that exercise the tag and the corresponding 
option.

A new "golden file" test is added for the dump of the taglet table. This 
is partly to ensure the continued operation of the code to dump the 
taglet table, and partly to help detect any inadvertent changes to the 
taglet table.

-- Jon


[1] https://docs.oracle.com/javase/9/docs/specs/doc-comment-spec.html
[2] http://cr.openjdk.java.net/~jjg/8202947/webrev.00/
[3] 
http://cr.openjdk.java.net/~jjg/8202947/webrev.00/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/TagletManager.java.sdiff.html
[4] 
http://cr.openjdk.java.net/~jjg/8202947/webrev.00/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/BaseTaglet.java.sdiff.html


More information about the javadoc-dev mailing list