Jump to: navigation, search

Difference between revisions of "ECF/API Docs"

< ECF
(API Bundle)
Line 11: Line 11:
 
The ECF Core API provides support for all other ECF APIs.  This includes distributed identity (ID) services, ECF distributed container (IContainer) interface definition and factory-based container instance creation.
 
The ECF Core API provides support for all other ECF APIs.  This includes distributed identity (ID) services, ECF distributed container (IContainer) interface definition and factory-based container instance creation.
  
The primary entity in the ECF core API is the distributed container, whose runtime contract is represented by the [http://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/org/eclipse/ecf/core/IContainer.html IContainer] interface.  ECF protocol providers (e.g. XMPP, ECF generic, IRC, bittorrent, etc) all must create a class implmenting the IContainer core interface.
+
The primary entity in the ECF core API is the distributed container, whose runtime contract is represented by the [http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/core/IContainer.html IContainer] interface.  ECF protocol providers (e.g. XMPP, ECF generic, IRC, bittorrent, etc) all must create a class implmenting the IContainer core interface.
  
All other ECF APIs listed below are accessed as adapters via the [http://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/org/eclipse/ecf/core/IContainer.html#getAdapter(java.lang.Class) IContainer.getAdapter(<interface class>)].  This allows the core container interface to be quite simple, having methods for connection/disconnection and access to other APIs via adapters.  See the documentation for [http://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/org/eclipse/ecf/core/IContainer.html#getAdapter(java.lang.Class) IContainer.getAdapter(<interface class>)] for an example usage, or test code.
+
All other ECF APIs listed below are accessed as adapters via the [http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/core/IContainer.html#getAdapter(java.lang.Class) IContainer.getAdapter(<interface class>)].  This allows the core container interface to be quite simple, having methods for connection/disconnection and access to other APIs via adapters.  See the documentation for [http://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/org/eclipse/ecf/core/IContainer.html#getAdapter(java.lang.Class) IContainer.getAdapter(<interface class>)] for an example usage, or test code.
  
 
===API Bundles===
 
===API Bundles===
Line 33: Line 33:
 
=Datashare API=
 
=Datashare API=
  
The datashare API provides support for asynchronous messaging channels.  Arbitrary data may be reliably sent to [http://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/org/eclipse/ecf/datashare/IChannel.html IChannels].  These channels can represent both point-to-point messaging and publish-and-subscribe (group) messaging.  IChannel instances are created via the [http://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/org/eclipse/ecf/datashare/IChannelContainerAdapter.html IChannelContainerAdapter], which is an adapter interface accessed via [http://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/org/eclipse/ecf/core/IContainer.html#getAdapter(java.lang.Class) IContainer.getAdapter(IChannelContainerAdapter.class)].
+
The datashare API provides support for asynchronous messaging channels.  Arbitrary data may be reliably sent to [http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/datashare/IChannel.html IChannels].  These channels can represent both point-to-point messaging and publish-and-subscribe (group) messaging.  IChannel instances are created via the [http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/datashare/IChannelContainerAdapter.html IChannelContainerAdapter], which is an adapter interface accessed via [http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/core/IContainer.html#getAdapter(java.lang.Class) IContainer.getAdapter(IChannelContainerAdapter.class)].
  
 
See test code below for example usage.
 
See test code below for example usage.
Line 40: Line 40:
  
 
[[Datashare API Bundle|org.eclipse.ecf.datashare]]
 
[[Datashare API Bundle|org.eclipse.ecf.datashare]]
 
===API + Provider Project Sets===
 
 
[http://www.eclipse.org/ecf/projectsetfiles/ecf.datashare.anonymous.psf Anonymous]
 
 
[http://www.eclipse.org/ecf/projectsetfiles/ecf.datashare.committer.psf Committer]
 
  
 
===Test Bundles===
 
===Test Bundles===
Line 53: Line 47:
 
=Discovery API=
 
=Discovery API=
  
The discovery API provides a protocol independent API for asynchronously discovering remote services.  Registering services to be discovered and listeners to be asynchronously notified when service types and services are published is accomplished via the [http://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/org/eclipse/ecf/discovery/IDiscoveryContainerAdapter.html IDiscoveryContainerAdapter].
+
The discovery API provides a protocol independent API for asynchronously discovering remote services.  Registering services to be discovered and listeners to be asynchronously notified when service types and services are published is accomplished via the [http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/discovery/IDiscoveryContainerAdapter.html IDiscoveryContainerAdapter].
  
 
See test bundles code for example usage.
 
See test bundles code for example usage.
Line 62: Line 56:
  
 
===[[ECF Providers#Discovery_.28org.eclipse.ecf.discovery.29|Provider Implementations]]===
 
===[[ECF Providers#Discovery_.28org.eclipse.ecf.discovery.29|Provider Implementations]]===
 
===API Project Sets===
 
 
[http://www.eclipse.org/ecf/projectsetfiles/ecf.discovery.anonymous.psf Anonymous]
 
 
[http://www.eclipse.org/ecf/projectsetfiles/ecf.discovery.committer.psf Committer]
 
  
 
===Test Bundles===
 
===Test Bundles===
Line 75: Line 63:
 
=File Transfer API=
 
=File Transfer API=
  
The filetransfer API provides support for both retrieving remote files, and initiating the sending of peer-to-peer file transfer.  Initiating the asynchronous retrieval of remote files is done via the [http://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/org/eclipse/ecf/filetransfer/IRetrieveFileTransferContainerAdapter.html IRetrieveFileTransferContainerAdapter], and requesting peer-to-peer file transfer is done via the [http://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/org/eclipse/ecf/filetransfer/IOutgoingFileTransferContainerAdapter.html IOutgoingFileTransferContainerAdapter].
+
The filetransfer API provides support for both retrieving remote files, and initiating the sending of peer-to-peer file transfer.  Initiating the asynchronous retrieval of remote files is done via the [http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/filetransfer/IRetrieveFileTransferContainerAdapter.html IRetrieveFileTransferContainerAdapter], and requesting peer-to-peer file transfer is done via the [http://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/org/eclipse/ecf/filetransfer/IOutgoingFileTransferContainerAdapter.html IOutgoingFileTransferContainerAdapter].
  
 
See test code and/or javadocs above for example usage for file retrieval and/or outgoing file transfer.
 
See test code and/or javadocs above for example usage for file retrieval and/or outgoing file transfer.
Line 84: Line 72:
  
 
[[ECF Filetransfer Provider Bundle|org.eclipse.ecf.provider.filetransfer]]
 
[[ECF Filetransfer Provider Bundle|org.eclipse.ecf.provider.filetransfer]]
 
===API + Provider Project Sets===
 
 
[http://www.eclipse.org/ecf/projectsetfiles/ecf.filetransfer.anonymous.psf Anonymous]
 
 
[http://www.eclipse.org/ecf/projectsetfiles/ecf.filetransfer.committer.psf Committer]
 
  
 
===[[ECF Providers#File_Transfer_.28org.eclipse.ecf.filetransfer.29|Provider Implementations]]===
 
===[[ECF Providers#File_Transfer_.28org.eclipse.ecf.filetransfer.29|Provider Implementations]]===
Line 126: Line 108:
  
 
===[[ECF Providers#Remote_Services_.28org.eclipse.ecf.remoteservice.29|Provider Implementations]]===
 
===[[ECF Providers#Remote_Services_.28org.eclipse.ecf.remoteservice.29|Provider Implementations]]===
 
===API Project Sets===
 
 
[http://www.eclipse.org/ecf/projectsetfiles/ecf.remoteservice.anonymous.psf Anonymous]
 
 
[http://www.eclipse.org/ecf/projectsetfiles/ecf.remoteservice.committer.psf Committer]
 
  
 
===Test Bundles===
 
===Test Bundles===
Line 146: Line 122:
  
 
===[[ECF Providers#ECF_Generic|Provider Implementations]]===
 
===[[ECF Providers#ECF_Generic|Provider Implementations]]===
 
===API Project Sets===
 
 
[http://www.eclipse.org/ecf/projectsetfiles/ecf.sharedobject.anonymous.psf Anonymous]
 
 
[http://www.eclipse.org/ecf/projectsetfiles/ecf.sharedobject.committer.psf Committer]
 
  
 
===Test Bundles===
 
===Test Bundles===

Revision as of 13:52, 11 March 2011

The ECF API Docs page is a collection of documentation for the Eclipse Communication Framework project's core APIs.

ECF API Documentation

Below are bundle-level documentation for each of the main ECF 2.0.0 APIs: ECF Core, Datashare API, Discovery API, File Transfer API, Presence API, Remote Services API, Shared Object API, Telephony API, and IPC API.

Each API has a link to information about the API bundle(s), and detailed information about that bundle, including required bundles/packages, exported bundles, links to javadocs for exported packages, extension points defined/exposed, OSGi Services exposed, and links to source (downloading and browsing).

ECF Core

The ECF Core API provides support for all other ECF APIs. This includes distributed identity (ID) services, ECF distributed container (IContainer) interface definition and factory-based container instance creation.

The primary entity in the ECF core API is the distributed container, whose runtime contract is represented by the IContainer interface. ECF protocol providers (e.g. XMPP, ECF generic, IRC, bittorrent, etc) all must create a class implmenting the IContainer core interface.

All other ECF APIs listed below are accessed as adapters via the IContainer.getAdapter(<interface class>). This allows the core container interface to be quite simple, having methods for connection/disconnection and access to other APIs via adapters. See the documentation for IContainer.getAdapter(<interface class>) for an example usage, or test code.

API Bundles

org.eclipse.ecf.identity

org.eclipse.ecf

Project Sets

Anonymous

Committer

Test Bundles

org.eclipse.ecf.tests

Datashare API

The datashare API provides support for asynchronous messaging channels. Arbitrary data may be reliably sent to IChannels. These channels can represent both point-to-point messaging and publish-and-subscribe (group) messaging. IChannel instances are created via the IChannelContainerAdapter, which is an adapter interface accessed via IContainer.getAdapter(IChannelContainerAdapter.class).

See test code below for example usage.

API Bundle

org.eclipse.ecf.datashare

Test Bundles

org.eclipse.ecf.tests.datashare

Discovery API

The discovery API provides a protocol independent API for asynchronously discovering remote services. Registering services to be discovered and listeners to be asynchronously notified when service types and services are published is accomplished via the IDiscoveryContainerAdapter.

See test bundles code for example usage.

API Bundle

org.eclipse.ecf.discovery

Provider Implementations

Test Bundles

org.eclipse.ecf.tests.discovery

File Transfer API

The filetransfer API provides support for both retrieving remote files, and initiating the sending of peer-to-peer file transfer. Initiating the asynchronous retrieval of remote files is done via the IRetrieveFileTransferContainerAdapter, and requesting peer-to-peer file transfer is done via the IOutgoingFileTransferContainerAdapter.

See test code and/or javadocs above for example usage for file retrieval and/or outgoing file transfer.

API Bundles

org.eclipse.ecf.filetransfer

org.eclipse.ecf.provider.filetransfer

Provider Implementations

Test Bundles

org.eclipse.ecf.tests.filetransfer

Presence API

The presence API provides a protocol independent API for instant messaging, basic presence/buddy lists/rosters display and management, and multi-user chat rooms.

API Bundle

org.eclipse.ecf.presence

Provider Implementations

API Project Sets

Anonymous

Committer

Test Bundles

org.eclipse.ecf.tests.presence

Remote Services API

The remote services API provides a protocol independent API for accessing remote services on peer OSGi containers. The remote services may be accessed via proxy, synchronous (call/return) invocation, or asynchronous (call and listen) invocation.

API Bundle

org.eclipse.ecf.remoteservice

Provider Implementations

Test Bundles

org.eclipse.ecf.tests.remoteservice

Shared Object API

The shared object API provides a protocol independent API for replicating Java objects in a distributed group.

API Bundle

org.eclipse.ecf.sharedobject

Provider Implementations

Test Bundles

org.eclipse.ecf.tests.sharedobject

Telephony API

The telephony API supports the initiation/receiving and management of VOIP phone calls.

TBD

IPC API

The IPC API provides (native) implementations of Inter-Process Communication mechanisms, typically to allow for communication between an application running inside a Java virtual machine and a native process running on the same host.

API Bundle

org.eclipse.ecf.ipc

Eclipse Communication Framework
API
API DocumentationJavadocProvidersECF/Bot Framework
Development
Development GuidelinesIntegrators Guide