Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: for the plan.

Jump to: navigation, search

EIG:File-based Discovery with the Endpoint Description Extender Format


Starting with version 3.5, ECF supports/implements the OSGi 4.2 Remote Service Admin (RSA)...chapter 122 in the enterprise specification.

The RSA specification includes an xml-file-based discovery mechanism called the Endpoint Description Extender Format (edef). This allows remote service endpoints to be discovered statically, via xml-files that contain endpoint descriptions. These xml files, are delivered into a running framework via active bundles, as specified in section 122.8.


There is an example of the use of the EDEF format here. See the Remote-Service header in the manifest:

Remote-Service: generic_hello.xml

And here is the contents of generic_hello.xml in the EDEF format:

<?xml version="1.0" encoding="UTF-8"?>
<endpoint-descriptions xmlns="">
    <property name="" value-type="String" value="org.eclipse.ecf.core.identity.StringID"/>
    <property name="endpoint.framework.uuid" value-type="String" value="70cd3d4b-4931-0010-1b63-d64101cefd5e"/>
    <property name="" value-type="String" value="ecftcp://localhost:3787/server"/>
    <property name="" value-type="Long" value="0"/>
	<property name="" value-type="String" value="3.0.0"/>
    <property name="objectClass" value-type="String">
    <property name="remote.configs.supported" value-type="String">
    <property name="remote.intents.supported" value-type="String">
    <property name="" value-type="Long" value="64"/>
    <property name="service.imported" value-type="String" value="true"/>
    <property name="service.imported.configs" value-type="String">

Running Hello Example with EDEF Consumer Discovery

In the project there is the following product configuration file: Service Host (edef,generic).product

and in the project org.eclipse.ecf.examples.remoteservices.hello.consumer there is the follwoing product configuration file:

org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (edef,generic).product

These start the host and consumer, respectively, using EDEF-based discovery (i.e. the xml file listed above in org.eclipse.ecf.remoteservices.hello.consumer.edef bundle above).

One the Hello Service Consumer (edef,generic).product is started, then to trigger the EDEF-file-based discovery, start the org.eclipse.ecf.remoteservices.hello.consumer.edef bundle from the OSGi console prompt:

osgi>start org.eclipse.ecf.remoteservices.hello.consumer.edef

this will trigger the consumer's reading/parsing of the EDEF file, and the EndpointDescription discovery, and remote service import.

Writing/Creating EDEF xml files

In ECF's remote service admin implementation, an EndpointDescriptionWriter class is available to allow EndpointDescriptions to be disk or some other output stream.

Back to the top