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>

Reply via email to