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

Reply via email to