Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

External jars that must be converted to JPMS #2989

Closed
sbordet opened this issue Oct 16, 2018 · 19 comments
Closed

External jars that must be converted to JPMS #2989

sbordet opened this issue Oct 16, 2018 · 19 comments
Labels
Stale For auto-closed stale issues and pull requests

Comments

@sbordet
Copy link
Contributor

sbordet commented Oct 16, 2018

Jetty has a number of dependencies on external jars that needs to be converted to JPMS before Jetty itself can be converted to proper JPMS modules.

@sbordet
Copy link
Contributor Author

sbordet commented Oct 16, 2018

See #2978.

@sbordet
Copy link
Contributor Author

sbordet commented Oct 16, 2018

javax.servlet:javax.servlet-api

See jakartaee/servlet#201.

@sbordet
Copy link
Contributor Author

sbordet commented Oct 16, 2018

org.conscrypt:conscrypt-openjdk-uber

See google/conscrypt#554.

@sbordet
Copy link
Contributor Author

sbordet commented Oct 16, 2018

javax.mail:javax.mail-api

This has been published to Maven Central by Oracle, but without JPMS metadata.

See https://github.com/eclipse-ee4j/javamail - unfortunately not yet published to Maven Central, although there appear to be JPMS metadata (mailapi/src/main/java/module-info.java).

@joakime
Copy link
Contributor

joakime commented Oct 16, 2018

javax.websocket:websocket-api

See jakartaee/websocket#260

@joakime
Copy link
Contributor

joakime commented Oct 16, 2018

Keep in mind that the JPMS names for eclipse-ee4j jars are likely to be changed en-masse to start with jakarta.* in the future.

@joakime
Copy link
Contributor

joakime commented Oct 16, 2018

Ugh, java.mail requires java.desktop, wonder how that will work on headless JVMs?

@joakime
Copy link
Contributor

joakime commented Oct 17, 2018

@sbordet
Copy link
Contributor Author

sbordet commented Oct 22, 2018

javax.security.auth.message:javax.security.auth.message-api.

See https://github.com/eclipse-ee4j/jaspic

The module name (see the project's pom.xml file) has been defined as java.security.auth.message but not released yet to Maven Central.

@sbordet
Copy link
Contributor Author

sbordet commented Oct 22, 2018

com.github.jnr:jnr-unixsocket

See jnr/jnr-unixsocket#61

@cowwoc
Copy link
Contributor

cowwoc commented Aug 28, 2019

I believe that jakartaee/servlet#201 is fixed. You should be able to use the artifact that was released 6 days ago.

@joakime
Copy link
Contributor

joakime commented Aug 28, 2019

The file referenced by @cowwoc - https://search.maven.org/artifact/jakarta.servlet/jakarta.servlet-api/4.0.2/jar

The Jakarta Servlet API 4.0.2 artifact is missing the following content (that is present in the jetty-servlet-api-4.0.2.jar) which is necessary for JPMS.

javax/servlet/catalog.xml
javax/servlet/resources/
javax/servlet/resources/datatypes.dtd
javax/servlet/resources/j2ee_1_4.xsd
javax/servlet/resources/j2ee_web_services_1_1.xsd
javax/servlet/resources/j2ee_web_services_client_1_1.xsd
javax/servlet/resources/javaee_5.xsd
javax/servlet/resources/javaee_6.xsd
javax/servlet/resources/javaee_7.xsd
javax/servlet/resources/javaee_8.xsd
javax/servlet/resources/javaee_web_services_1_2.xsd
javax/servlet/resources/javaee_web_services_1_3.xsd
javax/servlet/resources/javaee_web_services_1_4.xsd
javax/servlet/resources/javaee_web_services_client_1_2.xsd
javax/servlet/resources/javaee_web_services_client_1_3.xsd
javax/servlet/resources/javaee_web_services_client_1_4.xsd
javax/servlet/resources/permissions_7.xsd
javax/servlet/resources/web-app_2_2.dtd
javax/servlet/resources/web-app_2_3.dtd
javax/servlet/resources/web-app_2_4.xsd
javax/servlet/resources/web-app_2_5.xsd
javax/servlet/resources/web-app_3_0.xsd
javax/servlet/resources/web-app_3_1.xsd
javax/servlet/resources/web-app_4_0.xsd
javax/servlet/resources/web-common_3_0.xsd
javax/servlet/resources/web-common_3_1.xsd
javax/servlet/resources/web-common_4_0.xsd
javax/servlet/resources/web-fragment_3_0.xsd
javax/servlet/resources/web-fragment_3_1.xsd
javax/servlet/resources/web-fragment_4_0.xsd
javax/servlet/resources/XMLSchema.dtd
javax/servlet/resources/xml.xsd

@cowwoc
Copy link
Contributor

cowwoc commented Aug 28, 2019

@joakime Is there a ticket tracking this problem on Jakarta's side?

@joakime
Copy link
Contributor

joakime commented Aug 28, 2019

@cowwoc see jakartaee/servlet#1

@stale
Copy link

stale bot commented Aug 28, 2020

This issue has been automatically marked as stale because it has been a full year without activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the Stale For auto-closed stale issues and pull requests label Aug 28, 2020
@stale
Copy link

stale bot commented Oct 3, 2020

This issue has been closed due to it having no activity.

@stale stale bot closed this as completed Oct 3, 2020
@bowbahdoe
Copy link

Re-opening to ask if this work is complete or not

@sbordet
Copy link
Contributor Author

sbordet commented Jul 25, 2023

@bowbahdoe with EE 10, I believe all spec jars have a proper module-info.

Out of curiosity, do you use JPMS?
If so, can you detail how?

@bowbahdoe
Copy link

do you use JPMS? If so, can you detail how?

I'm gonna give a pretty annoying answer to this I think.

Yeah, I use modules - but mostly because i write up little libraries. With few or zero dependencies there is no reason not to have a module-info.

I have some thoughts about the jlink/jpackage "workflow", how that could be part of a simpler overall workflow for the ecosystem writ. large, how it seems like the leyden work is going to want module descriptors, and I do like running jlink and du -sh on my small toy projects and seeing 20-30mb. Feels clean.

But, professionally I've spent most of my JVM time in Clojure. The clojure world does not care about modules. I am very used to zipping everything into an uberjar and putting that uberjar in a docker image with the full jdk.

...does that make sense?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Stale For auto-closed stale issues and pull requests
Projects
None yet
Development

No branches or pull requests

4 participants