Support resource creation in incremental annotation processors
Allow resources to be created by incremental annotation processors using
`Filer#createResource`. Allow resources to be created in the three currently
existing output locations on `StandardLocation`: `SOURCE_OUTPUT`,
`CLASS_OUTPUT`, and `NATIVE_HEADER_OUTPUT`.
A generated resource is uniquely identified by its `Location` and its path
relative to that `Location`. A new type `GeneratedResource` is created to that
effect. Data of that type is then plumbed through the existing annotation
processing infrastructure, ultimately reaching
`IncrementalCompilationInitializer` so that cleaning may be done.
Signed-off-by: Ian Kerins <email@example.com>
03 Mar 19 e7dd3baaa593ddc164de05e56134344c69a0568d
Silence unrecognized annotation processor option during incremental processing
This works by registering an additional annotation processor
matching everything so it's guaranteed to be called, and that
collects all other processors' supported options in its own
supported options. That way, all those options will always be
see by javac as being supported, even when recompiling only
a subset of files that won't trigger some processors.
As a side-effect, this fully works around the underlying javac
issue (https://bugs.openjdk.java.net/browse/JDK-8162455) even
during full recompilations.
Signed-off-by: Thomas Broyer <firstname.lastname@example.org>
01 Jan 19 ffda31b9f282eeb126b209547b2395cb35e8ad31