diff --git a/commafeed-server/pom.xml b/commafeed-server/pom.xml
index e4751b71..141e5cbc 100644
--- a/commafeed-server/pom.xml
+++ b/commafeed-server/pom.xml
@@ -322,6 +322,11 @@
quarkus-extension-processor
provided
+
+ org.graalvm.sdk
+ nativeimage
+ provided
+
diff --git a/commafeed-server/src/main/java/com/commafeed/NativeImageClasses.java b/commafeed-server/src/main/java/com/commafeed/NativeImageClasses.java
index 9b5d3fff..bda41f0f 100644
--- a/commafeed-server/src/main/java/com/commafeed/NativeImageClasses.java
+++ b/commafeed-server/src/main/java/com/commafeed/NativeImageClasses.java
@@ -6,6 +6,8 @@ import com.codahale.metrics.Histogram;
import com.codahale.metrics.Meter;
import com.codahale.metrics.MetricRegistry;
import com.codahale.metrics.Timer;
+import com.oracle.svm.core.annotate.Substitute;
+import com.oracle.svm.core.annotate.TargetClass;
import io.quarkus.runtime.annotations.RegisterForReflection;
@@ -346,4 +348,22 @@ import io.quarkus.runtime.annotations.RegisterForReflection;
com.rometools.opml.feed.synd.impl.ConverterForOPML10.class,
com.rometools.opml.feed.synd.impl.ConverterForOPML20.class,
})
-public class NativeImageClasses {}
+public class NativeImageClasses {
+
+ // disable zstd and brotli runtime detection because it causes native image failure
+ @TargetClass(className = "org.apache.hc.client5.http.impl.ZstdRuntime")
+ static final class ZstdRuntime {
+ @Substitute
+ public static boolean available() {
+ return false;
+ }
+ }
+
+ @TargetClass(className = "org.apache.hc.client5.http.impl.Brotli4jRuntime")
+ static final class Brotli4jRuntime {
+ @Substitute
+ public static boolean available() {
+ return false;
+ }
+ }
+}