XianReallyHot-ZZH opened a new pull request, #13732: URL: https://github.com/apache/ignite/pull/13732
Ticket: IGNITE-29184 ## What changes Since JDK 23, javac no longer runs annotation processors found on the classpath unless they are configured explicitly. The calcite, indexing, zookeeper and control-utility modules relied on this implicit discovery, so on JDK 23+ their builds pass but message serializers / DTO factories are not generated and the node fails at runtime. This lists the processors each module needs explicitly, configured in `pluginManagement` so the inherited `maven-compiler-plugin` picks the list up: * `calcite`: `MessageProcessor` (message and metadata serializers/marshallers) **and `org.immutables.processor.ProxyProcessor`** (generates the 14 `Immutable*` rules and `ImmutableIgniteSqlValidator`) — listing only the Ignite processor would trade one silent generation gap for another; * `indexing`: `MessageProcessor`; * `zookeeper`: `MessageProcessor`; * `control-utility`: `IgniteDataTransferObjectProcessor` (management API DTO factories; also covers test sources, which declare `@Argument` DTOs of their own). `ignite-core` already lists its processors explicitly (in `build/plugins`). The four modules here use `pluginManagement` instead of `build/plugins` because declaring `maven-compiler-plugin` in a module's `build/plugins` makes Maven reorder the module's initialize-phase executions: in calcite, `generate-fmpp-sources` gets scheduled ahead of `copy-fmpp-resources`/`unpack-parser-template`, and the fmpp → javacc parser pipeline fails. Configuring through `pluginManagement` applies the processor list to the inherited plugin without touching plugin ordering. ## Testing For each module, clean build before/after the change on JDK 21, comparing the full set of generated files: * calcite: 34 files identical (15 message + 5 metadata serializers/marshallers, 14 immutables classes); * indexing: 33 files identical; * zookeeper: 8 files identical; * control-utility: 2 test-source factories generated (`test-compile`). With an explicit processor list, annotation processing no longer depends on the JDK's discovery default, so JDK ≤ 21 behavior is unchanged and JDK 23+ keeps generating. Note: `control-utility` `test-compile` needs a current `ignite-core` snapshot (IGNITE-29050 added `SnapshotDeleteCommand`); verified green in a reactor build with `-am`. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
