jpms: add 'require static' entries for annotation processing #7732
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Follow up to: #2970
The annotation libraries that provide annotations used on public API should be declared as
require static
. Otherwise, compiling with-Xlint:all
and-Werror
fails because all annotations that are visited need to be accessible from the context of the module they are used in.Example error:
https://scans.gradle.com/s/ose6lkdbtogww/console-log/task/:hedera-protobuf-java-api:compileJava?anchor=5&page=1
For more details see also this similar issue in Log4j2: apache/logging-log4j2#3437
I believe Guava's own build would fail without this at compilation time if annotation processing would be done on the module path (
--process-module-path
).Unfortunately, that's a bit complex to configure currently: https://issues.apache.org/jira/browse/MCOMPILER-412