RFR 7199353: Allow ConstructorProperties annotation from any package

Jaroslav Bachorik jaroslav.bachorik at oracle.com
Mon Oct 12 08:23:48 UTC 2015

On 9.10.2015 20:50, Mandy Chung wrote:
> On 10/09/2015 11:33 AM, Alex Buckley wrote:
>> On 10/9/2015 1:03 AM, Jaroslav Bachorik wrote:
>>> Well, if anything the @CP annotation is related to
>>> javax.management.openmbean package. All the OpenType and CompositeData
>>> definitions are in this package. @CP annotation is used to influence the
>>> way a CompositeData instance is reconstructed into an instance of the
>>> mapped custom type.
>> OK, so if ConstructorProperties is more closely related to
>> CompositeData than to MXBean per se, then put ConstructorProperties
>> into javax.management.openmbean. The MXBean spec (i.e. the javadoc) is
>> obviously completely dependent on that package already.
> FWIW.  @ConstructorProperties is closely related to MXBean.
> MXBean provides an easy way to define and implement your managed mbean
> using user-defined types and the MXBean framework converts those types
> into the public API and javax.management.openmbean types so that the
> client doesn't need the user-defined types to be present.  In other
> words, MXBean removes the need to code in javax.management.openmbean.

In ideal world this kind of mapping should be supported by notifications 
and any other parts dealing with transferring user defined data. And the 
custom type <-> open type mapping should be completely transparent for 
the API user. All of this available as an 'open data' module. But we 
don't live in an ideal world.

I still don't think we should further pollute the 'javax.management' 
packages - especially if we have API evolution in mind. The argument 
that it does not make sense to create a new package just for <insert a 
small number> classes probably got us to this situation when 
'javax.management' package contains classes which, in fact, should have 
been separated into cca. 6 different subpackages (according to their 

But, since multiple senior reviewers voiced their opinion that this 
annotation should go to 'javax.management' package I will just buckle 
down and go with '@javax.management.ConstructorProperties'


> Mandy
>> The desire for a new package seems misplaced to me, given how the real
>> driver for a new package -- the draft JEP for MBean registration --
>> isn't going anywhere fast.
>> Alex

More information about the jigsaw-dev mailing list