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>