osgi / osgi

OSGi Specification Project Build Repository. Specification, API, implementation, and TCK source code.
https://docs.osgi.org/
Apache License 2.0
104 stars 40 forks source link

Remove javax servlet based Web Applications Specification #499

Open cziegeler opened 2 years ago

cziegeler commented 2 years ago

Should we drop https://docs.osgi.org/specification/osgi.cmpn/8.0.0/service.war.html#service.war for the 8.1 release? With the update of the servlet whiteboard specification to Jakarta and the removal of http.service, I think we should also remove this specification from the release. Especially, as it is for example not possible to implement it with some of the Jakarta EE based servlet containers.

(Note: removing a spec from an upcoming release does not mean that the spec stops existing, it is just an indication that there will be no updates anymore to it)

laeubi commented 2 years ago

I pinged the pax-web people here:

as I know they are quite active in that area an might want to help / participate here!

grgrzybek commented 2 years ago

First, let me add a reference to my related questions in FELIX-6574.

Responding to ops4j/org.ops4j.pax.web#1790, my first rough answer would be - let's keep the chapter 128 with minor changes:

Besides that there's nothing to change in chapter 128, as there's no API exposed.

Pax Web 8 was indeed quite a big refactoring of previous versions (mostly due to Whiteboard specification). Initially I thought that JavaEE8 → JakartaEE 9 migration would be very very tough for entire OSGi CMPN, mostly because OSGi is expected to be quite conservative and supporting older versions - and I couldn't imagine handling HttpService (Chapter 102) both for javax.servlet and jakarta.servlet.

However, now that Chapter 102 is gone, I can imagine Pax Web 10, which supports:

If I could join the meeting at wed nov 23 17:00 GMT+1, it'd be great.

laeubi commented 2 years ago

@grgrzybek anyone can join, easiest way is to join the slack channel (I can invite you if the link to not work but haven't found your mail anywhere public) it is anounced there a few hours before it starts or you just look at the calendar: https://calendar.google.com/calendar/embed?src=c_fh3lhb5p0l29f6phu2ndifh4a4%40group.calendar.google.com

However, now that Chapter 102 is gone, I can imagine Pax Web 10, which supports:

It might be reintroduced if I have understand @bjhargrave correctly if there is someone "keeping an eye on it" ...

grgrzybek commented 2 years ago

BTW - is felix.http supporting javax.servlet and jakarta.servlet at the same time? (which would require two Jetty instances running at the same time...).

bjhargrave commented 2 years ago

Responding to ops4j/org.ops4j.pax.web#1790, my first rough answer would be - let's keep the chapter 128 with minor changes:

* replace JavaEE references with JakartaEE ones

* rewrite _Table 128.1 Dependency versions_ to match JakartaEE 9+

Besides that there's nothing to change in chapter 128, as there's no API exposed.

In addition to these suggested spec changes, we will then need a new compatible implementation which supports the Jakarta Servlet API and to update the TCK for the Jakarta Servlet API. The current implementation is a rather old one based upon the Eclipse Gemini project which is being terminated.

So we will need help with the implementation and TCK updates.

grgrzybek commented 2 years ago

So we will need help with the implementation and TCK updates.

Could Pax Web be a candidate for Chapter 128 RI? Is felix.http implementing this specification (afaik - it's not)?

About TCK - I remember once I tried to look around it, but I had hard time running it - I didn't even manage to start testing Pax Web using it ;) Maybe I'll need a second look.

bjhargrave commented 2 years ago

Could Pax Web be a candidate for Chapter 128 RI?

I think so since it is available under AL2. I assume the artifacts are available from Maven Central.

Is felix.http implementing this specification (afaik - it's not)?

I don't believe it does.

About TCK - I remember once I tried to look around it, but I had hard time running it

In the build, you can use the testOSGi gradle task to run the TCK in development mode.

maho7791 commented 2 years ago

Jetty 9 supported it. I tried that with the bnd -wab instruction and it worked.

I gave it a try with the Jetty 11 Felix WAB dont work anymore, but in plain Jetty 11 WAB still works with jakarta.servlet.

There is still documentation to be migrated: https://www.eclipse.org/jetty/documentation/jetty-11/old_docs/index.html#_support-for-the-osgi-service-platform-enterprise-specification

Regards,

Mark

Am 09.11.22 um 18:30 schrieb Grzegorz Grzybek:

So we will need help with the implementation and TCK updates.

Could Pax Web be a candidate for Chapter 128 RI? Is felix.http implementing this specification (afaik - it's not)?

About TCK - I remember once I tried to look around it, but I had hard time running it - I didn't even manage to start testing Pax Web using it ;) Maybe I'll need a second look.

— Reply to this email directly, view it on GitHub https://github.com/osgi/osgi/issues/499#issuecomment-1309098491, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB6R22AMN7B6GT2Y2DJIKRTWHPNR3ANCNFSM6AAAAAARQ5EHAE. You are receiving this because you are subscribed to this thread.Message ID: @.***>

-- Mark Hoffmann M.A. Dipl.-Betriebswirt (FH) Geschäftsführer

Tel: +49 3641 384 910 0 Mobil: +49 175 701 2201 @.*** Web:www.datainmotion.de

Data In Motion Consulting GmbH Kahlaische Straße 4 07745 Jena

Geschäftsführer Mark Hoffmann Jürgen Albert

Jena HRB 513025 Steuernummer 162/107/05779 USt-Id DE310002614

grgrzybek commented 2 years ago

Jetty 9 supported it. I tried that with the bnd -wab instruction and it worked.

Interesting - I didn't know about this...

cziegeler commented 2 years ago

Apache Felix Http Jetty 4.x supports the current specification (javax.servlet based). Starting with version 5 the switch to Jetty 11 makes it hard to implement. If the specification gets updated to jakarta.servlet, we might add the support for it back if users demand it.

bjhargrave commented 1 year ago

We agreed to defer removal until a later compendium release in the hope that the PAX-Web team is able to contribute to modernize the spec, TCK and compatible implementation for Jakarta.

grgrzybek commented 1 year ago

I can't promise anything before end of 2022, I first have to get used to the bnd workspaces used across osgi/osgi project. However I want to help here and do two things at the same time: