Hello! Almost 5 years after the release of JakartaEE 9 with its disruptive switch from "javax." to "jakarta." namespace, I'm happy and proud to announce Pax Web 10 and Pax Web 11!
OSGi CMPN 8.0 specification has 3 web-related specs (still based on javax.servlet API): - Chapter 102: Http Service Specification: https://docs.osgi.org/specification/osgi.cmpn/8.0.0/service.http.html - Chapter 128: Web Applications Specification: https://docs.osgi.org/specification/osgi.cmpn/8.0.0/service.war.html - Chapter 140: Http Whiteboard Specification: https://docs.osgi.org/specification/osgi.cmpn/8.0.0/service.http.whiteboard.html First Pax Web releases were based on Chapter 102 (org.osgi.service.http.HttpService). Then some clever things in Pax Web (before I even learned what OSGi is) inspired Http Whiteboard Specification. With OSGi CMPN 8.1 which partially embraces javax → jakarta transition, we have these important changes impacting the landscape and Pax Web itself: - Chapter 102 is gone - we no longer have "org.osgi.service.http.HttpService" interface - Chapter 128 still mentions javax.servlet packages - Chapter 140 is renamed to "Whiteboard Specification for Jakarta™ Servlet": https://docs.osgi.org/specification/osgi.cmpn/8.1.0/service.servlet.html The main goal for Pax Web 10 (I'll write about Pax Web 11 in a moment) was simple - move from javax.servlet to jakarta.servlet. `s/javax.servlet/jakarta.servlet/g` was the easy part. The problems started when upgrading Jetty, Tomcat and Undertow to versions based on jakarta.servlet API. While Tomcat and Undertow were good citizens here, Jetty was the rebel (in the end - in positive way). Jetty 12 stood against the same problem we all had/have in Java - should we support javax AND jakarta or do the Spring Boot 3 move to forget about javax? Jetty chose the BOTH approach. This lead to full refactoring of Jetty internals and Pax Web had to use many tricks to switch the implementation (ee8, ee9, ee10 parts of Jetty 12). But we did it! Because Jetty 9, 10 and 11 are no longer supported AND because Jetty 12 supports ee8 (javax.servlet) we had a suggestion ( https://github.com/ops4j/org.ops4j.pax.web/issues/2031) that maybe we should upgrade "old" Pax Web 8 to Jetty 12? So I decided to do the BIG release named as Pax Web 11 and replace Pax Web 8 (Jetty 9) and 9 (Jetty 10) with Pax Web 10 (Jetty 12). Let me proudly present: - Pax Web 10 - same as Pax Web 8 in terms of supporting JakartaEE 8 and javax.servlet namespace, but with JDK17 baseline and Jetty 9 replaced by Jetty 12 (ee8 libraries). - Pax Web 11 - the new release based on JakartaEE 9+ and jakarta.servlet namespace. Also JDK 17 is the baseline. This is a full move from javax.servlet to jakarta.servlet and new runtime versions will be: - Jetty 12 - Tomcat 11 - Undertow 2.3 Current runtime versions are: - Jetty 12.0.22 - Tomcat 9.0.105 (Pax Web 10) and 11.0.7 (Pax Web 11) - Undertow 2.2.37.Final (Pax Web 10) and 2.3.18.Final (Pax Web 11) Additionally Pax Web 11 passes almost all Whiteboard TCK tests with few minor exceptions. See https://github.com/ops4j/org.ops4j.pax.web/issues/1803 For completeness, the changelogs are available for 10.0.0[1] and 11.0.0[2]. kind regards Grzegorz Grzybek === [1]: https://github.com/ops4j/org.ops4j.pax.web/milestone/272?closed=1 [2]: https://github.com/ops4j/org.ops4j.pax.web/milestone/235?closed=1