Details
-
New Feature
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
webconsole-packageadmin-plugin 1.1.0, webconsole-gogo-plugin-1.0.0, webconsole-event-plugin-1.2.0, webconsole-memoryusage-plugin-1.1.0, inventory-2.0.0, http.webconsoleplugin-1.1.0, webconsole-ds-plugin-2.3.0, webconsole-obr-plugin-1.1.0, healthcheck.webconsole 2.2.0, healthcheck.core 2.2.0, http.sslfilter-2.0.2
-
None
Description
Goal is to upgrade all relevant Apache Felix modules, which currently are using either Jakarta Servlet API 5.x or Java Servlet, to Jakarta Servlet API 6.x.
Attached Mikado graph (https://mikadomethod.info/) has all so far identified prerequisites listed, as well as progress on path to main goal – i.e. items already completed are checked off (green icon). Code is shared via https://github.com/DataInMotion/felix-dev/tree/jakarta-servlet-6-x (no pull request for now – please see sections ‘Questions’ and ‘Next steps’ below).
Before starting, I asked on Apache Felix Users list (https://www.mail-archive.com/users@felix.apache.org/msg18693.html), as well as researched if there is any ongoing effort to upgrade Apache Felix to Jakarta Servlet 6.x (issues / pull requests, etc.). Besides +https://issues.apache.org/jira/browse/FELIX-6389+, which resembles this effort, I did not find anything. However, that issue is open since 22/02/2021 and there has been no updates since 09/01/2022, as well as no code shared as part of it. If any progress was made as part of +https://issues.apache.org/jira/browse/FELIX-6389+, kindly please provide status update and perhaps these efforts can be merged.
Modules affected
Modules with dependency on Java Servlet or Jakarta Servlet.
org.apache.felix.http
- org.apache.felix.http.parent
- org.apache.felix.http.base
- org.apache.felix.http.bridge
- org.apache.felix.http.inventoryprinter
- org.apache.felix.http.itest
- org.apache.felix.http.jetty
- org.apache.felix.http.proxy
- org.apache.felix.http.samples.whiteboard
- org.apache.felix.http.servlet-api
- org.apache.felix.http.sslfilter
- org.apache.felix.http.webconsoleplugin
org.apache.felix.webconsole
- org.apache.felix.webconsole
- org.apache.felix.webconsole.plugins.deppack
- org.apache.felix.webconsole.plugins.ds
- org.apache.felix.webconsole.plugins.event
- org.apache.felix.webconsole.plugins.gogo
- org.apache.felix.webconsole.plugins.memoryusage
- org.apache.felix.webconsole.plugins.metatype
- org.apache.felix.webconsole.plugins.obr
- org.apache.felix.webconsole.plugins.packageadmin
- org.apache.felix.webconsole.plugins.scriptconsole
- org.apache.felix.webconsole.plugins.shell
- org.apache.felix.webconsole.plugins.subsystems
- org.apache.felix.webconsole.plugins.upnp
- org.apache.felix.webconsole.plugins.useradmin
org.apache.felix.healthcheck
- org.apache.felix.healthcheck.core
- org.apache.felix.healthcheck.webconsoleplugin
Other
- org.apache.felix.jaas
- org.apache.felix.example.jaas.app
- org.apache.felix.example.jaas.jdbc-h2
- org.apache.felix.ipojo.webconsole
- org.apache.felix.systemready
- org.apache.felix.servicediagnostics.plugin
- org.apache.felix.inventory
Questions
1. Regarding modules affected, are there any additional modules which should be taken into account?
2. Regarding modules affected, should any of the modules listed be dropped from that list ? (e.g. some may be out of date / replaced by other already)
3. Do you know of any ongoing effort to migrate `org.osgi.service.http` specification to Jakarta ? How otherwise should modules currently using `org.osgi.service.http` specification API classes and methods be refactored ? I am aware of https://github.com/eclipse-equinox/equinox/issues/183 but it is not clear to me from that discussion if any such effort will be actually made.
4. Do you know of any ongoing effort to upgrade `org.osgi.service.servlet` to support Jakarta Servlet API 6.x ?
5. If `javax.servlet` dependency is removed from `org.apache.felix.http.base`, wouldn't the wrappers become obsolete ? I.e. shouldn't `org.apache.felix.http.base.internal.jakartawrappers` and `org.apache.felix.http.base.internal.javaxwrappers` be dropped then and Jakarta Servlet API used directly ?
6. Should Jakarta Servlet API 5.x be supported in parallel with Jakarta Servlet API 6.x (as hinted at in https://www.mail-archive.com/users@felix.apache.org/msg18694.html), or only Jakarta Servlet API 6.x ?
7. Should `org.apache.felix.http.servlet-api` module be kept once dependency on Java Servlet API is removed from it?
8. Should this be merged to `master` branch @ https://github.com/apache/felix-dev once ready, or dedicated branch should be used (e.g. `jakarta-servlet-6-x`)
Next steps
1. Please provide answers to questions mentioned in previous section.
2. If you see any of the prerequisites missing from Mikado graph, please mention those.
3. Please create a dedicated branch @ https://github.com/apache/felix-dev (e.g. `jakarta-servlet-6-x`) unless this should be merged to `master` once ready.
Attachments
Attachments
Issue Links
- is related to
-
FELIX-6573 Remove JakartaServlet contract for javax packages
- Closed
-
FELIX-6247 Jakarta servlet API support by Felix HttpService
- Resolved
-
FELIX-6540 Include jakarta servlet api 5
- Closed
-
FELIX-6389 add support for servlet 5.0 (tomcat 10)
- Resolved
-
FELIX-6487 Update to Jetty 11
- Closed
-
FELIX-6508 Consume Servlet API Version Range (2.x,5] in WebConsole
- Closed
-
FELIX-6574 Update to OSGi Servlet Whiteboard specification
- Closed
-
FELIX-6576 Update SSLFilter to Jakarta Servlet API
- Closed
-
FILEUPLOAD-309 Release version 2.0.0
- Resolved
- links to