On Tue, 21 Apr 2026 12:04:15 GMT, David Beaumont <[email protected]> wrote:

>> Adds a new AnnotationProcessor to read the @MigratedValueClass on 
>> prospective value classes and generate the equivalent source file with the 
>> 'value' keyword at each annotated class declaration.
>> 
>> This adds new PROCESSOR_PATH variable to the compilation macro and use it 
>> for annotation processing.
>> This also requires moving the plugin discovery path to the new variable (was 
>> in classpath before) because the addition of a '--processor-path' flag 
>> disables using the classpath for plugin discovery.
>> 
>> For now this is all limited to `java.base` but that's expandable later 
>> easily. There was an issue just enabling it for all modules however (esp. 
>> `jdk.incubator` which might be special).
>> 
>> While there is currently no specific unit test for this code, if it were to 
>> fail to generate the correct value classes, a lot of other downstream tests 
>> would fail.
>> 
>> ---------
>> - [x] I confirm that I make this contribution in accordance with the 
>> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai).
>
> David Beaumont 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 19 additional 
> commits since the last revision:
> 
>  - Merge branch 'lworld' into jdk_8377101_gensrc/squashed
>  - Make AP swallow all unprocessed annotations
>  - Remove unwanted lint warning suppression
>  - Merge branch 'lworld' into jdk_8377101_gensrc/squashed
>  - Finally working
>  - Latest changes (inc. feecback).
>    
>    * feedback updates and tidying
>    * better compile macro call - still not working
>  - [[UNDO FORMATTING IN SQUASH BRANCH]]
>  - [[AUTOMATIC FORMATTING]]
>  - better but still not working
>  - Simpler temp directory
>  - ... and 9 more: 
> https://git.openjdk.org/valhalla/compare/b4d9b13f...6b9608a8

make/jdk/src/classes/build/tools/valhalla/valuetypes/GenValueClasses.java line 
93:

> 91:     static final String OUTDIR_OPTION_KEY = "valueclasses.outdir";
> 92: 
> 93:     private ProcessingEnvironment processingEnv = null;

There is a protected processingEnv field define in the superclass you can use 
instead.

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

PR Review Comment: 
https://git.openjdk.org/valhalla/pull/2180#discussion_r3120225865

Reply via email to