RFR: 8295653: Add a graph of the sealed class hierarchy for marked classes [v2]

Jonathan Gibbons jjg at openjdk.org
Mon Oct 24 20:09:05 UTC 2022


On Thu, 20 Oct 2022 11:13:18 GMT, Magnus Ihse Bursie <ihse at openjdk.org> wrote:

>> It would be possible to mark classes with `@sealedGraph` to indicate that the sealed hierarchy should be rendered graphically in the JavaDocs. Classes not marked would be unaffected, creating an opt-in approach.
>> 
>> [Here](https://bugs.openjdk.org/secure/attachment/101126/Screen%20Shot%202022-10-19%20at%2012.47.47%20PM.png) is an example of MemoryLayout class rendering.
>> 
>> This feature has been developed in cooperation with Per Minborg.
>
> Magnus Ihse Bursie has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Fix styleheet

make/jdk/src/classes/build/tools/taglet/SealedGraph.java line 49:

> 47: public final class SealedGraph implements Taglet {
> 48:     private static final String sealedGraphDotPath =
> 49:             System.getProperty("sealedGraphDotPath");

The naming and use is slightly off here.

1. It names the _directory_ in which the graph `.dot` file will be placed. It's not a path for the `.dot` file itself.
2. it does double-duty as the equivalent of `enableModuleGraph` in the module graphs world.

make/jdk/src/classes/build/tools/taglet/SealedGraph.java line 86:

> 84: 
> 85:         ModuleElement module = docletEnvironment.getElementUtils().getModuleOf(element);
> 86:         File dotFile = new File(sealedGraphDotPath,

These days, it is preferable to use  NIO, so use `Path` instead of `File`.

-------------

PR: https://git.openjdk.org/jdk/pull/10761



More information about the build-dev mailing list