ECF / JaxRSProviders

Remote Services distribution provider based upon JaxRS. Includes imples based upon Jersey and CXF.
Apache License 2.0
13 stars 18 forks source link

Namespace switch #48

Open Mailaender opened 1 month ago

Mailaender commented 1 month ago

It changed from javax to jakarta and OSGi Technology Whiteboard Implementation for Jakarta RESTful Web Services moved to the Eclipse Foundation. It is probably time for an update here as well.

scottslewis commented 1 month ago

Hi @Mailaender. This provider was written to use the HTTP Service (registerServlet), as there was no whiteboard OSGI spec at the time.

I have no objection to moving to the whiteboard API and impls and I don't think it will be incredibly hard to do so. However, it will take a significant amount of refactoring of the existing ECF code, and it's probably going to be necessary for me to do much of that refactoring to avoid removing already-present extensibility in the provider (e.g. the ability to use jersey or other jaxrs impls).

One additional thing to look for: Is there an OSGi HTTP Service-like spec and implementation that uses jakarta servlet (new) namespace?...i.e. without using whiteboard (i.e. with a registerServlet that has jakarta servlet classes as arguments).

Mailaender commented 1 month ago

Okay, then I misunderstood. I only want to change from javaxjakarta, actually.

Mailaender commented 1 month ago

Easier said then do though as an upstream project still relies on javax

[ERROR] Cannot resolve dependencies of project org.eclipse.ecf.jaxrs:org.eclipse.ecf.provider.jaxrs.server:eclipse-plugin:1.11.1-SNAPSHOT
[ERROR]  with context {osgi.os=win32, osgi.ws=win32, org.eclipse.update.install.features=true, osgi.arch=x86, org.eclipse.update.install.sources=true}
[ERROR]   Software being installed: org.eclipse.ecf.provider.jaxrs.server 1.11.1.qualifier
[ERROR]   Missing requirement: com.fasterxml.jackson.jaxrs.jackson-jaxrs-base 2.17.1 requires 'java.package; javax.ws.rs.core [2.0.0,2.2.0)' but it could not be found
[ERROR]   Cannot satisfy dependency: org.eclipse.ecf.provider.jaxrs.server 1.11.1.qualifier depends on: java.package; com.fasterxml.jackson.jaxrs.base 2.9.2:

although I am not sure where exactly.

scottslewis commented 1 month ago

Easier said then do though as an upstream project still relies on javax

[ERROR] Cannot resolve dependencies of project org.eclipse.ecf.jaxrs:org.eclipse.ecf.provider.jaxrs.server:eclipse-plugin:1.11.1-SNAPSHOT
[ERROR]  with context {osgi.os=win32, osgi.ws=win32, org.eclipse.update.install.features=true, osgi.arch=x86, org.eclipse.update.install.sources=true}
[ERROR]   Software being installed: org.eclipse.ecf.provider.jaxrs.server 1.11.1.qualifier
[ERROR]   Missing requirement: com.fasterxml.jackson.jaxrs.jackson-jaxrs-base 2.17.1 requires 'java.package; javax.ws.rs.core [2.0.0,2.2.0)' but it could not be found
[ERROR]   Cannot satisfy dependency: org.eclipse.ecf.provider.jaxrs.server 1.11.1.qualifier depends on: java.package; com.fasterxml.jackson.jaxrs.base 2.9.2:

although I am not sure where exactly.

Yeah. This is why I didn't do the changeover years ago unfortunately (the references to javax.servlet...in OSGI HTTPService and ECF provider code and javax.jaxrs...in ECF provider code and jersey, and jersey's dependencies [in this specific case, fasterxml but there could be others].

If you want to continue this changeover effort I will help as much as possible. Note I've already got a branch named: jersey_3_0_0 where I got much of the way...but was stopped by the OSGi HTTP Service requiring/using javax.servlet (for HTTPService registerService in jersey.server bundle). I can't remember at the moment whether there were other deps unresolved (e.g. jackson).