On Fri, 2 Apr 2021 18:00:57 GMT, Daniel Fuchs <dfu...@openjdk.org> wrote:
>> This RFE proposes to extend the MXBean framework to define a mapping to >> records. >> >> The MXBean framework already defines a mapping of `CompositeType` to plain >> java objects. Records are a natural representation of CompositeTypes. A >> record can be easily reconstructed from a `CompositeData` through the record >> canonical constructor. A clear advantage of records over plain java objects >> is that the canonical constructor will not need to be annotated in order to >> map composite data property names to constructor parameter names. >> >> With this RFE, here is an example comparing coding a composite type >> `NamedNumber` that consists of an `int` and a `String`, using records and >> using a plain java class. In both case, the `CompositeType` looks like this: >> >> CompositeType( >> "NamedNumber", // typeName >> "NamedNumber", // description >> new String[] {"number", "name"}, // itemNames >> new String[] {"number", "name"}, // itemDescriptions >> new OpenType[] {SimpleType.INTEGER, >> SimpleType.STRING} // itemTypes >> ); >> >> The plain Java class needs a public constructor annotated with >> `@ConstructorParameters` annotation: >> >> public class NamedNumber { >> public int getNumber() {return number;} >> public String getName() {return name;} >> @ConstructorParameters({"number", "name"}) >> public NamedNumber(int number, String name) { >> this.number = number; >> this.name = name; >> } >> private final int number; >> private final String name; >> } >> >> And the equivalent with a record class: >> >> public record NamedNumber(int number, String name) {} > > Daniel Fuchs has updated the pull request with a new target base due to a > merge or a rebase. The incremental webrev excludes the unrelated changes > brought in by the merge/rebase. The pull request contains 13 additional > commits since the last revision: > > - Merge > - minor style issue > - minor style issue > - Integrated review feedback > - Improved test > - Moved mapping for records just before Mapping for MXBean interface; > Improved test. > - Merge branch 'master' into mxbeans-8264124 > - Minor tweaks. Improved test. > - Merge branch 'master' into mxbeans-8264124 > - Integrated review feedback. Updated the section for Mapping to records. > - ... and 3 more: > https://git.openjdk.java.net/jdk/compare/8181cfe8...257a6ed8 Marked as reviewed by chegar (Reviewer). ------------- PR: https://git.openjdk.java.net/jdk/pull/3201