Skip to content

Conversation

@reta
Copy link
Member

@reta reta commented May 28, 2018

This PR (work in progress) adds Automatic-Module-Name to all CXF modules in order to provide the consistent way to deal with CXF in the modern modular (JPMS-based) Java applications. The list of modules is included below:

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

Since we publish test artifacts as well, they have been enriched with Automactic-Module-Name entry as well (otherwise Maven Archiver Plugin included an empty one):

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

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.

The typical example which illustrates the usage of selected CXF modules from the modular Java application (in this case, the one which leverages SSE capabilities) looks like that:

module com.example.sse {
    exports com.example.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;
}

@ffang
Copy link
Contributor

ffang commented May 28, 2018

Hi @reta,

Thanks a lot!
It looks good for me!
Freeman

Copy link
Contributor

@deki deki left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks. I would change the names for plugins to have it more consistent.

<version>3.2.5-SNAPSHOT</version>
</parent>
<properties>
<cxf.module.name>org.apache.cxf.codegen.plugin</cxf.module.name>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

org.apache.cxf.plugin.codegen

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

<version>3.2.5-SNAPSHOT</version>
</parent>
<properties>
<cxf.module.name>org.apache.cxf.corbatools.plugin</cxf.module.name>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

org.apache.cxf.plugin.corbatools

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

</parent>
<properties>
<cxf.module.name>org.apache.cxf.java2swagger.plugin</cxf.module.name>
<cxf.manifest.location />
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

org.apache.cxf.plugin.java2swagger

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

<version>3.2.5-SNAPSHOT</version>
</parent>
<properties>
<cxf.module.name>org.apache.cxf.java2wadl.plugin</cxf.module.name>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

org.apache.cxf.plugin.java2wadl

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

<version>3.2.5-SNAPSHOT</version>
</parent>
<properties>
<cxf.module.name>org.apache.cxf.java2ws.plugin</cxf.module.name>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

org.apache.cxf.plugin.java2ws

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

<version>3.2.5-SNAPSHOT</version>
</parent>
<properties>
<cxf.module.name>org.apache.cxf.wadl2java.plugin</cxf.module.name>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

org.apache.cxf.plugin.wadl2java

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

</parent>
<properties>
<cxf.module.name>org.apache.cxf.wsdl.validator.plugin</cxf.module.name>
</properties>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

org.apache.cxf.plugin.wsdl-validator

Copy link
Contributor

@rmannibucau rmannibucau May 28, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minus is an issue in module names so looks good IMHO

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@cschneider
Copy link
Contributor

Are all our dependencies already Java 9 modules? If not I do not see any use of making CXF jars modules. Not sure of course as I have not yet used modules myself.

Copy link
Member

@ilgrosso ilgrosso left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.
I agree with @deki about plugins naming, though.

@rmannibucau
Copy link
Contributor

@cschneider it is important for users developping in j9 to have stable names even is packaging is not yet optimized. Default implicit names doesnt work well OOTB and would be broken later otherwise.

@reta
Copy link
Member Author

reta commented May 28, 2018

@cschneider Right, most of our dependencies are not full-fledged Java modules (and I think it will take a long time for it to happen). Adding Automatic-Module-Name is a first step towards embracing JPMS by introducing consistent module names (instead of relying on the name derived from JAR file).

To give you an idea, the example I posted in the description contains the declaration to dependent Jetty modules:

requires jetty.server;
requires jetty.servlet;
requires jetty.util;

Those are deducted from JAR file names.

@reta
Copy link
Member Author

reta commented May 28, 2018

@deki @ilgrosso Thanks guys, the plugin modules have been updated, it looks better like that I think.

Copy link
Member

@ilgrosso ilgrosso left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @reta !

<version>3.2.5-SNAPSHOT</version>
</parent>
<properties>
<cxf.module.name>org.apache.cxf.plugin.wsdl-validator</cxf.module.name>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know it was part of my proposal but while reading it again I wonder if hyphen is allowed, because for package names it's not.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is allowed - compared to underscores or leading numbers which are not supported - but not very well integrated AFAIK in the ecosystem so avoiding it is not bad.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, so org.apache.cxf.plugin.wsdl.validator is OK?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes :)

@reta
Copy link
Member Author

reta commented Jun 1, 2018

@cschneider What do you think about this PR? Good to go?

Copy link
Contributor

@cschneider cschneider left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

@reta reta merged commit 1fe2ae8 into apache:master Jun 4, 2018
rmannibucau pushed a commit to rmannibucau/cxf that referenced this pull request Mar 18, 2019
…bility (apache#420)

CXF-7600: Add Automatic-Module-Name MANIFEST entry for Java 9 compatibility
rmannibucau pushed a commit to rmannibucau/cxf that referenced this pull request May 31, 2019
…bility (apache#420)

CXF-7600: Add Automatic-Module-Name MANIFEST entry for Java 9 compatibility
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants