RFR: 8264124: Update MXBean specification and implementation to extend mapping of CompositeType to records [v2]
Daniel Fuchs
dfuchs at openjdk.java.net
Wed Mar 31 15:41:19 UTC 2021
On Mon, 29 Mar 2021 22:12:01 GMT, Daniel Fuchs <dfuchs at openjdk.org> wrote:
>> You add record in "Mappings for other types". I think it deserves a separate section "Mappings for record classes" (maybe after primitive types). It's useful to add a row for record in the summary table above "Mappings for primitive types"
>
> Link added. With respect to adding a section for records, it's a bit difficult to separate that from the "Mapping for other types" without a lot of duplication. I can add a row in the summary table, and then add a new section "Mapping for records" just before "Mapping for other types", that just gives a brief overview and refers to the mapping for other types below.
>
> Something like this - what do you think?
>
> <h3 id="records">Mappings for Records</h3>
>
> <p>A {@linkplain Record record} <em>R</em> whose {@linkplain
> Class#getRecordComponents() components} are
> all convertible to open types, is itself convertible to a
> {@link CompositeType} as follows.
> The type name of this {@code CompositeType}
> is determined by the same <a href="#type-names">type name rules</a>
> defined by the <a href="#composite-map">Mapping for other types</a>
> below. Its getters are the accessors for the {@linkplain
> RecordComponent record components}, and the record is reconstructed
> using its canonical constructor, without needing any annotation.</p>
>
> <p>A record may also expose additional non-canonical constructors, which
> can be used to reconstruct the record if the composite data does
> not exactly contain all the components expected by the
> canonical constructor. However, in order to be taken into account
> by the MXBean framework, such non-canonical constructors
> need to be annotated with either the {@link ConstructorParameters
> @javax.management.ConstructorParameters} or
> {@code @java.beans.ConstructorProperties} annotation.</p>
>
> <p>The complete rules for the mapping are detailed as part
> of the <a href="#composite-map">Mapping for other types</a>
> below.</p>
>
> <h3 id="composite-map">Mappings for other types</h3>
>
> <p>Given a record, or a Java class or interface <em>J</em> that does not match the other
> rules in the table above, the MXBean framework will attempt to map
> it to a {@link CompositeType} as follows. [....]
Hi Mandy, I have updated the PR with a revised version of the text above. Is that more in line what you had in mind?
best regards,
-- daniel
-------------
PR: https://git.openjdk.java.net/jdk/pull/3201
More information about the serviceability-dev
mailing list