This is an automated email from the ASF dual-hosted git repository.
vinishjail97 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-xtable.git
The following commit(s) were added to refs/heads/main by this push:
new 9b7883cd [MINOR] Upgrade ASF parent POM from 33 to 39 and fix delombok
on modern JDKs (#881)
9b7883cd is described below
commit 9b7883cd8d2fb1e76884e2e2bba4c1414e4ab788
Author: Sylwester Lachiewicz <[email protected]>
AuthorDate: Mon Aug 17 20:50:53 2026 +0200
[MINOR] Upgrade ASF parent POM from 33 to 39 and fix delombok on modern
JDKs (#881)
* [MINOR] Upgrade ASF parent POM from 33 to 39
Picks up six releases of the Apache parent POM, most notably newer
managed plugin versions (surefire 3.3.0 -> 3.5.6, compiler 3.13.0 ->
3.15.0, enforcer 3.5.0 -> 3.6.3, javadoc 3.7.0 -> 3.12.0) and a raised
minimalMavenBuildVersion of 3.9.
Parent 36 replaced the maven.compiler.source/target properties with a
single javaVersion property, so the compiler configuration had to move
with it:
- maven.compiler.target=8 becomes javaVersion=8
- the <source>${maven.compiler.source}</source> and
<target>${maven.compiler.target}</target> entries are dropped; they
would no longer resolve, and <release> already governs the build
- <release> now reads ${javaVersion}
maven-compiler-plugin was declared twice in <build><plugins>, which
Maven warns about and which is what let the stale property reference go
unnoticed. The two declarations are merged into one.
Java level stays at 8 and the effective compiler invocation is
unchanged (javac [debug release 8]).
* [MINOR] Make delombok work on modern JDKs
lombok-maven-plugin 1.18.20.0 is the last release of that plugin (April
2021) and there is nothing newer to upgrade to. It embeds lombok
1.18.20, which throws on JDK 21+ during delombok:
NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport
does not have member field 'com.sun.tools.javac.tree.JCTree qualid'
Override the plugin's lombok dependency with the version the project
already uses elsewhere, and bump that to 1.18.46 so the JDK support
extends past 21.
Verified: delombok and compilation of xtable-api succeed on JDK 21, 25
and 26; before this change they failed on all three.
---
pom.xml | 48 +++++++++++++++++++++++++-----------------------
1 file changed, 25 insertions(+), 23 deletions(-)
diff --git a/pom.xml b/pom.xml
index f7ecf7b6..910d794b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
- <version>33</version>
+ <version>39</version>
</parent>
<groupId>org.apache.xtable</groupId>
@@ -61,13 +61,13 @@
<project.version>0.2.0-SNAPSHOT</project.version>
<!-- To ensure build content is re-producible -->
<project.build.outputTimestamp>2026-07-21T19:16:22Z</project.build.outputTimestamp>
- <maven.compiler.target>8</maven.compiler.target>
+ <javaVersion>8</javaVersion>
<maven-compiler-plugin.version>3.13.0</maven-compiler-plugin.version>
<avro.version>1.12.0</avro.version>
<log4j.version>2.22.0</log4j.version>
<junit.version>5.11.4</junit.version>
<junit.platform.runner.version>1.11.4</junit.platform.runner.version>
- <lombok.version>1.18.36</lombok.version>
+ <lombok.version>1.18.46</lombok.version>
<lombok-maven-plugin.version>1.18.20.0</lombok-maven-plugin.version>
<hadoop.version>3.4.1</hadoop.version>
<hudi.version>1.2.0</hudi.version>
@@ -707,17 +707,17 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
- <version>${maven-compiler-plugin.version}</version>
<configuration>
- <source>${maven.compiler.source}</source>
- <target>${maven.compiler.target}</target>
- <annotationProcessorPaths>
- <path>
- <groupId>org.projectlombok</groupId>
- <artifactId>lombok</artifactId>
- <version>${lombok.version}</version>
- </path>
- </annotationProcessorPaths>
- </configuration>
+ <version>${maven-compiler-plugin.version}</version>
+ <configuration>
+ <release>${javaVersion}</release>
+ <annotationProcessorPaths>
+ <path>
+ <groupId>org.projectlombok</groupId>
+ <artifactId>lombok</artifactId>
+ <version>${lombok.version}</version>
+ </path>
+ </annotationProcessorPaths>
+ </configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@@ -741,13 +741,6 @@
</execution>
</executions>
</plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <release>${maven.compiler.target}</release>
- </configuration>
- </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
@@ -1065,13 +1058,22 @@
which reads ${delombok.output.dir} so that the generated
builders, getters
and equals/hashCode show up in the javadoc jar. Running
it on ordinary
builds costs time and forces every contributor through
- lombok-maven-plugin, whose last release is 1.18.20.0
(April 2021) and
- which cannot delombok on newer JDKs.
+ lombok-maven-plugin, whose last release is 1.18.20.0
(April 2021).
-->
<plugin>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-maven-plugin</artifactId>
<version>${lombok-maven-plugin.version}</version>
+ <dependencies>
+ <!-- 1.18.20.0 ships lombok 1.18.20, which cannot
delombok on
+ JDK 21+. Override it with the lombok the
build compiles
+ against so a release can be cut on a modern
JDK. -->
+ <dependency>
+ <groupId>org.projectlombok</groupId>
+ <artifactId>lombok</artifactId>
+ <version>${lombok.version}</version>
+ </dependency>
+ </dependencies>
<configuration>
<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
<addOutputDirectory>false</addOutputDirectory>