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"

(Download/Install)
(Generic Provider)
Line 126: Line 126:
 
[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://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===
+
===Download/Install/Develop===
  
 
See [https://www.eclipse.org/ecf/downloads.php Download Page]<br>
 
See [https://www.eclipse.org/ecf/downloads.php Download Page]<br>
  
===Source Code===
+
====Bndtools Templates====
  
Git Repo: [http://git.eclipse.org/c/ecf/org.eclipse.ecf.git ECF Git Repo]
+
The Bndtools Workspace has bndrun templates to us this distribution provider.  See the [[Bndtools_Support_for_Remote_Services_Development | Bndtools For Remote Services Development]  
  
===Tutorials and Examples===
+
====Karaf Feature====
 
+
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]
+
 
+
===Karaf Feature===
+
  
 
Part of ECF SDK:  https://download.eclipse.org/rt/ecf/latest/karaf-features.xml
 
Part of ECF SDK:  https://download.eclipse.org/rt/ecf/latest/karaf-features.xml
Line 146: Line 142:
 
See [https://www.eclipse.org/ecf/downloads.php Download Page]<br>
 
See [https://www.eclipse.org/ecf/downloads.php Download Page]<br>
  
===P2 Repo===
+
====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/
 
Part of ECF SDK:  https://download.eclipse.org/rt/ecf/latest/site.p2/
  
 
See [https://www.eclipse.org/ecf/downloads.php Download Page]<br>
 
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==
 
==r-OSGi Provider==

Revision as of 19:34, 19 October 2019

Contents

Introduction

New: ECF OSGi R7 Remote Services. The R7 Remote Services adds the standardization of several 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: osgi.basic, osgi.private, 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 ecf-dev mailing list.

The 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

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 | Bndtools For Remote Services Development]

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

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 | Bndtools For Remote Services Development]

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

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 | Bndtools For Remote Services Development]

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

See Download Page

Source Code

Git Repo: ECF Git Repo

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

Karaf Feature

Part of ECF SDK: https://download.eclipse.org/rt/ecf/latest/karaf-features.xml

See Karaf Install Instructions

See Download Page

P2 Repo

Part of ECF SDK: https://download.eclipse.org/rt/ecf/latest/site.p2/

See Download Page

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

See Github Releases

Source Code

ECF Github Repo: ECF JMS Github Repo

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

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

MQTT Provider (Paho MQTT Protocol Implementation)]

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

See Github Releases

Source Code

ECF Github Repo: ECF MQTT Provider Github Repo

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

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

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.

Jackson 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

See GitHub Release

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

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

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

Provier 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

Source Code

ECF Github Repo: ECF JaxRS Providers Github Repo

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

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

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.


Python OSGi Services Provider

Please see Tutorial: Python for OSGi Services

Download/Install

A binary build (p2) of this provider is available here

Source Code

ECF Github Repo: ECF Python Provider Github Repo

Bundles

org.eclipse.ecf.remoteservice.rest

Download/Install

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

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

See GitHub Releases

Karaf Feature

https://raw.githubusercontent.com/ECF/HazelcastProvider/master/build/karaf-features.xml

See Karaf Install Instructions

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

Source Code

ECF Github Repo: ECF Hazelcast Provider Github Repo

JavaGroups (JGroups) Provider

OSGi Service Exported Configs

ecf.jgroups.manager, ecf.jgroups.client

OSGi R7 Supported Intents

osgi.async, osgi.basic, osgi.private, osgi.confidential

Service Properties

Bundles

org.eclipse.ecf.provider.jgroups

Download/Install

A build of this provider is available here

Source Code

ECF Github Repo: ECF JavaGroups Provider Github Repo, Paths:
org.eclipse.ecf.provider.jgroups: bundles/org.eclipse.ecf.provider.jgroups

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 join and post to the ecf-dev mailing list.

Back to the top