Happy New Year!
In the last days I worked a little bit on a prototype to fully support
Jakarta Servlet API for Sling. As discussed in the "[RT] Path to Jakarta
Servlet Specification" I switched to a different approach which
basically adds support for Jakarta Servlet next to Javax Servlet by
adding new methods and interfaces to our API.
I have the core now up and running and at least sling-mini (in our
whiteboard) seems to work. This should cover all functionality except
script support. While you can register servlets and filters based on the
Jakarta Servlet API, any script language support is still based on
Servlet 3.
But I think this is good enough to see that this approach is feasible
and we can decide whether we want to go this route.
We also need to decide which Jakarta Servlet version we want to target.
So far I selected version 6 which is the latest version currently
implemented by Eclipse Jetty. This brings Sling as much up to date as
possible, but comes with the requirement to run latest Eclipse Jetty 12
which requires Java 17. Its probably time to make this switch.
The other option is to go with Jakarta Servlet 5 but that means we make
an update to base Sling on older versions. Doesn't feel right.
For the work I created a branch named "jakarta-2" in Sling API, Auth
Core, Engine, Resourceresolver, Servlets Resolver and Scripting Core.
PAX Exam Tests stopped working due to the Java 17 requirement and I got
lost in what is needed to make this work again.
Apart from getting the whole script machinery updated, we should work on
removing the dependency to commons fileupload
(https://issues.apache.org/jira/browse/SLING-12497) and improve the
javadocs.
While everything right now compiles and deploys, I cant guarantee that
everything is still working as expected :)
Regards
Carsten
--
Carsten Ziegeler
Adobe
[email protected]