karaf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Grzegorz Grzybek <gr.grzy...@gmail.com>
Subject Re: Apache Karaf runtime 4.3.0 - Decision taken
Date Fri, 04 Sep 2020 16:51:28 GMT
Hello

I'm the one responsible for the delay of Pax Web 8, but also (to
counterweight the blame), I'm the one who picked up the master branch and
tried to refactor it the way I did with Pax Logging ;)

As we know, felix-http is a great OSGi CMPN R7 Whiteboard (and Http
Service) implementation where everything is implemented in a single
"dispatcher servlet" added to single Jetty's ServletContextHandler.
On the other hand, Pax Web is waaaaaaay more (WARs, JSPs, "mapping"
whiteboard, welcome files, etc.).

My initial goal about "refactor Pax Web" was actually
https://ops4j1.jira.com/browse/PAXWEB-1123 ("HTTP Whiteboard and selection
of the ServletContextHelper") - what could possibly go wrong? :) When I
checked how Pax Web 7.x (and current master branch) handles "contexts",
after a few months of looking/reading at the code (started April 2019!) I
decided to refactor the core model of Pax Web, where each web "element" may
be associated with one or MORE "osgi contexts" which in turn point to a
single "servlet context" (in N:1) relation.

I described the design in
http://karaf.922171.n3.nabble.com/Fwd-PAX-WEB-State-of-Pax-Web-8-td4058782.html

So, the actual Whiteboard spec compliance is almost done and it was very
deep refactoring indeed (I tried to preserve the great work of others) and
these standard bits are missing:
 - tests for preprocessors (because the machinery is already there)
 - tests for changing registration properties of ServletContextHelper OSGi
service
 - per ServletContextHelper session handling

So we're very close to felix-http.

The problem is that because I refactored the "core" of Pax Web so deeply, I
still didn't touch pax-web-extender-war (though I had this component in
mind in every step of the refactoring) - I don't expect BIG problems
"enabling" this in Pax Web 8.

I wrote about ServletContainerInitializers here:
http://karaf.922171.n3.nabble.com/HEADS-UP-Releases-schedule-4-2-10-4-3-0-RC2-Winegrower-1-0-tp4058780p4058834.html
but today I made good progress with dynamic registration of
servlets/filters/listeners from within SCIs (a must-have for JSPs and JSFs).

So we can soon release Pax Web 8 with MUCH better R6/R7 compliance but with
missing old, commonly used Pax Web stuff (WARs...)

Mind that as JBO said - there are no big differences between Whiteboard R6
and R7 (and the annotations he's mentioned are actually not preserved at
runtime! These are to be processed by APT...). The point is that Pax Web 7
had a major problem in handling this N:1 mapping between
ServletContextHelper and ServletContext and it required a total rewrite of
the model...

We can have Karaf 4.3.0 with Pax Web 7.3.x which differs from 7.2.x in two
aspects:
 - Undertow 1.x → 2.0.x (Servlet API 3 → 4)
 - Tomcat 8 → 9 (Servlet API 3 → 4)
 - Jetty is not changed because the only Jetty that supports Servlet API 4
is ... Jetty 10 which at the same time requires JDK 11.

I wrote about Pax Web 7.3.x as being a "technical preview" here:
https://groups.google.com/g/ops4j/c/6nF78NKs2qA/m/oRUxNtSyAQAJ

I hope this clears the confusion and decreases my guilt ;)

kind regards
Grzegorz Grzybek

pt., 4 wrz 2020 o 18:19 Jean-Baptiste Onofre <jb@nanthrax.net> napisał(a):

> Hi Serge,
>
> In the R7, it’s mostly the new features on the Http Whiteboard spec:
>
> - the new whiteboard annotations (@HttpWhiteboardServletPattern,
> @HttpWhiteboardContextSelect, @HttpWhiteboardServletMultipart)
> - the pre-filtering preprocessor
>
> All the rest is exactly the same.
>
> So, no change in the existing, just new convenient preprocessor and
> annotation.
>
> As Pax Web already provides alternative to this, it’s not a big deal.
>
> Regards
> JB
>
> > Le 4 sept. 2020 à 17:55, Serge Huber <shuber@jahia.com> a écrit :
> >
> > Hi JB,
> >
> > Yeah I know the feeling of not liking to wait for releases :)
> >
> > Could you give an example of the missing 10%?
> >
> > Anyway I think it makes sense and anyway maybe we should start working on
> > R8 & Karaf 5 ? :)
> >
> > So here's a non-binding +1.
> >
> > cheers,
> >  Serge...
> >
> > Serge Huber
> > CTO & Co-Founder
> > T +41 22 361 3424
> > 9 route des Jeunes | 1227 Acacias | Switzerland
> > jahia.com <http://www.jahia.com/>
> > SKYPE | LINKEDIN <https://www.linkedin.com/in/sergehuber> | TWITTER
> > <https://twitter.com/sergehuber> | VCARD
> > <http://www.jahia.com/vcard/HuberSerge.vcf>
> >
> >
> >> JOIN OUR COMMUNITY <http://www.jahia.com/> to evaluate, get trained and
> > to discover why Jahia is a leading User Experience Platform (UXP) for
> > Digital Transformation.
> >
> >
> > On Fri, Sep 4, 2020 at 5:46 PM Jean-Baptiste Onofre <jb@nanthrax.net>
> wrote:
> >
> >> Hi guys,
> >>
> >> I have to take my duty as Karaf PMC ;)
> >>
> >> Clearly Karaf 4.3.0 is waiting for way too long: 4.3.0-SNAPSHOT started
> on
> >> Feb 11, 2019 !
> >>
> >> I discussed with Greg earlier today, and we still have work to do for
> Pax
> >> Web 8.0.
> >>
> >> As I don’t want to hold Karaf 4.3.0 any longer, I took the decision to
> >> move forward and upgrade Karaf 4.3.0 to Pax Web 7.3.x.
> >> If Pax Web 7.3.x doesn’t fully cover R7, it covers 90% of the spec, and
> >> I’m pretty sure most of the users don’t use the pending 10%.
> >>
> >> So, here’s my proposal:
> >> - I’m working on Pax Web 7.3.9 preparation during the week end (updating
> >> container, etc)
> >> - In the meantime, I’m preparing Karaf 4.3.0 with a cleanup of the
> >> features and easy choice between Pax Web and Felix HTTP for the HTTP
> service
> >> - In also reviewing the Jira to include the maximum I can in 4.3.0.
> >>
> >> Reasonably, I think I will submit Karaf runtime 4.3.0 to vote next week
> >> (strong commitment).
> >>
> >> If you have any concern or comment about this plan, please let me know.
> >>
> >> Thanks !
> >>
> >> Regards
> >> JB
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message