Latest update:
Scripting Support for Jakarta Servlet is now implemented as well. This
required a small API addition to scripting SPI.
With that we should have all changes in place and can now switch to bug
fixing/improving.
Regards
Carsten
On 23.04.2025 18:49, Carsten Ziegeler wrote:
Three months ago, we agreed (voted) to support the Jakarta Servlet API
with the following details:
- target at least Jakarta Servlet 6 (depending on timing we might also
go to Jakarta Servlet 6.1)
- due to Jakarta Servlet 6, we increase the minimum required Java
version to Java 17
- duplicate all non deprecated API that uses javax.servlet and create a
variation for jakarta.servlet
- our implementations continue to support the javax.servlet based API
and in addition support the jakarta.servlet based API (fully compatible)
In the meantime I worked on the API and the implementation, the
corresponding issues are linked under https://issues.apache.org/jira/
browse/SLING-10000.
For Sling API, Auth Core, Engine, Resource Resolver, Servlets Resolvers,
Scripting Core, Servlets Get and Servlets Post I added the new API and
implemented most of it. Currently scripting support is not fully
functional.
We also support Servlet 6.1 now (as Apache Felix Http Jetty12 allows us
to use this although Jetty only supports 6.0).
For most of the modules mentioned, I switched to SLF4J 2.x - with the
upcoming release of Sling Commons Log we have released support for this.
Once the scripting support is done, in theory we should have full
support for Jakarta Servlet while still supporting javax.servlet.
Eventually, we should create a branch in the starter project to run all
integration tests against the new implementation and flesh out the bugs.
As this is a major new feature for Sling stretching across several core
modules and as this comes with the requirement for Java 17 as the base
Java, for the modules mentioned above I changed the major version number
of the *bundle* - not the packages. The bundle version is more a
marketing version than anything else. Packages of course did only
increase in minor version ensuring compatibility.
This way it is also much easier to detect, whether the bundle supports
Jakarta servlet or not. For example, the support starts with API 3.0 and
not with 2.28.0.
Regards
Carsten
--
Carsten Ziegeler
Adobe
cziege...@apache.org