RFR 7199353: Allow ConstructorProperties annotation from any package

Peter Levart peter.levart at gmail.com
Fri Oct 9 15:36:50 UTC 2015

On 10/09/2015 02:30 PM, Jaroslav Bachorik wrote:
>>>> To answer my question: "How is one supposed to compile an MXBean that
>>>> would work in JDK8- and at the same time in JDK9+ without java.desktop
>>>> in the module graph?"
>>> Annotate the constructor with the both the @j.b.CP and the new @CP. In
>>> JDK 9 the new @CP will be picked and in JDK 8 the mapper will utilize
>>> @j.b.CP.
>> In that case, new @CP would have to be backported to JDK8u right?
> Nope. As Alan pointed out an annotation with an unrecognized type is 
> simply ignored. And this would work fine for this purpose - in JDK 8 
> the new @CP will be ignored while @j.b.CP will be used to identify the 
> constructor for reconstruction. 

Sorry, but I must be missing something.

When you compile a class (not an MXBean as Daniel pointed out, but a 
data object class) with JDK9, it can't be used on JDK8 because of class 
file version.

When you compile a class with JDK8, it can't contain new @CS annotation, 
because it is not part of the official Java SE API on the Java 8 platform.

So I still don't see how one could compile a data class so that it could 
be used on JDK8 as well as on JDK9 without java.desktop module?

Regards, Peter

More information about the jigsaw-dev mailing list