Quarkus CXF 3.11.0 release notes

Important dependency upgrades

New and noteworthy in Quarkus CXF

@CXFEndpoint("/my-service") - a new annotation for specifying the service endpoint path

Since this Quarkus CXF 3.11.0, there is a new way to expose an endpoint under a specific path: the @io.quarkiverse.cxf.annotation.CXFEndpoint annotation. The path is set through its non-optional attribute value and it is relative to quarkus.cxf.path much like when this is done via application.properties.

Here is basic example:

@CXFEndpoint("/path-annotation")
@WebService(serviceName = "HelloService", targetNamespace = "https://acme.org/my-service")
public class HelloServiceImpl implements HelloService {
    @Override
    public String hello(String person) {
        ...
    }
}

Interceptors set through @InInterceptors and similar annotations are now looked up in the CDI container

Before Quarkus CXF 3.11.0, interceptors specified through @InInterceptors, @InFaultInterceptors, @OutInterceptors and @OutFaultInterceptors annotations from org.apache.cxf.interceptor package were only instantiated using reflection. Due to this, injecting beans and configuration values into them did not work.

Since Quarkus CXF 3.11.0, those interceptors are looked up in the CDI container first and reflexive instantiation is used only as a fallback. Injecting other beans and configuration values into interceptor beans created by the CDI container will work flawlessly.

@WebService(wsdlLocation="my-service.wsdl") now honored

Before Quarkus CXF 3.11.0, when a web service implementation had an annotation like @WebService(wsdlLocation="my-service.wsdl"), then only an auto-generated WSDL without policies and other important parts was served on http://localhost:8080/services/foo?wsdl instead the local WSDL file.

Since Quarkus CXF 3.11.0, the wsdlLocation attribute of the @WebService annotation is honored properly.

This was originally reported as issue #557.