In the latest updates moqui-framework is now using Jetty 10 which is backward compatible with the Java Servlet 4 API, and other APIs (websocket, etc) that use the javax.* package prefix.
The Java Servlet 5.0 and Websocket 2.0 APIs change the package name from javax
to jakarta
. This is unfortunate for backward compatibility reasons.
It seems this is the course of the future for Java Enterprise Edition, which is basically not a thing going forward and it is now Jakarta Enterprise Edition. This happened when Oracle donated all of Java EE to the Eclipse Foundation. The official web site is here:
On a side note, to make things more confusing there is also an Apache Jakarta project which is something different (though was similar in terms of technical domain) and was retired over a decade ago (see https://jakarta.apache.org).
Apache Tomcat has a good summary of the updates to the different APIs for Tomcat version 10: Apache Tomcat® - Migration Guide - Tomcat 10.0.x
Jetty has some information about specification versions and Jetty versions here: The Eclipse Jetty Project :: Eclipse Jetty
Because this seems to be the way forward for these specifications that Moqui uses (and pretty much all other Java based web applications), it is a question of when and not if we make the leap.
The downside to it is once the update is done Moqui will no longer run on older versions of servlet containers and application servers. For Jetty this means once we move to the jakarta.* packages and Jetty 11 then it will no longer run on Jetty 9 or 10. For Apache Tomcat it means that Tomcat 9 and earlier will no longer be supported and Tomcat 10 will be required.
After researching it more my thought is we should do this sooner than later, along with other recent changes that are not backward compatible (to Java 11, Spock & JUnit, etc).
If no one is concerned about this I’ll do it in the near future, so please comment with thoughts and concerns!