From 4e6700eba46c678b887e776b487379b10fdb1bc0 Mon Sep 17 00:00:00 2001 From: Zhang Zhenhao <741788769@qq.com> Date: Thu, 22 Oct 2026 21:54:54 +0800 Subject: [PATCH 1/2] IGNITE-29184 Build: Explicitly configure annotation processors in modules depending on ignite-codegen Since JDK 23 javac does not run annotation processors found on the classpath unless they are configured explicitly. The calcite, indexing, zookeeper and control-utility modules relied on that implicit discovery, so on JDK 23+ their builds pass but message serializers and DTO factories are not generated and the node fails at runtime. List the processors each module needs explicitly, in pluginManagement so the inherited maven-compiler-plugin picks the configuration up without reordering the module's plugin executions (calcite's fmpp -> javacc pipeline depends on initialize-phase execution order): * calcite: MessageProcessor and org.immutables.processor.ProxyProcessor (generates the Immutable* rules and validator) * indexing, zookeeper: MessageProcessor * control-utility: IgniteDataTransferObjectProcessor (also covers test sources, which declare @Argument DTOs of their own) Verified by comparing the generated file set of each module before and after a clean build: calcite 34 files, indexing 33, zookeeper 8, control-utility 2 test-source factories - all identical. --- modules/calcite/pom.xml | 18 ++++++++++++++++++ modules/control-utility/pom.xml | 14 ++++++++++++++ modules/indexing/pom.xml | 14 ++++++++++++++ modules/zookeeper/pom.xml | 14 ++++++++++++++ 4 files changed, 60 insertions(+) diff --git a/modules/calcite/pom.xml b/modules/calcite/pom.xml index 9db4be3f02345..33cb52461d40f 100644 --- a/modules/calcite/pom.xml +++ b/modules/calcite/pom.xml @@ -342,6 +342,24 @@ + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + org.apache.ignite.internal.MessageProcessor + org.immutables.processor.ProxyProcessor + + + + + src/main/resources diff --git a/modules/control-utility/pom.xml b/modules/control-utility/pom.xml index 53524e3a2069a..6955ebf7b4d6f 100644 --- a/modules/control-utility/pom.xml +++ b/modules/control-utility/pom.xml @@ -147,6 +147,20 @@ + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + org.apache.ignite.internal.idto.IgniteDataTransferObjectProcessor + + + + + org.apache.maven.plugins diff --git a/modules/indexing/pom.xml b/modules/indexing/pom.xml index ca479e0d59d33..828a41f9e6940 100644 --- a/modules/indexing/pom.xml +++ b/modules/indexing/pom.xml @@ -163,6 +163,20 @@ + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + org.apache.ignite.internal.MessageProcessor + + + + + org.apache.maven.plugins diff --git a/modules/zookeeper/pom.xml b/modules/zookeeper/pom.xml index ce936f149e429..9a16188733b4a 100644 --- a/modules/zookeeper/pom.xml +++ b/modules/zookeeper/pom.xml @@ -168,6 +168,20 @@ + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + org.apache.ignite.internal.MessageProcessor + + + + + org.apache.maven.plugins From e793283dab68c53c3814fd5119b492e24e2e7c12 Mon Sep 17 00:00:00 2001 From: XianReallyHot-ZZH <741788769@qq.com> Date: Sat, 24 Oct 2026 00:50:44 +0800 Subject: [PATCH 2/2] IGNITE-29184 Review fixes: global -proc:full instead of per-module processor lists Replace the per-module lists with a single full in the shared maven-compiler-plugin configuration of parent/pom.xml, as suggested in the review. Processors are then discovered through the ServiceLoader registration files shipped in ignite-codegen (and the immutables jar for calcite), so new modules depending on ignite-codegen get annotation processing for free. codegen overrides the parent with none (previously -proc:none) so the override uses the same configuration element and wins the merge deterministically instead of racing both flags on the command line. The flag is accepted since JDK 17.0.12 (backported alongside 11.0.24), so CI on JDK 17 is unaffected; building with 17.0.0 - 17.0.11 is no longer possible. Verified by clean-building the four modules and comparing the generated file sets across JDK 17.0.12, 21.0.5, 23.0.2 and 25.0.4.1 - identical on every JDK: calcite 34 files, indexing 33, zookeeper 8, control-utility 2 (test sources). --- modules/calcite/pom.xml | 18 ------------------ modules/codegen/pom.xml | 2 +- modules/control-utility/pom.xml | 14 -------------- modules/indexing/pom.xml | 14 -------------- modules/zookeeper/pom.xml | 14 -------------- parent/pom.xml | 1 + 6 files changed, 2 insertions(+), 61 deletions(-) diff --git a/modules/calcite/pom.xml b/modules/calcite/pom.xml index 33cb52461d40f..9db4be3f02345 100644 --- a/modules/calcite/pom.xml +++ b/modules/calcite/pom.xml @@ -342,24 +342,6 @@ - - - - - org.apache.maven.plugins - maven-compiler-plugin - - - org.apache.ignite.internal.MessageProcessor - org.immutables.processor.ProxyProcessor - - - - - src/main/resources diff --git a/modules/codegen/pom.xml b/modules/codegen/pom.xml index 439e81f55a028..eb5f1cecbde89 100644 --- a/modules/codegen/pom.xml +++ b/modules/codegen/pom.xml @@ -61,7 +61,7 @@ default-compile - -proc:none + none diff --git a/modules/control-utility/pom.xml b/modules/control-utility/pom.xml index 6955ebf7b4d6f..53524e3a2069a 100644 --- a/modules/control-utility/pom.xml +++ b/modules/control-utility/pom.xml @@ -147,20 +147,6 @@ - - - - - org.apache.maven.plugins - maven-compiler-plugin - - - org.apache.ignite.internal.idto.IgniteDataTransferObjectProcessor - - - - - org.apache.maven.plugins diff --git a/modules/indexing/pom.xml b/modules/indexing/pom.xml index 828a41f9e6940..ca479e0d59d33 100644 --- a/modules/indexing/pom.xml +++ b/modules/indexing/pom.xml @@ -163,20 +163,6 @@ - - - - - org.apache.maven.plugins - maven-compiler-plugin - - - org.apache.ignite.internal.MessageProcessor - - - - - org.apache.maven.plugins diff --git a/modules/zookeeper/pom.xml b/modules/zookeeper/pom.xml index 9a16188733b4a..ce936f149e429 100644 --- a/modules/zookeeper/pom.xml +++ b/modules/zookeeper/pom.xml @@ -168,20 +168,6 @@ - - - - - org.apache.maven.plugins - maven-compiler-plugin - - - org.apache.ignite.internal.MessageProcessor - - - - - org.apache.maven.plugins diff --git a/parent/pom.xml b/parent/pom.xml index 8fa0c733af9a2..17318b8d34efb 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -567,6 +567,7 @@ + full --add-exports java.base/jdk.internal.misc=ALL-UNNAMED