Quarkus CXF 3.13.0 release notes
Important dependency upgrades
-
Quarkus 3.12.x → 3.13.0 - release notes
-
Woodstox 6.6.2 → 7.0.0 - release notes, changelog
New and noteworthy in Quarkus CXF
Vert.x HttpClient based HTTP Conduit
As Vert.x is the preferred HTTP stack on Quarkus, we decided to implement a new HTTP Conduit based on Vert.x
HttpClient.
Although the client per se is non-blocking and asynchronous, our new VertxHttpClientHTTPConduit
currently supports only the synchronous usage.
We plan to add the support for asynchronous mode in near future.
To give it a try, set the http-conduit-factory
configuration option
globally
or
per client:
# Set the conduit factory for all clients
quarkus.cxf.http-conduit-factory = VertxHttpClientHTTPConduitFactory
# Set the conduit factory only for the hello client
quarkus.cxf.client.hello.http-conduit-factory = VertxHttpClientHTTPConduitFactory
You are welcome to try it and give feedback either on GitHub Issues or Discussions.
#1425 Injection of WebServiceContext
into service implementations with @CXFEndpoint("/my-path")
The issue #1425 made us figure out
that we had no tests at all for injecting jakarta.xml.ws.WebServiceContext
using the @jakarta.annotation.Resource
and @jakarta.annotation.Resources
annotations.
We not only added the the tests and fixed the malfunctioning case with @CXFEndpoint("/my-path")
,
but we also changed how injecting @Resource WebServiceContext
was implemented.
Instead of relying on the reflective CXF code that was run at application start,
the scanning is now done at build time by Arc, the CDI container of Quarkus.
#1416 passing multiple namespace mappings via quarkus.cxf.codegen.wsdl2java.package-names
Before Quarkus CXF 3.13.0, the values specified in
quarkus.cxf.codegen.wsdl2java.package-names
were wrongly passed as a single comma-separated value of the -p
option,
leading to BadUsageException: -p has invalid character!
.
Since Quarkus CXF 3.13.0, if quarkus.cxf.codegen.wsdl2java.package-names
specifies multiple mappings, such as
quarkus.cxf.codegen.wsdl2java.package-names =
http://www.example.org/add=io.quarkiverse.cxf.wsdl2java.it.add,
http://www.example.org/multiply=io.quarkiverse.cxf.wsdl2java.it.multiply
then they are properly passed to wsdl2java
as multiple -p
options:
wsdl2java \
-p http://www.example.org/add=io.quarkiverse.cxf.wsdl2java.it.add \
-p http://www.example.org/multiply=io.quarkiverse.cxf.wsdl2java.it.multiply \
...
#1427 Better exception message when a service interface is not available in Jandex
Quarkus CXF relies heavily on Quarkus class index, a.k.a. Jandex, when inspecting various aspects of the application at build time.
Before Quarkus CXF 3.13.0, if some important dependency of the application,
for example the one containing the service interfaces, was not indexed,
a NullPointerException
without any meaningful message was thrown upon looking up a class from that dependency in the index.
Since Quarkus CXF 3.13.0, the exception became informative, suggesting the user
to add index to the dependency using either quarkus.index-dependency.*
family of options
or by adding io.smallrye:jandex-maven-plugin
to the module containing sources of the missing class.
Check How to Generate a Jandex Index section of
Quarkus Contexts and dependency injection guide for more details.
Documentation improvements
-
#1424 Replaced references to the non-existent
quarkus.cxf.logging.enabled
option for the correctquarkus.cxf.logging.enabled-for
option. -
User guide navigation was restructured: some chapters moved under new nodes
-
New chapters: