I've written a custom taglet library with names that start with a dot: .codelet
, .codelet.and.out
, etcetera. It is compiled with JDK 7.
When generating JavaDoc using the 1.7 javadoc.exe
, it works fine. But when generating it with JDK 8, it fails because
C:\...\Temp.java:5: error: no tag name after @
* {@.codelet mypkg.Temp}`
If I change the code using the taglet (not the taglet code itself) to {@codelet mypkg.Temp}
:
C:\...\Temp.java:5: error: unknown tag: codelet
* {@codelet mypkg.Temp}
Note: Custom tags that were not seen: @.codelet
1 error
Changing the name in the taglet source code to be cod.elet
(code.let
is not good because code
is an already existing taglet name), and using that new name, it works.
The JavaDoc tool documentation for the -tag
option (near the bottom of the section) states:
Avoiding conflicts: If you want to create your own namespace, then you can use a dot-separated naming convention similar to that used for packages: com.mycompany.todo. Oracle will continue to create standard tags whose names do not contain dots. Any tag you create will override the behavior of a tag by the same name defined by Oracle. If you create a @todo tag or taglet, then it always has the same behavior you define, even when Oracle later creates a standard tag of the same name.
So am I missing something here? Or it this an undocumented change that just really sucks? Because it requires a pretty big change in my library, if that's the case.
FYI: Taglet overview docs