RFR: 8295653: Add a graph of the sealed class hierarchy for marked classes [v2]
Magnus Ihse Bursie
ihse at openjdk.org
Mon Oct 24 20:14:04 UTC 2022
On Mon, 24 Oct 2022 20:05:51 GMT, Jonathan Gibbons <jjg at openjdk.org> wrote:
>> 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.
Would `sealedDotOutputDir` be ok? I think 2. will kind of follow from the fact that it is specified. Otherwise we could do like `enableSealedDotOutputInDir` but I think that's getting too verbose. And having two different properties just because of naming makes no sense, since then we need to start checking that they are consistent.
> make/jdk/src/classes/build/tools/taglet/SealedGraph.java line 182:
>
>> 180: .append(lineSeparator())
>> 181: .append(" rankdir=\"BT\";")
>> 182: .append(lineSeparator());
>
> Note to future selves: if we come up with Yet Another Kind of Graph, we should consider creating a `DotBuilder` class to share/simplify the code.
There is a dot-build for the ModuleGraph, but it makes a lot of assumptions about what kind of graph it is generating. I tried using that instead first, but it led to too much cludgy code, or too wide refactorings.
-------------
PR: https://git.openjdk.org/jdk/pull/10761
More information about the build-dev
mailing list