diff --git a/extensions/netty/deployment/src/main/java/io/quarkus/netty/deployment/NettyProcessor.java b/extensions/netty/deployment/src/main/java/io/quarkus/netty/deployment/NettyProcessor.java
index 361033561c391..b807f875032aa 100644
--- a/extensions/netty/deployment/src/main/java/io/quarkus/netty/deployment/NettyProcessor.java
+++ b/extensions/netty/deployment/src/main/java/io/quarkus/netty/deployment/NettyProcessor.java
@@ -122,8 +122,11 @@ NativeImageConfigBuildItem build(
.addRuntimeInitializedClass("io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder")
.addRuntimeInitializedClass("io.netty.handler.codec.http.websocketx.WebSocket00FrameEncoder")
.addRuntimeInitializedClass("io.netty.handler.codec.compression.ZstdOptions")
- .addRuntimeInitializedClass("io.netty.handler.codec.compression.ZstdConstants")
- .addRuntimeInitializedClass("io.netty.handler.codec.compression.BrotliOptions");
+ .addRuntimeInitializedClass("io.netty.handler.codec.compression.ZstdConstants");
+ // Brotli is an optional dependency
+ if (QuarkusClassLoader.isClassPresentAtRuntime("io.netty.handler.codec.compression.BrotliOptions")) {
+ builder.addRuntimeInitializedClass("io.netty.handler.codec.compression.BrotliOptions");
+ }
} else {
log.debug("Not registering Netty HTTP classes as they were not found");
}
diff --git a/extensions/netty/runtime/pom.xml b/extensions/netty/runtime/pom.xml
index 96b924e0ada49..a0c59483ce243 100644
--- a/extensions/netty/runtime/pom.xml
+++ b/extensions/netty/runtime/pom.xml
@@ -61,15 +61,6 @@
osx-x86_64
true
-
-
-
- com.aayushatharva.brotli4j
- brotli4j
-
diff --git a/extensions/vertx-http/runtime/pom.xml b/extensions/vertx-http/runtime/pom.xml
index b7073fd79dd1a..c25865639779a 100644
--- a/extensions/vertx-http/runtime/pom.xml
+++ b/extensions/vertx-http/runtime/pom.xml
@@ -69,6 +69,11 @@
io.github.crac
org-crac
+
+
+ com.aayushatharva.brotli4j
+ brotli4j
+
org.junit.jupiter