Jakarta EE 9 and Jersey 3.0.0 are here. The transition to a new jakarta package based APIs took a great amount of work, from the whole Jakarta EE community. It started in the spring of the year 2020, and finally, Jakarta EE 9 is almost there! There are just a few missing bits not yet released to maven central coming very soon!
Jersey 3.0.0 pre-releases and dependencies
Jersey is split into many modules which has a dependency on so many APIs and their respective implementations, JAX-RS, JAX-B, JSON-P, JSON-B, Servlet, JSP, EJB, HK2, CDI, Bean Validation, Inject, Interceptor, … All of these projects did all necessary work to be transitioned to Jakarta EE 9, and it has been possible to get Jersey 3.0.0. released to maven central, eventually.
Jersey 3.0.0 has few milestone releases. Each milestone release adopted a new subset of Jakarta EE 9 APIs, and finally, we were able to pass Jakarta EE 9 RESTful Web Services TCK with Jersey 3.0.0-M6. Since then, we marked the releases as release candidates.
Jersey 3.0.0 final has several dependencies not yet final, some are release candidates, but some are beta (Weld), or even alpha (Hibernate Validator). All the Jakarta EE 9 API dependencies are final, however!
How to try
Feel free to try Jakarta EE 9 and Jersey 3.0.0. It is available either as a part of Glassfish 6.0.0 (RC1 and RC2 are available in maven central, and Glassfish 6.0.0 final is on its way), or standalone in maven central, as usual.
Changes to Jersey 2.x
Jersey 3.0.0 keeps most of the Jersey 2.x features. It is still able to support Jackson 2 (we dropped the obsolete Jackson 1 support), see the examples. We also keep supporting the MicroProfile Config. Jersey 3.0.0 does not support the MicroProfile REST client, however, since it has a strong JAX-RS 2.1 dependency. We also dropped the Helidon Connector module for the time being.
Jersey 3.0.0 uses Jetty in many tests and examples. Compatible Jetty 11 dropped support of JDK 8, hence those examples and tests require JDK 11+ to run.
Contact us
Jakarta EE 9 is backward incompatible with Jakarta EE 8. We tried to keep most features and functionality the way it is in Jersey 2.x to ease a transition of applications to Jakarta EE 9. The API package name is still a huge change and if any issue is found, contact us on our issue tracker, or just send us an email about how you like Jersey.