eclipse communication framework

an eclipse technology subproject

New and Noteworthy
0.8.4 Stable Release


Return to ECF download page
Return to ECF communication resources page

New and Noteworthy for 0.4.0
New and Noteworthy for 0.5.2
New and Noteworthy for 0.5.4
New and Noteworthy for 0.6.0
New and Noteworthy for 0.6.2
New and Noteworthy for 0.7.0
New and Noteworthy for 0.7.5
New and Noteworthy for 0.7.6
New and Noteworthy for 0.8.0
New and Noteworthy for 0.8.1
New and Noteworthy for 0.8.2

Application-Defined Peer-to-Peer Protocols Using XMPP

New Example Application


The org.eclipse.ecf.example.clients plugin has a new example client: XMPPSORobotApplication. This application shows the use an XMPP's extension mechanism to implement new protocols that can run directly on XMPP.

This can be accomplished because the ECF XMPP provider (ecf.xmpp.smack) implements the ISharedObjectContainer API. The ISharedObjectContainer API allows applications to design, implement, and use new protocols, by creating components implementing the ISharedObject interface. These components may then be added to an ISharedObjectContainer instance at runtime. So, for example, consider the following snippet:

      // Get shared object container from xmpp container instance
      ISharedObjectContainer socontainer = (ISharedObjectContainer) xmppcontainer.getAdapter(ISharedObjectContainer.class);
      // Create shared object ID...this will be a singleton so the ID can be the class name
      ID newID = IDFactory.getDefault().createStringID(TrivialSharedObject.class.getName());
      // Create shared object itself
      ISharedObject sharedObject = new TrivialSharedObject();
      // Add shared object to container
      soontainer.getSharedObjectManager().addSharedObject(newID, sharedObject, null);
      

In the case of this example application, the ISharedObject component is implemented by the TrivialSharedObject class. See the source code for this class to examine the implementation of the custom protocol. The source code for all ECF plugins is available via anonymous CVS access described on the ECF Dev Resources Page.

Other ECF clients may define any point-to-point protocol they wish using similar mechanisms (implemented as ISharedObject instances like TrivialSharedObject), and this new protocol will then run on XMPP without requiring modification to existing XMPP servers. Other XMPP clients (e.g. GAIM, Google Talk, etc.) that do not know about the new protocol will simply ignore any messages directed sent to them.


Call API Additions/Changes

Enhancements to Support Jingle/JEP-166


The ECF plugin org.eclipse.ecf.call is intended to provide an abstract 'Call' API, to allow clients to do call setup in a protocol independent manner. The API is not finished yet (still experimental), but the ECF team is working on an implementation based upon Google Talk's Jingle protocol. The new/enhanced API javadocs are here