| <?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&short_desc_type=allwordssubstr&short_desc=[remotesvcs]&classification=RT&product=ECF&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=plan&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&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&short_desc_type=allwordssubstr&short_desc=[wave]&classification=RT&product=ECF&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=plan&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&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&short_desc_type=allwordssubstr&short_desc=[websvcs]&classification=RT&product=ECF&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=plan&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0="></proposed> |
| </theme> |
| </themes_and_priorities> |
| </plan> |