Deprecated attribute in module-info.class?
Stephan Herrmann
stephan.herrmann at berlin.de
Thu Mar 29 23:02:11 UTC 2018
On 30.03.2018 00:56, Jonathan Gibbons wrote:
> On 3/29/18 3:49 PM, Stephan Herrmann wrote:
>
>> On 29.03.2018 18:02, Alan Bateman wrote:
>>> On 29/03/2018 15:36, Stephan Herrmann wrote:
>>>> I'm looking at jdk.xml.bind/module-info.class from JDK 9.0.4.
>>>>
>>>> I do find a RuntimeVisibleAnnotation attribute representing
>>>> @java.lang.Deprecated(since="9", forRemoval=true)
>>>> but I don't find a Deprecated attribute.
>>>>
>>>> Is this intended? JVMS 4.7.15 neither includes nor excludes
>>>> modules, but not generating the Deprecated attribute looks
>>>> like an omission to me.
>>> Are you using `javap` to look at the class or something else?
>>>
>>> I ask because `javap` tool was updated in JDK 10 to render annotations in a more friendly way. When I use the JDK 10 `javap` to
>>> look at the jdk.xml.bind's module-info.class from JDK 9 I see:
>>>
>>> RuntimeVisibleAnnotations:
>>> 0: #5(#6=s#7,#8=Z#9)
>>> java.lang.Deprecated(
>>> since="9"
>>> forRemoval=true
>>> )
>>>
>>> whereas the JDK 9 `javap` prints less useful output.
>>
>> I did use JDK 9 javap, but was able to decipher the
>> RuntimeVisibleAnnotations attribute as you can see above :)
>> (Still good to know about the improvement in JDK 10).
>>
>> My question, however, concerns the lack of a Deprecated
>> *attribute* a la JVMS 4.7.15.
>>
>> Is that intended or not?
>>
>> IOW, are compilers expected to evaluate RuntimeVisibleAnnotations
>> in order to issue deprecation warnings?
>> In the past this was not necessary.
>>
>> best,
>> Stephan
>
> Stephan,
>
> Given JEP 277 [1], it is now necessary to read the annotation in order
> to determine if the annotated item has been deprecated for removal,
> and to act accordingly.
That's true, I was just hoping, we could skip evaluating
RuntimeVisibleAnnotations if no Deprecated attribute is found.
Is using Deprecated attributes now deprecated ? :p
Stephan
More information about the jigsaw-dev
mailing list