-
Notifications
You must be signed in to change notification settings - Fork 186
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Prepare Pax Web version using JakartaEE 10+ API #1802
Comments
Changes in XSD (6.0):
|
No point of using |
Jetty 11 seems to be only Servlet API 5.0.0... (so for example no |
Jetty 12 Beta (already available in Maven Central) is Servlet 6 implementation. |
(Dead)lock in HTTP/2 tests for Jetty (need to investigate writer closing in PUSH promises):
|
Changes between 5 and 6 (interfaces):
Changes between 5 and 6 (documentation):
Changes between 5 and 6 (implementation):
Changes between 5 and 6 (other):
|
…o be verified later. for now it just compiles)
Another problem with Jetty 12 is the use of
or
Similar problem is described under spring-projects/spring-boot#7161 |
Are there any news on this? |
Well, at some point I created very crude implementation of pax-web-extender-whiteboard which implements https://docs.osgi.org/specification/osgi.cmpn/8.1.0/service.servlet.html and it worked with Jolokia 2. Last week Jetty 12.0.7 was released and I was going to get back to this issue. Maybe next week I'll revisit it... |
Is there a way we can support jakarta. API development of this (especially for Tommcat). We would like to see it in Karaf. |
There is a way, but unfortunately it's a long way. while other JakartaEE implementations are ready, their OSGi support is far from perfect... And the branch https://github.com/ops4j/org.ops4j.pax.web/commits/main-jakarta/ is open for PRs, so if anyone could contribute, it'd be great ;) |
Apache Felix offers a jakarta implementation of the OSGi spec as well, based on Jetty12. https://github.com/apache/felix-dev/tree/master/http/jetty12 @grgrzybek is pax offering other / more features on top of what Felix offers? |
Pax Web's history is long - it started when first HttpService OSGi CMPN was created. The main goal of Pax Web was always to provide choice of the runtime covered by OSGi CMPN specification. So while Felix HTTP implements OSGi CMPN perfectly on top of Jetty using single servlet, Pax Web deals with three different Servlet API implementations:
And each tracked servlet/filter/listener/error-page/welcome-file/servlet-container-initializer/websocket/jsp/... is configured within one of these runtimes in more canonical way - not proxied by single dispatcher servlet, but added directly to Jetty/Tomcat/Unertow context (Jetty's ServletContextHandler, Tomcat's StandardContext and Undertow's Deployment). Because we want to have unified experience, there is special code that make it possible. Also we've found some spec-violations like:
Also - OSGi CMPN Whiteboard Specificaion supports: servlets (including resources and error pages), filters and listeners. Pax Web (I know that Felix HTTP supports some additional web elements as well) supports additionally JSPs, welcome pages, websockets, servlet container listeners, security mappings, login configs (everything you can find in So treat Pax Web as alternative implementation, where you can use Tomcat and/or Undertow. |
Thanks for the explanation. I just wanted to point out that Felix HTTP offers a jakartified version based on Jetty12 (including optional websocket support), but didn't know the exact differences compared to Pax Web. That's clear now. |
If we consider 3 deployment methods:
Then multiple Jakarta versions are easiest in Whiteboard mode (though Pax Web doesn't do it yet) - even on single target runtime (without Jetty 12 magic that combines Javax and Jakarta). |
Related to osgi/osgi#499
Target runtimes (as of Nov 2022):Target runtimes (as of Jun 2023):
See:
The text was updated successfully, but these errors were encountered: