Introduction

One of the major features introduced along with Java 9 release is JPMS: Java Platform Module System. As of now, Apache CXF modules are not built / released as Java modules however the work in this direction has been started.

Automatic-Module-Name

Starting from 3.2.5 release, all Apache CXF modules contain the Automatic-Module-Name manifest entry in order to provide stable and convenient way to reference them from the descriptors of the modular (JPMS-based) Java applications. The list of the modules and their Automatic-Module-Name is presented below.

The naming scheme has been adopted following the Stephen Colebourne recommendations (http://blog.joda.org/2017/04/java-se-9-jpms-module-naming.html) and based on package name.

Test ModuleAutomatic-Module-Name
cxf-distribution-manifest-<version>.jarorg.apache.cxf.manifest
cxf-bundle-compatible-<version>.jarorg.apache.cxf.bundle
cxf-codegen-plugin-<version>.jarorg.apache.cxf.plugin.codegen
cxf-corbatools-maven-plugin-<version>.jarorg.apache.cxf.plugin.corbatools
cxf-core-<version>.jarorg.apache.cxf.core
cxf-distribution-javadoc-<version>.jarorg.apache.cxf.javadoc
cxf-integration-cdi-<version>.jarorg.apache.cxf.cdi
cxf-integration-jca-<version>.jarorg.apache.cxf.jca
cxf-integration-tracing-brave-<version>.jarorg.apache.cxf.tracing.brave
cxf-integration-tracing-htrace-<version>.jarorg.apache.cxf.tracing.htrace
cxf-integration-tracing-opentracing-<version>.jarorg.apache.cxf.tracing.opentracing
cxf-java2swagger-plugin-<version>.jarorg.apache.cxf.plugin.java2swagger
cxf-java2wadl-plugin-<version>.jarorg.apache.cxf.plugin.java2wadl
cxf-java2ws-plugin-<version>.jarorg.apache.cxf.plugin.java2ws
cxf-karaf-commands-<version>jarorg.apache.cxf.karaf.commands
cxf-rt-bindings-coloc-<version>.jarorg.apache.cxf.binding.coloc
cxf-rt-bindings-corba-<version>.jarorg.apache.cxf.binding.corba
cxf-rt-bindings-soap-<version>.jarorg.apache.cxf.binding.soap
cxf-rt-bindings-xml-<version>.jarorg.apache.cxf.binding.xml
cxf-rt-databinding-aegis-<version>.jarorg.apache.cxf.databinding.aegis
cxf-rt-databinding-jaxb-<version>.jarorg.apache.cxf.databinding.jaxb
cxf-rt-features-clustering-<version>.jarorg.apache.cxf.clustering
cxf-rt-features-logging-<version>.jarorg.apache.cxf.logging
cxf-rt-features-metrics-<version>.jarorg.apache.cxf.metrics
cxf-rt-features-throttling-<version>.jarorg.apache.cxf.throttling
cxf-rt-frontend-jaxrs-<version>.jarorg.apache.cxf.frontend.jaxrs
cxf-rt-frontend-jaxws-<version>.jarorg.apache.cxf.frontend.jaxws
cxf-rt-frontend-js-<version>.jarorg.apache.cxf.frontend.js
cxf-rt-frontend-simple-<version>.jarorg.apache.cxf.frontend.simple
cxf-rt-javascript-3.2.5-<version>.jarorg.apache.cxf.js
cxf-rt-javascript-tests-<version>.jarorg.apache.cxf.js.tests
cxf-rt-management-<version>.jarorg.apache.cxf.management
cxf-rt-rs-client-<version>.jarorg.apache.cxf.rs.client
cxf-rt-rs-extension-providers-<version>.jarorg.apache.cxf.rs.provider
cxf-rt-rs-extension-reactivestreams-<version>.jarorg.apache.cxf.rs.reactivestreams
cxf-rt-rs-extension-reactor-<version>.jarorg.apache.cxf.rs.reactor
cxf-rt-rs-extension-rx2-<version>.jarorg.apache.cxf.rs.rx2
cxf-rt-rs-extension-rx-<version>.jarorg.apache.cxf.rs.rx
cxf-rt-rs-extension-search-<version>.jarorg.apache.cxf.rs.search
cxf-rt-rs-http-sci-<version>.jarorg.apache.cxf.rs.sci
cxf-rt-rs-json-basic-<version>.jarorg.apache.cxf.rs.json
cxf-rt-rs-mp-client-<version>.jarorg.apache.cxf.rs.client.mp
cxf-rt-rs-security-cors-<version>.jarorg.apache.cxf.rs.security.cors
cxf-rt-rs-security-jose-<version>.jarorg.apache.cxf.rs.security.jose
cxf-rt-rs-security-jose-jaxrs-<version>.jarorg.apache.cxf.rs.security.jose.jaxrs
cxf-rt-rs-security-oauth2-<version>.jarorg.apache.cxf.rs.security.oauth2
cxf-rt-rs-security-oauth2-saml-<version>.jarorg.apache.cxf.rs.security.oauth2.saml
cxf-rt-rs-security-oauth-<version>.jarorg.apache.cxf.rs.security.oauth
cxf-rt-rs-security-sso-oidc-<version>.jarorg.apache.cxf.rs.security.sso.oidc
cxf-rt-rs-security-sso-saml-<version>.jarorg.apache.cxf.rs.security.sso.saml
cxf-rt-rs-security-xml-<version>.jarorg.apache.cxf.rs.security.xml
cxf-rt-rs-service-description-<version>.jarorg.apache.cxf.rs.wadl
cxf-rt-rs-service-description-openapi-v3-<version>.jarorg.apache.cxf.rs.openapi.v3
cxf-rt-rs-service-description-swagger-<version>.jarorg.apache.cxf.rs.swagger
cxf-rt-rs-service-description-swagger-ui-<version>.jarorg.apache.cxf.rs.swagger.ui
cxf-rt-rs-sse-<version>.jarorg.apache.cxf.rs.sse
cxf-rt-security-<version>.jarorg.apache.cxf.security
cxf-rt-security-saml-<version>.jarorg.apache.cxf.security.saml
cxf-rt-transports-http-<version>.jarorg.apache.cxf.transport.http
cxf-rt-transports-http-hc-<version>.jarorg.apache.cxf.transport.http.hc
cxf-rt-transports-http-jetty-<version>.jarorg.apache.cxf.transport.http.jetty
cxf-rt-transports-http-netty-client-<version>.jarorg.apache.cxf.transport.http.netty.client
cxf-rt-transports-http-netty-server-<version>.jarorg.apache.cxf.transport.http.netty.server
cxf-rt-transports-http-undertow-<version>.jarorg.apache.cxf.transport.http.undertow
cxf-rt-transports-jms-<version>.jarorg.apache.cxf.transport.jms
cxf-rt-transports-local-<version>.jarorg.apache.cxf.transport.local
cxf-rt-transports-udp-<version>.jarorg.apache.cxf.transport.udp
cxf-rt-transports-websocket-<version>.jarorg.apache.cxf.transport.websocket
cxf-rt-ws-addr-<version>.jarorg.apache.cxf.ws.addr
cxf-rt-wsdl-<version>.jarorg.apache.cxf.wsdl
cxf-rt-ws-eventing-<version>.jarorg.apache.cxf.ws.eventing
cxf-rt-ws-mex-<version>.jarorg.apache.cxf.ws.mex
cxf-rt-ws-policy-<version>.jarorg.apache.cxf.ws.policy
cxf-rt-ws-rm-<version>.jarorg.apache.cxf.ws.rm
cxf-rt-ws-security-<version>.jarorg.apache.cxf.ws.security
cxf-rt-ws-transfer-<version>.jarorg.apache.cxf.ws.transfer
cxf-services-sts-core-<version>.jarorg.apache.cxf.sts.core
cxf-services-ws-discovery-api-<version>.jarorg.apache.cxf.ws.discovery
cxf-services-ws-discovery-service-<version>.jarorg.apache.cxf.ws.discovery.service
cxf-services-wsn-api-<version>.jarorg.apache.cxf.wsn
cxf-services-wsn-core-<version>.jarorg.apache.cxf.wsn.core
cxf-services-wsn-osgi-<version>.jarorg.apache.cxf.wsn.osgi
cxf-services-xkms-client-<version>.jarorg.apache.cxf.xkms.client
cxf-services-xkms-common-<version>.jarorg.apache.cxf.xkms.common
cxf-services-xkms-itests-<version>.jarorg.apache.cxf.xkms.itests
cxf-services-xkms-osgi-<version>.jarorg.apache.cxf.xkms.osgi
cxf-services-xkms-service-<version>.jarorg.apache.cxf.xkms.service
cxf-services-xkms-x509-handlers-<version>.jarorg.apache.cxf.xkms.x509.handlers
cxf-services-xkms-x509-repo-ldap-<version>.jarorg.apache.cxf.xkms.x509.ldap
cxf-spring-boot-autoconfigure-<version>.jarorg.apache.cxf.spring.boot.autoconfigure
cxf-spring-boot-starter-jaxrs-<version>.jarorg.apache.cxf.spring.boot.jaxrs
cxf-spring-boot-starter-jaxws-<version>.jarorg.apache.cxf.spring.boot.jaxws
cxf-testutils-<version>.jarorg.apache.cxf.testutils
cxf-tools-common-<version>.jarorg.apache.cxf.tools.common
cxf-tools-corba-<version>.jarorg.apache.cxf.tools.corba
cxf-tools-java2ws-<version>.jarorg.apache.cxf.tools.java2ws
cxf-tools-misctools-<version>.jarorg.apache.cxf.tools.misc
cxf-tools-validator-<version>.jarorg.apache.cxf.tools.validator
cxf-tools-wadlto-jaxrs-<version>.jarorg.apache.cxf.tools.wadl
cxf-tools-wsdlto-core-<version>.jarorg.apache.cxf.tools.wsdl.core
cxf-tools-wsdlto-databinding-jaxb-<version>.jarorg.apache.cxf.tools.wsdl.jaxb
cxf-tools-wsdlto-frontend-javascript-<version>.jarorg.apache.cxf.tools.wsdl.js
cxf-tools-wsdlto-frontend-jaxws-<version>.jarorg.apache.cxf.tools.wsdl.jaxws
cxf-tools-wsdlto-test-<version>.jarorg.apache.cxf.tools.wsdl.test
cxf-wadl2java-plugin-<version>.jarorg.apache.cxf.plugin.wadl2java
cxf-wsdl-validator-plugin-<version>.jarorg.apache.cxf.wsdl.plugin.validator

Since we publish test artifacts as well, they have been enriched with Automactic-Module-Name manifest entry:

Test ModuleAutomatic-Module-Name
cxf-services-sts-systests-advanced-<version>.jarorg.apache.cxf.systests.sts.advanced
cxf-services-sts-systests-basic-<version>.jarorg.apache.cxf.systests.sts.basic
cxf-services-sts-systests-itests-<version>.jarorg.apache.cxf.systests.sts.integration
cxf-services-sts-systests-osgi-<version>.jarorg.apache.cxf.systests.sts.osgi
cxf-systests-cdi-base-<version>.jarorg.apache.cxf.systests.cdi.base
cxf-systests-cdi-base-<version>-tests.jarorg.apache.cxf.systests.cdi.base.tests
cxf-systests-cdi-owb-multiple-apps-<version>.jarorg.apache.cxf.systests.cdi.owb.multiapp
cxf-systests-cdi-owb-multiple-apps-<version>-tests.jarorg.apache.cxf.systests.cdi.owb.multiapp.tests
cxf-systests-cdi-owb-no-apps-<version>.jarorg.apache.cxf.systests.cdi.owb.noapp
cxf-systests-cdi-owb-no-apps-<version>-tests.jarorg.apache.cxf.systests.cdi.owb.noapp.tests
cxf-systests-cdi-owb-producers-<version>.jarorg.apache.cxf.systests.cdi.owb.producers
cxf-systests-cdi-owb-producers-<version>-tests.jarorg.apache.cxf.systests.cdi.owb.producers.tests
cxf-systests-cdi-weld-multiple-apps-<version>.jarorg.apache.cxf.systests.cdi.weld.multiapp
cxf-systests-cdi-weld-multiple-apps-<version>-tests.jarorg.apache.cxf.systests.cdi.weld.multiapp.tests
cxf-systests-cdi-weld-no-apps-<version>.jarorg.apache.cxf.systests.cdi.weld.noapp
cxf-systests-cdi-weld-no-apps-<version>-tests.jarorg.apache.cxf.systests.cdi.weld.noapp.tests
cxf-systests-cdi-weld-producers-<version>.jarorg.apache.cxf.systests.cdi.weld.producers
cxf-systests-cdi-weld-producers-<version>-tests.jarorg.apache.cxf.systests.cdi.weld.producers.tests
cxf-systests-ci-grizzly-<version>.jarorg.apache.cxf.systests.ci.grizzly
cxf-systests-codegen-<version>.jarorg.apache.cxf.systests.plugin.codegen
cxf-systests-databinding-<version>.jarorg.apache.cxf.systests.databinding
cxf-systests-databinding-<version>-tests.jarorg.apache.cxf.systests.databinding.tests
cxf-systests-http-sci-<version>.jarorg.apache.cxf.systests.rs.sci
cxf-systests-java2ws-<version>.jarorg.apache.cxf.systests.plugin.java2ws
cxf-systests-http-sci-<version>-tests.jarorg.apache.cxf.systests.rs.sci.tests
cxf-systests-jaxrs-<version>.jarorg.apache.cxf.systests.jaxrs
cxf-systests-jaxrs-<version>-tests.jarorg.apache.cxf.systests.jaxrs.tests
cxf-systests-jaxws-<version>.jarorg.apache.cxf.systests.jaxws
cxf-systests-jaxws-<version>-tests.jarorg.apache.cxf.systests.jaxws.tests
cxf-systests-kerberos-<version>.jarorg.apache.cxf.systests.kerberos
cxf-systests-kerberos-<version>-tests.jarorg.apache.cxf.systests.kerberos.tests
cxf-systests-ldap-<version>.jarorg.apache.cxf.systests.ldap
cxf-systests-ldap-<version>-tests.jarorg.apache.cxf.systests.ldap.tests
cxf-systests-microprofile-weld-<version>.jarorg.apache.cxf.systests.microprofile.weld
cxf-systests-rs-security-<version>.jarorg.apache.cxf.systests.security
cxf-systests-rs-security-<version>-tests.jarorg.apache.cxf.systests.security.tests
cxf-systests-rs-sse-base-<version>.jarorg.apache.cxf.systests.rs.sse.base
cxf-systests-rs-sse-base-<version>-tests.jarorg.apache.cxf.systests.rs.sse.base.tests
cxf-systests-rs-sse-jetty-<version>.jarorg.apache.cxf.systests.rs.sse.jetty
cxf-systests-rs-sse-jetty-<version>-tests.jarorg.apache.cxf.systests.rs.sse.jetty.tests
cxf-systests-rs-sse-tomcat-<version>.jarorg.apache.cxf.systests.rs.sse.tomcat
cxf-systests-rs-sse-tomcat-<version>-tests.jarorg.apache.cxf.systests.rs.sse.tomcat.tests
cxf-systests-rs-sse-undertow-<version>.jarorg.apache.cxf.systests.rs.sse.undertow
cxf-systests-rs-sse-undertow-<version>-tests.jarorg.apache.cxf.systests.rs.sse.undertow.tests
cxf-systests-tracing-<version>.jarorg.apache.cxf.systests.tracing
cxf-systests-tracing-<version>-tests.jarorg.apache.cxf.systests.tracing.tests
cxf-systests-transport-jms-<version>.jarorg.apache.cxf.systests.transport.jms
cxf-systests-transport-jms-<version>-tests.jarorg.apache.cxf.systests.transport.jms.tests
cxf-systests-transports-<version>.jarorg.apache.cxf.systests.transport
cxf-systests-transports-<version>-tests.jarorg.apache.cxf.systests.transport.tests
cxf-systests-transports-ssl3-<version>.jarorg.apache.cxf.systests.transport.ssl3
cxf-systests-transports-ssl3-<version>-tests.jarorg.apache.cxf.systests.transport.ssl3.tests
cxf-systests-transport-undertow-<version>.jarorg.apache.cxf.systests.transport.undertow
cxf-systests-transport-undertow-<version>-tests.jarorg.apache.cxf.systests.transport.undertow.tests
cxf-systests-uncategorized-<version>.jarorg.apache.cxf.systests.uncategorized
cxf-systests-uncategorized-<version>-tests.jarorg.apache.cxf.systests.uncategorized.tests
cxf-systests-ws-rm-<version>.jarorg.apache.cxf.systests.ws.rm
cxf-systests-ws-security-<version>.jarorg.apache.cxf.systests.ws.security
cxf-systests-ws-security-<version>-tests.jarorg.apache.cxf.systests.ws.security.tests
cxf-systests-ws-security-<version>.jarorg.apache.cxf.systests.ws.security.examples
cxf-systests-ws-security-<version>-tests.jarorg.apache.cxf.systests.ws.security.examples.tests
cxf-systests-ws-specs-<version>.jarorg.apache.cxf.systests.ws.specs
cxf-systests-ws-specs-<version>-tests.jarorg.apache.cxf.systests.ws.specs.tests
cxf-systests-ws-transfer-<version>.jarorg.apache.cxf.systests.ws.transfer

Example Usage

Here is a quick example of using Apache CXF SSE capabilities from modular Java application through the module-info.java descriptor.

module sample.sse {
    ...
    
    requires org.apache.cxf.frontend.jaxrs;
    requires org.apache.cxf.transport.http;
    requires org.apache.cxf.rs.sse;
    requires com.fasterxml.jackson.jaxrs.json;
    requires com.fasterxml.jackson.annotation;
    requires io.reactivex.rxjava2;
    
    requires transitive java.ws.rs;
    requires transitive org.reactivestreams;
    
    requires javax.servlet.api;
    requires jetty.server;
    requires jetty.servlet;
    requires jetty.util;
    
    requires java.xml.bind;
}