@Generated requires java.compiler / what should my annotation processor do
Rob Bygrave
robin.bygrave at gmail.com
Fri Oct 30 05:49:23 UTC 2020
Are Java 9+ annotation processors using module path supposed to generate
source code that has a javax.annotation.processing.Generated annotation?
(which is part of java.compile)
I have an annotation processor that supports modules and is fine except
that when module applications use it the @Generated will not be included in
the generated source unless the application module-info adds a *requires
java.compiler;* (which seems wrong).
So this is a minor niggle that the @Generated no longer is included in the
generated source when apps go from class path to module path.
Apologies is this has been asked before. I was unable to find anything on
this issue.
Any pointers or thoughts?
*Background*
I have an annotation processor that generates source code (that now
supports java modules with a module-info via a Multi-Release jar). The
module-info for the annotation processor is:
module io.avaje.inject.generator {
requires java.compiler;
requires io.avaje.inject;
requires java.annotation;
provides javax.annotation.processing.Processor with
io.avaje.inject.generator.Processor;
}
The annotation processor adds a @Generated to the generated source to
document that the source code is generated. The annotation processor only
adds the @Generated if javax.annotation.processing.Generated is deemed
available by using:
*elements.getTypeElement("javax.annotation.processing.Generated") != null*
The annotation processor generates source that includes the @Generated in
the cases of:
- There is no module-info.java (app is using class path and not module
path)
- The app module-info.java includes: *requires java.compiler;*
I'm not expecting users of this annotation processor to put a *requires
java.compiler;* into their module-info.
I think I must be doing something wrong or should not try to
use javax.annotation.processing.Generated which is part of java.compile.
Cheers, Rob.
More information about the jigsaw-dev
mailing list