Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Distribution Providers"
(→DubboProvider) |
(Undo revision 446115 by Slewis.composent.com (talk)) |
||
(25 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
==Introduction== | ==Introduction== | ||
− | + | The OSGi R7 Remote Services/Remote Service Admin specifications (chaps 100 and 122 in [https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteserviceadmin.html OSGi Enterprise spec]) allows for the use of multiple distribution providers. Distribution providers are responsible for the actual marshalling/serialization and network communication when a consumer invokes a remote service method. | |
− | + | ||
− | + | ||
The [[OSGi_Remote_Services_and_ECF | ECF Architecture]] also allows the use of multiple distribution providers. Further, ECF's open APIs and implementations supports the creation of custom distribution providers using any desired transport protocols, serialization formats and/or libraries. | The [[OSGi_Remote_Services_and_ECF | ECF Architecture]] also allows the use of multiple distribution providers. Further, ECF's open APIs and implementations supports the creation of custom distribution providers using any desired transport protocols, serialization formats and/or libraries. | ||
Line 21: | Line 19: | ||
[http://download.eclipse.org/rt/ecf/latest/javadoc/org/eclipse/ecf/remoteservice/package-summary.html Remote Service API Javadoc]<br> | [http://download.eclipse.org/rt/ecf/latest/javadoc/org/eclipse/ecf/remoteservice/package-summary.html Remote Service API Javadoc]<br> | ||
− | ==[https:// | + | ==Generic Provider== |
+ | |||
+ | The generic providers are based upon tcp transport socket api. They are built and released as part of the Eclipse Foundation project releases. See the ECF [https://www.eclipse.org/ecf/downloads.php Download Page]. | ||
====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1698916 Service Exported Config Types]==== | ====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1698916 Service Exported Config Types]==== | ||
− | '''ecf. | + | '''ecf.generic.server''', '''ecf.generic.client''', '''ecf.generic.ssl.server''', '''ecf.generic.ssl.client'''<br> |
====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1693415 Supported Intents]==== | ====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1693415 Supported Intents]==== | ||
− | '''osgi.async''', '''osgi.basic''', '''osgi.private''', '''osgi.confidential | + | '''osgi.async''', '''osgi.basic''', '''osgi.private''', '''osgi.confidential''' |
− | ===[[ | + | ===[[ECF_Generic_Provider_Configuration_Properties#Remote_Service_Configuration_Properties | Service Properties ]]=== |
− | === | + | ===Provider Bundles=== |
− | [https:// | + | [https://git.eclipse.org/c/ecf/org.eclipse.ecf.git/tree/framework/bundles/org.eclipse.ecf.sharedobject org.eclipse.ecf.sharedobject]<br> |
− | [https:// | + | [https://git.eclipse.org/c/ecf/org.eclipse.ecf.git/tree/framework/bundles/org.eclipse.ecf.provider org.eclipse.ecf.provider]<br> [https://git.eclipse.org/c/ecf/org.eclipse.ecf.git/tree/providers/bundles/org.eclipse.ecf.provider.remoteservice org.eclipse.ecf.provider.remoteservice]<br> |
− | [https:// | + | |
− | === | + | ===Download/Install/Develop=== |
− | [https:// | + | See [https://www.eclipse.org/ecf/downloads.php Download Page]<br> |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
====Bndtools Templates==== | ====Bndtools Templates==== | ||
− | The Bndtools Workspace has bndrun templates to us this distribution provider. See the [[ | + | The Bndtools Workspace has bndrun templates to us this distribution provider. See the [[Bndtools Support for Remote Services Development]] tutorial |
====Karaf Feature==== | ====Karaf Feature==== | ||
− | https:// | + | Part of ECF SDK: https://download.eclipse.org/rt/ecf/latest/karaf-features.xml |
− | + | See [https://wiki.eclipse.org/EIG:Install_into_Apache_Karaf Karaf Install Instructions] | |
+ | |||
+ | See [https://www.eclipse.org/ecf/downloads.php Download Page]<br> | ||
====Source Code==== | ====Source Code==== | ||
− | [ | + | Git Repo: [http://git.eclipse.org/c/ecf/org.eclipse.ecf.git ECF Git Repo] |
− | ====P2 | + | ====P2 Repo==== |
− | https:// | + | Part of ECF SDK: https://download.eclipse.org/rt/ecf/latest/site.p2/ |
− | + | See [https://www.eclipse.org/ecf/downloads.php Download Page]<br> | |
− | ==[https:// | + | ===Tutorials and Examples=== |
+ | |||
+ | See [https://wiki.eclipse.org/Using_the_Bndtools_Remote_Services_Project_Templates using Bndtools project templates] or [https://wiki.eclipse.org/Tutorial:_Building_your_first_OSGi_Remote_Service Building your first OSGi Remote Service] | ||
+ | |||
+ | ==r-OSGi Provider== | ||
====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1698916 Service Exported Config Types]==== | ====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1698916 Service Exported Config Types]==== | ||
− | '''ecf. | + | '''ecf.r_osgi.peer''', '''ecf.r_osgi.peer.ws''' (see r-OSGi over Websockets below), '''ecf.r_osgi.peer.wss''' (see r-OSGi over Websockets below)<br> |
====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1693415 Supported Intents]==== | ====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1693415 Supported Intents]==== | ||
Line 77: | Line 76: | ||
'''osgi.async''', '''osgi.basic''', '''osgi.private''', '''osgi.confidential''' | '''osgi.async''', '''osgi.basic''', '''osgi.private''', '''osgi.confidential''' | ||
− | ===[[ | + | ===[[R-OSGi_Properties | Remote Service Properties ]]=== |
− | ===[https://github.com/ECF/ | + | ===[https://github.com/ECF/DubboProvider/tree/master/bundles Provider Bundles]=== |
− | [https:// | + | [https://git.eclipse.org/c/ecf/org.eclipse.ecf.git/tree/providers/bundles/org.eclipse.ecf.provider.r_osgi org.eclipse.ecf.provider.r_osgi]<br> |
+ | [https://git.eclipse.org/c/ecf/org.eclipse.ecf.git/tree/protocols/bundles/ch.ethz.iks.r_osgi.remote ch.ethz.iks.r_osgi.remote]<br> | ||
− | ===Download/Install=== | + | ===Download/Install/Develop=== |
− | + | See [https://www.eclipse.org/ecf/downloads.php Download Page]<br> | |
− | === | + | ====Bndtools Templates==== |
− | + | The Bndtools Workspace has bndrun templates to us this distribution provider. See the [[Bndtools Support for Remote Services Development]] tutorial | |
− | + | ||
− | ===Karaf Feature=== | + | ====Karaf Feature==== |
− | https:// | + | Part of ECF SDK: https://download.eclipse.org/rt/ecf/latest/karaf-features.xml |
See [https://wiki.eclipse.org/EIG:Install_into_Apache_Karaf Karaf Install Instructions] | See [https://wiki.eclipse.org/EIG:Install_into_Apache_Karaf Karaf Install Instructions] | ||
− | + | See [https://www.eclipse.org/ecf/downloads.php Download Page]<br> | |
− | + | ====Source Code==== | |
− | + | Git Repo: [http://git.eclipse.org/c/ecf/org.eclipse.ecf.git ECF Git Repo] | |
− | == | + | ====P2 Repo==== |
− | + | Part of ECF SDK: https://download.eclipse.org/rt/ecf/latest/site.p2/ | |
+ | |||
+ | See [https://www.eclipse.org/ecf/downloads.php Download Page]<br> | ||
+ | |||
+ | ===r-OSGi over Websockets=== | ||
+ | |||
+ | The two r-OSGi providers: '''ecf.r_osgi.peer.ws''', and '''ecf.r_osgi.peer.wss''' are supported by adding two additional bundles: ch.ethz.iks.r_osgi.transport.http, and [https://github.com/TooTallNate/Java-WebSocket Java Websocket]. These two bundles are available in the [https://github.com/ECF/Websockets ECF Github Websockets Repo], at the following paths: <br> | ||
+ | ch.ethz.iks.r_osgi.transport.http: bundles/ch.ethz.iks.r_osgi.transport.http<br> | ||
+ | java_websocket: bundles/java_websocket<br> | ||
+ | <br> | ||
+ | [https://github.com/ECF/ROSGI-Websockets-Provider Recent build of these bundles is available here] | ||
+ | |||
+ | ==[https://github.com/ECF/JMS ActiveMQ Providers]== | ||
+ | |||
+ | JMS/ActiveMQ providers are based upon the [https://en.wikipedia.org/wiki/Java_Message_Service Java Messaging Service] (JMS) specification version 1.1+. | ||
====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1698916 Service Exported Config Types]==== | ====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1698916 Service Exported Config Types]==== | ||
− | '''ecf. | + | '''ecf.jms.activemq.tcp.manager''','''ecf.jms.activemq.tcp.client''' |
====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1693415 Supported Intents]==== | ====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1693415 Supported Intents]==== | ||
− | '''osgi.async''', '''osgi.basic''', '''osgi.private | + | '''osgi.async''', '''osgi.basic''', '''osgi.private''' |
− | ===[[ | + | ===[[ActiveMQ Service Properties | Remote Service Properties ]]=== |
− | ===Provider Bundles=== | + | ===[https://github.com/ECF/JMS/tree/master/bundles Provider Bundles]=== |
− | [https:// | + | [https://github.com/ECF/JMS/tree/master/bundles/org.eclipse.ecf.provider.jms org.eclipse.ecf.provider.jms]<br> |
− | [https:// | + | [https://github.com/ECF/JMS/tree/master/bundles/org.eclipse.ecf.provider.jms.activemq org.eclipse.ecf.provider.jms.activemq] (based upon ActiveMQ 5.12 currently...see source code)<br> |
− | ===Download/Install=== | + | ===Download/Install/Develop=== |
− | See [https:// | + | See [https://github.com/ECF/JMS/releases Github Releases] |
− | === | + | ====Bndtools Templates==== |
− | + | The Bndtools Workspace has bndrun templates to us this distribution provider. See the [[Bndtools Support for Remote Services Development]] tutorial | |
− | === | + | ====Karaf Feature==== |
− | + | https://raw.githubusercontent.com/ECF/JMS/master/build/karaf-features.xml | |
− | + | <b>NOTE:</b> Depends upon version 3.14.5 or higher of ECF Remote Service SDK. See [https://wiki.eclipse.org/EIG:Install_into_Apache_Karaf Karaf Install Instructions] | |
− | + | ====Source Code==== | |
− | + | [https://github.com/ECF ECF Github] Repo: [https://github.com/ECF/JMS ECF JMS Github Repo] | |
− | + | ====P2 Repository==== | |
− | + | https://raw.githubusercontent.com/ECF/JMS/master/build/ | |
− | + | <b>NOTE:</b> Depends upon version 3.14.5 or higher of ECF Remote Service SDK. See [http://www.eclipse.org/ecf/downloads.php ecf downloads] for Eclipse or Target Platform installation | |
− | + | ==[https://github.com/ECF/DubboProvider DubboProvider]== | |
− | + | ||
− | + | ||
====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1698916 Service Exported Config Types]==== | ====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1698916 Service Exported Config Types]==== | ||
− | '''ecf. | + | '''ecf.dubbo.server''', '''ecf.dubbo.client'''<br> |
====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1693415 Supported Intents]==== | ====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1693415 Supported Intents]==== | ||
− | '''osgi.async''', '''osgi.basic''', '''osgi.private''', '''osgi.confidential''' | + | '''osgi.async''', '''osgi.basic''', '''osgi.private''', '''osgi.confidential''', '''dubbo''' |
− | ===[[ | + | ===[[Dubbo Service Properties | Remote Service Properties]]=== |
===[https://github.com/ECF/DubboProvider/tree/master/bundles Provider Bundles]=== | ===[https://github.com/ECF/DubboProvider/tree/master/bundles Provider Bundles]=== | ||
− | [https:// | + | [https://github.com/ECF/DubboProvider/tree/master/bundles/org.eclipse.ecf.provider.dubbo.common org.eclipse.ecf.provider.dubbo.common] -- Common support bundle for both Server and Client<br> |
− | [https:// | + | [https://github.com/ECF/DubboProvider/tree/master/bundles/org.eclipse.ecf.provider.dubbo.server org.eclipse.ecf.provider.dubbo.server] -- Remote Service Server Container<br> |
+ | [https://github.com/ECF/DubboProvider/tree/master/bundles/org.eclipse.ecf.provider.dubbo.client org.eclipse.ecf.provider.dubbo.client] -- Remote Service Client Container<br> | ||
− | === | + | ===[https://github.com/ECF/DubboProvider/tree/master/examples Example Remote Service]=== |
− | + | [https://github.com/ECF/DubboProvider/tree/master/examples/org.eclipse.ecf.examples.provider.dubbo.demo.api org.eclipse.ecf.examples.provider.dubbo.demo.api] -- Demo API bundle<br> | |
+ | [https://github.com/ECF/DubboProvider/tree/master/examples/org.eclipse.ecf.examples.provider.dubbo.demo.host org.eclipse.ecf.examples.provider.dubbo.demo.host] -- Demo Service Impl bundle<br> | ||
+ | [https://github.com/ECF/DubboProvider/tree/master/examples/org.eclipse.ecf.examples.provider.dubbo.demo.consumer org.eclipse.ecf.examples.provider.dubbo.demo.consumer] -- Demo Service Consumer bundle<br> | ||
− | === | + | ===Download/Install/Develop=== |
− | + | '''[https://github.com/ECF/DubboProvider/releases Github Releases]''' | |
− | === | + | ====Bndtools Templates==== |
− | The | + | The Bndtools Workspace has bndrun templates to us this distribution provider. See the [[Bndtools Support for Remote Services Development]] tutorial |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | ===Karaf Feature=== | + | ====Karaf Feature==== |
− | + | https://raw.githubusercontent.com/ECF/DubboProvider/master/build/karaf-features.xml | |
− | See [https://wiki.eclipse.org/EIG:Install_into_Apache_Karaf Karaf Install Instructions] | + | <b>NOTE:</b> Depends upon version 3.14.5 or higher of ECF Remote Service SDK. See [https://wiki.eclipse.org/EIG:Install_into_Apache_Karaf Karaf Install Instructions] |
− | + | ====Source Code==== | |
− | + | [https://github.com/ECF ECF Github] Repo: [https://github.com/ECF/DubboProvider ECF Dubbo Distribution Provider Github Repo] | |
− | + | ====P2 Repository==== | |
− | + | https://raw.githubusercontent.com/ECF/DubboProvider/master/build/ | |
− | + | <b>NOTE:</b> Depends upon version 3.14.5 or higher of ECF Remote Service SDK. See [http://www.eclipse.org/ecf/downloads.php ecf downloads] for Eclipse or Target Platform installation | |
− | + | ==[https://github.com/ECF/HazelcastProvider Hazelcast Provider]== | |
====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1698916 Service Exported Config Types]==== | ====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1698916 Service Exported Config Types]==== | ||
− | '''ecf.jms. | + | '''ecf.jms.hazelcast.manager''', '''ecf.jms.hazelcast.member'''<br> |
====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1693415 Supported Intents]==== | ====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1693415 Supported Intents]==== | ||
+ | '''osgi.async''', '''osgi.basic''', '''osgi.private''', '''osgi.confidential''', '''hazelcast''' | ||
− | + | ===[[Hazelcast Service Properties | Remote Service Properties]]=== | |
− | ===[ | + | ===[https://github.com/ECF/HazelcastProvider/tree/master/bundles Provider Bundles]=== |
− | + | [https://github.com/ECF/HazelcastProvider/tree/master/bundles/org.eclipse.ecf.provider.jms.hazelcast org.eclipse.ecf.provider.jms.hazelcast]<br> | |
− | + | ===Download/Install/Develop=== | |
− | + | ||
− | + | See [https://github.com/ECF/HazelcastProvider/releases GitHub Releases] | |
− | + | ====Bndtools Templates==== | |
− | + | The Bndtools Workspace has bndrun templates to us this distribution provider. See the [[Bndtools Support for Remote Services Development]] tutorial | |
− | + | ====Karaf Feature==== | |
− | + | https://raw.githubusercontent.com/ECF/HazelcastProvider/master/build/karaf-features.xml | |
− | https:// | + | See [https://wiki.eclipse.org/EIG:Install_into_Apache_Karaf Karaf Install Instructions] |
− | + | ====Source Code==== | |
− | + | [https://github.com/ECF ECF Github] Repo: [https://github.com/ECF/HazelcastProvider ECF Hazelcast Provider Github Repo] | |
− | https://raw.githubusercontent.com/ECF/ | + | ====P2 Repository==== |
+ | |||
+ | https://raw.githubusercontent.com/ECF/HazelcastProvider/master/build/ | ||
<b>NOTE:</b> Depends upon version 3.14.5 or higher of ECF Remote Service SDK. See [http://www.eclipse.org/ecf/downloads.php ecf downloads] for Eclipse or Target Platform installation | <b>NOTE:</b> Depends upon version 3.14.5 or higher of ECF Remote Service SDK. See [http://www.eclipse.org/ecf/downloads.php ecf downloads] for Eclipse or Target Platform installation | ||
− | ==[https://github.com/ECF/ | + | ==[https://github.com/ECF/grpc-RemoteServicesProvider Google Grpc Provider]== |
− | + | ||
− | + | ||
====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1698916 Service Exported Config Types]==== | ====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1698916 Service Exported Config Types]==== | ||
− | '''ecf. | + | '''ecf.grpc.server'''<br> |
====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1693415 Supported Intents]==== | ====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1693415 Supported Intents]==== | ||
+ | '''osgi.async''', '''osgi.basic''', '''osgi.private''', '''osgi.confidential''', '''grpc''' | ||
− | + | ===[[Grpc Service Properties | Remote Service Properties]]=== | |
− | ===[ | + | ===[https://github.com/ECF/grpc-RemoteServicesProvider/tree/master/bundles Provider Bundles]=== |
− | + | [https://github.com/ECF/grpc-RemoteServicesProvider/tree/master/bundles/org.eclipse.ecf.provider.grpc org.eclipse.ecf.provider.grpc]<br> | |
− | + | ===Download/Install/Develop=== | |
− | + | See [https://github.com/ECF/grpc-RemoteServicesProvider/releases GitHub Releases] | |
− | + | ====Bndtools Templates==== | |
− | === | + | ====Karaf Feature==== |
− | + | https://raw.githubusercontent.com/ECF/grpc-RemoteServicesProvider/master/build/karaf-features.xml | |
− | + | See [https://wiki.eclipse.org/EIG:Install_into_Apache_Karaf Karaf Install Instructions] | |
− | + | ====Source Code==== | |
− | + | [https://github.com/ECF ECF Github] Repo: [https://github.com/ECF/grpc-RemoteServicesProvider ECF Remote Services Grpc Provider Github Repo] | |
− | ===P2 Repository=== | + | ====P2 Repository==== |
− | https://raw.githubusercontent.com/ECF/ | + | https://raw.githubusercontent.com/ECF/grpc-RemoteServicesProvider/master/build/ |
<b>NOTE:</b> Depends upon version 3.14.5 or higher of ECF Remote Service SDK. See [http://www.eclipse.org/ecf/downloads.php ecf downloads] for Eclipse or Target Platform installation | <b>NOTE:</b> Depends upon version 3.14.5 or higher of ECF Remote Service SDK. See [http://www.eclipse.org/ecf/downloads.php ecf downloads] for Eclipse or Target Platform installation | ||
+ | |||
+ | ==[https://github.com/ECF/JGroups JavaGroups Provider]== | ||
+ | |||
+ | The ECF JavaGroups Provider is based upon JavaGroups ([http://jgroups.org JGroups]). | ||
+ | |||
+ | ====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1698916 Service Exported Config Types]==== | ||
+ | '''ecf.jgroups.manager''', '''ecf.jgroups.client''' | ||
+ | |||
+ | ====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1693415 Supported Intents]==== | ||
+ | |||
+ | '''osgi.async''', '''osgi.basic''', '''osgi.private''', '''osgi.confidential''' | ||
+ | |||
+ | ===[[JavaGroups Service Properties | Remote Service Properties ]]=== | ||
+ | |||
+ | ===[https://github.com/ECF/JGroups Provider Bundles]=== | ||
+ | |||
+ | [https://github.com/ECF/JGroups/tree/master/bundles/org.eclipse.ecf.provider.jgroups org.eclipse.ecf.provider.jgroups]<br> | ||
+ | |||
+ | ===Download/Install/Develop=== | ||
+ | |||
+ | See '''[https://github.com/ECF/JGroups/releases GitHub Release]''' | ||
+ | |||
+ | ====Bndtools Templates==== | ||
+ | |||
+ | The Bndtools Workspace has bndrun templates to us this distribution provider. See the [[Bndtools Support for Remote Services Development]] tutorial | ||
+ | |||
+ | ===Source Code=== | ||
+ | |||
+ | [https://github.com/ECF ECF Github] Repo: [https://github.com/ECF/https://github.com/ECF/JGroups ECF JavaGroups Provider Github Repo] | ||
+ | |||
+ | ====P2 Repo==== | ||
+ | |||
+ | https://raw.githubusercontent.com/ECF/JGroups/master/build/ | ||
==[https://github.com/ECF/JaxRSProviders Jax-RS Providers]== | ==[https://github.com/ECF/JaxRSProviders Jax-RS Providers]== | ||
Line 275: | Line 319: | ||
Since REST is based upon a client-server model of services, Remote Services based upon rest may only be exported on servers. Clients may import, but are unable to export Remote Services. | Since REST is based upon a client-server model of services, Remote Services based upon rest may only be exported on servers. Clients may import, but are unable to export Remote Services. | ||
− | === | + | ===Jersey Jax-RS Distribution Provider=== |
====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1698916 Service Exported Config Types]==== | ====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1698916 Service Exported Config Types]==== | ||
Line 294: | Line 338: | ||
[https://github.com/ECF/JaxRSProviders/tree/master/bundles/org.eclipse.ecf.provider.jersey.client org.eclipse.ecf.provider.jersey.client]<br> | [https://github.com/ECF/JaxRSProviders/tree/master/bundles/org.eclipse.ecf.provider.jersey.client org.eclipse.ecf.provider.jersey.client]<br> | ||
− | ====Download/Install==== | + | ====Download/Install/Develop==== |
See [https://github.com/ECF/JaxRSProviders/releases GitHub Release] | See [https://github.com/ECF/JaxRSProviders/releases GitHub Release] | ||
− | ==== | + | =====Bndtools Templates===== |
− | [ | + | The Bndtools Workspace has bndrun templates to us this distribution provider. See the [[Bndtools Support for Remote Services Development]] tutorial |
− | ==== | + | =====Karaf Feature===== |
− | https://raw.githubusercontent.com/ECF/JaxRSProviders/master/build/ | + | https://raw.githubusercontent.com/ECF/JaxRSProviders/master/build/karaf-features.xml |
− | <b>NOTE:</b> Depends upon version 3.14.5 or higher of ECF Remote Service SDK. See [ | + | <b>NOTE:</b> Depends upon version 3.14.5 or higher of ECF Remote Service SDK. See [https://wiki.eclipse.org/EIG:Install_into_Apache_Karaf Karaf Install Instructions] |
− | ==== | + | =====Source Code===== |
− | https:// | + | [https://github.com/ECF ECF Github] Repo: [https://github.com/ECF/JaxRSProviders ECF JaxRS Providers Github Repo] |
− | <b>NOTE:</b> Depends upon version 3.14.5 or higher of ECF Remote Service SDK. See [ | + | =====P2 Repository===== |
+ | |||
+ | https://raw.githubusercontent.com/ECF/JaxRSProviders/master/build/ | ||
+ | |||
+ | <b>NOTE:</b> Depends upon version 3.14.5 or higher of ECF Remote Service SDK. See [http://www.eclipse.org/ecf/downloads.php ecf downloads] for Eclipse or Target Platform installation | ||
===Apache CXF Jax-RS Implementation=== | ===Apache CXF Jax-RS Implementation=== | ||
Line 325: | Line 373: | ||
====[[Apache CXF JaxRS Service Properties | Remote Service Properties]]==== | ====[[Apache CXF JaxRS Service Properties | Remote Service Properties]]==== | ||
− | ====[https://github.com/ECF/JaxRSProviders/tree/master/bundles | + | ====[https://github.com/ECF/JaxRSProviders/tree/master/bundles Provider Bundles]==== |
[https://github.com/ECF/JaxRSProviders/tree/master/bundles/org.eclipse.ecf.provider.jaxrs org.eclipse.ecf.provider.jaxrs]<br> | [https://github.com/ECF/JaxRSProviders/tree/master/bundles/org.eclipse.ecf.provider.jaxrs org.eclipse.ecf.provider.jaxrs]<br> | ||
Line 333: | Line 381: | ||
[https://github.com/ECF/JaxRSProviders/tree/master/bundles/org.eclipse.ecf.provider.cxf.client org.eclipse.ecf.provider.cxf.client]<br> | [https://github.com/ECF/JaxRSProviders/tree/master/bundles/org.eclipse.ecf.provider.cxf.client org.eclipse.ecf.provider.cxf.client]<br> | ||
− | ==== | + | ====Download/Install/Develop==== |
− | [https://github.com/ECF | + | See [https://github.com/ECF/JaxRSProviders/releases GitHub Release] |
− | ====Karaf Feature==== | + | =====Bndtools Templates===== |
+ | |||
+ | The Bndtools Workspace has bndrun templates to us this distribution provider. See the [[Bndtools Support for Remote Services Development]] tutorial | ||
+ | |||
+ | =====Karaf Feature===== | ||
https://raw.githubusercontent.com/ECF/JaxRSProviders/master/build/karaf-features.xml | https://raw.githubusercontent.com/ECF/JaxRSProviders/master/build/karaf-features.xml | ||
Line 343: | Line 395: | ||
<b>NOTE:</b> Depends upon version 3.14.5 or higher of ECF Remote Service SDK. See [https://wiki.eclipse.org/EIG:Install_into_Apache_Karaf Karaf Install Instructions] | <b>NOTE:</b> Depends upon version 3.14.5 or higher of ECF Remote Service SDK. See [https://wiki.eclipse.org/EIG:Install_into_Apache_Karaf Karaf Install Instructions] | ||
− | ====P2 Repository==== | + | =====Source Code===== |
+ | |||
+ | [https://github.com/ECF ECF Github] Repo: [https://github.com/ECF/JaxRSProviders ECF JaxRS Providers Github Repo] | ||
+ | |||
+ | =====P2 Repository===== | ||
https://raw.githubusercontent.com/ECF/JaxRSProviders/master/build/ | https://raw.githubusercontent.com/ECF/JaxRSProviders/master/build/ | ||
Line 349: | Line 405: | ||
<b>NOTE:</b> Depends upon version 3.14.5 or higher of ECF Remote Service SDK. See [http://www.eclipse.org/ecf/downloads.php ecf downloads] for Eclipse or Target Platform installation | <b>NOTE:</b> Depends upon version 3.14.5 or higher of ECF Remote Service SDK. See [http://www.eclipse.org/ecf/downloads.php ecf downloads] for Eclipse or Target Platform installation | ||
− | == | + | ==[https://github.com/ECF/Mqtt-Provider MQTT Provider]== |
− | ECF has | + | The ECF team has created a Remote Service provider based upon the MQTT3 [https://www.eclipse.org/paho/ Paho] implementation. We are currently using [https://www.eclipse.org/paho/ Paho] version 1.2.1. |
− | === | + | ====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1698916 Service Exported Config Types]==== |
− | '''ecf. | + | '''ecf.jms.mqtt.manager''', '''ecf.jms.mqtt.client''' |
− | + | ====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1693415 Supported Intents]==== | |
+ | '''osgi.async''', '''osgi.basic''', '''osgi.private''' | ||
+ | |||
+ | ===[[MQTT Service Properties | Remote Service Properties]]=== | ||
+ | |||
+ | ===[https://github.com/ECF/Mqtt-Provider/tree/master/bundles Provider Bundles]=== | ||
+ | |||
+ | [https://github.com/ECF/Mqtt-Provider/tree/master/bundles/org.eclipse.ecf.provider.jms.mqtt org.eclipse.ecf.provider.jms.mqtt]<br> | ||
+ | |||
+ | ===Download/Install/Develop=== | ||
+ | |||
+ | See [https://github.com/ECF/Mqtt-Provider/releases Github Releases] | ||
+ | |||
+ | ====Bndtools Templates==== | ||
+ | |||
+ | The Bndtools Workspace has bndrun templates to us this distribution provider. See the [[Bndtools Support for Remote Services Development]] tutorial | ||
+ | |||
+ | ====Karaf Feature==== | ||
+ | |||
+ | https://raw.githubusercontent.com/ECF/Mqtt-Provider/master/build/karaf-features.xml | ||
+ | |||
+ | <b>NOTE:</b> Depends upon version 3.14.5 or higher of ECF Remote Service SDK. See [https://wiki.eclipse.org/EIG:Install_into_Apache_Karaf Karaf Install Instructions] | ||
+ | |||
+ | ====Source Code==== | ||
+ | |||
+ | [https://github.com/ECF ECF Github] Repo: [https://github.com/ECF/Mqtt-Provider ECF MQTT Provider Github Repo] | ||
+ | |||
+ | ====P2 Repository==== | ||
+ | |||
+ | https://raw.githubusercontent.com/ECF/Mqtt-Provider/master/build/ | ||
+ | |||
+ | <b>NOTE:</b> Depends upon version 3.14.5 or higher of ECF Remote Service SDK. See [http://www.eclipse.org/ecf/downloads.php ecf downloads] for Eclipse or Target Platform installation | ||
==[https://github.com/ECF/Py4j-RemoteServicesProvider Python OSGi Services Provider]== | ==[https://github.com/ECF/Py4j-RemoteServicesProvider Python OSGi Services Provider]== | ||
Line 363: | Line 450: | ||
Please see [[Tutorial: Python for OSGi Services]] | Please see [[Tutorial: Python for OSGi Services]] | ||
− | + | The Py4j Remote Services Provider is based upon the [https://www.py4j.org/ Py4j project]. It can also optionally use [https://developers.google.com/protocol-buffers Google Protocol Buffers] for serialization/deserialization between Java and Python, and/or [https://google.github.io/flatbuffers/ Google Flatbuffers]. | |
− | + | ===[https://github.com/ECF/Py4j-RemoteServicesProvider/tree/master/bundles Provider Bundles]=== | |
− | + | [https://github.com/ECF/Py4j-RemoteServicesProvider/tree/master/bundles/org.eclipse.ecf.provider.direct org.eclipse.ecf.provider.direct]<br> | |
+ | [https://github.com/ECF/Py4j-RemoteServicesProvider/tree/master/bundles/org.eclipse.ecf.python org.eclipse.ecf.python]<br> | ||
+ | [https://github.com/ECF/Py4j-RemoteServicesProvider/tree/master/bundles/org.eclipse.ecf.python.protobuf org.eclipse.ecf.python.protobuf]<br> | ||
+ | [https://github.com/ECF/Py4j-RemoteServicesProvider/tree/master/bundles/org.eclipse.ecf.provider.py4j org.eclipse.ecf.provider.py4j]<br> | ||
+ | [https://github.com/ECF/Py4j-RemoteServicesProvider/tree/master/bundles/org.eclipse.ecf.provider.py4j.flatbuf org.eclipse.ecf.provider.py4j.flatbuf]<br> | ||
+ | [https://github.com/ECF/Py4j-RemoteServicesProvider/tree/master/bundles/org.eclipse.ecf.provider.direct.flatbuf org.eclipse.ecf.provider.direct.flatbuf]<br> | ||
+ | [https://github.com/ECF/Py4j-RemoteServicesProvider/tree/master/bundles/org.eclipse.ecf.provider.direct.protobuf org.eclipse.ecf.provider.direct.protobuf]<br> | ||
+ | [https://github.com/ECF/Py4j-RemoteServicesProvider/tree/master/bundles/org.eclipse.ecf.provider.py4j.protobuf org.eclipse.ecf.provider.py4j.protobuf]<br> | ||
− | + | ===Download/Install/Develop=== | |
− | + | See [https://github.com/ECF/Py4j-RemoteServicesProvider/releases GitHub Releases] | |
− | + | ====Bndtools Templates==== | |
− | + | The Bndtools Workspace has bndrun templates to us this distribution provider. See the [[Bndtools_Support_for_Remote_Services_Development | Bndtools For Remote Services Development] | |
− | + | ====Karaf Feature==== | |
− | + | ||
− | + | ||
− | + | ||
− | + | https://raw.githubusercontent.com/ECF/JMS/master/build/karaf-features.xml | |
− | + | <b>NOTE:</b> Depends upon version 3.14.5 or higher of ECF Remote Service SDK. See [https://wiki.eclipse.org/EIG:Install_into_Apache_Karaf Karaf Install Instructions] | |
− | + | ||
− | ==[https://github.com/ECF/ | + | ====Source Code==== |
+ | |||
+ | [https://github.com/ECF ECF Github] Repo: [https://github.com/ECF/Py4j-RemoteServicesProvider ECF Python Provider Github Repo] | ||
+ | |||
+ | ==[https://github.com/ECF/XmlRpcProvider XML-RPC Provider]== | ||
====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1698916 Service Exported Config Types]==== | ====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1698916 Service Exported Config Types]==== | ||
− | '''ecf. | + | '''ecf.xmlrpc.server''', '''ecf.xmlrpc.client'''<br> |
====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1693415 Supported Intents]==== | ====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1693415 Supported Intents]==== | ||
− | |||
− | + | '''osgi.async''', '''osgi.basic''', '''osgi.private''', '''osgi.confidential''' | |
− | ===[ | + | ===[[XmlRpc Service Properties | Remote Service Properties ]]=== |
− | [https://github.com/ECF/ | + | ===[https://github.com/ECF/XmlRpcProvider/tree/master/bundles Provider Bundle]=== |
− | + | [https://github.com/ECF/XmlRpcProvider/tree/master/bundles/org.eclipse.ecf.provider.xmlrpc org.eclipse.ecf.provider.xmlrpc] | |
− | + | ===Download/Install/Develop=== | |
+ | |||
+ | '''[https://github.com/ECF/XmlRpcProvider/releases Github Releases]''' | ||
+ | |||
+ | ====Bndtools Templates==== | ||
+ | |||
+ | The Bndtools Workspace has bndrun templates to us this distribution provider. See the [[Bndtools Support for Remote Services Development]] tutorial | ||
====Karaf Feature==== | ====Karaf Feature==== | ||
− | https://raw.githubusercontent.com/ECF/ | + | https://raw.githubusercontent.com/ECF/XmlRpcProvider/master/build/karaf-features.xml |
See [https://wiki.eclipse.org/EIG:Install_into_Apache_Karaf Karaf Install Instructions] | See [https://wiki.eclipse.org/EIG:Install_into_Apache_Karaf Karaf Install Instructions] | ||
+ | |||
+ | ====Source Code==== | ||
+ | |||
+ | [https://github.com/ECF ECF Github] Repo: [https://github.com/ECF/XmlRpcProvider ECF XML-RPC Provider Github Repo], Paths:<br> | ||
+ | '''org.eclipse.ecf.provider.xmlrpc''': bundles/org.eclipse.ecf.provider.xmlrpc<br> | ||
====P2 Repository==== | ====P2 Repository==== | ||
− | https://raw.githubusercontent.com/ECF/ | + | https://raw.githubusercontent.com/ECF/XmlRpcProvider/master/build/ |
<b>NOTE:</b> Depends upon version 3.14.5 or higher of ECF Remote Service SDK. See [http://www.eclipse.org/ecf/downloads.php ecf downloads] for Eclipse or Target Platform installation | <b>NOTE:</b> Depends upon version 3.14.5 or higher of ECF Remote Service SDK. See [http://www.eclipse.org/ecf/downloads.php ecf downloads] for Eclipse or Target Platform installation | ||
− | == | + | ==Providers created via ECF REST API== |
− | + | ECF has provided an API to aid in the creation of REST-based Remote Services provider. Using this API, it's possible to create a Remote Service client/proxy that uses an '''existing''' REST-based service. Thus new Remote Services can be created to expose an existing REST-based service. The following tutorial: [[Tutorial:_ECF_Remote_Services_for_Accessing_Existing_REST_Services | ECF Remote Services for Accessing Existing REST Services]] describes how to use the ECF REST API to create client provider to access an existing REST service. | |
− | + | ||
− | + | ||
===OSGi Service Exported Configs=== | ===OSGi Service Exported Configs=== | ||
− | '''ecf. | + | '''ecf.rest.client'''<br> |
− | + | As mentioned above, only REST servers may export Remote Services, so the ecf.rest.client provider may not export Remote Services. | |
− | + | ===Download/Install/Develop=== | |
− | + | P2 Repo and Karaf Feature: See [https://www.eclipse.org/ecf/downloads.php Download Page]<br> | |
− | + | P2 Feature ID: '''org.eclipse.ecf.remoteservice.rest.feature'''<br> | |
− | + | <br> | |
− | + | Karaf Feature: '''ecf-remoteservices-rest''' in repos given on [[EIG:Install_into_Apache_Karaf | Karaf Installation Page]] | |
− | org.eclipse.ecf. | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
===Source Code=== | ===Source Code=== | ||
− | + | Git Repo: [http://git.eclipse.org/c/ecf/org.eclipse.ecf.git ECF Git Repo], Paths:<br> | |
− | '''org.eclipse.ecf. | + | '''org.eclipse.ecf.remoteservice.rest''': framework/bundles/org.eclipse.ecf.remoteservice.rest |
− | + | ||
− | + |
Latest revision as of 19:26, 24 October 2022
Contents
- 1 Introduction
- 2 Remote Services API
- 3 Generic Provider
- 4 r-OSGi Provider
- 5 ActiveMQ Providers
- 6 DubboProvider
- 7 Hazelcast Provider
- 8 Google Grpc Provider
- 9 JavaGroups Provider
- 10 Jax-RS Providers
- 11 MQTT Provider
- 12 Python OSGi Services Provider
- 13 XML-RPC Provider
- 14 Providers created via ECF REST API
Introduction
The OSGi R7 Remote Services/Remote Service Admin specifications (chaps 100 and 122 in OSGi Enterprise spec) allows for the use of multiple distribution providers. Distribution providers are responsible for the actual marshalling/serialization and network communication when a consumer invokes a remote service method.
The ECF Architecture also allows the use of multiple distribution providers. Further, ECF's open APIs and implementations supports the creation of custom distribution providers using any desired transport protocols, serialization formats and/or libraries.
Remote Services API
ECF's API for distribution providers is the Remote Services API (RSAPI). Implementing this API is the only requirement to create a RS/RSA standards compliant distribution provider. All of the distribution providers implement the RSAPI.
Symbolic Name: org.eclipse.ecf.remoteservice
Minimum EE: J2SE-1.7+
Dependencies
- Framework: OSGi R6+ (Equinox Mars+ or Felix 5.2.0+)
- ECF Core Bundles: org.eclipse.ecf, org.eclipse.ecf.identity
- org.eclipse.equinox.concurrent.future bundle
- org.eclipse.ecf.remoteservice.asyncproxy bundle version 1.X (Java 7) or 2.X (Java 8)
Generic Provider
The generic providers are based upon tcp transport socket api. They are built and released as part of the Eclipse Foundation project releases. See the ECF Download Page.
Service Exported Config Types
ecf.generic.server, ecf.generic.client, ecf.generic.ssl.server, ecf.generic.ssl.client
Supported Intents
osgi.async, osgi.basic, osgi.private, osgi.confidential
Service Properties
Provider Bundles
org.eclipse.ecf.sharedobject
org.eclipse.ecf.provider
org.eclipse.ecf.provider.remoteservice
Download/Install/Develop
See Download Page
Bndtools Templates
The Bndtools Workspace has bndrun templates to us this distribution provider. See the Bndtools Support for Remote Services Development tutorial
Karaf Feature
Part of ECF SDK: https://download.eclipse.org/rt/ecf/latest/karaf-features.xml
See Karaf Install Instructions
See Download Page
Source Code
Git Repo: ECF Git Repo
P2 Repo
Part of ECF SDK: https://download.eclipse.org/rt/ecf/latest/site.p2/
See Download Page
Tutorials and Examples
See using Bndtools project templates or Building your first OSGi Remote Service
r-OSGi Provider
Service Exported Config Types
ecf.r_osgi.peer, ecf.r_osgi.peer.ws (see r-OSGi over Websockets below), ecf.r_osgi.peer.wss (see r-OSGi over Websockets below)
Supported Intents
osgi.async, osgi.basic, osgi.private, osgi.confidential
Remote Service Properties
Provider Bundles
org.eclipse.ecf.provider.r_osgi
ch.ethz.iks.r_osgi.remote
Download/Install/Develop
See Download Page
Bndtools Templates
The Bndtools Workspace has bndrun templates to us this distribution provider. See the Bndtools Support for Remote Services Development tutorial
Karaf Feature
Part of ECF SDK: https://download.eclipse.org/rt/ecf/latest/karaf-features.xml
See Karaf Install Instructions
See Download Page
Source Code
Git Repo: ECF Git Repo
P2 Repo
Part of ECF SDK: https://download.eclipse.org/rt/ecf/latest/site.p2/
See Download Page
r-OSGi over Websockets
The two r-OSGi providers: ecf.r_osgi.peer.ws, and ecf.r_osgi.peer.wss are supported by adding two additional bundles: ch.ethz.iks.r_osgi.transport.http, and Java Websocket. These two bundles are available in the ECF Github Websockets Repo, at the following paths:
ch.ethz.iks.r_osgi.transport.http: bundles/ch.ethz.iks.r_osgi.transport.http
java_websocket: bundles/java_websocket
Recent build of these bundles is available here
ActiveMQ Providers
JMS/ActiveMQ providers are based upon the Java Messaging Service (JMS) specification version 1.1+.
Service Exported Config Types
ecf.jms.activemq.tcp.manager,ecf.jms.activemq.tcp.client
Supported Intents
osgi.async, osgi.basic, osgi.private
Remote Service Properties
Provider Bundles
org.eclipse.ecf.provider.jms
org.eclipse.ecf.provider.jms.activemq (based upon ActiveMQ 5.12 currently...see source code)
Download/Install/Develop
See Github Releases
Bndtools Templates
The Bndtools Workspace has bndrun templates to us this distribution provider. See the Bndtools Support for Remote Services Development tutorial
Karaf Feature
https://raw.githubusercontent.com/ECF/JMS/master/build/karaf-features.xml
NOTE: Depends upon version 3.14.5 or higher of ECF Remote Service SDK. See Karaf Install Instructions
Source Code
ECF Github Repo: ECF JMS Github Repo
P2 Repository
https://raw.githubusercontent.com/ECF/JMS/master/build/
NOTE: Depends upon version 3.14.5 or higher of ECF Remote Service SDK. See ecf downloads for Eclipse or Target Platform installation
DubboProvider
Service Exported Config Types
ecf.dubbo.server, ecf.dubbo.client
Supported Intents
osgi.async, osgi.basic, osgi.private, osgi.confidential, dubbo
Remote Service Properties
Provider Bundles
org.eclipse.ecf.provider.dubbo.common -- Common support bundle for both Server and Client
org.eclipse.ecf.provider.dubbo.server -- Remote Service Server Container
org.eclipse.ecf.provider.dubbo.client -- Remote Service Client Container
Example Remote Service
org.eclipse.ecf.examples.provider.dubbo.demo.api -- Demo API bundle
org.eclipse.ecf.examples.provider.dubbo.demo.host -- Demo Service Impl bundle
org.eclipse.ecf.examples.provider.dubbo.demo.consumer -- Demo Service Consumer bundle
Download/Install/Develop
Bndtools Templates
The Bndtools Workspace has bndrun templates to us this distribution provider. See the Bndtools Support for Remote Services Development tutorial
Karaf Feature
https://raw.githubusercontent.com/ECF/DubboProvider/master/build/karaf-features.xml
NOTE: Depends upon version 3.14.5 or higher of ECF Remote Service SDK. See Karaf Install Instructions
Source Code
ECF Github Repo: ECF Dubbo Distribution Provider Github Repo
P2 Repository
https://raw.githubusercontent.com/ECF/DubboProvider/master/build/
NOTE: Depends upon version 3.14.5 or higher of ECF Remote Service SDK. See ecf downloads for Eclipse or Target Platform installation
Hazelcast Provider
Service Exported Config Types
ecf.jms.hazelcast.manager, ecf.jms.hazelcast.member
Supported Intents
osgi.async, osgi.basic, osgi.private, osgi.confidential, hazelcast
Remote Service Properties
Provider Bundles
org.eclipse.ecf.provider.jms.hazelcast
Download/Install/Develop
See GitHub Releases
Bndtools Templates
The Bndtools Workspace has bndrun templates to us this distribution provider. See the Bndtools Support for Remote Services Development tutorial
Karaf Feature
https://raw.githubusercontent.com/ECF/HazelcastProvider/master/build/karaf-features.xml
See Karaf Install Instructions
Source Code
ECF Github Repo: ECF Hazelcast Provider Github Repo
P2 Repository
https://raw.githubusercontent.com/ECF/HazelcastProvider/master/build/
NOTE: Depends upon version 3.14.5 or higher of ECF Remote Service SDK. See ecf downloads for Eclipse or Target Platform installation
Google Grpc Provider
Service Exported Config Types
ecf.grpc.server
Supported Intents
osgi.async, osgi.basic, osgi.private, osgi.confidential, grpc
Remote Service Properties
Provider Bundles
Download/Install/Develop
See GitHub Releases
Bndtools Templates
Karaf Feature
https://raw.githubusercontent.com/ECF/grpc-RemoteServicesProvider/master/build/karaf-features.xml
See Karaf Install Instructions
Source Code
ECF Github Repo: ECF Remote Services Grpc Provider Github Repo
P2 Repository
https://raw.githubusercontent.com/ECF/grpc-RemoteServicesProvider/master/build/
NOTE: Depends upon version 3.14.5 or higher of ECF Remote Service SDK. See ecf downloads for Eclipse or Target Platform installation
JavaGroups Provider
The ECF JavaGroups Provider is based upon JavaGroups (JGroups).
Service Exported Config Types
ecf.jgroups.manager, ecf.jgroups.client
Supported Intents
osgi.async, osgi.basic, osgi.private, osgi.confidential
Remote Service Properties
Provider Bundles
org.eclipse.ecf.provider.jgroups
Download/Install/Develop
See GitHub Release
Bndtools Templates
The Bndtools Workspace has bndrun templates to us this distribution provider. See the Bndtools Support for Remote Services Development tutorial
Source Code
ECF Github Repo: ECF JavaGroups Provider Github Repo
P2 Repo
https://raw.githubusercontent.com/ECF/JGroups/master/build/
Jax-RS Providers
The ECF team has created several REST-based Remote Service providers, all of which are based upon the Jax-RS specification. By using OSGi Remote Service standards along with Jax-RS standards, it's possible to create remote services that can be used on any compliant Jax-RS implementation, and any RSA-compliant Remote Services implementation. For a tutorial on how this can work, see the tutorial Using REST and OSGi Standards for Micro Services.
Since REST is based upon a client-server model of services, Remote Services based upon rest may only be exported on servers. Clients may import, but are unable to export Remote Services.
Jersey Jax-RS Distribution Provider
Service Exported Config Types
ecf.jaxrs.jersey.server, ecf.jaxrs.jersey.client
Supported Intents
osgi.async, osgi.private, osgi.confidential
Remote Service Properties
Provider Bundles
org.eclipse.ecf.provider.jaxrs
org.eclipse.ecf.provider.jaxrs.server
org.eclipse.ecf.provider.jaxrs.client
org.eclipse.ecf.provider.jersey.server
org.eclipse.ecf.provider.jersey.client
Download/Install/Develop
See GitHub Release
Bndtools Templates
The Bndtools Workspace has bndrun templates to us this distribution provider. See the Bndtools Support for Remote Services Development tutorial
Karaf Feature
https://raw.githubusercontent.com/ECF/JaxRSProviders/master/build/karaf-features.xml
NOTE: Depends upon version 3.14.5 or higher of ECF Remote Service SDK. See Karaf Install Instructions
Source Code
ECF Github Repo: ECF JaxRS Providers Github Repo
P2 Repository
https://raw.githubusercontent.com/ECF/JaxRSProviders/master/build/
NOTE: Depends upon version 3.14.5 or higher of ECF Remote Service SDK. See ecf downloads for Eclipse or Target Platform installation
Apache CXF Jax-RS Implementation
Service Exported Config Types
ecf.jaxrs.cxf.server, ecf.jaxrs.cxf.client
Supported Intents
osgi.async, osgi.basic, osgi.private, osgi.confidential
Remote Service Properties
Provider Bundles
org.eclipse.ecf.provider.jaxrs
org.eclipse.ecf.provider.jaxrs.server
org.eclipse.ecf.provider.jaxrs.client
org.eclipse.ecf.provider.cxf.server
org.eclipse.ecf.provider.cxf.client
Download/Install/Develop
See GitHub Release
Bndtools Templates
The Bndtools Workspace has bndrun templates to us this distribution provider. See the Bndtools Support for Remote Services Development tutorial
Karaf Feature
https://raw.githubusercontent.com/ECF/JaxRSProviders/master/build/karaf-features.xml
NOTE: Depends upon version 3.14.5 or higher of ECF Remote Service SDK. See Karaf Install Instructions
Source Code
ECF Github Repo: ECF JaxRS Providers Github Repo
P2 Repository
https://raw.githubusercontent.com/ECF/JaxRSProviders/master/build/
NOTE: Depends upon version 3.14.5 or higher of ECF Remote Service SDK. See ecf downloads for Eclipse or Target Platform installation
MQTT Provider
The ECF team has created a Remote Service provider based upon the MQTT3 Paho implementation. We are currently using Paho version 1.2.1.
Service Exported Config Types
ecf.jms.mqtt.manager, ecf.jms.mqtt.client
Supported Intents
osgi.async, osgi.basic, osgi.private
Remote Service Properties
Provider Bundles
org.eclipse.ecf.provider.jms.mqtt
Download/Install/Develop
See Github Releases
Bndtools Templates
The Bndtools Workspace has bndrun templates to us this distribution provider. See the Bndtools Support for Remote Services Development tutorial
Karaf Feature
https://raw.githubusercontent.com/ECF/Mqtt-Provider/master/build/karaf-features.xml
NOTE: Depends upon version 3.14.5 or higher of ECF Remote Service SDK. See Karaf Install Instructions
Source Code
ECF Github Repo: ECF MQTT Provider Github Repo
P2 Repository
https://raw.githubusercontent.com/ECF/Mqtt-Provider/master/build/
NOTE: Depends upon version 3.14.5 or higher of ECF Remote Service SDK. See ecf downloads for Eclipse or Target Platform installation
Python OSGi Services Provider
Please see Tutorial: Python for OSGi Services
The Py4j Remote Services Provider is based upon the Py4j project. It can also optionally use Google Protocol Buffers for serialization/deserialization between Java and Python, and/or Google Flatbuffers.
Provider Bundles
org.eclipse.ecf.provider.direct
org.eclipse.ecf.python
org.eclipse.ecf.python.protobuf
org.eclipse.ecf.provider.py4j
org.eclipse.ecf.provider.py4j.flatbuf
org.eclipse.ecf.provider.direct.flatbuf
org.eclipse.ecf.provider.direct.protobuf
org.eclipse.ecf.provider.py4j.protobuf
Download/Install/Develop
See GitHub Releases
Bndtools Templates
The Bndtools Workspace has bndrun templates to us this distribution provider. See the [[Bndtools_Support_for_Remote_Services_Development | Bndtools For Remote Services Development]
Karaf Feature
https://raw.githubusercontent.com/ECF/JMS/master/build/karaf-features.xml
NOTE: Depends upon version 3.14.5 or higher of ECF Remote Service SDK. See Karaf Install Instructions
Source Code
ECF Github Repo: ECF Python Provider Github Repo
XML-RPC Provider
Service Exported Config Types
ecf.xmlrpc.server, ecf.xmlrpc.client
Supported Intents
osgi.async, osgi.basic, osgi.private, osgi.confidential
Remote Service Properties
Provider Bundle
org.eclipse.ecf.provider.xmlrpc
Download/Install/Develop
Bndtools Templates
The Bndtools Workspace has bndrun templates to us this distribution provider. See the Bndtools Support for Remote Services Development tutorial
Karaf Feature
https://raw.githubusercontent.com/ECF/XmlRpcProvider/master/build/karaf-features.xml
See Karaf Install Instructions
Source Code
ECF Github Repo: ECF XML-RPC Provider Github Repo, Paths:
org.eclipse.ecf.provider.xmlrpc: bundles/org.eclipse.ecf.provider.xmlrpc
P2 Repository
https://raw.githubusercontent.com/ECF/XmlRpcProvider/master/build/
NOTE: Depends upon version 3.14.5 or higher of ECF Remote Service SDK. See ecf downloads for Eclipse or Target Platform installation
Providers created via ECF REST API
ECF has provided an API to aid in the creation of REST-based Remote Services provider. Using this API, it's possible to create a Remote Service client/proxy that uses an existing REST-based service. Thus new Remote Services can be created to expose an existing REST-based service. The following tutorial: ECF Remote Services for Accessing Existing REST Services describes how to use the ECF REST API to create client provider to access an existing REST service.
OSGi Service Exported Configs
ecf.rest.client
As mentioned above, only REST servers may export Remote Services, so the ecf.rest.client provider may not export Remote Services.
Download/Install/Develop
P2 Repo and Karaf Feature: See Download Page
P2 Feature ID: org.eclipse.ecf.remoteservice.rest.feature
Karaf Feature: ecf-remoteservices-rest in repos given on Karaf Installation Page
Source Code
Git Repo: ECF Git Repo, Paths:
org.eclipse.ecf.remoteservice.rest: framework/bundles/org.eclipse.ecf.remoteservice.rest