Hi Folks,
There's a new version of the ECF JaxRS Distribution Provider [1]. This
provider implements OSGi R7 Remote Services [2] via the JaxRS support in
new Jersey 2.28 or Apache CXF 3.3.
In practice, this means that any JaxRS-annotated service can be exported
as a spec-compliant Remote Service in Karaf or other environments by
adding service properties on service registration. An example of
running such an example in Karaf is documented here [3] with all example
source available here [1].
Both Jersey and CXF can be extended and/or configured to support custom
serialization, security, or other use-case specific distribution needs,
all within the JaxRS-standardized extension mechanisms.
OSGi R7 Remote Services has asynchronous remote services [4], service
intents, remote service admin, configurable and extensible service
discovery, and service dynamics, as well as versioning, proxy
creation...all integrated-via spec with any frameworks built upon the
OSGi service registry (DS, etc).
ECF also now has a Bndtools 4.2+ workspace and templates for creating
and running remote services with Bndtools [5]. These provide the repos
for the necessary bundles, as well as runnable examples and bndtools
project templates.
See blog posting [6] for more links.
Thanks,
Scott
[1] https://github.com/ECF/JaxRSProviders
[2]
https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html
[3] https://wiki.eclipse.org/Tutorial:_JaxRS_Remote_Services_on_Karaf
[4]
https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#d0e1407
[5]
https://wiki.eclipse.org/Bndtools_Support_for_Remote_Services_Development
[6]
http://eclipseecf.blogspot.com/2019/02/restful-osgi-r7-remote-services-with.html