Aggregated Quarkus CXF release notes 3.20.2 LTS → 3.27.1 LTS
This document may help when upgrading from the 3.20 LTS stream to 3.27 LTS stream.
Important dependency upgrades
-
Quarkus 3.20.x → 3.27.x
-
CXF 4.1.1 → 4.1.3 - release notes, changelog
-
JAXB Plugins 4.0.9 → 4.0.11 - release notes 4.0.10, release notes 4.0.11
-
Ehcache 3.10.8 → 3.11.1 changelog
-
Woodstox 7.1.0 → 7.1.1 - changelog
New and noteworthy in Quarkus CXF
#1778 Introduce quarkus.cxf.client.worker-dispatch-timeout
Before Quarkus CXF 3.22.0, when a SOAP client application using asynchronous clients was under high load, it might have taken every long time till there was a worker thread available for executing the client call.
In such situations, it was hard to figure out, what was the root cause of those hanging clients.
In Quarkus CXF 3.22.0, we introduced the
quarkus.cxf.client.worker-dispatch-timeout
configuration parameter, that limits the time SOAP clients can wait for a free executor thread.
In case the timeout is surpassed, an exception is thrown informing about the problem:
Unable to dispatch SOAP client call within 30000 ms on a worker thread due to worker thread pool exhaustion.
You may want to adjust one or more of the following configuration options:
quarkus.thread-pool.core-threads, quarkus.thread-pool.max-threads, quarkus.cxf.client.worker-dispatch-timeout
#1553 Support XJC plugins from org.jvnet.jaxb:jaxb-plugins
XJC Plugins are one of the ways how the Java files produced by wsdl2java
can be customized.
Before Quarkus CXF 3.23.0, only XJC Plugins from org.apache.cxf.xjcplugins:cxf-xjc-*
were supported
via io.quarkiverse.cxf:quarkus-cxf-xjc-plugins
.
Since Quarkus CXF 3.23.0, also CXF Plugins org.jvnet.jaxb:jaxb-plugins
can be used via
io.quarkiverse.cxf:quarkus-cxf-jaxb-plugins
extension.
Check the wsdl2java
guide for more details.
#1853 Expose Vert.x HttpClient connection pool configuration options
See the ducumentation of the new options:
-
quarkus.cxf.client."client-name".vertx.connection-pool.http1-max-size
-
quarkus.cxf.client."client-name".vertx.connection-pool.http2-max-size
-
quarkus.cxf.client."client-name".vertx.connection-pool.cleaner-period
-
quarkus.cxf.client."client-name".vertx.connection-pool.event-loop-size
-
quarkus.cxf.client."client-name".vertx.connection-pool.max-wait-queue-size
Fixed issues
#1891 Implementations of javax.wsdl.extensions.ExtensibilityElement
need to get registered for reflection
Before Quarkus CXF 3.26.1, if the WSDL of a client contained elements from the http://schemas.xmlsoap.org/wsdl/http/
namespace,
like in the following example
<?xml version='1.0' encoding='UTF-8'?>
<wsdl:definitions
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://test.deployment.cxf.quarkiverse.io/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:ns1="http://schemas.xmlsoap.org/soap/http"
name="ExtensorsService"
targetNamespace="http://test.deployment.cxf.quarkiverse.io/"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" >
...
<wsdl:portType name="ExtensorsServiceGet" />
<wsdl:binding name="ExtensorsServiceGet" type="tns:ExtensorsServiceGet">
<http:binding verb="GET" />
</wsdl:binding>
<wsdl:service name="ExtensorsService">
<wsdl:port binding="tns:ExtensorsServiceGet" name="ExtensorsServiceGet" >
<http:address location="http://localhost:8081/soap/ExtensorsServiceGet" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
then the application would fail during boot in native mode with an error message similar to the following:
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)
...
Caused by: org.apache.cxf.service.factory.ServiceConstructionException: SERVICE_CREATION_MSG
at org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:87)
...
Caused by: javax.wsdl.WSDLException: WSDLException (at /wsdl:definitions/wsdl:binding[2]/http:binding): faultCode=CONFIGURATION_ERROR: Problem instantiating Java extensionType 'com.ibm.wsdl.extensions.http.HTTPBindingImpl'.: java.lang.InstantiationException: com.ibm.wsdl.extensions.http.HTTPBindingImpl
at javax.wsdl.extensions.ExtensionRegistry.createExtension(ExtensionRegistry.java:383)
...
Caused by: java.lang.InstantiationException: com.ibm.wsdl.extensions.http.HTTPBindingImpl
at java.base@21.0.8/java.lang.Class.newInstance(DynamicHub.java:719)
...
Caused by: java.lang.NoSuchMethodException: com.ibm.wsdl.extensions.http.HTTPBindingImpl.<init>()
at java.base@21.0.8/java.lang.Class.checkMethod(DynamicHub.java:1078)
at java.base@21.0.8/java.lang.Class.getConstructor0(DynamicHub.java:1241)
at java.base@21.0.8/java.lang.Class.newInstance(DynamicHub.java:706)
... 28 more
Since Quarkus CXF 3.26.1, no classes related to the http://schemas.xmlsoap.org/wsdl/http/
namespace
need to be registered for reflection by end users.
Special thanks to Lazaro Miguel Coronado Torres for reporting this issue.
Deprecations and removals
Remove HttpClientHTTPConduitFactory
value of *.http-conduit-factory
The HttpClientHTTPConduitFactory
value of
quarkus.cxf.http-conduit-factory
and quarkus.cxf.client."client-name".http-conduit-factory
was deprecated since Quarkus CXF
3.18.0
, because it never gained any real traction within Quarkus CXF.
HttpClientHTTPConduitFactory
was removed from Quarkus CXF 3.22.0.
Use the default VertxHttpClientHTTPConduit
instead.
Both the removal of HttpClientHTTPConduitFactory
and quarkus-cxf-rt-transports-http-hc5
(see the next section)
are a part of our efforts to support only a single HTTP Conduit based on Vert.x HttpClient in the future.
For now, the URLConnectionHTTPConduitFactory
stays fully supported, although it is not used by default since Quarkus CXF
3.16.0.
Check quarkus.cxf.http-conduit-factory
and quarkus.cxf.client."client-name".http-conduit-factory
for more information.
Remove quarkus-cxf-rt-transports-http-hc5
extension
io.quarkiverse.cxf:quarkus-cxf-rt-transports-http-hc5
has been deprecated since Quarkus CXF 3.19.0
and was removed in 3.22.0.
Use the asynchronous mode of VertxHttpClientHTTPConduit
instead.
All asynchronous client functionality is now supported by the io.quarkiverse.cxf:quarkus-cxf
extension.
You do not need any additional extension for that.
Documentation improvements
-
Show only recent releases in the navigation. The complete list of releases is still available on the Release notes page.
-
Accessing SOAP client metrics and Vert.x HttpClient metrics.