eclipse communication framework

an eclipse technology subproject

New and Noteworthy
0.5.2 Stable Release


Return to ECF download page
Return to ECF communication resources page

New and Noteworthy for 0.4.0

Instant Messaging Improvements

Disconnecting from accounts individually

The context menu for accounts listed in the ECF Buddy List now allow disconnection from that account as well as showing chat rooms available just for that account.


Username customization for XMPP Chat


When entering an XMPP chat the user is now prompted for a username for the chat, rather than using the IM username always. The default is, however, still the IM username


XMPP over SSL


For XMPP servers that support it, ECF now supports XMPP over SSL


Team Collaboration Improvements


Remotely Launch Editors on Team Project Resources


For Team projects where collaboration participants all have access to the same resources, one can now remotely launch an editor on the chosen resource

Each team member must connect the team project to a collaboration group:

  • In Navigator or Package Explorer open context menu for a team project



  • Choose 'ECF Generic' provider, and connect to a specific collaboration group



  • Once the project is connected you should see team members listed in the ECF Collaboration view



  • Select a text file (e.g. source file) in team project, and choose ECF->Open Shared Editor



  • You (and others in the same collaboration group, should then see an open editor on the selected resource




New ECF Provider Implementations


Java Messaging Service (JMS) Provider Implementation


An ECF provider that uses ActiveMQ's implementation of the Java Messaging Service is now available. To download this plugin goto ECF Extras Web Server.

PLEASE NOTE: This provider is not yet reviewed and approved under the terms of the EPL and the Apache 2 license and anyone using it are subject to the terms and conditions of both licenses. See the about.html of this plugin for further details.


Zeroconf Discovery Provider Implementation


An ECF provider implementing the org.eclipse.ecf.discovery API is now available that uses the Zeroconf/Bonjour protocols. To download this this provider goto ECF Extras Web Server.

PLEASE NOTE: This provider is not yet reviewed and approved under the terms of the EPL and the Apache 2 license and anyone using it are subject to the terms and conditions of both licenses. See the about.html of this plugin for further details.


Internet Relay Chat Provider Implementation


An ECF provider implementing the IRC protocol is now available that uses the IRCLib API. To use download this provider goto ECF Extras Web Server.

PLEASE NOTE: This provider is not yet reviewed and approved under the terms of the EPL and the Apache 2 license and anyone using it are subject to the terms and conditions of both licenses. See the about.html of this plugin for further details.


RCP Application


RCPChat Application


A new RCP application is available that uses the XMPP provider plugin to create a simple IM client. To use download this provider goto



To use download this application goto ECF Extras Web Server.


ECF API Additions and Changes


Core Support For Transactional State Distribution Protocols


For reliability, it's frequently desireable to have state distribution done via transactional protocols where either all participants successfully receive a given piece of application state, or all 'abort' and fail back to a known state.

This new set of classes allows applications to easily implement 'all-or-nothing' semantics for arbitrary state distribution in ECF applications.

ECF has added a new package, org.eclipse.ecf.core.sharedobject that provides an API for application developers to create shared objects whose state is distributed via transactional protocols. So, for example, here is some code that creates a shared object with a Boolean as its state and by inheriting from org.eclipse.ecf.sharedobject.TransactionSharedObject it automatically uses a transactional protocol (two-phase commit) for istributing its state (in this case a Boolean variable value) to replicas.

package org.eclipse.ecf.test.sharedobjects;

import java.util.HashMap;
import java.util.Map;
import org.eclipse.ecf.core.SharedObjectDescription;
import org.eclipse.ecf.core.identity.ID;
import org.eclipse.ecf.core.sharedobject.TransactionSharedObject;

public class TestTransactionSharedObject extends TransactionSharedObject {

    Boolean state = null;
	
    public TestTransactionSharedObject(Boolean val, int timeout) {
        super(timeout);
        state = val;
    }
    public TestTransactionSharedObject() {
        super();
        state = null;
    }
	
    protected SharedObjectDescription getReplicaDescription(ID receiver) {
    	// This method is executed on primary to determine initial state 
    	// for replicas
    	
    	// include primary state in properties
    	Map properties = new HashMap();
    	properties.put("state", state);
    	
    	return new SharedObjectDescription(getID(), getClass().getName(),
        		properties);
    }
    protected void initialize() {
    	// This method is executed on both primary and replicas
    	super.initialize();
    	// Only set state via properties if we are replica (not primary)
    	if (!isPrimary()) {
	    	Map properties = getConfig().getProperties();
	    	if (properties != null) {
	    		state = (Boolean) properties.get("state");
	    	}
    	}
    }
}