<!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> |