There are some Java EE / Jakarta EE issues here. Tomcat 10 is Jakarta EE. Tomcat 9 is Java EE.
There should not be any references to Jakarta in Tomcat 9. This needs to be fixed before the next Tomcat 9 release. I don't think there are definitive JPMS names for the Java EE 8 modules as Java EE 8 pre-dates Java 9 where JPMS was introduced. I'm not sure of the best way to handle this. Options that come to mind are: a) no JPMS info at all b) align it with the JAR file names (i.e. replicate what would happen by default) c) Use the Jakarta EE 9 names but with javax.* rather than jakarta.* Mark On 11/07/2020 03:42, rotty3...@apache.org wrote: > This is an automated email from the ASF dual-hosted git repository. > > rotty3000 pushed a commit to branch 9.0.x > in repository https://gitbox.apache.org/repos/asf/tomcat.git > > > The following commit(s) were added to refs/heads/9.0.x by this push: > new 39e7478 Fix BZ 64548 - generate JPMS metadata > 39e7478 is described below > > commit 39e74780c4292d51b544620e59124c2dfb1b9ab8 > Author: Raymond Augé <rotty3...@apache.org> > AuthorDate: Fri Jun 19 22:25:54 2020 -0400 > > Fix BZ 64548 - generate JPMS metadata > > Signed-off-by: Raymond Augé <rotty3...@apache.org> > --- > res/bnd/annotations-api.jar.tmp.bnd | 10 +++++++++- > res/bnd/build-defaults.bnd | 4 +++- > res/bnd/catalina-ha.jar.tmp.bnd | 10 +++++++++- > res/bnd/catalina-ssi.jar.tmp.bnd | 8 ++++++++ > res/bnd/catalina-storeconfig.jar.tmp.bnd | 10 +++++++++- > res/bnd/catalina-tribes.jar.tmp.bnd | 10 +++++++++- > res/bnd/catalina.jar.tmp.bnd | 20 +++++++++++++++++++- > res/bnd/el-api.jar.tmp.bnd | 8 ++++++++ > res/bnd/jasper-el.jar.tmp.bnd | 10 +++++++++- > res/bnd/jasper.jar.tmp.bnd | 11 ++++++++++- > res/bnd/jaspic-api.jar.tmp.bnd | 10 +++++++++- > res/bnd/jsp-api.jar.tmp.bnd | 8 ++++++++ > res/bnd/servlet-api.jar.tmp.bnd | 8 ++++++++ > res/bnd/tomcat-api.jar.tmp.bnd | 8 ++++++++ > res/bnd/tomcat-coyote.jar.tmp.bnd | 10 +++++++++- > res/bnd/tomcat-dbcp.jar.tmp.bnd | 9 ++++++++- > res/bnd/tomcat-embed-core.jar.tmp.bnd | 19 ++++++++++++++++++- > res/bnd/tomcat-embed-el.jar.tmp.bnd | 9 ++++++++- > res/bnd/tomcat-embed-jasper.jar.tmp.bnd | 9 ++++++++- > res/bnd/tomcat-embed-websocket.jar.tmp.bnd | 11 +++++++++-- > res/bnd/tomcat-jni.jar.tmp.bnd | 10 +++++++++- > res/bnd/tomcat-juli.jar.tmp.bnd | 10 +++++++++- > res/bnd/tomcat-util-scan.jar.tmp.bnd | 10 +++++++++- > res/bnd/tomcat-util.jar.tmp.bnd | 10 +++++++++- > res/bnd/tomcat-websocket.jar.tmp.bnd | 10 +++++++++- > res/bnd/websocket-api.jar.tmp.bnd | 10 +++++++++- > webapps/docs/changelog.xml | 3 +++ > 27 files changed, 243 insertions(+), 22 deletions(-) > > diff --git a/res/bnd/annotations-api.jar.tmp.bnd > b/res/bnd/annotations-api.jar.tmp.bnd > index 19db9f4..09151bf 100644 > --- a/res/bnd/annotations-api.jar.tmp.bnd > +++ b/res/bnd/annotations-api.jar.tmp.bnd > @@ -32,4 +32,12 @@ Provide-Capability: \ > Implementation-Version=1.3.${annotation.revision};\ > Specification-Title='Common Annotations';\ > Specification-Vendor='Oracle Corporation';\ > - Specification-Version=1.3 > \ No newline at end of file > + Specification-Version=1.3 > + > +-jpms-module-info: \ > + jakarta.annotation;\ > + access=32;\ > + version=${annotation.spec.version} > +-jpms-module-info-options: \ > + jakarta.annotation;\ > + substitute=annotations-api Should not reference Jakarta > diff --git a/res/bnd/catalina.jar.tmp.bnd b/res/bnd/catalina.jar.tmp.bnd > index dc94c42..972745c 100644 > --- a/res/bnd/catalina.jar.tmp.bnd > +++ b/res/bnd/catalina.jar.tmp.bnd > @@ -48,4 +48,22 @@ Export-Package: \ > org.apache.catalina > > -includepackage: \ > - org.apache.naming.factory.webservices > \ No newline at end of file > + org.apache.naming.factory.webservices > + > +-jpms-module-info: \ > + ${module.name};\ > + access=32;\ > + version=${Bundle-Version};\ > + modules='\ > + jakarta.ejb-api,\ > + jakarta.mail,\ > + jakarta.persistence-api,\ > + jakarta.xml.rpc-api,\ > + java.xml.ws' > +-jpms-module-info-options: \ > + ${module.name};substitute=catalina,\ > + jakarta.ejb-api;static=true,\ > + jakarta.mail;static=true,\ > + jakarta.persistence-api;static=true,\ > + jakarta.xml.rpc-api;static=true,\ > + java.xml.ws;static=true > \ No newline at end of file > diff --git a/res/bnd/el-api.jar.tmp.bnd b/res/bnd/el-api.jar.tmp.bnd > index 1c6481d..4c5333e 100644 > --- a/res/bnd/el-api.jar.tmp.bnd > +++ b/res/bnd/el-api.jar.tmp.bnd > @@ -32,3 +32,11 @@ Provide-Capability: \ > Implementation-Title=javax.el;\ > Implementation-Version=3.0.${el.revision};\ > Implementation-Vendor='Apache Software Foundation' > + > +-jpms-module-info: \ > + jakarta.el.api;\ > + access=32;\ > + version=${el.spec.version} > +-jpms-module-info-options: \ > + jakarta.el.api;\ > + substitute=el-api > diff --git a/res/bnd/jasper-el.jar.tmp.bnd b/res/bnd/jasper-el.jar.tmp.bnd > index 549215b..67a2384 100644 > --- a/res/bnd/jasper-el.jar.tmp.bnd > +++ b/res/bnd/jasper-el.jar.tmp.bnd > @@ -26,4 +26,12 @@ Export-Package: \ > org.apache.el.stream,\ > org.apache.el.util > > --includeresource.meta-inf: /META-INF/=../META-INF/jasper-el.jar/ > \ No newline at end of file > +-includeresource.meta-inf: /META-INF/=../META-INF/jasper-el.jar/ > + > +-jpms-module-info: \ > + ${module.name};\ > + access=32;\ > + version=${Bundle-Version} > +-jpms-module-info-options: \ > + ${module.name};\ > + substitute=jasper-el > \ No newline at end of file > diff --git a/res/bnd/jasper.jar.tmp.bnd b/res/bnd/jasper.jar.tmp.bnd > index fbcafcb..de170d2 100644 > --- a/res/bnd/jasper.jar.tmp.bnd > +++ b/res/bnd/jasper.jar.tmp.bnd > @@ -32,4 +32,13 @@ Export-Package: \ > -includepackage: \ > org.apache.jasper.resources > > --includeresource.meta-inf: /META-INF/=../META-INF/jasper.jar/ > \ No newline at end of file > +-includeresource.meta-inf: /META-INF/=../META-INF/jasper.jar/ > + > +-jpms-module-info: \ > + ${module.name};\ > + access=32;\ > + version=${Bundle-Version};\ > + modules='ecj' > +-jpms-module-info-options: \ > + ${module.name};\ > + substitute=jasper > \ No newline at end of file > diff --git a/res/bnd/jaspic-api.jar.tmp.bnd b/res/bnd/jaspic-api.jar.tmp.bnd > index aa964f7..392a357 100644 > --- a/res/bnd/jaspic-api.jar.tmp.bnd > +++ b/res/bnd/jaspic-api.jar.tmp.bnd > @@ -32,4 +32,12 @@ Provide-Capability: \ > Specification-Vendor='Sun Microsystems, Inc.';\ > Implementation-Title=javax.security.auth.message;\ > Implementation-Version=1.1.${jaspic.revision};\ > - Implementation-Vendor='Apache Software Foundation' > \ No newline at end of file > + Implementation-Vendor='Apache Software Foundation' > + > +-jpms-module-info: \ > + jakarta.security.enterprise;\ > + access=32;\ > + version=${jaspic.spec.version} > +-jpms-module-info-options: \ > + jakarta.security.enterprise;\ > + substitute=jaspic-api > diff --git a/res/bnd/jsp-api.jar.tmp.bnd b/res/bnd/jsp-api.jar.tmp.bnd > index f522c57..4c3630e 100644 > --- a/res/bnd/jsp-api.jar.tmp.bnd > +++ b/res/bnd/jsp-api.jar.tmp.bnd > @@ -33,3 +33,11 @@ Provide-Capability: \ > Implementation-Title=javax.servlet.jsp;\ > Implementation-Version=2.3.${jsp.revision};\ > Implementation-Vendor='Apache Software Foundation' > + > +-jpms-module-info: \ > + jakarta.servlet.jsp;\ > + access=32;\ > + version=${jsp.spec.version} > +-jpms-module-info-options: \ > + jakarta.servlet.jsp;\ > + substitute=jsp-api > diff --git a/res/bnd/servlet-api.jar.tmp.bnd b/res/bnd/servlet-api.jar.tmp.bnd > index cc5697e..463b145 100644 > --- a/res/bnd/servlet-api.jar.tmp.bnd > +++ b/res/bnd/servlet-api.jar.tmp.bnd > @@ -37,3 +37,11 @@ Provide-Capability: \ > Implementation-Title=javax.servlet;\ > Implementation-Version=4.0.${servlet.revision};\ > Implementation-Vendor='Apache Software Foundation' > + > +-jpms-module-info: \ > + jakarta.servlet;\ > + access=32;\ > + version=${servlet.spec.version} > +-jpms-module-info-options: \ > + jakarta.servlet;\ > + substitute=servlet-api > diff --git a/res/bnd/tomcat-api.jar.tmp.bnd b/res/bnd/tomcat-api.jar.tmp.bnd > index 54a3260..8a624b8 100644 > --- a/res/bnd/tomcat-api.jar.tmp.bnd > +++ b/res/bnd/tomcat-api.jar.tmp.bnd > @@ -18,3 +18,11 @@ > Bundle-Name: tomcat-api > Bundle-SymbolicName: org.apache.tomcat-api > Export-Package: org.apache.tomcat > + > +-jpms-module-info: \ > + ${module.name};\ > + access=32;\ > + version=${Bundle-Version} > +-jpms-module-info-options: \ > + ${module.name};\ > + substitute=${Bundle-Name} > \ No newline at end of file > diff --git a/res/bnd/tomcat-coyote.jar.tmp.bnd > b/res/bnd/tomcat-coyote.jar.tmp.bnd > index f0557b8..6d0ee68 100644 > --- a/res/bnd/tomcat-coyote.jar.tmp.bnd > +++ b/res/bnd/tomcat-coyote.jar.tmp.bnd > @@ -42,4 +42,12 @@ Export-Package: \ > org.apache.tomcat.util.http.fileupload.impl,\ > org.apache.tomcat.util.http.fileupload.util.mime,\ > org.apache.tomcat.util.modeler.modules,\ > - org.apache.tomcat.util.net.jsse > \ No newline at end of file > + org.apache.tomcat.util.net.jsse > + > +-jpms-module-info: \ > + ${module.name};\ > + access=32;\ > + version=${Bundle-Version} > +-jpms-module-info-options: \ > + ${module.name};\ > + substitute=${Bundle-Name} > \ No newline at end of file > diff --git a/res/bnd/tomcat-dbcp.jar.tmp.bnd b/res/bnd/tomcat-dbcp.jar.tmp.bnd > index 35b4008..a6f973d 100644 > --- a/res/bnd/tomcat-dbcp.jar.tmp.bnd > +++ b/res/bnd/tomcat-dbcp.jar.tmp.bnd > @@ -15,7 +15,6 @@ > > -include: build-defaults.bnd > > -Automatic-Module-Name: org.apache.tomcat.dbcp > Bundle-Name: tomcat-dbcp > Bundle-SymbolicName: org.apache.tomcat-dbcp > Export-Package: \ > @@ -25,3 +24,11 @@ Export-Package: \ > org.apache.tomcat.dbcp.dbcp2,\ > org.apache.tomcat.dbcp.pool2,\ > org.apache.tomcat.dbcp.pool2.impl > + > +-jpms-module-info: \ > + ${module.name};\ > + access=32;\ > + version=${Bundle-Version} > +-jpms-module-info-options: \ > + ${module.name};\ > + substitute=${Bundle-Name} > \ No newline at end of file > diff --git a/res/bnd/tomcat-embed-core.jar.tmp.bnd > b/res/bnd/tomcat-embed-core.jar.tmp.bnd > index 355941e..056d9fa 100644 > --- a/res/bnd/tomcat-embed-core.jar.tmp.bnd > +++ b/res/bnd/tomcat-embed-core.jar.tmp.bnd > @@ -15,7 +15,6 @@ > > -include: build-defaults.bnd > > -Automatic-Module-Name: org.apache.tomcat.embed.core > Bundle-Name: tomcat-embed-core > Bundle-SymbolicName: org.apache.tomcat-embed-core > Export-Package: \ > @@ -126,3 +125,21 @@ Provide-Capability: \ > Implementation-Title=javax.servlet;\ > Implementation-Version=4.0.${servlet.revision};\ > Implementation-Vendor='Apache Software Foundation' > + > +-jpms-module-info: \ > + ${module.name};\ > + access=32;\ > + version=${Bundle-Version};\ > + modules='\ > + jakarta.ejb-api,\ > + jakarta.mail,\ > + jakarta.persistence-api,\ > + jakarta.xml.rpc-api,\ > + java.xml.ws' > +-jpms-module-info-options: \ > + ${module.name};substitute=tomcat-embed-core,\ > + jakarta.ejb-api;static=true,\ > + jakarta.mail;static=true,\ > + jakarta.persistence-api;static=true,\ > + jakarta.xml.rpc-api;static=true,\ > + java.xml.ws;static=true > diff --git a/res/bnd/tomcat-embed-el.jar.tmp.bnd > b/res/bnd/tomcat-embed-el.jar.tmp.bnd > index bebc44f..4b2760e 100644 > --- a/res/bnd/tomcat-embed-el.jar.tmp.bnd > +++ b/res/bnd/tomcat-embed-el.jar.tmp.bnd > @@ -15,7 +15,6 @@ > > -include: build-defaults.bnd > > -Automatic-Module-Name: org.apache.tomcat.embed.jasper.el > Bundle-Name: tomcat-embed-jasper-el > Bundle-SymbolicName: org.apache.tomcat-embed-jasper-el > Export-Package: \ > @@ -43,3 +42,11 @@ Provide-Capability: \ > Implementation-Title=javax.el;\ > Implementation-Version=3.0.${el.revision};\ > Implementation-Vendor='Apache Software Foundation' > + > +-jpms-module-info: \ > + org.apache.tomcat.embed.el;\ > + access=32;\ > + version=${Bundle-Version} > +-jpms-module-info-options: \ > + org.apache.tomcat.embed.el;\ > + substitute=tomcat-embed-el > diff --git a/res/bnd/tomcat-embed-jasper.jar.tmp.bnd > b/res/bnd/tomcat-embed-jasper.jar.tmp.bnd > index 5a0f1c1..5284827 100644 > --- a/res/bnd/tomcat-embed-jasper.jar.tmp.bnd > +++ b/res/bnd/tomcat-embed-jasper.jar.tmp.bnd > @@ -15,7 +15,6 @@ > > -include: build-defaults.bnd > > -Automatic-Module-Name: org.apache.tomcat.embed.jasper > Bundle-Name: tomcat-embed-jasper > Bundle-SymbolicName: org.apache.tomcat-embed-jasper > Export-Package: \ > @@ -49,3 +48,11 @@ Provide-Capability: \ > Implementation-Title=javax.servlet.jsp;\ > Implementation-Version=2.3.${jsp.revision};\ > Implementation-Vendor='Apache Software Foundation' > + > +-jpms-module-info: \ > + ${module.name};\ > + access=32;\ > + version=${Bundle-Version} > +-jpms-module-info-options: \ > + ${module.name};\ > + substitute=${Bundle-Name} > diff --git a/res/bnd/tomcat-embed-websocket.jar.tmp.bnd > b/res/bnd/tomcat-embed-websocket.jar.tmp.bnd > index 889d4a2..8072256 100644 > --- a/res/bnd/tomcat-embed-websocket.jar.tmp.bnd > +++ b/res/bnd/tomcat-embed-websocket.jar.tmp.bnd > @@ -15,7 +15,6 @@ > > -include: build-defaults.bnd > > -Automatic-Module-Name: org.apache.tomcat.embed.websocket > Bundle-Name: tomcat-embed-websocket > Bundle-SymbolicName: org.apache.tomcat-embed-websocket > Export-Package: \ > @@ -40,4 +39,12 @@ Provide-Capability: \ > Specification-Vendor='Oracle, Inc.';\ > Implementation-Title=javax.websocket;\ > Implementation-Version=1.1.${websocket.revision};\ > - Implementation-Vendor='Apache Software Foundation' > \ No newline at end of file > + Implementation-Vendor='Apache Software Foundation' > + > +-jpms-module-info: \ > + ${module.name};\ > + access=32;\ > + version=${Bundle-Version} > +-jpms-module-info-options: \ > + ${module.name};\ > + substitute=${Bundle-Name} > diff --git a/res/bnd/tomcat-jni.jar.tmp.bnd b/res/bnd/tomcat-jni.jar.tmp.bnd > index 12801f0..ec12bc8 100644 > --- a/res/bnd/tomcat-jni.jar.tmp.bnd > +++ b/res/bnd/tomcat-jni.jar.tmp.bnd > @@ -17,4 +17,12 @@ > > Bundle-Name: tomcat-jni > Bundle-SymbolicName: org.apache.tomcat-jni > -Export-Package: org.apache.tomcat.jni > \ No newline at end of file > +Export-Package: org.apache.tomcat.jni > + > +-jpms-module-info: \ > + ${module.name};\ > + access=32;\ > + version=${Bundle-Version} > +-jpms-module-info-options: \ > + ${module.name};\ > + substitute=${Bundle-Name} > \ No newline at end of file > diff --git a/res/bnd/tomcat-juli.jar.tmp.bnd b/res/bnd/tomcat-juli.jar.tmp.bnd > index c8b52ed..14383c4 100644 > --- a/res/bnd/tomcat-juli.jar.tmp.bnd > +++ b/res/bnd/tomcat-juli.jar.tmp.bnd > @@ -19,4 +19,12 @@ Bundle-Name: tomcat-juli > Bundle-SymbolicName: org.apache.tomcat-juli > Export-Package: \ > org.apache.juli,\ > - org.apache.juli.logging > \ No newline at end of file > + org.apache.juli.logging > + > +-jpms-module-info: \ > + ${module.name};\ > + access=32;\ > + version=${Bundle-Version} > +-jpms-module-info-options: \ > + ${module.name};\ > + substitute=${Bundle-Name} > \ No newline at end of file > diff --git a/res/bnd/tomcat-util-scan.jar.tmp.bnd > b/res/bnd/tomcat-util-scan.jar.tmp.bnd > index b8c293b..1a376c7 100644 > --- a/res/bnd/tomcat-util-scan.jar.tmp.bnd > +++ b/res/bnd/tomcat-util-scan.jar.tmp.bnd > @@ -23,4 +23,12 @@ Export-Package: \ > org.apache.tomcat.util.descriptor.tld,\ > org.apache.tomcat.util.descriptor.web,\ > org.apache.tomcat.util.digester,\ > - org.apache.tomcat.util.scan > \ No newline at end of file > + org.apache.tomcat.util.scan > + > +-jpms-module-info: \ > + ${module.name};\ > + access=32;\ > + version=${Bundle-Version} > +-jpms-module-info-options: \ > + ${module.name};\ > + substitute=${Bundle-Name} > \ No newline at end of file > diff --git a/res/bnd/tomcat-util.jar.tmp.bnd b/res/bnd/tomcat-util.jar.tmp.bnd > index 6349a7c..1a36c40 100644 > --- a/res/bnd/tomcat-util.jar.tmp.bnd > +++ b/res/bnd/tomcat-util.jar.tmp.bnd > @@ -30,4 +30,12 @@ Export-Package: \ > > -includepackage: \ > org.apache.tomcat.util.json,\ > - org.apache.tomcat.util.threads.res > \ No newline at end of file > + org.apache.tomcat.util.threads.res > + > +-jpms-module-info: \ > + ${module.name};\ > + access=32;\ > + version=${Bundle-Version} > +-jpms-module-info-options: \ > + ${module.name};\ > + substitute=${Bundle-Name} > diff --git a/res/bnd/tomcat-websocket.jar.tmp.bnd > b/res/bnd/tomcat-websocket.jar.tmp.bnd > index f347dfc..66dc99b 100644 > --- a/res/bnd/tomcat-websocket.jar.tmp.bnd > +++ b/res/bnd/tomcat-websocket.jar.tmp.bnd > @@ -24,4 +24,12 @@ Export-Package: \ > -includepackage: \ > org.apache.tomcat.websocket.pojo > > --includeresource.meta-inf: /META-INF/=../META-INF/tomcat-websocket.jar/ > \ No newline at end of file > +-includeresource.meta-inf: /META-INF/=../META-INF/tomcat-websocket.jar/ > + > +-jpms-module-info: \ > + ${module.name};\ > + access=32;\ > + version=${Bundle-Version} > +-jpms-module-info-options: \ > + ${module.name};\ > + substitute=${Bundle-Name} > \ No newline at end of file > diff --git a/res/bnd/websocket-api.jar.tmp.bnd > b/res/bnd/websocket-api.jar.tmp.bnd > index cacaf01..f79fe23 100644 > --- a/res/bnd/websocket-api.jar.tmp.bnd > +++ b/res/bnd/websocket-api.jar.tmp.bnd > @@ -32,4 +32,12 @@ Provide-Capability: \ > Specification-Vendor='Oracle, Inc.';\ > Implementation-Title=javax.websocket;\ > Implementation-Version=1.1.${websocket.revision};\ > - Implementation-Vendor='Apache Software Foundation' > \ No newline at end of file > + Implementation-Vendor='Apache Software Foundation' > + > +-jpms-module-info: \ > + jakarta.websocket.api;\ > + access=32;\ > + version=${websocket.spec.version} > +-jpms-module-info-options: \ > + jakarta.websocket.api;\ > + substitute=websocket-api > diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml > index ec10e5f..f124d55 100644 > --- a/webapps/docs/changelog.xml > +++ b/webapps/docs/changelog.xml > @@ -239,6 +239,9 @@ > Improve the quality and expand the coverage of the French > translations > provided with Apache Tomcat. (remm) > </add> > + <fix> > + <bug>64548</bug>: Generate JPMS metadata. (rotty3000) > + </fix> > </changelog> > </subsection> > </section> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org > For additional commands, e-mail: dev-h...@tomcat.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org