This is an automated email from the ASF dual-hosted git repository.

vinishjail97 pushed a commit to branch branch-0.4
in repository https://gitbox.apache.org/repos/asf/incubator-xtable.git


The following commit(s) were added to refs/heads/branch-0.4 by this push:
     new 7e273e67 [736] Make the bundled xtable-utilities jar runnable again 
(Hudi 0.x) + CI on branch-0.4 (#841)
7e273e67 is described below

commit 7e273e67c2339947dad474bfc09a5e518bf5de26
Author: Vinish Reddy <[email protected]>
AuthorDate: Mon Jul 20 22:52:09 2026 +0530

    [736] Make the bundled xtable-utilities jar runnable again (Hudi 0.x) + CI 
on branch-0.4 (#841)
    
    * [736] Make the bundled xtable-utilities jar runnable again (Hudi 0.x)
    
    Cherry-pick of #840 (4daec279) adapted for the Hudi 0.14 line on
    main-hudi-0x. The #736 root cause applies here too: the #822 shade
    allowlist dropped runtime deps from the bundled utilities jar, so
    java -jar RunSync failed with NoClassDefFoundError.
    
    Applicable subset for Hudi 0.x:
    - jol-core: the parent pins it to test scope, but Hudi's
      ObjectSizeCalculator loads org.openjdk.jol at runtime; override to
      runtime and add to the shade allowlist (the actual #736 fix).
    - slf4j-api: add to the allowlist (org/slf4j/LoggerFactory was missing).
    
    Dropped from the original #840 (Hudi 1.x only): hudi-hadoop-common and
    hudi-io do not exist in Hudi 0.14 (that split is 1.x); hudi-common still
    provides org.apache.hudi.common.fs.FSUtils. There is also no redundant
    test-scoped hudi-java-client to remove on this branch.
    
    Verified: the 0.x bundled jar now contains org/slf4j/LoggerFactory,
    org/openjdk/jol/info/GraphLayout, org/apache/hudi/common/fs/FSUtils and
    org/apache/hudi/client/common/HoodieJavaEngineContext.
    
    Cherry picked from commit 4daec2795e6ec1234f0d0c8aa05aadee0780b714.
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
    
    * ci: run Maven CI build and license check on main-hudi-0x
    
    Add main-hudi-0x to the push and pull_request branch triggers so the
    existing CI (build + test, license check) runs for the long-lived
    Hudi 0.x branch and PRs targeting it, matching main. package-deploy
    (release-triggered) and the site workflows are unchanged.
    
    The concurrency guard already treats any ref containing "main" as
    non-cancelable, so main-hudi-0x is covered without further changes.
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
    
    * ci: point branch triggers at branch-0.4 (renamed from main-hudi-0x)
    
    The release branch was renamed main-hudi-0x -> branch-0.4 to use a
    version-keyed name instead of a dependency-keyed one. Update the push /
    pull_request triggers so Maven CI Build and License Check run on the
    renamed branch.
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
    
    ---------
    
    Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]>
---
 .github/workflows/mvn-ci-build.yml      |  2 ++
 .github/workflows/mvn-license-check.yml |  2 ++
 xtable-utilities/pom.xml                | 11 ++++++++++-
 3 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/.github/workflows/mvn-ci-build.yml 
b/.github/workflows/mvn-ci-build.yml
index 6b51ce66..5e3e1b76 100644
--- a/.github/workflows/mvn-ci-build.yml
+++ b/.github/workflows/mvn-ci-build.yml
@@ -24,10 +24,12 @@ on:
   push:
     branches:
       - "main"
+      - "branch-0.4"
 
   pull_request:
     branches:
       - "main"
+      - "branch-0.4"
 
 jobs:
   build:
diff --git a/.github/workflows/mvn-license-check.yml 
b/.github/workflows/mvn-license-check.yml
index 16fff36e..970e982d 100644
--- a/.github/workflows/mvn-license-check.yml
+++ b/.github/workflows/mvn-license-check.yml
@@ -24,10 +24,12 @@ on:
   push:
     branches:
       - "main"
+      - "branch-0.4"
 
   pull_request:
     branches:
       - "main"
+      - "branch-0.4"
 
 jobs:
   build:
diff --git a/xtable-utilities/pom.xml b/xtable-utilities/pom.xml
index 570737eb..8202f64a 100644
--- a/xtable-utilities/pom.xml
+++ b/xtable-utilities/pom.xml
@@ -222,10 +222,17 @@
             
<artifactId>hudi-spark${spark.version.prefix}-bundle_${scala.binary.version}</artifactId>
             <scope>test</scope>
         </dependency>
+        <!--
+          Hudi's ObjectSizeCalculator loads org.openjdk.jol at runtime (not 
only in tests),
+          so the bundled utilities jar must ship it. The parent 
dependencyManagement pins
+          jol-core to test scope, so override to runtime here and add it to 
the shaded
+          artifactSet below. See 
https://github.com/apache/incubator-xtable/issues/736.
+        -->
         <dependency>
             <groupId>org.openjdk.jol</groupId>
             <artifactId>jol-core</artifactId>
-            <scope>test</scope>
+            <version>${jol.core.version}</version>
+            <scope>runtime</scope>
         </dependency>
     </dependencies>
 
@@ -681,6 +688,7 @@
                             
<include>org.json4s:json4s-scalap_${scala.binary.version}</include>
                             <include>org.lz4:lz4-java</include>
                             <include>org.objenesis:objenesis</include>
+                            <include>org.openjdk.jol:jol-core</include>
                             
<include>org.reactivestreams:reactive-streams</include>
                             <include>org.roaringbitmap:RoaringBitmap</include>
                             <include>org.roaringbitmap:shims</include>
@@ -692,6 +700,7 @@
                             
<include>org.scala-lang.modules:scala-xml_${scala.binary.version}</include>
                             <include>org.slf4j:jcl-over-slf4j</include>
                             <include>org.slf4j:jul-to-slf4j</include>
+                            <include>org.slf4j:slf4j-api</include>
                             <include>org.slf4j:slf4j-reload4j</include>
                             <include>org.threeten:threeten-extra</include>
                             <include>org.threeten:threetenbp</include>

Reply via email to