Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Distribution Providers"

(Bundles)
(Undo revision 446115 by Slewis.composent.com (talk))
 
(40 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
==Introduction==
 
==Introduction==
  
New:  ECF OSGi R7 Remote Services.  The [https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.htmlOSGi R7 Remote Services] adds the standardization of several [https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1693415 intents].  One of those intents is the [osgi.async intent], which allows remote services to be invoked asynchronously (non-blocking) rather than synchronously (blocking).  Supporting async and the other standardized intents:  [https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#service.remoteservices-osgi.basic osgi.basic], [https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#d0e1474 osgi.private], [https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#d0e1464 osgi.confidential] requires a distribution provider that supports that intent.  For each distribution provider below, the currently supported intents are listed.  To request support for an unsupported intent, please post the request to the [https://accounts.eclipse.org/mailing-list/ecf-dev ecf-dev mailing list].
+
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 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 20: Line 18:
 
<br>
 
<br>
 
[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>
 +
 +
==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]====
 +
'''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]====
 +
 +
'''osgi.async''', '''osgi.basic''', '''osgi.private''', '''osgi.confidential'''
 +
 +
===[[ECF_Generic_Provider_Configuration_Properties#Remote_Service_Configuration_Properties |  Service Properties ]]===
 +
 +
===Provider Bundles===
 +
 +
[https://git.eclipse.org/c/ecf/org.eclipse.ecf.git/tree/framework/bundles/org.eclipse.ecf.sharedobject org.eclipse.ecf.sharedobject]<br>
 +
[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>
 +
 +
===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====
 +
 +
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====
 +
 +
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>
 +
 +
===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]====
 +
'''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]====
 +
 +
'''osgi.async''', '''osgi.basic''', '''osgi.private''', '''osgi.confidential'''
 +
 +
===[[R-OSGi_Properties |  Remote Service Properties ]]===
 +
 +
===[https://github.com/ECF/DubboProvider/tree/master/bundles Provider Bundles]===
 +
 +
[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/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====
 +
 +
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====
 +
 +
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]====
 +
'''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]====
 +
 +
'''osgi.async''', '''osgi.basic''', '''osgi.private'''
 +
 +
===[[ActiveMQ Service Properties | Remote Service Properties ]]===
 +
 +
===[https://github.com/ECF/JMS/tree/master/bundles Provider Bundles]===
 +
 +
[https://github.com/ECF/JMS/tree/master/bundles/org.eclipse.ecf.provider.jms org.eclipse.ecf.provider.jms]<br>
 +
[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/Develop===
 +
 +
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://github.com/ECF/DubboProvider DubboProvider]==
Line 44: Line 182:
 
[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>
 
[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===
+
===Download/Install/Develop===
  
 
'''[https://github.com/ECF/DubboProvider/releases Github Releases]'''
 
'''[https://github.com/ECF/DubboProvider/releases Github Releases]'''
  
===Source Code===
+
====Bndtools Templates====
  
[https://github.com/ECF ECF Github] Repo: [https://github.com/ECF/DubboProvider ECF Dubbo Distribution Provider Github Repo]
+
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
 
https://raw.githubusercontent.com/ECF/DubboProvider/master/build/karaf-features.xml
Line 58: Line 196:
 
<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/DubboProvider ECF Dubbo Distribution Provider Github Repo]
 +
 
 +
====P2 Repository====
  
 
https://raw.githubusercontent.com/ECF/DubboProvider/master/build/
 
https://raw.githubusercontent.com/ECF/DubboProvider/master/build/
Line 64: Line 206:
 
<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/XmlRpcProvider XML-RPC Provider]==
+
==[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.xmlrpc.server''', '''ecf.xmlrpc.client'''<br>
+
'''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'''
  
'''osgi.async''', '''osgi.basic''', '''osgi.private''', '''osgi.confidential'''
+
===[[Hazelcast Service Properties | Remote Service Properties]]===
  
===[[XmlRpc Service Properties | Remote Service Properties ]]===  
+
===[https://github.com/ECF/HazelcastProvider/tree/master/bundles Provider Bundles]===
  
===[https://github.com/ECF/XmlRpcProvider/tree/master/bundles Provider Bundle]===
+
[https://github.com/ECF/HazelcastProvider/tree/master/bundles/org.eclipse.ecf.provider.jms.hazelcast org.eclipse.ecf.provider.jms.hazelcast]<br>
  
[https://github.com/ECF/XmlRpcProvider/tree/master/bundles/org.eclipse.ecf.provider.xmlrpc org.eclipse.ecf.provider.xmlrpc]
+
===Download/Install/Develop===
  
===Download/Install===
+
See [https://github.com/ECF/HazelcastProvider/releases GitHub Releases]
  
'''[https://github.com/ECF/XmlRpcProvider/releases Github Releases]'''
+
====Bndtools Templates====
  
===Source Code===
+
The Bndtools Workspace has bndrun templates to us this distribution provider.  See the [[Bndtools Support for Remote Services Development]] tutorial
  
[https://github.com/ECF ECF Github] Repo: [https://github.com/ECF/XmlRpcProvider ECF XML-RPC Provider Github Repo], Paths:<br>
+
====Karaf Feature====
'''org.eclipse.ecf.provider.xmlrpc''': bundles/org.eclipse.ecf.provider.xmlrpc<br>
+
  
===Karaf Feature===
+
https://raw.githubusercontent.com/ECF/HazelcastProvider/master/build/karaf-features.xml
 
+
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]
  
===P2 Repository===
+
====Source Code====
  
https://raw.githubusercontent.com/ECF/XmlRpcProvider/master/build/
+
[https://github.com/ECF ECF Github] Repo: [https://github.com/ECF/HazelcastProvider ECF Hazelcast Provider Github Repo]
  
<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
+
====P2 Repository====
  
==Generic Provider==
+
https://raw.githubusercontent.com/ECF/HazelcastProvider/master/build/
  
The generic providers are based upon tcp transport socket api.
+
<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
  
===OSGi Service Exported Configs===
+
==[https://github.com/ECF/grpc-RemoteServicesProvider Google Grpc Provider]==
'''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 OSGi R7 Supported Intents]====
+
====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1698916 Service Exported Config Types]====
 +
'''ecf.grpc.server'''<br>
  
'''osgi.async''', '''osgi.basic''', '''osgi.private''', '''osgi.confidential'''
+
====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1693415 Supported Intents]====
 +
'''osgi.async''', '''osgi.basic''', '''osgi.private''', '''osgi.confidential''', '''grpc'''
  
===[[ECF_Generic_Provider_Configuration_Properties#Remote_Service_Configuration_Properties | Service Properties ]]===  
+
===[[Grpc Service Properties | Remote Service Properties]]===
  
===Bundles===
+
===[https://github.com/ECF/grpc-RemoteServicesProvider/tree/master/bundles Provider Bundles]===
  
org.eclipse.ecf.provider, org.eclipse.ecf.provider.remoteservice
+
[https://github.com/ECF/grpc-RemoteServicesProvider/tree/master/bundles/org.eclipse.ecf.provider.grpc org.eclipse.ecf.provider.grpc]<br>
  
===Download/Install===
+
===Download/Install/Develop===
  
See [https://www.eclipse.org/ecf/downloads.php Download Page]<br>
+
See [https://github.com/ECF/grpc-RemoteServicesProvider/releases GitHub Releases]
  
===Source Code===
+
====Bndtools Templates====
  
Git Repo: [http://git.eclipse.org/c/ecf/org.eclipse.ecf.git ECF Git Repo], Paths:<br>
+
====Karaf Feature====
'''org.eclipse.ecf.provider''': framework/bundles/org.eclipse.ecf.provider<br>
+
'''org.eclipse.ecf.provider.remoteservice''':  providers/bundles/org.eclipse.ecf.provider.remoteservice
+
  
===Tutorials and Examples===
+
https://raw.githubusercontent.com/ECF/grpc-RemoteServicesProvider/master/build/karaf-features.xml
  
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]
+
See [https://wiki.eclipse.org/EIG:Install_into_Apache_Karaf  Karaf Install Instructions]
  
==r-OSGi Provider==
+
====Source Code====
  
===OSGi Service Exported Configs===
+
[https://github.com/ECF ECF Github] Repo: [https://github.com/ECF/grpc-RemoteServicesProvider ECF Remote Services Grpc Provider Github Repo]
'''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 OSGi R7 Supported Intents]====
+
====P2 Repository====
  
'''osgi.async''', '''osgi.basic''', '''osgi.private''', '''osgi.confidential'''
+
https://raw.githubusercontent.com/ECF/grpc-RemoteServicesProvider/master/build/
  
===[[R-OSGi_Properties |  Service Properties ]]===
+
<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
  
===Bundles===
+
==[https://github.com/ECF/JGroups JavaGroups Provider]==
  
org.eclipse.ecf.provider.r_osgi, ch.ethz.iks.r_osgi.remote<br>
+
The ECF JavaGroups Provider is based upon JavaGroups ([http://jgroups.org JGroups]).
  
===Download/Install===
+
====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1698916 Service Exported Config Types]====
 +
'''ecf.jgroups.manager''', '''ecf.jgroups.client'''
  
See [https://www.eclipse.org/ecf/downloads.php Download Page]<br>
+
====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1693415 Supported Intents]====
  
===Source Code===
+
'''osgi.async''', '''osgi.basic''', '''osgi.private''', '''osgi.confidential'''
  
Git Repo: [http://git.eclipse.org/c/ecf/org.eclipse.ecf.git ECF Git Repo], Paths:<br>
+
===[[JavaGroups Service Properties | Remote Service Properties ]]===
'''ch.ethz.iks.r_osgi.remote''': protocols/bundles/ch.ethz.iks.r_osgi.remote<br>
+
'''org.eclipse.ecf.provider.remoteservice''':  providers/bundles/org.eclipse.ecf.provider.r_osgi
+
  
===r-OSGi over Websockets===
+
===[https://github.com/ECF/JGroups Provider Bundles]===
  
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>
+
[https://github.com/ECF/JGroups/tree/master/bundles/org.eclipse.ecf.provider.jgroups org.eclipse.ecf.provider.jgroups]<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]
+
  
==JMS/ActiveMQ Providers==
+
===Download/Install/Develop===
  
JMS/ActiveMQ providers are based upon the [https://en.wikipedia.org/wiki/Java_Message_Service Java Messaging Service] (JMS) specification version 1.1+.
+
See '''[https://github.com/ECF/JGroups/releases GitHub Release]'''
  
===OSGi Service Exported Configs===
+
====Bndtools Templates====
'''ecf.jms.activemq.tcp.manager''','''ecf.jms.activemq.tcp.client'''
+
  
===[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1693415 OSGi R7 Supported Intents]===
+
The Bndtools Workspace has bndrun templates to us this distribution provider.  See the [[Bndtools Support for Remote Services Development]] tutorial
  
'''osgi.async''', '''osgi.basic''', '''osgi.private'''
+
===Source Code===
  
===[[ActiveMQ Service Properties | Service Properties ]]===
+
[https://github.com/ECF ECF Github] Repo: [https://github.com/ECF/https://github.com/ECF/JGroups ECF JavaGroups Provider Github Repo]
  
===Bundles===
+
====P2 Repo====
  
org.eclipse.ecf.provider.jms<br>
+
https://raw.githubusercontent.com/ECF/JGroups/master/build/
org.eclipse.ecf.provider.jms.activemq (based upon ActiveMQ 5.12 currently...see source code).
+
  
===[https://github.com/ECF/JMS/releases Download/Install]===
+
==[https://github.com/ECF/JaxRSProviders Jax-RS Providers]==
  
===Source Code===
+
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 [[Tutorial:_Using_REST_and_OSGi_Standards_for_Micro_Services  | the tutorial Using REST and OSGi Standards for Micro Services]].
  
[https://github.com/ECF ECF Github] Repo: [https://github.com/ECF/JMS ECF JMS Github Repo], Paths:<br>
+
Since REST is based upon a client-server model of services, Remote Services based upon rest may only be exported on serversClients may import, but are unable to export Remote Services.
'''org.eclipse.ecf.provider.jms''': bundles/org.eclipse.ecf.provider.jms<br>
+
'''org.eclipse.ecf.provider.jms.activemq''': bundles/org.eclipse.ecf.provider.jms.activemq
+
  
===P2 Repository===
+
===Jersey Jax-RS Distribution Provider===
  
https://raw.githubusercontent.com/ECF/JMS/master/build/
+
====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1698916 Service Exported Config Types]====
 +
'''ecf.jaxrs.jersey.server''', '''ecf.jaxrs.jersey.client'''
  
<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://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1693415 Supported Intents]====
  
===Karaf Feature===
+
'''osgi.async''', '''osgi.private''', '''osgi.confidential'''
  
https://raw.githubusercontent.com/ECF/JMS/master/build/karaf-features.xml
+
====[[Jackson Service Properties | Remote Service Properties]]====
  
<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/JaxRSProviders/tree/master/bundles Provider Bundles]====
  
==MQTT Provider (Paho)==
+
[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.server org.eclipse.ecf.provider.jaxrs.server]<br>
 +
[https://github.com/ECF/JaxRSProviders/tree/master/bundles/org.eclipse.ecf.provider.jaxrs.client org.eclipse.ecf.provider.jaxrs.client]<br>
 +
[https://github.com/ECF/JaxRSProviders/tree/master/bundles/org.eclipse.ecf.provider.jersey.server org.eclipse.ecf.provider.jersey.server]<br>
 +
[https://github.com/ECF/JaxRSProviders/tree/master/bundles/org.eclipse.ecf.provider.jersey.client org.eclipse.ecf.provider.jersey.client]<br>
  
The ECF team has created a Remote Service provider based upon the MQTT3 [https://www.eclipse.org/paho/ Paho] implementation.  We are currently using Paho version 1.0.2.
+
====Download/Install/Develop====
  
===OSGi Service Exported Configs===
+
See [https://github.com/ECF/JaxRSProviders/releases GitHub Release]
'''ecf.jms.mqtt.manager''', '''ecf.jms.mqtt.client'''
+
  
===[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1693415 OSGi R7 Supported Intents]===
+
=====Bndtools Templates=====
  
'''osgi.async''', '''osgi.basic''', '''osgi.private'''
+
The Bndtools Workspace has bndrun templates to us this distribution provider. See the [[Bndtools Support for Remote Services Development]] tutorial
  
===[[MQTT Service Properties | Service Properties]]===
+
=====Karaf Feature=====
  
===Bundles===
+
https://raw.githubusercontent.com/ECF/JaxRSProviders/master/build/karaf-features.xml
  
org.eclipse.ecf.provider.jms.mqtt
+
<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]
  
===Download/Install===
+
=====Source Code=====
  
See [https://github.com/ECF/Mqtt-Provider/releases here]
+
[https://github.com/ECF ECF Github] Repo: [https://github.com/ECF/JaxRSProviders ECF JaxRS Providers Github Repo]
  
===Source Code===
+
=====P2 Repository=====
  
[https://github.com/ECF ECF Github] Repo: [https://github.com/ECF/Mqtt-Provider ECF MQTT Provider Github Repo], Paths:<br>
+
https://raw.githubusercontent.com/ECF/JaxRSProviders/master/build/
'''org.eclipse.ecf.provider.jms.mqtt''': bundles/org.eclipse.ecf.provider.jms.mqtt
+
 
+
===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
 
<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
  
===Karaf Feature===
+
===Apache CXF Jax-RS Implementation===
  
https://raw.githubusercontent.com/ECF/Mqtt-Provider/master/build/karaf-features.xml
+
====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1698916 Service Exported Config Types]====
 +
'''ecf.jaxrs.cxf.server''', '''ecf.jaxrs.cxf.client'''<br>
  
<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://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1693415 Supported Intents]====
  
==Jax-RS Providers==
+
'''osgi.async''', '''osgi.basic''', '''osgi.private''', '''osgi.confidential'''
  
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 [[Tutorial:_Using_REST_and_OSGi_Standards_for_Micro_Services  | the tutorial Using REST and OSGi Standards for Micro Services]].
+
====[[Apache CXF JaxRS Service Properties | Remote Service Properties]]====
  
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.
+
====[https://github.com/ECF/JaxRSProviders/tree/master/bundles Provider Bundles]====
  
===Jackson Jax-RS Distribution Provider===
+
[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.server org.eclipse.ecf.provider.jaxrs.server]<br>
 +
[https://github.com/ECF/JaxRSProviders/tree/master/bundles/org.eclipse.ecf.provider.jaxrs.client org.eclipse.ecf.provider.jaxrs.client]<br>
 +
[https://github.com/ECF/JaxRSProviders/tree/master/bundles/org.eclipse.ecf.provider.cxf.server org.eclipse.ecf.provider.cxf.server]<br>
 +
[https://github.com/ECF/JaxRSProviders/tree/master/bundles/org.eclipse.ecf.provider.cxf.client org.eclipse.ecf.provider.cxf.client]<br>
  
====OSGi Service Exported Configs====
+
====Download/Install/Develop====
'''ecf.jaxrs.jersey.server'''<br>
+
'''ecf.jaxrs.jersey.client'''<br>
+
  
====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1693415 OSGi R7 Supported Intents]====
+
See [https://github.com/ECF/JaxRSProviders/releases GitHub Release]
  
'''osgi.async''', '''osgi.private''', '''osgi.confidential'''
+
=====Bndtools Templates=====
  
====[[Jackson Service Properties | Service Properties]]====
+
The Bndtools Workspace has bndrun templates to us this distribution provider.  See the [[Bndtools Support for Remote Services Development]] tutorial
  
====Bundles====
+
=====Karaf Feature=====
  
org.eclipse.ecf.provider.jersey.server<br>
+
https://raw.githubusercontent.com/ECF/JaxRSProviders/master/build/karaf-features.xml
org.eclipse.ecf.provider.jaxrs.server<br>
+
org.eclipse.ecf.provider.jaxrs
+
  
====Download/Install====
+
<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]
  
A binary distribution of the Jersey client and server is available [https://github.com/ECF/JaxRSProviders/releases here]
+
=====Source Code=====
  
====Source Code====
+
[https://github.com/ECF ECF Github] Repo: [https://github.com/ECF/JaxRSProviders ECF JaxRS Providers Github Repo]
  
[https://github.com/ECF ECF Github] Repo: [https://github.com/ECF/JaxRSProviders ECF JaxRS Providers Github Repo], Paths:<br>
+
=====P2 Repository=====
'''org.eclipse.ecf.provider.jersey.server''': bundles/org.eclipse.ecf.provider.jersey.server<br>
+
'''org.eclipse.ecf.provider.jaxrs.server''': bundles/org.eclipse.ecf.provider.jaxrs.server<br>
+
'''org.eclipse.ecf.provider.jaxrs''':  bundles/org.eclipse.ecf.provider.jaxrs<br>
+
 
+
If you would like to contribute to the build/releng or the coding for this provider, please [https://dev.eclipse.org/mailman/listinfo/ecf-dev join and post a note to that effect to the ecf-dev mailing list].
+
 
+
===P2 Repository===
+
  
 
https://raw.githubusercontent.com/ECF/JaxRSProviders/master/build/
 
https://raw.githubusercontent.com/ECF/JaxRSProviders/master/build/
Line 283: 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
  
===Karaf Feature===
+
==[https://github.com/ECF/Mqtt-Provider MQTT Provider]==
  
https://raw.githubusercontent.com/ECF/JaxRSProviders/master/build/karaf-features.xml
+
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.
  
<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://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1698916 Service Exported Config Types]====
 +
'''ecf.jms.mqtt.manager''', '''ecf.jms.mqtt.client'''
  
===Apache CXF Jax-RS Implementation===
+
====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1693415 Supported Intents]====
  
====OSGi Service Exported Configs====
+
'''osgi.async''', '''osgi.basic''', '''osgi.private'''
'''ecf.jaxrs.cxf.server'''<br>
+
'''ecf.jaxrs.cxf.client'''<br>
+
  
====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1693415 OSGi R7 Supported Intents]====
+
===[[MQTT Service Properties | Remote Service Properties]]===
  
'''osgi.async''', '''osgi.basic''', '''osgi.private''', '''osgi.confidential'''
+
===[https://github.com/ECF/Mqtt-Provider/tree/master/bundles Provider Bundles]===
  
====[[Apache CXF JaxRS Service Properties | Service Properties]]====
+
[https://github.com/ECF/Mqtt-Provider/tree/master/bundles/org.eclipse.ecf.provider.jms.mqtt org.eclipse.ecf.provider.jms.mqtt]<br>
  
====Bundles====
+
===Download/Install/Develop===
  
org.eclipse.ecf.provider.cxf.server<br>
+
See [https://github.com/ECF/Mqtt-Provider/releases Github Releases]
org.eclipse.ecf.provider.jaxrs.server<br>
+
org.eclipse.ecf.provider.jaxrs
+
  
====Source Code====
+
====Bndtools Templates====
  
[https://github.com/ECF ECF Github] Repo: [https://github.com/ECF/JaxRSProviders ECF JaxRS Providers Github Repo], Paths:<br>
+
The Bndtools Workspace has bndrun templates to us this distribution provider. See the [[Bndtools Support for Remote Services Development]] tutorial
'''org.eclipse.ecf.provider.cxf.server''': bundles/org.eclipse.ecf.provider.cxf.server<br>
+
'''org.eclipse.ecf.provider.jaxrs.server''': bundles/org.eclipse.ecf.provider.jaxrs.server<br>
+
'''org.eclipse.ecf.provider.jaxrs''':  bundles/org.eclipse.ecf.provider.jaxrs<br>
+
  
===P2 Repository===
+
====Karaf Feature====
  
https://raw.githubusercontent.com/ECF/JaxRSProviders/master/build/
+
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 [http://www.eclipse.org/ecf/downloads.php ecf downloads] for Eclipse or Target Platform installation
+
 
+
===Karaf Feature===
+
 
+
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 [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]
  
==Providers created via ECF REST API==
+
====Source Code====
  
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.
+
[https://github.com/ECF ECF Github] Repo: [https://github.com/ECF/Mqtt-Provider ECF MQTT Provider Github Repo]
  
===OSGi Service Exported Configs===
+
====P2 Repository====
'''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.
+
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 340: Line 450:
 
Please see [[Tutorial: Python for OSGi Services]]
 
Please see [[Tutorial: Python for OSGi Services]]
  
===Download/Install===
+
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].
  
A binary build (p2) of this provider is available [https://github.com/ECF/Py4j-RemoteServicesProvider/releases here]  
+
===[https://github.com/ECF/Py4j-RemoteServicesProvider/tree/master/bundles Provider Bundles]===
  
===Source Code===
+
[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>
  
[https://github.com/ECF ECF Github] Repo: [https://github.com/ECF/Py4j-RemoteServicesProvider ECF Python Provider Github Repo]
+
===Download/Install/Develop===
  
===Bundles===
+
See [https://github.com/ECF/Py4j-RemoteServicesProvider/releases GitHub Releases]
  
org.eclipse.ecf.remoteservice.rest<br>
+
====Bndtools Templates====
  
===Download/Install===
+
The Bndtools Workspace has bndrun templates to us this distribution provider.  See the [[Bndtools_Support_for_Remote_Services_Development | Bndtools For Remote Services Development]
  
P2 Repo and Karaf Feature:  See [https://www.eclipse.org/ecf/downloads.php Download Page]<br>
+
====Karaf Feature====
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]]
+
  
===Source Code===
+
https://raw.githubusercontent.com/ECF/JMS/master/build/karaf-features.xml
  
Git Repo: [http://git.eclipse.org/c/ecf/org.eclipse.ecf.git ECF Git Repo], Paths:<br>
+
<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]
'''org.eclipse.ecf.remoteservice.rest''': framework/bundles/org.eclipse.ecf.remoteservice.rest
+
  
==Hazelcast Provider==
+
====Source Code====
  
====OSGi Service Exported Configs====
+
[https://github.com/ECF ECF Github] Repo: [https://github.com/ECF/Py4j-RemoteServicesProvider ECF Python Provider Github Repo]
'''ecf.jms.hazelcast.manager'''<br>
+
'''ecf.jms.hazelcast.member'''<br>
+
  
====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1693415 OSGi R7 Supported Intents]====
+
==[https://github.com/ECF/XmlRpcProvider XML-RPC Provider]==
  
'''osgi.async''', '''osgi.basic''', '''osgi.private''', '''osgi.confidential''', '''hazelcast'''
+
====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1698916 Service Exported Config Types]====
 +
'''ecf.xmlrpc.server''', '''ecf.xmlrpc.client'''<br>
  
===[[Hazelcast Service Properties | Service Properties]]===
+
====[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1693415 Supported Intents]====
  
===Bundles===
+
'''osgi.async''', '''osgi.basic''', '''osgi.private''', '''osgi.confidential'''
  
org.eclipse.ecf.provider.jms.hazelcast<br>
+
===[[XmlRpc Service Properties | Remote Service Properties ]]===
  
===Download/Install===
+
===[https://github.com/ECF/XmlRpcProvider/tree/master/bundles Provider Bundle]===
  
A binary build of hte Hazelcast distribution provider is available [https://github.com/ECF/HazelcastProvider/releases here]
+
[https://github.com/ECF/XmlRpcProvider/tree/master/bundles/org.eclipse.ecf.provider.xmlrpc org.eclipse.ecf.provider.xmlrpc]
  
===Source Code===
+
===Download/Install/Develop===
  
[https://github.com/ECF ECF Github] Repo: [https://github.com/ECF/HazelcastProvider ECF Hazelcast Provider Github Repo], Paths:<br>
+
'''[https://github.com/ECF/XmlRpcProvider/releases Github Releases]'''
'''org.eclipse.ecf.provider.jms.hazelcast''': bundles/org.eclipse.ecf.provider.jms.hazelcast<br>
+
  
If you would like to contribute to the build/releng or the coding for this provider, please [https://dev.eclipse.org/mailman/listinfo/ecf-dev join and post a note to that effect to the ecf-dev mailing list].
+
====Bndtools Templates====
  
===P2 Repository===
+
The Bndtools Workspace has bndrun templates to us this distribution provider.  See the [[Bndtools Support for Remote Services Development]] tutorial
  
https://raw.githubusercontent.com/ECF/HazelcastProvider/master/build/
+
====Karaf Feature====
  
<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://raw.githubusercontent.com/ECF/XmlRpcProvider/master/build/karaf-features.xml
  
===Karaf Feature===
+
See [https://wiki.eclipse.org/EIG:Install_into_Apache_Karaf  Karaf Install Instructions]
  
https://raw.githubusercontent.com/ECF/HazelcastProvider/master/build/karaf-features.xml
+
====Source Code====
  
See [https://wiki.eclipse.org/EIG:Install_into_Apache_Karaf  Karaf Install Instructions]
+
[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>
  
==JavaGroups (JGroups) Provider==
+
====P2 Repository====
  
===OSGi Service Exported Configs===
+
https://raw.githubusercontent.com/ECF/XmlRpcProvider/master/build/
'''ecf.jgroups.manager''', '''ecf.jgroups.client'''
+
  
===[https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1693415 OSGi R7 Supported Intents]===
+
<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
  
'''osgi.async''', '''osgi.basic''', '''osgi.private''', '''osgi.confidential'''
+
==Providers created via ECF REST API==
  
===[[JavaGroups Service Properties | Service Properties ]]===
+
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.
  
===Bundles===
+
===OSGi Service Exported Configs===
 +
'''ecf.rest.client'''<br>
  
org.eclipse.ecf.provider.jgroups<br>
+
As mentioned above, only REST servers may export Remote Services, so the ecf.rest.client provider may not export Remote Services.
  
===Download/Install===
+
===Download/Install/Develop===
  
A build of this provider is available '''[https://github.com/ECF/JGroups/releases here]'''  
+
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]]
  
 
===Source Code===
 
===Source Code===
  
[https://github.com/ECF ECF Github] Repo: [https://github.com/ECF/https://github.com/ECF/JGroups ECF JavaGroups Provider Github Repo], Paths:<br>
+
Git Repo: [http://git.eclipse.org/c/ecf/org.eclipse.ecf.git ECF Git Repo], Paths:<br>
'''org.eclipse.ecf.provider.jgroups''': bundles/org.eclipse.ecf.provider.jgroups<br>
+
'''org.eclipse.ecf.remoteservice.rest''': framework/bundles/org.eclipse.ecf.remoteservice.rest
 
+
If you would like to contribute to the build/releng or the coding for this provider, create a new provider, or get support or custom development on any of the existing providers, please [https://dev.eclipse.org/mailman/listinfo/ecf-dev join and post to the ecf-dev mailing list].
+

Latest revision as of 19:26, 24 October 2022

Contents

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)


Remote Service API Javadoc

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

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/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

org.eclipse.ecf.provider.grpc

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

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/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

Back to the top