Quarkus CXF 3.19.0 release notes

Important dependency upgrades

New features

#1680 Introduce quarkus.cxf.client.tls-configuration-name to set TLS options for all CXF clients

Before Quarkus CXF 3.19.0, it was only possible to configure trust stores and key stores per CXF client via quarkus.cxf.client."client-name".tls-configuration-name or (now deprecated) quarkus.cxf.client."client-name".key-store* and quarkus.cxf.client."client-name".trust-store* options.

The configuration might have got too verbose in case there were multiple clients.

Since Quarkus CXF 3.19.0, it is possible to set the trust stores and key stores for all clients using the quarkus.cxf.client.tls-configuration-name option.

Known issues

quarkus#46368 javax.net.ssl TLS configuration does not work in native mode

This issue exists in io.quarkus:quarkus-tls-registry 3.19.0 and will be fixed in version 3.19.1 due on Wednesday Feb. 26, 2025.

With Quarkus CXF 3.19.0, all CXF clients in native mode are impacted which rely on the default value javax.net.ssl of configuration property quarkus.cxf.client.tls-configuration-name.

There are several options to workaround the issue:

  • Start the native executable with -Djavax.net.ssl.trustStore=$JAVA_HOME/lib/security/cacerts -Djavax.net.ssl.trustStorePassword=changeit

  • Set a custom trust store on quarkus.cxf.client.tls-configuration-name:

    application.properties
    quarkus.tls.localCacertsFile.trust-store.p12.path = ${JAVA_HOME}/lib/security/cacerts
    quarkus.tls.localCacertsFile.trust-store.p12.password = changeit
    quarkus.cxf.client.tls-configuration-name = localCacertsFile

Bugfixes

#1697 Native build fails when using quarkus-cxf-integration-tracing-opentelemetry and quarkus-jdbc-oracle

Before Quarkus CXF 3.19.0, combining quarkus-jdbc-oracle with quarkus-cxf-integration-tracing-opentelemetry or quarkus-cxf-rt-ws-rm in a single application resulted in an error during the build of native image as follows:

org.graalvm.compiler.debug.GraalError: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException:
Detected a MBean server in the image heap. This is currently not supported, but could be changed in the future.
Management beans are registered in many global caches that would need to be cleared and properly re-built at image build time.
Class of disallowed object: com.sun.jmx.mbeanserver.JmxMBeanServer

We have fixed this in Quarkus CXF 3.19.0, but note that JMX features are not supported in native mode.

Deprecations

#1632 io.quarkiverse.cxf:quarkus-cxf-rt-transports-http-hc5 deprecated

The io.quarkiverse.cxf:quarkus-cxf-rt-transports-http-hc5 extension is deprecated since Quarkus CXF 3.19.0 and it is scheduled for removal in 3.21.0. Use the asynchronous mode of VertxHttpClientHTTPConduit instead.

This is a part of our efforts to support only a single HTTP Conduit based on Vert.x HttpClient in the future.

We deprecated the HttpClientHTTPConduitFactory value of quarkus.cxf.http-conduit-factory and quarkus.cxf.client."client-name".http-conduit-factory for the same reason in the previous release.

Documentation improvements