blob: d872da6a85a2f24f937160244cb079946b41547b [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<?xml-stylesheet type="text/xsl" href="http://www.eclipse.org/projects/project-plan.xsl"?>
<plan plan-format="1.0" xmlns="http://www.eclipse.org/project/plan" xmlns:html="http://www.w3.org/1999/xhtml"
name="Eclipse Communication Framework">
<release projectid="rt.ecf" version="3.0"/>
<introduction>
<html:div><html:p>Previously, ECF has had three major releases: <html:a href="http://www.eclipse.org/ecf/downloads.php">ECF 1.0.0</html:a> as part of <html:a href="http://wiki.eclipse.org/index.php/Europa_Simultaneous_Release">Europa Simultaneous Release</html:a>, ECF 2.0.0 as part of <html:a href="http://wiki.eclipse.org/Ganymede_Simultaneous_Release">Ganymede Simultaneous Release</html:a>, and ECF 3.0.0 as part of <html:a href="http://wiki.eclipse.org/Galileo_Simultaneous_Release">Galileo Simultaneous Release</html:a>. This plan describes the work for ECF 3.2, which will occur in June, 2010 as part of the <html:a href="http://wiki.eclipse.org/Helios_Simultaneous_Release">Helios Simultaneous Release</html:a>.</html:p></html:div>
</introduction>
<release_deliverables>
<html:div><html:p>The major ECF 3.2 release deliverables are as follows:
<html:ol>
<html:li>Extend ECF Discovery and Remote OSGi Services, and support the OSGi 4.2's Remote Services standardization</html:li>
<html:li>Implement a Google Wave-compatible ECF provider</html:li>
<html:li>Improve and Extend the ECF Example Applications, with special emphasis on ECF remote services and discovery examples</html:li>
<html:li>Enable easier creation and use of Equinox+ECF-based Server Runtimes</html:li>
</html:ol>
</html:p></html:div>
</release_deliverables>
<release_milestones>
<preamble>
<html:div>ECF plans on delivering milestone on the same general schedule as the <html:a href="http://wiki.eclipse.org/Helios_Simultaneous_Release">Helios Simultaneous Release</html:a> 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.</html:div>
</preamble>
<milestone date="12/18/2009" milestone="M4"><html:div></html:div></milestone>
<milestone date="2/5/2010" milestone="M5"><html:div></html:div></milestone>
<milestone date="3/19/2010" milestone="M6"><html:div>ECF 3.2 API Freeze</html:div></milestone>
<milestone date="5/7/2010" milestone="M7"><html:div>ECF 3.2 Feature Freeze</html:div></milestone>
<milestone date="5/21/2010" milestone="RC1"><html:div></html:div></milestone>
<milestone date="5/28/2010" milestone="RC2"><html:div></html:div></milestone>
<milestone date="6/4/2010" milestone="RC3"><html:div></html:div></milestone>
<milestone date="6/11/2010" milestone="RC4"><html:div></html:div></milestone>
<milestone date="6/23/2010" milestone="3.2"><html:div>Helios GA/ECF 3.2</html:div></milestone>
<postamble><html:div></html:div></postamble>
</release_milestones>
<target_environments>
<html:div>ECF's target environments are:
<html:ul>
<html:li>Eclipse</html:li>
<html:li>Eclipse-based Applications</html:li>
<html:li>Eclipse RCP</html:li>
<html:li>Other Equinox-Based Runtimes (e.g. Equinox servers and CDC1.1/Foundation 1.1 environments)</html:li>
</html:ul>
</html:div>
<internationalization>
<html:div>ECF doesn't perform internationalization directly, although we develop our plugins following
common rules about string externalization to make the automation possible</html:div>
</internationalization>
</target_environments>
<compatibility_with_previous_releases>
<html:div><html:p>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 <html:pre>x-internal:=true</html:pre> in their Export-Package declaration. As an example,
with the following declaration in the org.eclipse.ecf MANIFEST.MF</html:p>
<html:pre>Export-Package: org.eclipse.ecf.core, org.eclipse.ecf.internal.core;x-internal:=true
</html:pre>
<html:p>The org.eclipse.ecf.core package is API, and the org.eclipse.ecf.internal.core package is not</html:p>
<html:p>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.</html:p>
</html:div>
</compatibility_with_previous_releases>
<themes_and_priorities>
<preamble>
<html:div></html:div>
</preamble>
<theme name="Remote Services">
<description>
<html:p>In our Galileo/ECF 3.0 release, ECF included support for the OSGi Enterprise Experts group's RFC119 (Distributed OSGI). This DRAFT specification
provides consistent service property constants, as well as java classes for making services registered as local services available
as remote services. The two major technical components of the RFC119 DRAFT spec were discovery (for allowing client to discoverying in some
manner services exposed by other frameworks), and distribution (for actually accessing and calling the service). In ECF 3.0, ECF included
full support for the DRAFT RFC119 specification, and implemented this support via the ECF discovery API, and the ECF remote services API (distribution).
The use of these two APIs, independent of provider transport, uniquely allows multiple transports to be used without application-level code changes (e.g.
using JMS, r-OSGi, and/or new providers without code changes).
</html:p>
<html:p>
In the summer of 2009,
the OSGi standards organization chose to simplify and rename the RFC119 specification, as well as rename it 'Remote Services'. One simplification
that was made in the Remote Services chapter of the OSGi 4.2 specification
was to *only* define service constants that clients must/can use to register, publish, discover, and access remote services, while leaving out
all java interfaces and classes from the specification itself. One of our efforts during the last few months of 2009 will be to
rename our existing constants to support these new constants. This will then give our existing implementation full compliance
with the new Remote Services specification.
</html:p>
</description>
<proposed bugzilla="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=[remotesvcs]&amp;classification=RT&amp;product=ECF&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=plan&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailtype1=substring&amp;email1=&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0="></proposed>
</theme>
<theme name="Google Wave">
<description>
<html:p>In spring of 2009, Google announced a new system called Google Wave. In ECF 2.0, ECF introduced a real-time
shared editor called DocShare, and the underlying synchronization engine based upon operational transformation was generalized in
ECF 3.0 to provide a generic synchronization API. This API is based upon our own operational transformation implementation refered to
publicly as Cola.
</html:p>
<html:p>
ECF's existing provider architecture allows us to easily support new protocols (such as the Google Wave server protocol described
at <html:a href="http://waveprotocol.org">waveprotocol.org</html:a>), our existing synchronization API (org.eclipse.ecf.sync), as well as
our existing XMPP provider (based upon Smack XMPP implementation), allow us to relatively easily create modules that allow an
Equinox+ECF-based web server to interoperate with a Google Wave server. We propose to implement such a Wave-protocol-compliant server, using
Equinox+ECF+other EclipseRT technologies.
</html:p>
</description>
<proposed bugzilla="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=[wave]&amp;classification=RT&amp;product=ECF&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=plan&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailtype1=substring&amp;email1=&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0="></proposed>
</theme>
<theme name="ECF Remote Services and REST-based Webservices">
<description>
<html:p>As part of his 2009 Google Summer of Code project, Holger Staudacher used and extended the ECF remote service API to allow
REST-based (Representational State Transfer) APIs to easily be accessed as remote services. REST-style APIs are increasingly
popular for web services, and ECF now has a REST API for accessing and using REST-based remote services, and treating them
as with every other remote service (i.e. via the ECF remote service API).
</html:p>
<html:p>ECF 3.1 (for Oct 7, 2009 release) will include this REST API, but during the ECF 3.2/Helios release cycle we will extend the existing
API, and include additional API to support the easy creation and publication of REST-based web services.
</html:p>
</description>
<proposed bugzilla="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=[websvcs]&amp;classification=RT&amp;product=ECF&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=plan&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailtype1=substring&amp;email1=&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0="></proposed>
</theme>
</themes_and_priorities>
</plan>