Native Mode
The extension fully supports GraalVM/Mandrel native compilation — including TLS and mutual TLS, which are exercised in native mode by the project’s integration tests. There is nothing HiveMQ-specific to configure beyond the standard Quarkus native image guide.
Build a native executable
With a local GraalVM/Mandrel installation:
./mvnw package -Dnative
Or build inside a container (no local GraalVM required):
./mvnw package -Dnative -Dquarkus.native.container-build=true
Builder images
The project’s CI builds and tests native images with the following Quarkus builder images:
quay.io/quarkus/ubi9-quarkus-mandrel-builder-image:jdk-21
quay.io/quarkus/ubi9-quarkus-graalvmce-builder-image:jdk-21
To pin a specific builder image:
./mvnw package -Dnative \
-Dquarkus.native.container-build=true \
-Dquarkus.native.builder-image=quay.io/quarkus/ubi9-quarkus-mandrel-builder-image:jdk-21
TLS in native mode
TLS and mutual TLS work in native mode. Make sure the truststore/keystore files you reference in your ssl.truststore. / ssl.keystore. configuration are available to the native executable at runtime (for example, mounted next to the binary or bundled as resources). See Security & TLS for the configuration details.