Please review a change to overhaul the javadoc support for diagnostics to better leverage the support available in javac. This includes the ability for all javadoc diagnostics to show a "source line and caret" to indicate the position of a reported issue. As a side-effect, it normalizes the formatting of javadoc messages, to be consistent with javac messages.
The primary changes are in the javadoc `Messager` class, and are primarily focussed "downward" on the internal use of the javac `Log.report` method, which is the nexus for reporting methods. There is additional cleanup that could be done in `Messager` in the API it provides to clients, but (for the most part) that is not done in this work. Additional changes are done to facilitate writing a test for this work, and reflect the current shortcomings of the existing `Doclet` API. Most notably: * changes in `Utils` to allow a user-defined taglet to override a built-in taglet * changes in `TagletManager` and `Workarounds` to allow a user-defined taglet to access internal API, to workaround API that would be useful to provide on `StandardDoclet` There are a few minor specific cleanup changes in code style and/or improved comments. There is one primary new test, `TestDiagsLineCaret.java` which exercises different kinds of diagnostics at different positions in a file, to verify that the source line and a caret are produced as appropriate. There are additional test changes triggered by the slight change in the format of error messages. Most notably, prefixes like `error -` and `warning -` become `error:` and `warning:`. ------------- Commit messages: - JDK-8267126: javadoc should show "line and caret" for diagnostics. Changes: https://git.openjdk.java.net/jdk/pull/4074/files Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=4074&range=00 Issue: https://bugs.openjdk.java.net/browse/JDK-8267126 Stats: 906 lines in 37 files changed: 598 ins; 132 del; 176 mod Patch: https://git.openjdk.java.net/jdk/pull/4074.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/4074/head:pull/4074 PR: https://git.openjdk.java.net/jdk/pull/4074