Skip to content

eclipse-ecf/ecf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Eclipse Communication Framework

ECF is a set of APIs/frameworks/types for inter-process communication

Current version: 3.15.6 Release Date: 3/15/2025

NEW (4/28/2025) Bndtools Template for Python.Java Remote Services Development

There has been a new project template added to the ECF Bndtools Workspace Template that uses the ECF Python.Java Distribution Provider. This distribution provider is based upon py4j, which supports high performance remote procedure call between python and java processes.

To try it out after installing Bndtools 7.1 and the ECF tools add ons

  1. Create a new Bndtools Workspace using the ECF Bndtools Workspace Template

bndtoolsnewwkspace

  1. Create a new Bnd OSGi project

bndtoolsnewproject

  1. Open the projectName.hellopython.javahost.bndrun file in the project directory

bndtoolsbndrun

  1. Choose 'Resolve' and then 'Update'

  2. Select Debug OSGi to start the example application (Java)

bndtoolsdebug

Running Python Example Program

  1. Install iPOPO v 3.1.0 in your Python (3.9 or greater) local environment

  2. In a command shell or IDE, navigate to the project directory and run the run_python_example.py script

python run_python_example.py

The examples will output progress to their respective consoles as the remote services are made exported, discovered, and imported by the java process or the python process.

bndtoolspython

Most of the code that produces output is available in the example project. For java: src/main/java/.../hello/*.java and python: python-src/samples/rsa

Install into Bndtools for Remote Services development

NEW: Feature for Remote Services tooling that enhances Bndtools 7.1 or higher. Theses tools use bndtools project, workspace, service templates, and OSGi services wizards for simplifying the creation of OSGi remote services. Also present are Eclipse view for debugging remote service endpoint description discovery and remote service export/import. The feature requires that Bndtools 7.1+ be installed into a recent version of Eclipse. Also see the Install into Bndtools 7.1 via Oomph section below for automated install.

Name: ECF 3.15.7

Update Site URL: https://download.eclipse.org/rt/ecf/latest/site.p2

Javadocs

Install into Bndtools 7.1 via Oomph

There are now Oomph Setups that will automatically install and configure Eclipse, Bndtools 7.1 and ECF 3.15.7 see here

Features for Bndtools-based OSGi Remote Services Development

Workspace, Project, and Bndrun Templates

Bndtools Workspace Template for Remote Services Development here: https://github.com/ECF/bndtools.workspace. This workspace template contains multiple project templates for creating Remote Service API, Impl, and Consumer projects via the New->Bnd OSGi Project wizard:

image

Wizards for creating api, impl, consumer Remote Services projects via a single wizard

image

Eclipse Views for Endpoint Discovery and Remote Service Admin Manager

image

Wizard and Template-Created Bndrun files, to immediately run/debug wizard-generated remote services

image

Download/Install into Apache Karaf 4.4+

For Install into Karaf runtime, here is a top-level Karaf Features file

Key ECF APIs

OSGi Remote Services

ECF provides a fully-compliant and multi-provider implementation of the OSGi Remote Services and Remote Services Admin/RSA. A number of providers are available in this repo, but there are also many providers available at the ECF github organization.

ECF is the OSGi R8 RS/RSA implementation in the OSGi Test Compatibilty Kit (TCK)

Eclipse Install/Update File Transfer

ECF filetransfer is used by the Eclipse IDE

ECF Github Organization

ECF has an organization with a number of other repos containing Remote Services distribution and discovery providers (e.g. grpc, etcd discovery, hazelcast, JMS, JGroups, xmlrpc-based distribution providers, examples, others). Most of these repos provide distribution or discovery providers that depend upon the core remote services/RSA implementation provided by this repo.

Wiki

See the ECF Wiki for examples, tutorials, Karaf install documentation, other documentation.

To contribute or find out what's going on right now, please join the ecf-dev mailing list or contact project lead Scott Lewis at github email: scottslewis at gmail.com

Services, Training, and Support

For Remote Services training, support, or custom OSGi or Eclipse development please contact scottslewis at gmail.com via email or post on the ecf-dev mailing list

Contributing to ECF

Contributions are always welcome! For 20 years ECF has been innovating via community contributions. See CONTRIBUTING.md