RFR: 7903596: JMH: Explicitly enable annotation processors [v2]

Aleksey Shipilev shade at openjdk.org
Tue Nov 5 10:02:43 UTC 2024


On Tue, 8 Oct 2024 07:29:31 GMT, Jaikiran Pai <jpai at openjdk.org> wrote:

>> Can I please get a review of this change which proposes to address the issue noted in https://bugs.openjdk.org/browse/CODETOOLS-7903596?
>> 
>> As noted in that issue, when a benchmark generated using Java 22 is run, at runtime it fails with:
>> 
>> 
>> java -jar target/benchmarks.jar
>> Exception in thread "main" java.lang.RuntimeException: ERROR: Unable to find the resource: /META-INF/BenchmarkList
>> 	at org.openjdk.jmh.runner.AbstractResourceReader.getReaders(AbstractResourceReader.java:98)
>> 	at org.openjdk.jmh.runner.BenchmarkList.find(BenchmarkList.java:124)
>> 	at org.openjdk.jmh.runner.Runner.internalRun(Runner.java:252)
>> 	at org.openjdk.jmh.runner.Runner.run(Runner.java:208)
>> 	at org.openjdk.jmh.Main.main(Main.java:71)
>> 
>> 
>> This is due to annotation processors being disabled by default during compilation starting Java 22. The commit in this PR, explicitly enables the `org.openjdk.jmh.generators.BenchmarkProcessor` annotation processor to allow for it to generate the necessary benchmark resources.
>> 
>> I've tested this change locally, with Java 8, Java 21 as well as Java 22 and the newly generated benchmark is now functional on all these versions.
>
> Jaikiran Pai has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains two additional commits since the last revision:
> 
>  - merge latest from master branch
>  - 7903596: jmh-java-benchmark-archetype generated benchmark fails at runtime - ERROR: Unable to find the resource: /META-INF/BenchmarkList

This looks okay, but shouldn't the fix also include adding `-processor` all around the JMH modules, like `jmh-samples`, `jmh-core-it` and such? Should probably be enough to add it to `jmh-parent` here: https://github.com/openjdk/jmh/blob/7c6da9526c6544acbe9f19f2cf075793f240b120/pom.xml#L175-L179

Please rebase from master and test full JMH build with JDK 23.

-------------

PR Review: https://git.openjdk.org/jmh/pull/125#pullrequestreview-2415157523


More information about the jmh-dev mailing list