The state of Pax Web

45 views
Skip to first unread message

Grzegorz Grzybek

unread,
Apr 29, 2022, 5:36:48 AM4/29/22
to OPS4J, Karaf Dev
Hello

I'm planning to release Pax Web 8.0.3 with 6 issues fixed, including:
  • Keycloak integration tweaks (see https://issues.redhat.com/browse/KEYCLOAK-19939)
  • refined session management (session per Osgi Context with single JSESSIONID cookie per Servlet Context)
  • two deadlocks fixes (Aries CDI)
  • gzip encoding configuration and Jetty RewriteHandler support
With the above fixes, I think my long term plan to refactor Pax Web ends. It doesn't mean I quit, it simply means I don't plan anything new to add to Pax Web if there's no request to do so.

IMO, the compliance with chapters 102 (Http Service), 128 (Web Applications) and 140 (Whiteboard Service) of OSGi CMPN specification (R7, but should be the same for R8) is sufficiently complete. I didn't run the TCKs, because I didn't have much time to understand how to run it in proper way ;)

There's one obvious violation of Whiteboard specification wrt to context handling. See 140.2 The Servlet Context[1]:

For example, if two ServletContextHelper services are registered as follows

osgi.http.whiteboard.context.path = /foo
osgi.http.whiteboard.context.path = /foo/bar

Then a request for http://localhost/foo/bar/someServlet is looked up in the following order:
  1. /foo/bar context looking for a pattern to match /someServlet
  2. /foo context looking for a pattern to match /bar/someServlet
According to JavaServlet specification, context selection happens first and further resolution of servlets is performed within the found context. The above Whiteboard requirement mandates searching for servlets in other contexts. I've consciously NOT implemented the Whiteboard behavior, sticking to JavaServlet recommendation.

Anyway - I hope Pax Web 8 is stable and fast enough to be used in production. There are much more tests than we had in Pax Web 7 and I've added complex WAR scenarios involving CDI, JSF and complex ServletContainerInitializer scenarios, including web-fragment.xml integration tests.

I'll of course be releasing new versions if there's new Jetty, Tomcat or Undertow release - in Pax Web 8 we no longer require TIPI releases for Tomcat.

If you see any problems or have nice feature requests, please create a GitHub issue at usual place[2].

kind regards
Grzegorz Grzybek
===

Alain Picard

unread,
Apr 29, 2022, 10:38:01 AM4/29/22
to OPS4J
Hi Grzegorz,

I see the Keycloak issue and what is mentioned there. What does that mean for KC integration going forward ?

Alain

Matt Pavlovich

unread,
Apr 29, 2022, 10:44:10 AM4/29/22
to op...@googlegroups.com, Karaf Dev

Hi Grzegorz-

 

Great work on this refactor, it was quite an undertaking!  Saying “much appreciated” seems like not enough =).

 

We have a JMeter test suite that we’ll run against Karaf + Pax Web v8.0.3 and report back in the few couple weeks for functionality and performance —covers REST and Web app servlet functionality.

 

Thank you,

Matt Pavlovich

--
--
------------------
OPS4J - http://www.ops4j.org - op...@googlegroups.com

---
You received this message because you are subscribed to the Google Groups "OPS4J" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ops4j+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ops4j/CAAdXmhobbxcXUFnNQ_AiK-b04MCQR_QAXdMRG47MbmKKakNjpg%40mail.gmail.com.

Grzegorz Grzybek

unread,
Apr 29, 2022, 10:59:13 AM4/29/22
to op...@googlegroups.com
Hello


pt., 29 kwi 2022 o 16:38 Alain Picard <al...@benchmarkconsulting.com> napisał(a):
Hi Grzegorz,

I see the Keycloak issue and what is mentioned there. What does that mean for KC integration going forward ?

Keycloak team decided to remove the "Fuse adapters". Because indeed - these, even if using Pax Web extension mechanism (ServiceLoader of /META-INF/services/org.ops4j.pax.web.service.AuthenticatorService), they were created (and worked only on Undertow side), were created for JBoss/RedHat Fuse integration.

Even the location of these adapters in Keycloak source tree (https://github.com/keycloak/keycloak/tree/18.0.0/adapters/oidc/fuse7) suggest "Fuse" as the target platform, while there's nothing beyond Pax Web here.
I see kind of opportunity here and the integration parts:
  • bundle fragments with /META-INF/services/org.ops4j.pax.web.service.AuthenticatorService
  • Karaf features
can be moved from Keycloak into Pax Web itself. I've created https://github.com/ops4j/org.ops4j.pax.web/issues/1716 to track this idea.

kind regards
Grzegorz Grzybek
 
--
--
------------------
OPS4J - http://www.ops4j.org - op...@googlegroups.com

---
You received this message because you are subscribed to the Google Groups "OPS4J" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ops4j+un...@googlegroups.com.

Grzegorz Grzybek

unread,
Apr 29, 2022, 11:02:40 AM4/29/22
to op...@googlegroups.com, Karaf Dev
pt., 29 kwi 2022 o 16:44 Matt Pavlovich <matt.pa...@hyte.io> napisał(a):

Hi Grzegorz-

 

Great work on this refactor, it was quite an undertaking!  Saying “much appreciated” seems like not enough =).


It was my pleasure - another reason to admire internal OSGi design :) I had really good time working with the code written greatly by others. I hope my goal to only polish things and to make them more stable and spec compliant as achieved - not many classes were removed. And not many were added.
I hoped to make things work as similar as possible between Jetty, Tomcat and Undertow and I think the structure of pax-web-jetty, pax-web-tomcat and pax-web-undertow is really similar, so anyone can work on it without getting lost ;)
 

 

We have a JMeter test suite that we’ll run against Karaf + Pax Web v8.0.3 and report back in the few couple weeks for functionality and performance —covers REST and Web app servlet functionality.


Great! I'd love to see the results!

regards
Grzegorz Grzybek
 

John Taylor

unread,
May 5, 2022, 3:11:02 PM5/5/22
to OPS4J

I joined this group so I could say thanks to Grzegorz for his work on this!

-John

Grzegorz Grzybek

unread,
May 6, 2022, 12:40:01 AM5/6/22
to op...@googlegroups.com
czw., 5 maj 2022 o 21:11 John Taylor <jtt7...@gmail.com> napisał(a):

I joined this group so I could say thanks to Grzegorz for his work on this!

:) It is my pleasure to add a bit of polishing standing on the shoulders of giants.

regards
Grzegorz Grzybek
 

-John

--
--
------------------
OPS4J - http://www.ops4j.org - op...@googlegroups.com

---
You received this message because you are subscribed to the Google Groups "OPS4J" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ops4j+un...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages