Hi all,
As discussed in the OSGi Specification meeting, I want to bring the following topic to a broader attention.
A while ago I worked on a PoC to showcase how to migrate from an Eclipse RCP Desktop application to a VS Code or Theia application. It did not cover the user interface. The focus was to migrate the business logic available as OSGi Declarative Services that are used directly in an Eclipse RCP application to something that is consumable in a VS Code, Theia or web application.
The first thing was to publish the services via Jakarta REST Whiteboard as REST services. This is the single-source approach, as it is possible to build different applications (Eclipse RCP vs Jakarta REST) from single source.
The next step was to showcase that also a single distribution is possible. For this I created an application that publishes the OSGi services as Remote Services. When I created the initial version of the PoC, I used the ECF JAX-RS Distribution Provider. Doing this the Remote Services are distributed as REST services and therefore can be consumed in two different ways.
Since the initial version several things have happened:
- Change of the namespace from javax to jakarta
- Replacement of OSGi JAX-RS Whiteboard Specification with the Whiteboard Specification for Jakarta™ RESTful Web Services
- Removal of the OSGi HttpService
To keep my PoC working, I created an adapted version of the ECF JAX-RS distribution provider. It works with the jakarta namespace and uses the OSGi Jakarta RESTful Web Service reference implementation.
The usage can be seen in the student example and in my showcase repository:
The implementation is not 100% finished and has some limitations at the moment that are described in the README. And also the sources need to be cleaned up in order to be correct with regards to licensing (e.g. the original repo is under Apache 2.0 license, but the sources are EPL v1.0).
Having this project in my private repository does not make much sense if the OSGi community is interested in such a scenario. I already got in contact with Scott Lewis, the creator and maintainer of ECF and the JaxRs Distribution Provider. We were discussing whether the ECF Github repository would be a good fit, or some other place. After the discussion in the OSGi Specification call, we think osgi-technology would be a good place for it. The reasoning is:
- osgi-technology should be the place to search for OSGi related technology
- the Jakarta RS Distribution Provider uses the OSGi Jakarta RESTful Web Service reference implementation which is also located in osgi-technology
- the OSGi experts could help in maintaining the project
To move, basically Scott and I need to contribute the project to osgi-technology. The base is still his work, while I did the Jakarta related modifications. And we probably first need to solve the licensing stuff, so it can be contributed to osgi-technology.
Now the questions:
- is everybody fine with taking the Jakarta RS Distribution Provider to osgi-technology
- is there an interest in this project anyhow
I would actually like to see it there, but definitely need some help to finish stuff. I also don't want to simply move it to ECF and shift the burden of maintenance to Scott, as he also does not have the time and resources to maintain everything. But it also does not make sense to shift a project to osgi-technology, if there is no interest in it.
Please let me know what you think, so I can plan the next steps together with Scott.
Thanks,
Dirk