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; + } + } +}