Request for feedback on annotation processing API changes made in JDK 9

Gunnar Morling gunnar at
Fri Apr 7 12:50:28 UTC 2017

Hi Joe,

> The new type javax.annotation.processing.Generated is intended to be a drop-in replacement for javax.annotation.Generated

A @Generated annotation is useful for any kind of code generator,
whether implemented as an annotation processor or not. Having it in
javax.annotation.processing ties it to annotation processing, though.
Of course other non-AP generators may still use it, but it'd feel not
quite right.

When discussing the case of @Generated earlier this year on
jigsaw-dev, a proposal was to have java.lang.annotation.Generated, and
Mark expressed support for this [1]. I still think that'd be the
better place, or was there anything speaking against it?




2017-04-06 1:31 GMT+02:00 Joseph D. Darcy <joe.darcy at>:
> Hello annotation processing users and authors,
> As has been done previously during Java SE 7 and Java SE 8, the JSR 269
> annotation processing API is undergoing a maintenance review (MR) as part of
> Java SE 9.
> Most of the API changes are in support of adding modules to the platform,
> both as a language structure in javax.lang.model.* as well as another
> interaction points in javax.annotation.processing in the Filer and
> elsewhere. A small API change was also done to better support repeating
> annotations. A more detailed summary of the API changes as well as an issue
> list is included in the MR material:
> A specdiff of the changes compared to Java SE 8 is also available:
> The API changes are intended to be largely compatible with the sources of
> existing processors, their binary linkage, as well as their runtime
> behavior. However, it would be helpful to verify that your existing
> processors work as expected when run under JDK 9. JDK 9 early access
> binaries are available for download:
> The current build, b163, includes all planned changes to existing types. The
> next build, b164, scheduled to be available later this week will also
> include the type javax.annotation.processing.Generated. The new type
> javax.annotation.processing.Generated is intended to be a drop-in
> replacement for javax.annotation.Generated. (The type
> javax.annotation.Generated is in a module no longer visible by default.)
> Please report experiences running processors under JDK 9 and feedback on the
> API changes.
> Thanks,
> -Joe

More information about the compiler-dev mailing list