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.
EIG:Introduction
Contents
- 1 Introduction
- 1.1 Who should use this guide
- 1.2 How can I use the Network in My System
- 1.3 Overview
- 1.4 Basic Download Instructions
- 1.5 Install into Eclipse
- 1.6 Adding ECF to the Target Platform (Basic Instructions)
- 1.7 Adding ECF to the Target Platform (Detailled Instructions)
- 1.8 Install in Felix or other OSGi
- 1.9 Download Source Code
Introduction
Hi, Welcome to the ECF Integrators Guide. This guide was created because the community felt the need for documentation of the ECF code base. Proposed as an Eclipse project in 2003, ECF's code base and functionality has grown over the years to reach the point where it is no longer possible to know all functions by memory and where not one single person knows everything.
The reason to start this guide was born out of the need to be able to read into the complexity of ECF without having to wade through source code, blog postings and unfamiliar API.
This guide is a result of a community effort. The list of people that has contributed to this guide in alphabetical order:
- Wim Jongman - Remain Software
- Martin Petzold -
- your name here
Who should use this guide
This guide was written for Java and OSGi programmers that want to extend their system to include:
- communications between humans,
- communication with web and peer based services,
- communication between components
The reader should have some basic idea of networking and communications but does not need to be an expert. Some experience with OSGi and Eclipse is recommended.
How can I use the Network in My System
If this is the question on your mind when you were looking for information then you have reached the correct spot. This manual will explain how you can re-use the framework components of ECF.
The manual will enable you to:
- Include p2p communications in your application
- Make your Java objects available through the network
- Use a distributed event admin
- Understand the ECF API and Design
Overview
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur porta vehicula accumsan. Pellentesque in eros urna. Suspendisse sollicitudin molestie nibh semper viverra. Nullam fermentum diam lectus. Aenean metus arcu, ultrices quis feugiat nec, vehicula at enim. Aenean elit nisi, fermentum sed congue vel, consequat in libero. Pellentesque interdum tempor nisi sed aliquam. Nullam lacinia, enim et suscipit aliquet, neque quam laoreet tortor, eu dictum sapien libero vel felis. Donec viverra, nisl vitae molestie placerat, enim sapien lacinia diam, ac gravida nibh elit vitae erat. Suspendisse rutrum turpis pellentesque diam suscipit in ornare felis rhoncus. Vestibulum vitae metus metus. Fusce ut est est. Praesent interdum metus vitae diam hendrerit quis volutpat sapien condimentum. Curabitur mollis ornare lorem, et ultricies lacus cursus et. Vestibulum eget massa eu dui condimentum imperdiet. Phasellus porta, eros et dignissim semper, felis elit pretium libero, vel condimentum est magna quis purus. Ut tincidunt urna ac massa aliquam eget varius tellus interdum. Praesent quis nibh purus.
Duis nunc enim, lacinia et rhoncus ac, ornare ut lacus. Maecenas at arcu erat, nec tempor massa. Etiam ligula tellus, pharetra a scelerisque at, tempus sed tortor. Ut velit nulla, ultrices eget vestibulum a, egestas sit amet orci. Curabitur sed eros at dui blandit imperdiet quis et libero. Suspendisse iaculis semper enim, sit amet lacinia metus ullamcorper at. Etiam consectetur scelerisque tempus. Proin eros nisi, feugiat a accumsan vitae, ultrices tempus nulla. Aenean euismod cursus sapien in luctus. Mauris aliquam nunc at sem fringilla facilisis posuere orci faucibus. Nunc facilisis fermentum velit ultrices dapibus. Maecenas vel pharetra nulla. Vestibulum mattis dui quis justo aliquet eu hendrerit lorem egestas. Donec vestibulum dignissim odio, eget dictum lorem vehicula et.
Nulla mi lorem, ullamcorper eu sollicitudin non, fringilla et urna. Mauris sit amet diam ipsum. Vivamus risus nisi, pulvinar eu pretium lacinia, porta vel nunc. Maecenas pretium, felis sit amet malesuada molestie, lectus justo fermentum mauris, id euismod nisl lectus at quam. Nam congue lectus ac justo lacinia a placerat turpis sodales. Pellentesque sagittis nisi justo, a suscipit mauris. Vivamus consequat tempor lectus, et pretium urna pellentesque a. Aliquam posuere, massa a ullamcorper feugiat, magna augue gravida augue, at imperdiet metus neque in orci. Phasellus aliquam, massa eu tempus tempor, magna lorem posuere augue, id aliquet lorem ante in leo. Donec odio ante, blandit facilisis fringilla scelerisque, pharetra dignissim justo. Phasellus lobortis justo sed lectus volutpat malesuada sed in mi.
Basic Download Instructions
Installation via Marketplace
In Eclipse open the Eclipse Marketplace "Help -> Eclipse Marketplace..." and search for ECF.
Installation of ECF
The ECF Remote Services implementation depends upon some bundles included in Eclipse, so you should download and use (at least) Eclipse 3.6, You can download Eclipse here.
The ECF Remote Services bundles are included in the ECF SDK, which can be downloaded or installed via Marketplace or p2.
Install into Eclipse
To install ECF Remote Services (and/or other parts of ECF) into Eclipse:
- From the Eclipse main menu, select Help->Install new software...
- In the upper right of the dialog, click on Add... to add the ECF repository location
- In the Name: field put: ECF 3.6, and in the Location: field put: http://download.eclipse.org/rt/ecf/3.6/site.p2 and click ok
- Select the parts of ECF you would like and choose Next->. For example
- Follow the rest of the install process
Adding ECF to the Target Platform (Basic Instructions)
When developing with Eclipse 3.5 or newer, it's possible to use a concept called a target platform. The target platform specifies the set of bundles used to compile and build against within the Eclipse PDE (plugin development environment). The default target platform is Eclipse itself, but the target platform can be set to any desired set of bundles. One way to develop applications that use some or all of ECF is to add the ECF SDK to your target platform. Then you are able to develop against and build using ECF functionality.
- Select from Menu: Window->Preferences->Plug-in Development->Target Platform
- Choose Add... button
- Initialize the Target Definition with Default: Default target for the running platform
- Specify Name: ECF SDK
- Choose Add... button
- Select Software Site and Next>
- Choose Add... button
- In Add Repository dialog
- Name: ECF SDK
- Location: http://download.eclipse.org/rt/ecf/latest/site.p2
- Choose OK
- Open the ECF tree item
- Select the Eclipse Communication Framework SDK check box
- Unselect Include Required Software. This option should not be selected.
- Choose Finish
- Select the target platform you just created (i.e. ECF SDK)
- Choose OK
Your target platform should then be set to your current Eclipse, plus the ECF SDK. Then you can refer to ECF classes in your own bundles/plugins.
Adding ECF to the Target Platform (Detailled Instructions)
To add ECF to your target platform:
- In the Eclipse main menu, select Window->Preferences
- In the Preferences tree (on left) navigate to Plug-in Development->Target Platform
- From the buttons on the right, select either Add... to create/add a new target platform, or Edit... to add ECF to your existing target platform
- Select Software Site
- In the upper right, select the Add... button to add the ECF repository and fill complete the Name: field with ECF 3.5, and the Location: field with http://download.eclipse.org/rt/ecf/latest/site.p2, and click OK
- Open the Eclipse Communication Framework (ECF) tree item, and select the parts of ECF that you want in the target platform. The three available items are:
- ECF Filetransfer Patch for Eclipse. This is an update to the ECF filetransfer and core plugins that are distributed as part of the Eclipse SDK (in support of p2)
- ECF Remote Services Target Components. This is the OSGi Remote Services components of ECF only. If you are only interested in the ECF OSGi 4.2 Remote Services part of ECF, you can just select this one item to add to your target platform
- ECF Target Components for Eclipse. This is all of ECF...both the Remote Services parts of ECF, as well as the other parts of Eclipse relevant to Eclipse (e.g. presence/IM, IRC client, collaboration, real-time shared editing, etc)
- IMPORTANT: Deselect the Include required software check box in the lower left. The default is selected, and so this must be explicitly deselected to successfully install ECF into a target platform. Explanation: There is a bug in the PDE editor that currently prevents ECF from distributing a repository that will allow things to succeed with the Include required software selected
- Click Finish. After some reading of the target platform and the ECF repo it should result in a output like the following
- Click Finish
Install in Felix or other OSGi
- Install pax-runner from http://paxrunner.ops4j.org/space/Pax+Runner
- pax-run --args=https://github.com/ECF/ECF4Felix/raw/master/eclipse.ecf.dosgi.args
- Open http://localhost:8080/system/console/
See README for doing this at https://github.com/ECF/ECF4Felix
EIG:Applications
Download Source Code
ECF uses the git revision control system. You need to install git before you can get the sources. Installing git from Eclipse is described on the EGit project page [1]. Once completed, open the "Git Repository Exploring" perspective.
Copy this link in your clipboard "git://git.eclipse.org/r/ecf/org.eclipse.ecf.git". Then open the "Git Repositories" view and press the "Clone a Git repository .." button in the toolbar of the view as depicted below.
Before you do that,copy one of the following URLs into your clipboard:
- git://git.eclipse.org/gitroot/ecf/org.eclipse.ecf.git
- ssh://user_id@git.eclipse.org:29418/ecf/org.eclipse.ecf.git
- https://git.eclipse.org/r/ecf/org.eclipse.ecf.git
This will fill in the repository location automatically.
This will start a wizard:
Make sure the repository is filled correctly in and press Next>.
Press "Deselect All" and select the "master" branch and press Next>.
Select a local directory to clone the repository and press finish.
Browsing the Source Tree
After installation, the source repository will show in the "Git Repositories" view. Right click on the "Working Directory" node to import projects into the workspace.
The source tree is divided into several main topics.
Examples
ECF comes with a lot of examples in the Eclipse ECF source tree. Besides these examples, there are also a lot of examples contributed by Pavel Samolisov on the ECF Github repository. The Github repository contains a lot pf ECF stuff that is not (yet) cleared by the Eclipse Foundation. This could be caused by using non-EPL code or simply because we did not yet ask the Eclipse Foundation to look at it.
Google for the terms "ECF Github" to get to that repository.
Source for the Hello Examples
The following projects are located in the ecf git repository. These hello example projects are underneath root/examples/bundles.
org.eclipse.ecf.examples.remoteservices.hello
org.eclipse.ecf.examples.remoteservices.hello.host
org.eclipse.ecf.examples.remoteservices.hello.consumer
org.eclipse.ecf.examples.remoteservices.hello.ds.host
org.eclipse.ecf.examples.remoteservices.hello.ds.consumer
org.eclipse.ecf.examples.remoteservices.hello.host.rs
org.eclipse.ecf.examples.remoteservices.hello.consumer.rs
org.eclipse.ecf.examples.remoteservices.hello.consumer.edef
For the org.eclipse.ecf.examples.remoteservices.hello.consumer.edef bundle see also the documentation about this new file-based discovery format in Discovery with the Endpoint Description Extender Format.
Framework
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent ac bibendum augue. Nunc massa massa, consequat a mattis vel, molestie ut mi. Curabitur vehicula elit ut lacus faucibus interdum. Aliquam a consequat nisi. Mauris at dui felis. Suspendisse nisl turpis, porttitor quis blandit a, laoreet ultrices tellus. Maecenas adipiscing euismod lorem. Etiam fermentum molestie risus nec bibendum. Proin placerat est ut lectus sodales fermentum. Nulla sit amet elementum est.
Incubation
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent ac bibendum augue. Nunc massa massa, consequat a mattis vel, molestie ut mi. Curabitur vehicula elit ut lacus faucibus interdum. Aliquam a consequat nisi. Mauris at dui felis. Suspendisse nisl turpis, porttitor quis blandit a, laoreet ultrices tellus. Maecenas adipiscing euismod lorem. Etiam fermentum molestie risus nec bibendum. Proin placerat est ut lectus sodales fermentum. Nulla sit amet elementum est.
osgi
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent ac bibendum augue. Nunc massa massa, consequat a mattis vel, molestie ut mi. Curabitur vehicula elit ut lacus faucibus interdum. Aliquam a consequat nisi. Mauris at dui felis. Suspendisse nisl turpis, porttitor quis blandit a, laoreet ultrices tellus. Maecenas adipiscing euismod lorem. Etiam fermentum molestie risus nec bibendum. Proin placerat est ut lectus sodales fermentum. Nulla sit amet elementum est.
protocols
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent ac bibendum augue. Nunc massa massa, consequat a mattis vel, molestie ut mi. Curabitur vehicula elit ut lacus faucibus interdum. Aliquam a consequat nisi. Mauris at dui felis. Suspendisse nisl turpis, porttitor quis blandit a, laoreet ultrices tellus. Maecenas adipiscing euismod lorem. Etiam fermentum molestie risus nec bibendum. Proin placerat est ut lectus sodales fermentum. Nulla sit amet elementum est.
providers
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent ac bibendum augue. Nunc massa massa, consequat a mattis vel, molestie ut mi. Curabitur vehicula elit ut lacus faucibus interdum. Aliquam a consequat nisi. Mauris at dui felis. Suspendisse nisl turpis, porttitor quis blandit a, laoreet ultrices tellus. Maecenas adipiscing euismod lorem. Etiam fermentum molestie risus nec bibendum. Proin placerat est ut lectus sodales fermentum. Nulla sit amet elementum est.
releng
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent ac bibendum augue. Nunc massa massa, consequat a mattis vel, molestie ut mi. Curabitur vehicula elit ut lacus faucibus interdum. Aliquam a consequat nisi. Mauris at dui felis. Suspendisse nisl turpis, porttitor quis blandit a, laoreet ultrices tellus. Maecenas adipiscing euismod lorem. Etiam fermentum molestie risus nec bibendum. Proin placerat est ut lectus sodales fermentum. Nulla sit amet elementum est.
server-side
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent ac bibendum augue. Nunc massa massa, consequat a mattis vel, molestie ut mi. Curabitur vehicula elit ut lacus faucibus interdum. Aliquam a consequat nisi. Mauris at dui felis. Suspendisse nisl turpis, porttitor quis blandit a, laoreet ultrices tellus. Maecenas adipiscing euismod lorem. Etiam fermentum molestie risus nec bibendum. Proin placerat est ut lectus sodales fermentum. Nulla sit amet elementum est.
tests
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent ac bibendum augue. Nunc massa massa, consequat a mattis vel, molestie ut mi. Curabitur vehicula elit ut lacus faucibus interdum. Aliquam a consequat nisi. Mauris at dui felis. Suspendisse nisl turpis, porttitor quis blandit a, laoreet ultrices tellus. Maecenas adipiscing euismod lorem. Etiam fermentum molestie risus nec bibendum. Proin placerat est ut lectus sodales fermentum. Nulla sit amet elementum est.