Project Plan For Eclipse Communication Framework, version 3.0

Introduction

Previously, ECF has had two major releases: ECF 1.0.0 as part of Europa Simultaneous Release, and ECF 2.0.0 as part of Ganymede Simultaneous Release. This plan describes the work for ECF 3.0.0, which will occur in June, 2009 as part of the Galileo Simultaneous Release.

Release Deliverables

The major ECF 3.0.0 release deliverables are as follows:

  1. Contribute to E4 Project via work on a common connection framework, synchronization of replicated models, and support for/use of asynchronous communication patterns
  2. Contribute to Equinox P2 Project via additions to ECF File Transfer, and usage of ECF Discovery, and ECF Remote Services
  3. Improve and Extend the ECF Example Applications
  4. Enable easier creation and use of Equinox+ECF-based Server Runtimes
  5. Harden ECF Discovery and Remote OSGi Services, create more provider implementations, and provide open reference implementations for emerging standards (e.g. RFC 119)
  6. Improve IM and Chat for usage with Eclipse
  7. Deliver improved application integration with Eclipse projects: Mylyn and DSDP-TM VNC screen sharing
  8. Restructure ECF's packaging and deployment for easier external consumption
  9. Create selected providers based upon community input about emerging popular protocols

Table of Contents

Release Milestones

ECF plans on delivering milestone on the same general schedule as the Galileo Simultaneous Release schedule, starting with M4. ECF has both +0 and +1 components. The +0 components will be on same release schedule as the Platform, and the +1 components will be as specified below.
M412/17/2008
M52/3/2009
M63/16/2009
API Freeze
M75/4/2009
3.0.0 Feature Freeze
RC15/18/2009
RC15/18/2009
RC25/25/2009
RC36/1/2009
RC46/8/2009
RC56/15/2009
3.0.06/26/2009
Galileo GA

Table of Contents

Target Environments

ECF's target environments are:
  • Eclipse
  • Eclipse-based Applications
  • Other Equinox-Based Runtimes (e.g. Equinox servers)

Internationalization

ECF doesn't perform internationalization directly, although we develop our plugins following common rules about string externalization to make the automation possible

Table of Contents

Compatibility with Previous Releases

ECF has a policy of maintaining API backward compatibility with minor and service releases. API is considered all exported packages (i.e. packages that do not have

x-internal:=true
in their Export-Package declaration. As an example, with the following declaration in the org.eclipse.ecf MANIFEST.MF

Export-Package: org.eclipse.ecf.core, org.eclipse.ecf.internal.core;x-internal:=true
       

The org.eclipse.ecf.core package is API, and the org.eclipse.ecf.internal.core package is not

Only with major releases (e.g. 2.0.0, 3.0.0) are incompatible API changes to be introduced (e.g. refactorings, renames), and even then only after discussion among multiple committers. For the parts of ECF used by the Platform (e.g. the core and file transfer bundles), NO incompatible API changes will be introduced, even for major releases, in order to maintain the platform backward compatibility constraints.

Table of Contents

Themes and Priorities

Model Synchronization

ECF's docshare capabilities will be generalized to support synchronization of distributed models of multiple forms

  • Proposed
    • [modelsync] Improve Real-Time Shared Editing for files that exist in both workspaces [237471] (target milestone: ---)
    • [modelsync][rtcollab] Distribute resource changes to peer in real-time [239048] (target milestone: ---)
    • [modelsync] DocShare plug-in should be split into core/ui [234142] (target milestone: 2.1.0)

Real-Time Collaboration for IDE

  • Proposed
    • [rtcollab] Provide an indication of where other users are editing [237923] (target milestone: 2.1.0)
    • [rtcollab] DocShare should support the sharing of external files [238040] (target milestone: 2.1.0)
    • [modelsync][rtcollab] Distribute resource changes to peer in real-time [239048] (target milestone: ---)
    • [rtcollab] DocShare & DocShare.Cola should support N way messaging [240290] (target milestone: ---)

ECF for Runtimes

  • Proposed
    • [runtime] [IRC] Support platform proxy settings [200256] (target milestone: ---)
    • [xmpp] [runtime] use org.eclipse.core.net.proxy API for socks proxy support [206275] (target milestone: ---)
    • [runtime] Equinox-based XMPP server [235844] (target milestone: ---)
    • [runtime][presence][xmpp] add use of proxy data in xmpp connections [236455] (target milestone: ---)
    • [runtime] [msn] doesn't honor platform proxy settings [193578] (target milestone: 2.0.0)
    • [runtime][filetransfer][test] test proxy configurations [208012] (target milestone: 2.0.0)

Remote OSGi Services

As ECF moves to the Runtime top-level project, the ECF remote services API will be potentially use in non-Eclipse runtimes and in combination with work from other projects (e.g. P2/remote Equinox managment, etc)

  • Proposed
    • [remotesvcs][Discovery] Namespace semantics for discovery need to be different [207089] (target milestone: ---)
    • [remotesvcs][Discovery] Discovery may define a generic IServiceTypeID independent of providers [207091] (target milestone: ---)
    • [remotesvcs] Provide org.eclipse.ecf.discovery.IDiscoveryContainerAdapter#unregisterAllServices() [230180] (target milestone: 3.0.0)
    • [remotesvcs] Discovery may be configurable via OSGi configuration admin service [217978] (target milestone: ---)
    • [remotesvcs] [discovery] [ui] add filtering to discovery services view [218452] (target milestone: ---)
    • [remotesvcs] Remove create org.eclipse.ecf.discovery.identity.IServiceID by java.lang.String [230183] (target milestone: ---)
    • [remotesvcs][r-osgi] sometime exception in r-osgi on Eclipse start [233385] (target milestone: 2.0.0)
    • [remotesvcs] Implement RFC 119 [249240] (target milestone: ---)
    • [remotesvcs] add asynchronous IRemoteServiceContainerAdapter.getRemoteServiceReferences() [251897] (target milestone: ---)

IM/Chat Features

  • Proposed
    • [imchat][presence][ui] add API for contributing roster entry properties to MultiRosterView [208713] (target milestone: ---)
    • [imchat][irc] Add support for peer to peer file transfer [218117] (target milestone: ---)
    • [imchat] Add persistence to MultiRosterView (org.eclipse.ecf.presence.ui) [166670] (target milestone: 2.1.0)
    • [imchat][presence] API needed for creating conferences/group chats [182474] (target milestone: 1.1.0)

Application Integration

Currently, there are only a few examples of effective integrations of ECF with existing products. We will focus on creating other integrations...e.g. with Mylyn and DSDP-TM's VNC implementation

  • Proposed
    • [appint] VNC-based screen sharing [239854] (target milestone: ---)
    • [appint] Provide ability to export/import task context via ECF communications [195737] (target milestone: ---)

Packaging and Deployment

ECF is currently deployed as a small set (2) of features via update site. This makes the consumption of sub-components of ECF (e.g. discovery, remote services, docshare, etc) difficult. Probably using P2, ECF will make the piecewise consumption of ECF bundles easier.

  • Proposed
    • [deploy] create features or IUs for deploying components [249237] (target milestone: ---)

Table of Contents

view raw xml of project plan
from project meta-data key "projectplanurl"