|  | <!doctype html public "-//w3c//dtd html 4.0 transitional//en"> | 
|  | <html> | 
|  | <head> | 
|  | <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> | 
|  | <meta name="Author" content="Eclipse Project PMC"> | 
|  | <meta name="GENERATOR" content="Microsoft FrontPage 4.0"> | 
|  | <meta name="ProgId" content="FrontPage.Editor.Document"> | 
|  | <title>Eclipse Project 2.0 Plan</title> | 
|  | <link rel="stylesheet" href="../default_style.css" type="text/css"> | 
|  | </head> | 
|  | <body> | 
|  |  | 
|  | <h1> | 
|  | Eclipse Project<br> | 
|  | DRAFT 2.0 Plan</h1> | 
|  | Last revised Friday, December 21, 2001 | 
|  | <blockquote> | 
|  | <p><i>Please send comments about this draft plan to the </i><a href="mailto:eclipse-dev@eclipse.org">eclipse-dev@eclipse.org</a> | 
|  | <i>developer mailing list.</i></p> | 
|  | </blockquote> | 
|  | <p>This document lays out the plan for the next major release of the Eclipse | 
|  | Project, designated release 2.0. The main emphasis of the Eclipse 2.0 release will be | 
|  | on improving quality | 
|  | (bug fixing) and performance, with a lesser emphasis on adding new features and APIs. | 
|  | <p>This plan serves at least two purposes. First, it serves as the blueprint guiding | 
|  | the efforts of the developers working on the Eclipse subprojects. The work items | 
|  | committed in this plan were selected over all others because they were judged to | 
|  | provide the most value to customers for this follow-on to the Eclipse 1.0 | 
|  | release. Second, this plan serves as an important input to the planning processes | 
|  | of the various customers of the Eclipse Platform. This plan tells them what to | 
|  | expect (or what not to expect) in the next release so that they can plan their | 
|  | projects accordingly. | 
|  | <p>Plans are rarely completely unchanging over the life cycle of a release, and | 
|  | this project is no exception. We will update this document as required to reflect | 
|  | any changes to the 2.0 release plan. While we certainly do not expect to backtrack | 
|  | on items already committed, we do anticipate adding further committed items | 
|  | to the list. This plan already includes a number of extra work items which we | 
|  | are presently unable to commit to for the 2.0 release due to time, but which | 
|  | are nonetheless worthy of being solved. Where possible, we will try to complete | 
|  | these items, and will revise this plan as soon as we know we can make a definite | 
|  | commitment. The individual Eclipse <a href="http://www.eclipse.org/eclipse/index.html" target="_top">subproject | 
|  | and component web pages</a> and <a href="http://www.eclipse.org/mail/index.html" target="_top">developer | 
|  | mailing list archives</a> contain further, in-depth information about how a | 
|  | component is changing. Particular problem reports being worked on for the 2.0 | 
|  | release can be tracked through the Eclipse <a href="http://dev.eclipse.org/bugs/">bug | 
|  | database</a>; the "Target Milestone" field reflects when a work item | 
|  | will become available in the main development stream. | 
|  | <h2>Release deliverables</h2> | 
|  | <p>The release deliverables are: | 
|  | <ul> | 
|  | <li>Source code release for Eclipse project, available | 
|  | as versions tagged "R2_0" in the Eclipse <a href="http://dev.eclipse.org/viewcvs/">CVS | 
|  | repository</a>.</li> | 
|  | <li>Eclipse project SDK (includes Platform, JDT, and PDE source zips) | 
|  | (downloadable).</li> | 
|  | <li>Eclipse Platform runtime binary distribution (downloadable).</li> | 
|  | <li>JDT runtime binary distribution (downloadable).</li> | 
|  | <li>Eclipse Examples (downloadable).</li> | 
|  | </ul> | 
|  | <h2>Release milestones</h2> | 
|  | <p>The release milestones are:</p> | 
|  | <ul> | 
|  | <li>December 7, 2001 - milestone 0 - stable build reflecting progress</li> | 
|  | <li>December 21, 2001 - milestone 1 - stable build reflecting good progress</li> | 
|  | <li>January 25, 2002 - milestone 2 - stable build reflecting significant | 
|  | progress</li> | 
|  | <li>February 15, 2002 - milestone 3 - stable build - feature complete - | 
|  | initial development  freeze</li> | 
|  | </ul> | 
|  | The 2.0 release is targeted for April 2002. All release deliverables will be available for download | 
|  | as soon as the release has been tested and validated in the target operating | 
|  | configurations listed below. | 
|  | <h2> | 
|  | Target Operating Environments</h2> | 
|  |  | 
|  | <p>Most of Eclipse is "pure" Java and has no direct dependence on the underlying | 
|  | operating system. The chief dependence is therefore on the Java 2 Platform | 
|  | itself. The 2.0 release of the Eclipse project will be written against version | 
|  | 1.3 of the Java 2 Platform APIs, and targeted to run on either version | 
|  | 1.3 or 1.4 of the Java 2 Runtime Environment, Standard Edition.</p> | 
|  | <p>We plan to test and validate Eclipse 2.0 on the most up-to-date Java 2 | 
|  | Platform implementations available. These are:</p> | 
|  | <table border="1" width="91%"> | 
|  | <tr> | 
|  | <td width="19%"><b>Operating system</b></td> | 
|  | <td width="24%"><b>Processor architecture</b></td> | 
|  | <td width="73%"><b>Java 2 Platforms</b></td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td width="19%" rowspan="3">Microsoft<br> | 
|  | Windows</td> | 
|  | <td width="24%" rowspan="3">Intel x86</td> | 
|  | <td width="73%">Sun Java 2 SDK, Standard Edition, version 1.3.1 for | 
|  | Microsoft Windows</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td width="73%">IBM Developer Kit for Windows, Java 2 Technology Edition, version 1.3.0</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td width="73%">Sun Java 2 SDK, Standard Edition, version 1.4 for | 
|  | Microsoft Windows (currently in beta)</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td width="19%" rowspan="3">Linux</td> | 
|  | <td width="24%" rowspan="3">Intel x86</td> | 
|  | <td width="73%">Sun Java 2 SDK, Standard Edition, version 1.3.1 for Linux x86</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td width="73%">IBM Developer Kit for Linux, Java 2 Technology Edition, version 1.3.0</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td width="73%">Sun Java 2 SDK, Standard Edition, version 1.4 for Linux x86 | 
|  | (currently in beta)</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td width="19%" rowspan="2">Sun Solaris</td> | 
|  | <td width="24%" rowspan="2">SPARC</td> | 
|  | <td width="73%">Sun Java 2 SDK, Standard Edition, version 1.3.1 for Solaris | 
|  | SPARC</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td width="73%">Sun Java 2 SDK, Standard Edition, version 1.4 for Solaris | 
|  | SPARC (currently in beta)</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td width="19%">HP HP-UX</td> | 
|  | <td width="24%">hp9000 PA-RISC</td> | 
|  | <td width="73%"><span class="header">HP-UX SDK for the Java 2 platform, | 
|  | version 1.3.1 for hp9000 PA-RISC</span></td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td width="19%">IBM AIX</td> | 
|  | <td width="24%">PowerPC</td> | 
|  | <td width="73%">IBM Developer Kit for AIX, Java 2 Technology Edition, version 1.3.0</td> | 
|  | </tr> | 
|  | </table> | 
|  | <p><span class="header">The following table describes the combinations of | 
|  | operating system and Java 2 Platform used when testing the Eclipse | 
|  | configurations. The status column indicates the level of testing: Primary means | 
|  | a full tested configuration; </span>Secondary means a configuration which is | 
|  | only lightly tested; Untested means a configuration that has received no | 
|  | testing, but which should work. Note that the Linux GTK configuration is | 
|  | considered early access for the 2.0 release; it will be tested, but it is known | 
|  | in advance that it will not be of product quality in this release.</p> | 
|  | <table border="1" width="91%"> | 
|  | <tr> | 
|  | <td width="11%"><b>Window system</b></td> | 
|  | <td width="28%"><b>Java 2 Platform<br> | 
|  | (see above table)</b></td> | 
|  | <td width="42%"><b>Operating Environment</b></td> | 
|  | <td width="19%"><b>Testing Status</b></td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td width="11%" rowspan="5">Win32</td> | 
|  | <td width="28%" rowspan="5">Windows on Intel x86</td> | 
|  | <td width="42%">Windows 2000</td> | 
|  | <td width="19%">Primary</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td width="42%">Windows XP</td> | 
|  | <td width="19%">Primary</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td width="42%">Windows ME</td> | 
|  | <td width="19%">Secondary</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td width="42%">Windows 98SE</td> | 
|  | <td width="19%">Secondary</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td width="42%">Windows NT</td> | 
|  | <td width="19%">Secondary</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td width="11%" rowspan="6">Motif</td> | 
|  | <td width="28%" rowspan="3">  | 
|  | <p>Linux on Intel x86</p> | 
|  | <p> </td> | 
|  | <td width="42%">RedHat Linux 7.2 x86</td> | 
|  | <td width="19%">Primary</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td width="42%"> | 
|  | SuSE Linux 7.3 x86</td> | 
|  | <td width="19%">Primary</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td width="42%">Other Linux; kernel version 2.4.7, and XFree86 version 4.1.0</td> | 
|  | <td width="19%">Untested</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td width="28%">Solaris on SPARC </td> | 
|  | <td width="42%">Sun Solaris 8 SPARC</td> | 
|  | <td width="19%">Primary</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td width="28%">HP-UX on hp9000 PA-RISC</td> | 
|  | <td width="42%">HP-UX 11i hp9000</td> | 
|  | <td width="19%">Primary</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td width="28%">AIX on PowerPC</td> | 
|  | <td width="42%">IBM | 
|  | AIX 5.1 on PowerPC</td> | 
|  | <td width="19%">Primary</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td width="11%" rowspan="3">GTK</td> | 
|  | <td width="28%" rowspan="3">Linux on Intel x86</td> | 
|  | <td width="42%">RedHat Linux 7.2 x86</td> | 
|  | <td width="19%"><i>Early access</i></td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td width="42%"> | 
|  | SuSE Linux 7.3 x86</td> | 
|  | <td width="19%"><i>Early access</i></td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td width="42%">Other Linux; kernel version 2.4.7, and GTK version 1.2.8, | 
|  | 1.2.9, or 1.2.10</td> | 
|  | <td width="19%"><i>Early access; untested</i></td> | 
|  | </tr> | 
|  | </table> | 
|  | <h4> | 
|  | Internationalization</h4> | 
|  | <p> | 
|  | The Eclipse Platform is designed as the basis for internationalized products. | 
|  | The user interface elements provided by the Eclipse components, including | 
|  | dialogs and error messages, are externalized. The English strings are provided | 
|  | as the default resource bundles.</p> | 
|  |  | 
|  | <p>We will perform basic tests in German and Japanese locales. | 
|  | <p>IMPORTANT: Internationalization is supported only on Windows platforms in the | 
|  | 2.0 release.  (See the <a href="#Uncommitted Items">Eclipse Platform | 
|  | uncommitted items</a> for additional work in this area.) | 
|  | <h4> | 
|  | BIDI support</h4> | 
|  | <p> Eclipse is a platform for building development environments targeted at technical | 
|  | professionals. Eclipse 2.0 will permit technical professionals who are working | 
|  | in English to build Hebrew/Arabic end-user applications.</p> | 
|  | <p>IMPORTANT: BIDI is supported only on Windows platforms in the 2.0 release.</p> | 
|  | <h2> | 
|  | Compatibility with Previous Release</h2> | 
|  | Eclipse 2.0 will be upwards compatible with Eclipse 1.0 to the | 
|  | greatest extent possible. We anticipate a small number of areas where slavishly | 
|  | maintaining compatibility would not be in the best interests of the Platform | 
|  | or its clients. All such exceptions will be noted in the 2.0 release | 
|  | notes so that clients can assess the impact of these changes on their plug-ins | 
|  | and products.<p><b>Status of interim 1.0 APIs and plug-ins</b>: Some of the | 
|  | Eclipse APIs and plug-ins in 1.0 were marked as provisional (debug, for | 
|  | instance). These APIs and plug-ins will either appear in stable, finished form in | 
|  | the 2.0 release, or be removed (with the exception of Scripting). As anticipated | 
|  | (and advertised), these API changes will likely break 1.0 client plug-ins that | 
|  | made use of that particular API in its early form. Even if code appears to work | 
|  | with 2.0, it would still need to be completely reviewed to ensure that it abides | 
|  | by the final API contracts.</p> | 
|  | <p><b>API Contract Compatibility:</b> Eclipse 2.0 will be upwards | 
|  | contract-compatible with Eclipse 1.0 unless noted. This means that | 
|  | programs in full compliance with contracts specified in the Eclipse 1.0 | 
|  | APIs will automatically be in full compliance with the Eclipse 2.0 APIs. (API is | 
|  | construed broadly to include such things as plug-in extension points.) Downward contract compatibility is not supported. There is no guarantee | 
|  | that compliance with the Eclipse 2.0 APIs would ensure compliance with | 
|  | the Eclipse 1.0 APIs. | 
|  | <p><b>Binary (plug-in) Compatibility:</b> Eclipse 2.0 will be upwards | 
|  | binary-compatible | 
|  | with Eclipse 1.0 unless noted. This means that plug-ins built for Eclipse | 
|  | 1.0 will continue to work correctly in Eclipse 2.0 without change. Downward | 
|  | plug-in compatibility is not supported. Plug-ins for Eclipse | 
|  | 2.0 are unlikely to be usable in Eclipse 1.0. Plug-ins with hard-coded | 
|  | references in their plug-in manifest file to 1.0 versions of prerequisite | 
|  | Eclipse project plug-ins will not work in 2.0 as the plug-in version numbers | 
|  | will be incompatible. | 
|  | <p><b>Source Compatibility:</b> Eclipse 2.0 will be upwards source-compatible | 
|  | with Eclipse 1.0 unless noted. This means that source files written | 
|  | to use Eclipse 1.0 APIs can be successfully compiled and run against the | 
|  | Eclipse 2.0 APIs. Since source incompatibilities are easy to deal with, | 
|  | maintaining source compatibility is considered much less important than | 
|  | maintaining contract and binary compatibility. Downward source compatibility is not supported. If source files use | 
|  | new Eclipse APIs, they will not be usable with an earlier version of Eclipse. | 
|  | <p><b>Workspace Compatibility:</b> Eclipse 2.0 will be upwards | 
|  | workspace-compatible with Eclipse 1.0 unless noted. This means that | 
|  | workspaces and projects created with Eclipse 1.0 can be successfully opened by Eclipse | 
|  | 2.0 and upgraded to a 2.0 workspace.  Individual plug-ins developed for | 
|  | Eclipse 1.0 should provide similar upwards compatibility for their workspace | 
|  | metadata; plug-in developers are responsible for ensuring that their plug-ins | 
|  | recognize 1.0 metadata and process it appropriately.  Note: the interim | 
|  | Eclipse 1.0 plug-ins (ones with provisional APIs) are unlikely to automatically | 
|  | upgrade their metadata to 2.0. Downward workspace compatibility is not supported. A workspace created | 
|  | (or opened) by Eclipse 2.0 will be unusable with an earlier version | 
|  | of Eclipse.   | 
|  | <p><b>Non-compliant usage of Eclipse</b>: All non-API methods and | 
|  | classes, and certainly everything in a package with "internal" in its name, are considered implementation details which may vary between operating | 
|  | environment and are subject to change without notice. Client plug-ins that | 
|  | directly depend on anything other than what is specified in the Eclipse API are | 
|  | inherently unsupportable and receive no guarantees about compatibility within a | 
|  | single release much less with an earlier release. Refer to <i><a href="http://www.eclipse.org/articles/Article-API%20use/eclipse-api-usage-rules.html">How | 
|  | to Use the Eclipse API</a></i> for information | 
|  | about how to write compliant plug-ins. | 
|  | <h2> | 
|  | Eclipse Subprojects</h2> | 
|  | The Eclipse project consists of 3 subprojects. Each subproject | 
|  | is covered in its own section: | 
|  | <blockquote><font size=+0><a href="#Eclipse Platform subproject">Eclipse Platform</a></font> | 
|  | <br><font size=+0><a href="#Java development tooling (JDT) subproject">JDT - Java development tooling</a></font> | 
|  | <br><font size=+0><a href="#Plug-in development environment (PDE) subproject">PDE - Plug-in development environment</a></font></blockquote> | 
|  | <p>For each subproject, the items listed reflect new features of the Eclipse | 
|  | platform, or areas where existing features will be significantly reworked. | 
|  | Each item indicates the component affected by that work item (many items | 
|  | involve coordinated changes to several components). | 
|  | <p>Note that fixing bugs, improving test coverage, documentation, examples, | 
|  | etc. are considered routine ongoing maintenance activities and are not | 
|  | included in this plan unless they would also involve significant changes to the Platform. | 
|  | <h3> | 
|  | <a name="Eclipse Platform subproject">Eclipse Platform subproject</a></h3> | 
|  | The following items reflect new features of the Eclipse platform, or areas | 
|  | where existing features will be significantly reworked. Each item indicates | 
|  | the component affected by that work item (some items involve coordinated | 
|  | changes to several components). Additional uncommitted items affecting these | 
|  | components are listed in the <a href="#Uncommitted Items">Uncommitted Items</a> | 
|  | section at the end. | 
|  | <h4> | 
|  | Platform Core component</h4> | 
|  | The <a href="http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-core-home/main.html">Platform | 
|  | Core component</a> covers most of the Platform's non-UI infrastructure, | 
|  | including the basic plug-in mechanism, resources in the workspace. The following | 
|  | items are committed for 2.0: | 
|  | <blockquote><b><a name="Improve Platform startup times">Improve Platform | 
|  | startup times</a>.</b> Eclipse Platform startup times 1.0 reflect the speed of XML parsing for plug-in manifest files. As the sheer number of available | 
|  | plug-ins can be expected to increase by an order of magnitude in the near future, | 
|  | we need a more scalable solution to this problem. A likely improvement in startup | 
|  | time will come with computing and caching the plug-in registry on disk. | 
|  | <p><a name="Improve Ant integration"><b>Provide first-class Ant integration</b></a><b>.</b> | 
|  | In 1.0, Ant was a second-class Eclipse citizen. We plan to significantly increase the Platform's | 
|  | power and flexibility by connecting it to the Platform's build story. These changes will likely impact the UI component | 
|  | as well. | 
|  | <p><a name="Improve serviceability"><b>Improve serviceability</b></a><b>.</b> | 
|  | Several factors make it difficult in 1.0 to debug an Eclipse Platform that | 
|  | is failing in the field: startup failures are poorly diagnosed; error messages in the log sometimes contain little | 
|  | or no useful information; the internal plug-in log file is busy while the | 
|  | Platform is running, and gets erased as soon as the Platform is restarted. | 
|  | We plan to improve the startup sequence, eliminate unhelpful error messages, take steps to help identify | 
|  | which plug-in is the apparent source of an internal error, and ensure that | 
|  | the information in the internal logs is more readily accessible. These changes will | 
|  | also impact the UI component.</blockquote> | 
|  |  | 
|  | <h4> | 
|  | Installation and Update component</h4> | 
|  | The <a href="http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-update-home/main.html"> Installation and Update component</a> is responsible for installing and upgrading the Eclipse | 
|  | Platform in the field. Eclipse 1.0 contains an early version | 
|  | of this component; it will be thoroughly reworked for 2.0. The following items | 
|  | are committed for 2.0: | 
|  | <blockquote> | 
|  | <p><b><a name="Redesign plug-in install and update story">Redesign | 
|  | plug-in installation and update story</a>.</b>  The 1.0 concepts of <i>component</i> | 
|  | and <i>configuration</i> will be replaced with a new concept called a <i>feature</i>. | 
|  | Features define the packaging structure for a group of related plug-ins, | 
|  | plug-in fragments, and optionally non-plug-in files. This change impacts the Core | 
|  | component and the PDE subproject as well.</p> | 
|  | <p><b><a name="Improve installer flexiblilty">Improve installer </a><a name="Improve installer flexiblilty">flexibility</a>.</b> | 
|  | The standard Platform installer will be more flexible and support alternate | 
|  | packaging and site management schemes: structured site map for discovering | 
|  | available updates; improved granularity of downloads; accommodate native | 
|  | installers; feature-specific custom installers packaged with feature and | 
|  | executed during feature installation.</p> | 
|  | </blockquote> | 
|  |  | 
|  | <h4> | 
|  | Platform UI component</h4> | 
|  | The <a href="http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-ui-home/main.html">Platform | 
|  | UI component</a> provides the generic workbench UI for the Eclipse Platform. The following | 
|  | items are committed for 2.0: | 
|  | <blockquote><b><a name="Improve accessibility - UI">Improve accessibility</a>.</b> | 
|  | Applications selling to the US Government market are required to meet minimum | 
|  | accessibility guidelines (<a href="http://www.section508.gov/" target="_top">Section | 
|  | 508</a>). The workbench and its standard views and wizards must meet minimum | 
|  | accessibility guidelines, including mouse-less operation. The Eclipse Platform | 
|  | needs to enable other client plug-ins to meet accessibility guidelines too. | 
|  | This change also impacts the SWT component. | 
|  | <p><b><a NAME="Improve editor management">Improve editor management</a>.</b> | 
|  | Users are finding it difficult to work with many editors open simultaneously | 
|  | in the Eclipse 1.0 workbench, all seemingly stemming from the way editors | 
|  | are currently managed. The workbench's approach to editor management will | 
|  | be reviewed and revised to improve usability. | 
|  | <p><b><a name="Improve interaction between editors and views">Improve | 
|  | interaction between editors and views</a>.</b> There are some unfortunate interactions | 
|  | between editors and views in Eclipse 1.0 that make it difficult for views | 
|  | to serve as "secondary windows" to an editor. Among other things, this | 
|  | leads to poor integration of standard views. The workbench's current approach | 
|  | to editors and views will be reviewed and revised to facilitate interaction | 
|  | and improve integration. | 
|  | <p><b><a name="Allow context menu contributions in Outline view">Allow | 
|  | context menu contributions in Outline view</a>.</b> In Eclipse 1.0, clients | 
|  | have no control over the standard Outline view's popup context menu. This | 
|  | will be addressed so that clients will be able to make contributions to | 
|  | this menu. | 
|  | <p><b><a name="Improve usability re: losing context">Improve usability | 
|  | re: losing context</a>.</b> Some users have reported getting lost in the UI | 
|  | and having to close all open editors and perspectives to get their workbench | 
|  | back into a familiar state. The current approach will be reviewed and revised | 
|  | to improve usability. | 
|  | <p><b><a name="Improve the Task view">Improve the Task view</a>.</b>  The | 
|  | standard Task view will be improved in the following areas: performance and | 
|  | usability for large numbers of items in the view; context-sensitive help; and | 
|  | making contributions to the view's context menu.<p><b><a name="Add support for working sets">Add support for working | 
|  | sets</a>.</b>  In 1.0, all resources in the workspace are equally accessible. | 
|  | The workbench will let the user define working sets of resources, suitable for | 
|  | providing more restricted contexts for browsing, searching, and the like.</blockquote> | 
|  |  | 
|  | <h4> | 
|  | SWT component</h4> | 
|  | The <a href="http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-swt-home/main.html">SWT | 
|  | component</a> is the low-level widget toolkit used in Eclipse. The following | 
|  | items are committed for 2.0: | 
|  | <blockquote> | 
|  | <p><b><a name="Port to other window systems">Support additional  window | 
|  | systems</a>.</b> Add support for new window system: GTK. Port Motif-based | 
|  | implementation to other operating systems: AIX, HP-UX, Solaris. Foster and | 
|  | encourage efforts to port to other window systems. | 
|  | <p><a name="Support GB18030"><b>Support GB18030</b></a><b>.</b> GB 18030 | 
|  | is a new Chinese code page standard. Products shipping into the China market | 
|  | are required to support this new standard. We believe that Eclipse itself | 
|  | requires no specific changes to support GB 18030, but is entirely dependent on | 
|  | the Java 2 Runtime Environment to provide the necessary locale and character | 
|  | encoding support. The GB18030 character encoding is not supported in version | 
|  | 1.3 of Java 2 Platform, but is included in version 1.4.<p><b><a name="Utilize native Unicode support">Utilize | 
|  | Windows native Unicode support</a>.</b>  The SWT implementation will use | 
|  | native Unicode support on all Windows operating systems that support it (NT, | 
|  | 2000, XP).<p><b>Improve Motif appearance and performance.</b> In 1.0, | 
|  | support for the Motif window system lags behind that of Windows. We plan to improve the | 
|  | appearance and performance of SWT on Motif. | 
|  | </blockquote> | 
|  |  | 
|  | <h4> | 
|  | VCM component</h4> | 
|  | The <a href="http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-vcm-home/main.html"> VCM component</a> provides version and configuration management for projects | 
|  | in the workspace and attendant team support. The following items are committed for 2.0: | 
|  | <blockquote><a name="Provide VCM API"><b>Provide an open VCM </b></a><b><a name="Provide VCM API">story</a>.</b> Eclipse | 
|  | 1.0 includes CVS repository support, but has no official VCM API that allows | 
|  | other version and configuration management systems to integrate into the | 
|  | Platform. We will provide a simple API, extension points, and usage guidelines | 
|  | so that VCM providers can adapt their repositories and integrate VCM product-specific | 
|  | UI elements into the Eclipse UI. | 
|  | <p><a name="Improve CVS repository integration"><b>Improve CVS repository | 
|  | integration</b></a><b>.</b> In addition to converting the existing CVS repository | 
|  | adapter to the new VCM API, CVS support will be improved, including: support | 
|  | for CVS modules so that Eclipse can be connected to existing CVS repositories; | 
|  | support for CVS patch facility so that CVS users can capture changes to | 
|  | a project in a tangible form that can be submitted to others or archived | 
|  | (this also involves the compare infrastructure).</blockquote> | 
|  |  | 
|  | <ul><a name="Add mechanism for validating edits and saves"><b>Add mechanism | 
|  | for validating edits and saves</b></a><b>.</b> Some VCM providers require a "heads up" when the user starts | 
|  | to change the contents of a file open in an editor (e.g., to allow the file to | 
|  | be checked out and locked), or when the user is about to save the changed contents | 
|  | back to disk. We will add a callback so that the relevant VCM provider will be | 
|  | able to register for advance notification with an opportunity to veto. This | 
|  | change also affects the UI and Core components.<p><b>Add non-versioning WebDAV repository support.</b> | 
|  | We plan to build a simple repository adapter for non-versioning WebDAV | 
|  | servers. This will allow users to share their files via any WebDAV compliant | 
|  | server. This also affects the Core component (target management API).</p> | 
|  | </ul> | 
|  |  | 
|  | <h4> | 
|  | Help component</h4> | 
|  |  | 
|  | <p> | 
|  | The <a href="http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-help-home/main.html"> Help component</a> organizes help contributions and presents them to the | 
|  | user. The following items are committed for 2.0:</p> | 
|  | <blockquote><p><b><a name="Simplify contribution mechanism">Simplify | 
|  | contribution mechanism</a>.</b> Based on feedback on 1.0, we plan to rework | 
|  | and simplify the help contribution mechanism. Online documentation created for 1.0  will | 
|  | need to be converted for 2.0.<p><a name="Use a separate web browser to present help"><b>Use | 
|  | a separate web browser to present help</b></a><b>.</b> We will use an external | 
|  | web browser launched in a separate window to <br> | 
|  | present all documentation and online help. This will allow help to be presented in a non-modal way.<p><b><a name="Support live help">Support | 
|  | live help</a>.</b> We will support the ability to trigger developer-supplied | 
|  | actions as a result of navigating a   link in the online documentation. The actions will execute within the Eclipse environment. | 
|  | <p><b><a name="Allow remote help content">Enable help server</a>s.</b>   We will support configurations where help can be served up to an Eclipse client by a remote web <br> | 
|  | server (the server must support servlets). | 
|  | <p><b><a name="Support standalone help">Support standalone help</a>.</b> Developers will be able to reuse the Eclipse help function even in products that are not built   using the Eclipse technology. We will provide for both in-process and command-line invocation of this support. | 
|  | <p><b><a name=""Info Center" support">"Info Center" support</a>.</b> It is often desirable to be able to provide plug-in documentation that is accessible to users that   do not have Eclipse installed. We will support configurations where online documentation can be hosted on a web server | 
|  | and viewed through a regular web browser. | 
|  | </blockquote> | 
|  |  | 
|  | <h4> | 
|  | Platform Debug component</h4> | 
|  | The <a href="http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-debug-home/main.html">Platform | 
|  | Debug component</a> provides generic Core and UI for launching, running, and debugging | 
|  | programs. The following items are committed for 2.0: | 
|  | <blockquote><a name="Stabilize Debug API"><b>Stabilize Debug API</b></a><b>.</b> | 
|  | In Eclipse 1.0, all debug APIs were considered provisional and incomplete. | 
|  | The Debug APIs will appear in finished, stable form.</blockquote> | 
|  |  | 
|  | <blockquote><a name="Add support for debugging procedural languages"><b>Add | 
|  | support for debugging procedural languages</b></a><b>.</b> The Debug component will be extended to | 
|  | enable debuggers to be written for procedural languages (e.g., C) which get compiled to machine code and run | 
|  | on standard hardware. | 
|  | <p><a name="Add launch configurations"><b>Add launch configurations</b></a><b>.</b> | 
|  | The Debug component will add a general mechanism and UI for the user to define launch | 
|  | configurations describing how something is to be launched (e.g., command | 
|  | line options).</blockquote> | 
|  |  | 
|  | <h4> | 
|  | <a name="Uncommitted Items"> | 
|  | Uncommitted Items</a> (Eclipse Platform subproject)</h4> | 
|  | <p><i>N.B. The following is the list of important Eclipse subproject work items | 
|  | which we are presently unable to commit to for the 2.0 release. Wherever | 
|  | possible, we will try to complete these items. Depending on how things work out, | 
|  | we should be able complete some of them. However, we cannot promise that we will | 
|  | complete any of them, and it would be unwise to gamble otherwise. Items not | 
|  | completed for 2.0 will carry over to the planning of the next release. We will | 
|  | revise this 2.0 plan as soon as we can definitively commit to any of them.</i></p> | 
|  | <ul> | 
|  | <p><a name="Add support for non-local files"><b>Add | 
|  | support for non-local files</b></a><b>.</b> It is expensive to set up a workspace | 
|  | project containing a large number of files that normally reside on remote | 
|  | server or file system. Core has a basic mechanism that permits the workspace | 
|  | to contain placeholders for files and folders necessarily resident in the | 
|  | local file system. The Core mechanism will be augmented so that VCM can | 
|  | use it to hook it to retrieve files from a remote server or file system | 
|  | on demand. The UI component is also affected. | 
|  | <p><a name="Improve usability of project natures"><b>Improve | 
|  | usability of project natures</b></a><b>.</b> In Eclipse 1.0, project natures are secretly | 
|  | configured by the plug-ins that define them, leading to problems and blind | 
|  | spots when projects have other natures as well. We will review and revise | 
|  | the approach to how project natures are used, presented, and manipulated. These | 
|  | changes will affect the UI and Core components. | 
|  | <p><a name="Improve consistency of saving workbench state"><b>Improve | 
|  | consistency of saving workbench state</b></a><b>.</b> In Eclipse 1.0, there are a | 
|  | number of instances where user-configurable UI settings are not being persisted | 
|  | between sessions. The UI will provide better support for saving important | 
|  | UI state. | 
|  | <p><a name="Improve undo/redo in workbench"><b>Improve | 
|  | undo/redo in workbench</b></a><b>.</b> In Eclipse 1.0, undo and redo are poorly supported | 
|  | for workbench actions, and it is still far too easy for a user to lose | 
|  | work. We will consider providing an undo/redo service that will help decrease | 
|  | the risk of inadvertently losing work. These changes will affect the UI | 
|  | component. | 
|  | <p><a name="Provide a standard Console view"><b>Provide | 
|  | a standard Console view</b></a><b>.</b> In Eclipse 1.0, there is a proliferation of | 
|  | consoles furnished by clients (including JDT, PDE, Ant). The workbench | 
|  | will supply a standard Console view; clients will be encouraged to use | 
|  | it instead of providing their own. These changes will affect the UI component. | 
|  | <p><a name="Improve support for cheat sheets"><b>Improve | 
|  | support for cheat sheets</b></a><b>.</b> In Eclipse 1.0, | 
|  | the Welcome editor is an example of a cheat sheet. A cheat sheet is an | 
|  | instance of a simple kind of workflow support. We will continue to evolve | 
|  | the mechanisms behind cheat sheets, including adding standard API for creating | 
|  | actions. These changes will affect the UI component.<p><b><a name="Allow pre-validation of rename/move/delete">Allow pre-validation of | 
|  | rename/move/delete</a>.</b> VCM providers that | 
|  | need to manage a project's namespace would like advance notification of | 
|  | impending resource moves, renames, and deletes. (Other clients would like a | 
|  | similar opportunity to veto inappropriate name changes to their resources; | 
|  | this is a different concern.) We will add a callback so that the | 
|  | relevant VCM provider will be able to register for advance notification with | 
|  | an opportunity to veto. These changes will affect the UI and Core components. | 
|  | <p><a name="Support unmanaged resources in managed projects"><b>Support | 
|  | unmanaged resources in managed projects</b></a><b>.</b> Workspace projects often contain | 
|  | files derived by processing other files; it is usually the case that these | 
|  | derived files should not be under VCM, even though the rest of the files | 
|  | in the project are. There needs to be some means of dealing with this; | 
|  | depending on the solution, this may require support from Core and UI.</p> | 
|  | <p><a name="Add search support"><b>Add help search support</b></a><b>.</b> | 
|  | We will provide the ability to search help documentation. This change will | 
|  | affect the Help component.<p><b><a name="Provide project interchange mechanism">Provide | 
|  | project interchange mechanism</a>.</b> We will provide a way to export the | 
|  | resources in one of more Eclipse workspace projects to an archive file that it | 
|  | can be saved for posterity or imported to another workspace. This affects the | 
|  | Core and UI components.<p><b><a name="Provide additional internationalization support">Provide | 
|  | additional internationalization support</a>.</b>  We will enable the | 
|  | Eclipse Platform to provide internationalization support for additional locales | 
|  | on some Motif operating environments. This affects the SWT component. | 
|  | </ul> | 
|  |  | 
|  | <p>(End of items for Eclipse Platform subproject.) | 
|  |  | 
|  | <h3> | 
|  | <a name="Java development tooling (JDT) subproject">Java development tooling (JDT) subproject</a></h3> | 
|  | <a href="http://www.eclipse.org/jdt/index.html"> | 
|  | Java development tooling</a> (JDT) implements a Java IDE based on the Eclipse | 
|  | Platform. | 
|  | The following committed items reflect new features of JDT, or areas where existing | 
|  | features will be significantly reworked. | 
|  | <blockquote><a name="Reduce memory footprint for Java builder"><b>Reduce | 
|  | memory footprint for Java builder</b></a><b>.</b> The internal data structures of | 
|  | the Java incremental compilation mechanism is using more memory than necessary | 
|  | or reasonable. By fundamentally changing the approach to how incremental | 
|  | builds are done we expect to substantially reduce the memory footprint | 
|  | without significantly increasing incremental compile times. | 
|  | <p><b><a name="Improve Java search">Improve Java search</a>.</b> Java reference | 
|  | searches in Eclipse 1.0 are limited to named types in source files. This | 
|  | will be addresses so to make it possible to find references in JAR libraries, and to distinguish read and write accesses to fields. | 
|  | <p><a name="Improve code assist"><b>Improve code assist</b></a><b>.</b> A number | 
|  | of changes will improve usability of code assist: including method argument | 
|  | names and types as hints; suggesting variable names; honoring visibility | 
|  | constraints dictated by the context. | 
|  | <p><b><a name="Upgrade Eclipse Java compiler to be compliant with version 1.4 of the Java 2 Platform">Upgrade | 
|  | Eclipse Java compiler to be compliant with version 1.4 of the Java 2 Platform</a>.</b> | 
|  | A new assertion feature was added in 1.4, and there were a few clarifications | 
|  | in obscure corners of the Java language specification. The Eclipse Java compiler | 
|  | will be upgraded to support 1.4, but will continue to support 1.3 via an option | 
|  | setting. | 
|  | <p><b><a name="Improve build classpath">Improve build classpath</a>.</b> | 
|  | By adding a mechanism for explicitly exporting libraries on a project's | 
|  | build classpath to downstream projects, it becomes possible to have a library | 
|  | project (one with a JAR and no source folder) that can stand in for a project | 
|  | containing source code. This change enables large scale development where | 
|  | source code is contained in multiple, related Java projects, by providing | 
|  | possibilities other than having all the source code projects in the workspace | 
|  | at all times (expensive to build). Plug-in development is a direct beneficiary. | 
|  | <p><b><a name="Improve accessibility - JDT">Improve accessibility</a>.</b> Applications | 
|  | selling to the US Government market are required by law to meet minimum accessibility | 
|  | guidelines (<a href="http://www.section508.gov/" target="_top">Section 508</a>). | 
|  | The JDT UI must meet minimum accessibility guidelines, and enable its client | 
|  | plug-ins to meet accessibility guidelines as well. | 
|  | <p><a name="Improve Java editor"><b>Improve Java editor</b></a>. Rework | 
|  | menu bar contributions and context menu to improve usability; add a template | 
|  | facility with variable substitution; navigate to a method's super | 
|  | implementation; add bracket matching. | 
|  | <p><b><a name="Improve refactoring">Improve refactoring</a>.</b> | 
|  | Implement additional refactorings: extract variable, inline temporary, push-up | 
|  | field/method, change method signature. Support reference updates in strings and | 
|  | comments for move/rename refactorings. | 
|  | <p><b><a name="Improve refactoring">Improve package | 
|  | browsing</a></b>: Provide a more package centric-view for browsing. In 1.0, the | 
|  | Packages view presents packages grouped by their containers. We will add another | 
|  | presentation that shows packages independent of their physical containment. We | 
|  | will also add | 
|  | support to show the structure of a compilation unit in the Packages | 
|  | view. | 
|  | <p><b><a name="Facilitate string externalization">Facilitate | 
|  | </a><a name="Facilitate string externalization">string | 
|  | externalization</a></b><b>.</b> Add a wizard that | 
|  | allows the user to | 
|  | externalizing string literals in Java source code into standard Java resource bundles. | 
|  | <p><b><a name="Allow runtime classpath to the configured">Allow runtime | 
|  | classpath to the configured</a>.</b> Using the new launch configuration mechanism | 
|  | provided by the Platform Debug component will allow the runtime classpath, | 
|  | boot classpath, extension directories, and other VM-type specific launch | 
|  | parameters to be configured. | 
|  | <p><b><a name="Support hot code replace when debugging JDK 1.4 targets">Support hot code replace when | 
|  | debugging compliant JDK 1.4 targets</a>.</b>   JDPA for version 1.4 of the Java | 
|  | 2 Platform allow a class to be updated while under the control of the debugger. | 
|  | In 1.0, this kind of support was only available for IBM J9 targets. The Java debugger will | 
|  | be changed to support both.<p><b><a name="Enable JSP debugging with JPDA">Enable JSP debugging | 
|  | with JPDA</a>.</b> The Java debugger will enable JSP debugging via a flexible source lookup algorithm and breakpoint setting mechanism. | 
|  | <p><a name="Add debugger support for step filtering"><b>Add debugger | 
|  | support for step filtering</b></a><b>.</b> The Java debugger will avoid stepping into | 
|  | any class mentioned on a user-specified exclusion list. | 
|  | <p><b><a name="Improve data inspectors">Improve data inspectors</a>.</b> We will | 
|  | improve support in the debugger for inspecting objects, including running an | 
|  | object's toString method to obtain a readable string that may be more | 
|  | meaningful to the user.</blockquote> | 
|  |  | 
|  | <h4> | 
|  | Uncommitted Items</h4> | 
|  | <p><i>N.B. The following is the list of important JDT subproject work items | 
|  | which we are presently unable to commit to for the 2.0 release. Wherever | 
|  | possible, we will try to complete these items. Depending on how things work out, | 
|  | we should be able complete some of them. However, we cannot promise that we will | 
|  | complete any of them, and it would be unwise to gamble otherwise. Items not | 
|  | completed for 2.0 will carry over to the planning of the next release. We will | 
|  | revise this 2.0 plan as soon as we can definitively commit to any of them.</i></p> | 
|  | <blockquote> | 
|  | <p><a name="Add API for Java abstract syntax tree"><b>Add | 
|  | API for Java abstract syntax tree</b></a><b>.</b> In Eclipse 1.0, refactoring uses | 
|  | compiler internals for parsing and walking the abstract syntax trees (ASTs) | 
|  | for Java source code. We will add API for creating and manipulating ASTs | 
|  | that can serve as the basis for other clients like refactoring. </p> | 
|  | <p><a name="Add conditional breakpoints"><b>Support conditional | 
|  | breakpoints</b></a><b>.</b> We will add debugger support | 
|  | for conditional breakpoints | 
|  | with simple conditions, including simply object identity tests of the form | 
|  | "this == id" sufficient for object breakpoints.</p> | 
|  | <p><b><a name="Add field watchpoints">Support field | 
|  | watchpoints</a>.</b> We will add debugger support for field watchpoints.</p> | 
|  | <p><a name="Improve Java editor"><b>Support editor key bindings</b></a>. Add support for user-configurable key | 
|  | bindings in the Java editor. This requires changes in the Platform UI | 
|  | component. | 
|  | </blockquote> | 
|  |  | 
|  | <p>(End of items for Eclipse JDT subproject.) | 
|  |  | 
|  | <h3> | 
|  | <a name="Plug-in development environment (PDE) subproject">Plug-in development environment (PDE) subproject</a></h3> | 
|  | The <a href="http://www.eclipse.org/pde/index.html"> plug-in development environment</a> (PDE) consists of  Eclipse-based tools | 
|  | for developing Eclipse plug-ins. For 2.0, the goal is to maintain | 
|  | the level of PDE support present in 1.0 while adding the necessary extensions | 
|  | that allow it to be the tool of choice for self-hosted Eclipse project | 
|  | development. The following items are committed for 2.0: | 
|  | <blockquote> <b><a name="Improve accessibility - PDE">Improve accessibility</a>.</b> | 
|  | Applications selling to the US Government market are required by law to meet | 
|  | minimum accessibility guidelines (<a href="http://www.section508.gov/" target="_top">Section | 
|  | 508</a>). The PDE UI must meet minimum accessibility guidelines, and enable | 
|  | its client plug-ins to meet accessibility guidelines as well. | 
|  | <p><b><a name="Support revamped install and update story">Support | 
|  | revamped install and update story</a>.</b> PDE contains support for building | 
|  | the deployable form of a plug-in, or set of plug-ins. We will update PDE to | 
|  | support the revised install and update story.</p> | 
|  | <p><b><a name="Improve support for large scale multi-project plug-in development">Improve | 
|  | support for large scale multi-project plug-in development</a>.</b> We will improve support | 
|  | for large scale development efforts involving multiple plug-ins spread across | 
|  | several projects in the workspace.</p> | 
|  | </blockquote> | 
|  | </body> | 
|  | </html> |