From b84ec47fb01eaec6e80d4cdab642600485dcc92e Mon Sep 17 00:00:00 2001 From: emadronero Date: Thu, 18 Dec 2025 23:46:48 -0500 Subject: [PATCH] feat: Add GraalVM native-image support by removing Guava shading The shaded Guava (split.com.google.common.*) causes GraalVM native-image parsing errors because it lacks the native-image configuration that standard Guava provides. Problem: When building a native image with the Split SDK, GraalVM fails with: Error parsing split.com.google.common.cache.LocalCache$Segment Caused by: Unresolved type split.com.google.common.util.concurrent.SettableFuture Root cause: The Maven Shade Plugin relocates Guava to split.com.google.common.* which strips the META-INF/native-image configuration that standard Guava includes for GraalVM compatibility. Solution: Remove Guava from the shade plugin configuration. Guava remains as a transitive dependency, allowing applications to use the standard Guava library which has proper GraalVM native-image support. Changes: - Remove com.google.guava:guava from shade plugin includes - Remove org.checkerframework:* from shade plugin includes - Remove com.google -> split.com.google relocation - Remove org.checkerframework -> split.org.checkerframework relocation Impact: - Guava is now a transitive dependency instead of being bundled - Applications using GraalVM native-image can now build successfully - Potential version conflicts with other Guava users (mitigated by dependency management in build tools) Tested with: - Quarkus 3.27.1 + Mandrel JDK-23 - Native image builds successfully - Split client works correctly at runtime --- client/pom.xml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/client/pom.xml b/client/pom.xml index 198f80a3..e42af318 100644 --- a/client/pom.xml +++ b/client/pom.xml @@ -70,11 +70,13 @@ org.apache.httpcomponents.* org.apache.hc.* com.google.code.gson:gson - com.google.guava:guava + + org.yaml:snakeyaml:* - org.checkerframework:* + + commons-codec:* @@ -89,18 +91,24 @@ org.apache split.org.apache + + org.yaml.snakeyaml split.org.yaml.snakeyaml + +