Application should built and be functional, just like with maven.
Actual behavior
Application is build but fails at runtime with:
__ ____ __ _____ ___ __ ____ ______
--/ __ \/ / / / _ | / _ \/ //_/ / / / __/
-/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \
--\___\_\____/_/ |_/_/|_/_/|_|\____/___/
2024-10-02 22:52:29,691 ERROR [io.qua.run.Application] (main) Failed to start application: java.lang.RuntimeException: Failed to start quarkus
at io.quarkus.runner.ApplicationImpl.doStart(Unknown Source)
at io.quarkus.runtime.Application.start(Application.java:101)
at io.quarkus.runtime.ApplicationLifecycleManager.run(ApplicationLifecycleManager.java:119)
at io.quarkus.runtime.Quarkus.run(Quarkus.java:71)
at io.quarkus.runtime.Quarkus.run(Quarkus.java:44)
at io.quarkus.runtime.Quarkus.run(Quarkus.java:124)
at io.quarkus.runner.GeneratedMain.main(Unknown Source)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at io.quarkus.bootstrap.runner.QuarkusEntryPoint.doRun(QuarkusEntryPoint.java:62)
at io.quarkus.bootstrap.runner.QuarkusEntryPoint.main(QuarkusEntryPoint.java:33)
Caused by: java.lang.ExceptionInInitializerError
at io.netty.handler.codec.compression.StandardCompressionOptions.brotli(StandardCompressionOptions.java:35)
at io.quarkus.vertx.http.runtime.options.HttpServerOptionsUtils.applyCommonOptions(HttpServerOptionsUtils.java:297)
at io.quarkus.vertx.http.runtime.VertxHttpRecorder.createHttpServerOptions(VertxHttpRecorder.java:1021)
at io.quarkus.vertx.http.runtime.VertxHttpRecorder.initializeMainHttpServer(VertxHttpRecorder.java:751)
at io.quarkus.vertx.http.runtime.VertxHttpRecorder.doServerStart(VertxHttpRecorder.java:856)
at io.quarkus.vertx.http.runtime.VertxHttpRecorder.startServer(VertxHttpRecorder.java:355)
at io.quarkus.deployment.steps.VertxHttpProcessor$openSocket1753087980.deploy_0(Unknown Source)
at io.quarkus.deployment.steps.VertxHttpProcessor$openSocket1753087980.deploy(Unknown Source)
... 11 more
Caused by: java.lang.IllegalStateException: Brotli is not available
at io.netty.handler.codec.compression.BrotliOptions.<init>(BrotliOptions.java:38)
at io.netty.handler.codec.compression.BrotliOptions.<clinit>(BrotliOptions.java:33)
... 19 more
Caused by: java.lang.UnsatisfiedLinkError: Failed to find Brotli native library in classpath: /lib/linux-x86_64/libbrotli.so
at com.aayushatharva.brotli4j.Brotli4jLoader.<clinit>(Brotli4jLoader.java:77)
at io.netty.handler.codec.compression.Brotli.<clinit>(Brotli.java:46)
at io.netty.handler.codec.compression.BrotliOptions.<init>(BrotliOptions.java:37)
How to Reproduce?
quarkus create app --gradle
Add the following lines to src/main/resources/application.properties
Describe the bug
Applications using Brotli4J rely on native code shipped with
com.aayushatharva.brotli4j:native-*
artifacts. These packages are added to the dependencies using maven profiles which unfortunately don't work in Gradle.Expected behavior
Application should built and be functional, just like with maven.
Actual behavior
Application is build but fails at runtime with:
How to Reproduce?
quarkus create app --gradle
src/main/resources/application.properties
./gradlew build -x test
java -jar ./build/quarkus-app/quarkus-run.jar
Output of
uname -a
orver
Linux fedora 6.10.11-200.fc40.x86_64
Output of
java -version
21.0.4+7-LTS
Mandrel or GraalVM version (if different from Java)
No response
Quarkus version or git rev
3.15.1
Build tool (ie. output of
mvnw --version
orgradlew --version
)Gradle 8.7
Additional information
https://github.com/hyperxpro/Brotli4j?tab=readme-ov-file#gradle contains some details on what needs to be done in Gradle to make this work.