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

Reply via email to