blob: 1df820850ad32ee934bafd37b712c86c37ae6dde [file] [log] [blame]
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Language" content="en-us" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="Author" content="Eclipse Project PMC" />
<title>The Eclipse Project DRAFT 3.4 Plan</title>
<link rel="stylesheet" href="../../default_style.css" type="text/css" />
</head>
<body>
<h1>The Eclipse Project DRAFT 3.4 Plan</h1>
Last revised 10:00 ET August 16, 2007 (<img src="new.gif" alt="(new)" border="0" height="12" width="12" /> marks
interesting changes over previous plans)
<p><i>&nbsp;&nbsp;&nbsp; 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>
<p>This document lays out the feature and API set for the next feature release
of the Eclipse SDK after 3.3, designated release 3.4. </p>
<ul>
<li><a href="#Deliverables">Release deliverables</a></li>
<li><a href="#Milestones">Release milestones</a></li>
<li><a href="#TargetOperatingEnvironments">Target operating environments</a></li>
<li><a href="#Compatibility">Compatibility with previous releases</a></li>
<li><a href="#ThemesandPriorities">Themes and Priorities</a></li>
<li><a href="#WorkAreas">Work Areas</a>
<ul>
<li><a href="#Platforms">Platforms</a></li>
<li><a href="#Consumability">Consumability</a></li>
<li><a href="#Reliability">Reliability</a></li>
<li><a href="#TheFuture">The Future</a> </li>
</ul>
</li>
<li><a href="#Appendix1">Appendix 1: Execution Environment by Plug-in</a></li>
</ul>
<p>Plans do not materialize out of nowhere, nor are they entirely static. To
ensure the planning process is transparent and open to the entire Eclipse community,
we (the Eclipse Project PMC) post plans in an embryonic form and revise them
throughout the release cycle. </p>
<p>The first part of the plan deals with the important matters of release deliverables,
release milestones, target operating environments, and release-to-release compatibility.
These are all things that need to be clear for any release, even if no features
were to change. </p>
<p>The remainder of the plan consists of plan items for all of the sub-projects
under the top level Eclipse Project. Each plan item covers a feature or API
that is to be added to the Eclipse Project deliverables, or some aspect of
the Eclipse Project that is to be improved. Each plan item has its own entry
in the Eclipse bugzilla database, with a title and a concise summary (usually
a single paragraph) that explains the work item at a suitably high enough level
so that everyone can readily understand what the work item is without having
to understand the nitty-gritty detail. </p>
<p>Not all plan items represent the same amount of work; some may be quite large,
others, quite small. Some plan items may involve work that is localized to
a single component; others may involve coordinated changes to several components;
other may pervade the entire SDK. Although some plan items are for work that
is more pressing than others, the plan items appear in no particular order. </p>
<p>With the previous release as the starting point, this is the plan for how
we will enhance and improve it. Fixing bugs, improving test coverage, documentation,
examples, performance tuning, usability, etc. are considered routine ongoing
maintenance activities and are not included in this plan unless they would
also involve a significant change to the API or feature set, or involve a significant
amount of work. The intent of the plan is to account for all interesting feature
work. </p>
<p>The current status of each plan item is noted: </p>
<ul>
<li><b>Committed</b> plan item - A committed plan item is one that we have
decided to address for the release.</li>
<li><b>Proposed</b> plan item - A proposed plan item is one that we are considering
addressing for the release. Although we are actively investigating it, we
are not yet in a position to commit to it, or to say that we won't be able
to address it. After due consideration, a proposal will either be committed
or deferred.</li>
<li><b>Deferred</b> plan item - A reasonable proposal that will not make it
in to this release for some reason is marked as deferred with a brief note
as to why it was deferred. Deferred plan items may resurface as committed
plan items at a later point.</li>
</ul>
<h2><a name="Deliverables" id="Deliverables"></a>Release deliverables</h2>
<p>The release deliverables have the same form as previous releases, namely: </p>
<ul>
<li>Source code release for all Eclipse Project deliverables, available as
versions tagged &quot;R3_4&quot; in the Eclipse Project <a href="http://dev.eclipse.org/viewcvs/">CVS
repository</a>.</li>
<li>Eclipse SDK (runtime binary and SDK for Equinox, Platform, JDT, and PDE)
(downloadable).</li>
<li>Eclipse Platform (runtime binary and SDK for the Equinox and Platform only)
(downloadable).</li>
<li>Eclipse RCP (runtime binary and SDK for the Rich Client Platform) (downloadable).</li>
<li>Eclipse JDT (runtime binary and SDK for the Java Development Tools) (downloadable).</li>
<li>Eclipse PDE (runtime binary and SDK for the Plug-in Development Environment)
(downloadable).</li>
<li>Eclipse SDK Examples (downloadable).</li>
<li>SWT distribution (downloadable).</li>
<li>Equinox OSGi R4 framework and assorted service implementations (downloadable).</li>
</ul>
<h2><a name="Milestones" id="Milestones"></a>Release milestones</h2>
<p>Release milestones, occurring at roughly 6 week intervals, exist to facilitate
coarse-grained planning and staging. The milestones are: </p>
<ul>
<li> Friday Aug. 10, 2007 - Milestone 1 (3.4 M1) - stable build</li>
<li> Friday Sep. 21, 2007 - Milestone 2 (3.4 M2) - stable build</li>
<li> Friday Nov. 2, 2007 - Milestone 3 (3.4 M3) - stable build</li>
<li> Friday Dec. 14, 2007 - Milestone 4 (3.4 M4) - stable build</li>
<li> Friday Feb. 8, 2008 - Milestone 5 (3.4 M5) - stable build</li>
</ul>
<p>Our target is to complete 3.4 in late June 2008. 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. </p>
<h2><a name="TargetOperatingEnvironments" id="TargetOperatingEnvironments"></a>Target
Operating Environments</h2>
<p>In order to remain current, each Eclipse release targets reasonably current
operating environments. </p>
<p>Most of the Eclipse SDK is &quot;pure&quot; Java code and has no direct dependence
on the underlying operating system. The chief dependence is therefore on the
Java Platform itself. Portions of the Eclipse SDK (including the RCP base,
SWT, OSGi and JDT core plug-ins) are targeted to specific classes of operating
environments, requiring their source code to only reference facilities available
in particular class libraries (e.g. J2ME Foundation 1.0, J2SE 1.3 and 1.4,
etc.). </p>
<p> In general, the 3.4 release of the Eclipse Project is developed on a mix
of Java 1.4 and Java5 VMs. As such, the Eclipse Project SDK as a whole is targeted
at both 1.4 and Java5 VMs, with full functionality available for 1.4 level
development everywhere, and new Java5 specific capabilities available when
running on a Java5 VM. Similarly, in cases where support has been added for
Java6 specific features (e.g. JSR-199, JSR-269, etc.) Java6 VMs are required. </p>
<p> <a href="#Appendix1">Appendix 1</a> contains a table that indicates the class
library level required for each plug-in. </p>
<p>There are many different implementations of the Java Platform running atop
a variety of operating systems. We focus Eclipse SDK testing on a handful of
popular combinations of operating system and Java Platform; these are our <em>reference
platforms</em>. Eclipse undoubtedly runs fine in many operating environments
beyond the reference platforms we test, including those using Java6 VMs. However,
since we do not systematically test them we cannot vouch for them. Problems
encountered when running Eclipse on a non-reference platform that cannot be
recreated on any reference platform will be given lower priority than problems
with running Eclipse on a reference platform.</p>
<p> The Eclipse SDK 3.4 is tested and validated on the following reference platforms
(this list is updated over the course of the release cycle):</p>
<table width="50%" border="1" cellpadding="2" cellspacing="2" summary="Eclipse Reference Platforms">
<tbody>
<tr>
<td bgcolor="#CCCCCC"><div align="center"><b>Reference Platforms</b></div></td>
</tr>
<tr>
<td><b>Microsoft Windows Vista, x86-32, Win32</b> running (any of):
<ul>
<li>Sun Java 2 Standard Edition 5.0 Update 11 for Microsoft Windows</li>
<li>IBM 32-bit SDK for Windows, Java 2 Technology Edition 5.0, SR5</li>
<li>BEA JRockit 5.0, for Microsoft Windows</li>
</ul></td>
</tr>
<tr>
<td><b>Microsoft Windows XP, x86-32, Win32</b> running (any of):
<ul>
<li>Sun Java 2 Standard Edition 5.0 Update 11 for Microsoft Windows</li>
<li>IBM 32-bit SDK for Windows, Java 2 Technology Edition 5.0, SR5</li>
<li>BEA JRockit 5.0, for Microsoft Windows</li>
<li>Sun Java 2 Standard Edition 1.4.2_14 for Microsoft Windows</li>
<li>IBM 32-bit SDK for Windows, Java 2 Technology Edition 1.4.2 SR7</li>
<li>BEA JRockit 1.4.2, for Microsoft Windows</li>
</ul></td>
</tr>
<tr>
<td><b>Red Hat Enterprise Linux 5.0, x86-32, GTK</b> running (any of):
<ul>
<li>Sun Java 2 Standard Edition 5.0 Update 11 for Linux x86</li>
<li>IBM 32-bit SDK for Linux on Intel architecture, Java 2 Technology
Edition 5.0, SR5</li>
<li>BEA JRockit 5.0, for Linux x86</li>
<li>Sun Java 2 Standard Edition 1.4.2_13 for Linux x86</li>
<li>IBM 32-bit SDK for Linux on Intel architecture, Java 2 Technology
Edition 1.4.2 SR7</li>
<li>BEA JRockit 1.4.2, for Linux x86</li>
</ul></td>
</tr>
<tr>
<td><b>SUSE Linux Enterprise Server 10, x86-32, GTK</b> running (any
of):
<ul>
<li>Sun Java 2 Standard Edition 5.0 Update 11 for Linux x86</li>
<li>IBM 32-bit SDK for Linux on Intel architecture, Java 2 Technology
Edition 5.0, SR5</li>
</ul></td>
</tr>
<tr>
<td><b>Red Hat Enterprise Linux 4.0 update 2, x86-64, GTK</b> running:
<ul>
<li>Sun Java 2 Standard Edition 5.0 Update 11 for Linux x86_64</li>
</ul></td>
</tr>
<tr>
<td><b>Sun Solaris 10, SPARC, GTK</b> running:
<ul>
<li>Sun Java 2 Standard Edition 5.0 Update 11 for Solaris SPARC</li>
</ul></td>
</tr>
<tr>
<td><b>IBM AIX 5.3, Power, Motif 2.1</b> running:
<ul>
<li>IBM 32-bit SDK, Java 2 Technology Edition 5.0, SR5</li>
</ul></td>
</tr>
<tr>
<td><b>Red Hat Enterprise Linux 4.0 update 2, Power, GTK</b> running:
<ul>
<li>IBM 32-bit SDK for Linux on pSeries architecture, Java 2 Technology
Edition 1.4.2 service release 7</li>
</ul></td>
</tr>
<tr>
<td><b>SUSE Linux Enterprise Server 10, Power, GTK</b> running:
<ul>
<li>IBM 32-bit SDK for Linux on pSeries architecture, Java 2 Technology
Edition 1.4.2 service release 7</li>
</ul></td>
</tr>
<tr>
<td><b>Apple Mac OS X 10.4, Universal, Carbon</b> running:
<ul>
<li>Apple Java 2 Platform Standard Edition (J2SE) 5, service release
4 for Tiger</li>
</ul></td>
</tr>
</tbody>
</table>
<p>Because Java 1.4.2 and Java5 based platforms are used for most Eclipse development,
those platforms are listed here. Although there are teams doing some Java 6
based development we have not included specific Java6 VMs, since they have
not yet received the general level of testing we require. <i>We expect that
Eclipse will work fine on other current Java VMs running on window systems
supported by SWT, but can not flag these as reference platforms without significant
community support for testing them.</i></p>
<p>Similarly, although untested, the Eclipse SDK should work fine on other OSes
that support the same window system. For Win32: NT, 2000, and Server 2003;
SWT HTML viewer requires Internet Explorer 5 (or higher). For GTK on other
Linux systems: version 2.2.1 of the GTK+ widget toolkit and associated libraries
(GLib, Pango); SWT HTML viewer requires Mozilla 1.4GTK2. For Motif on Linux
systems: Open Motif 2.1 (included); SWT HTML viewer requires Mozilla 1.4GTK2.</p>
<p>SWT is also supported on the QNX Neutrino operating system, x86 processor,
Photon window system, and <a href="http://wiki.eclipse.org/J9" target="_blank">IBM J9&trade; VM</a>.
Eclipse 3.4 on Windows or Linux can be used to cross-develop QNX applications.
(Eclipse 3.4 is unavailable on QNX because there is currently no 1.5 J2SE for
QNX.)</p>
<h4>Internationalization</h4>
<p>The Eclipse SDK is designed as the basis for internationalized products. The
user interface elements provided by the Eclipse SDK components, including dialogs
and error messages, are externalized. The English strings are provided as the
default resource bundles.</p>
<p><img src="new.gif" alt="(new)" border="0" height="12" width="12" /> Latin-1
and DBCS locales are supported by the Eclipse SDK on all reference platforms;
BIDI locales are supported by the Eclipse SDK everywhere but on Motif.</p>
<p>The Eclipse SDK supports GB 18030 (level 1), the Chinese code page standard,
on Windows XP and 2000, Linux/GTK and the Macintosh.</p>
<p>German and Japanese locales are tested.</p>
<h2><a name="Compatibility" id="Compatibility"></a>Compatibility with Previous
Releases</h2>
<h3>Compatibility of Release 3.4 with 3.3</h3>
<p>Eclipse 3.4 will be compatible with Eclipse 3.3 (and, hence, with 3.2, 3.1
and 3.0).</p>
<p> <strong>API Contract Compatibility:</strong> Eclipse SDK 3.4 will be upwards
contract-compatible with Eclipse SDK 3.3 except in those areas noted in the <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/org.eclipse.platform.doc.isv/porting/eclipse_3_4_porting_guide.html" target="_top"> <em>Eclipse
3.4 Plug-in Migration Guide</em></a>. Programs that use affected APIs and extension
points will need to be ported to Eclipse SDK 3.4 APIs. Downward contract compatibility
is not supported. There is no guarantee that compliance with Eclipse SDK 3.4
APIs would ensure compliance with Eclipse SDK 3.3 APIs. Refer to <a href="http://wiki.eclipse.org/index.php/Evolving_Java-based_APIs"> <em>Evolving
Java-based APIs</em> </a> for a discussion of the kinds of API changes that
maintain contract compatibility. </p>
<p><strong>Binary (plug-in) Compatibility:</strong> Eclipse SDK 3.4 will be upwards
binary-compatible with Eclipse SDK 3.3 except in those areas noted in the <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/org.eclipse.platform.doc.isv/porting/eclipse_3_4_porting_guide.html" target="_top"> <em>Eclipse
3.4 Plug-in Migration Guide</em></a>. Downward plug-in compatibility is not
supported. Plug-ins for Eclipse SDK 3.4 will not be usable in Eclipse SDK 3.3.
Refer to <a href="http://wiki.eclipse.org/index.php/Evolving_Java-based_APIs"> <em>Evolving
Java-based APIs</em> </a> for a discussion of the kinds of API changes that
maintain binary compatibility. </p>
<p><strong>Source Compatibility:</strong> Eclipse SDK 3.4 will be upwards source-compatible
with Eclipse SDK 3.3 except in the areas noted in the <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/org.eclipse.platform.doc.isv/porting/eclipse_3_4_porting_guide.html" target="_top"> <em>Eclipse
3.4 Plug-in Migration Guide</em></a>. This means that source files written
to use Eclipse SDK 3.3 APIs might successfully compile and run against Eclipse
SDK 3.4 APIs, although this is not guaranteed. Downward source compatibility
is not supported. If source files use new Eclipse SDK APIs, they will not be
usable with an earlier version of the Eclipse SDK. </p>
<p><strong>Workspace Compatibility:</strong> Eclipse SDK 3.4 will be upwards
workspace-compatible with Eclipse SDK 3.3 unless noted. This means that workspaces
and projects created with Eclipse SDK 3.3, 3.2, 3.1 or 3.0 can be successfully
opened by Eclipse SDK 3.4 and upgraded to a 3.4 workspace. This includes both
hidden metadata, which is localized to a particular workspace, as well as metadata
files found within a workspace project (e.g., the .project file), which may
propagate between workspaces via file copying or team repositories. Individual
plug-ins developed for Eclipse SDK 3.4 should provide similar upwards compatibility
for their hidden and visible workspace metadata created by earlier versions;
3.4 plug-in developers are responsible for ensuring that their plug-ins recognize
3.3, 3.2, 3.1, 3.0, 2.1, and 2.0 metadata and process it appropriately. User
interface session state may be discarded when a workspace is upgraded. Downward
workspace compatibility is not supported. A workspace created (or opened) by
a product based on Eclipse 3.4 will be unusable with a product based an earlier
version of Eclipse. Visible metadata files created (or overwritten) by Eclipse
3.4 will generally be unusable with earlier versions of Eclipse. </p>
<p><strong>Non-compliant usage of API's</strong>: All non-API methods and classes,
and certainly everything in a package with &quot;internal&quot; 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 SDK API are inherently
unsupportable and receive no guarantees about compatibility within a single
release much less with earlier releases. Refer to <a href="http://www.eclipse.org/articles/Article-API%20use/eclipse-api-usage-rules.html"> <em>How
to Use the Eclipse API</em> </a> for information about how to write compliant
plug-ins. </p>
<h2><a name="ThemesandPriorities" id="ThemesandPriorities"></a>Themes and Priorities</h2>
<p> The PMC of the Eclipse Project has identified four major areas of work, that
will be the priorities for this development cycle. These areas will address
the major themes identified by the Eclipse Requirements Council (<a href="http://www.eclipse.org/org/councils/roadmap_v3_0/themes_v3_0.php">Eclipse
2007 Themes and Priorities</a>).</p>
<h2><a name="WorkAreas" id="WorkAreas"></a>Work Areas</h2>
<p> Although there are four projects under the top-level Eclipse Project, there
is a significant amount of commonality and shared effort between them. In general,
many plan items involve coordinated changes to multiple components, and thus
attempting to separate the items into sections based on sub-project leads to
artificial distinctions between them (e.g., Platform Text vs. JDT Text, Platform
Debug vs. JDT Debug, etc.). </p>
<p> In order to provide the clearest focus for our development effort, we have
organized the items below into sections based on the work area they are intended
to address. Items that apply to multiple work areas are categorized based on
where the most effort is expected to occur. In all cases, the items listed
reflect new features of Eclipse or areas where existing features will be significantly
reworked. Numbers in parentheses link to bugzilla problem reports where progress
on that item can be tracked and discussed.</p>
<p> The major work areas are: </p>
<ul>
<li><a href="#Platforms">Platforms</a></li>
<li><a href="#Consumability">Consumability</a></li>
<li><a href="#Reliability">Reliability</a></li>
<li><a href="#TheFuture">The Future</a> </li>
</ul>
<!-- Start of Sections by Work Area -->
<h3><a name="Platforms" id="Platforms">Platforms</a></h3>
<p> This work is focused on ensuring that Eclipse takes full advantage of the
capabilities of the underlying technologies that it is based on, be they operating
system, window system, Java or other. </p>
<h4>Committed Items (Platforms)</h4>
<blockquote>
<p><i>None at this time.</i></p>
</blockquote>
<h4>Proposed Items (Platforms)</h4>
<blockquote>
<p><strong>Port SWT win32 to 64-bit.</strong> The SWT win32 port should be
ported to run on 64-bit editions of Windows using 64-bit JREs. [SWT] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=200081">200081</a>)</p>
<p><strong>Complete SWT WPF port.</strong> An early access version of the SWT
port for Windows Presentation Framework (WPF) was included with Eclipse 3.3.
Complete the SWT WPF port: add missing features; improve performance. [SWT]
(<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=200082">200082</a>)</p>
<p><strong>Support BIDI on Linux GTK.</strong> In Eclipse 3.3, SWT fully supported
BIDI locales on Windows, but only allowed entering and displaying BIDI text
on Linux GTK. Add the missing BIDI support for SWT Linux GTK. [SWT] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=200083">200083</a>) </p>
<p><strong>Provide full internationalization on Mac OS X.</strong> In earlier
releases of Eclipse, SWT did not address fully support internationalization
on Mac OS X. Add the missing DBCS and BIDI support for SWT Mac OS X. [SWT]
(<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=200085">200085</a>)</p>
<p><strong>Implement accessibility for Mac OS X.</strong> In Eclipse 3.3, SWT
Mac OS X accessibility was not addressed. Implement the SWT accessibility
APIs on Mac OS X. [SWT] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=200086">200086</a>)</p>
<p><strong>Exploit the capabilities of modern JREs.</strong> Fully support
and exploit the capabilities of modern JREs. Example work areas would be
more Java 5 and Java 6 functionality; improved support for <a href="http://harmony.apache.org/" target="_blank">Apache
Harmony</a>, <a href="http://wiki.eclipse.org/J9" target="_blank">IBM J9</a>, <a href="http://java.sun.com/products/foundation/" target="_blank">Foundation
Profile 1.1</a>; Launcher improvements; etc. [JDT Core, JDT UI] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=200087">200087</a>)</p>
</blockquote>
<h4>Deferred Items (Platforms)</h4>
<blockquote>
<p><i>None at this time.</i></p>
</blockquote>
<p>(End of items for Platforms.)</p>
<h3><a name="Consumability" id="Consumability">Consumability</a></h3>
<p> This work will make it easier for users to get Eclipse, install it on their
systems, and configure it for their use. It will also enhance the error handling
and reporting mechanisms to make it easier to service Eclipse in the field.
Finally, it will improve the scalability and performance of Eclipse, to provide
a better experience for users working with many plug-ins and large data sets. </p>
<h4>Committed Items (Consumability)</h4>
<blockquote>
<p><i>None at this time.</i></p>
</blockquote>
<h4>Proposed Items (Consumability)</h4>
<blockquote>
<p><strong>Improve performance of large, Eclipse-based products.</strong> We
will investigate the scalability of Eclipse in areas, such as startup time
and memory footprint, with a focus on improving the overall experience when
working with large, Eclipse-based products. [All] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=200102">200102</a>) </p>
<p><strong>Provide additional product level configurability.</strong> &quot;Layered&quot; products
(i.e. products that are built by composing other products) need more control
over the ways that the products they are built from &quot;show through&quot; in
the final result. To address this, we will provide additional, product-level
configurability in the user-interface, as well as increase the flexibility
of commonly used views, such as the markers view. [Platform UI, Equinox]
(<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=200088">200088</a>) </p>
<p><strong>Provisioning.</strong> We will design and deliver a provisioning
platform on top of which we will create a replacement for the current Update
Manager. The provisioning platform will allow others to create provisioning
systems to meet the needs of large and small enterprises and systems. [Equinox]
(<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=200089">200089</a>) </p>
<p><strong>Serviceability.</strong> We will continue the work, begun in R3.3,
to make it easier for end users to identify and report runtime problems to
the team responsible for the failing component. [Platform UI, Equinox] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=200090">200090</a>) </p>
</blockquote>
<h4>Deferred Items (Consumability)</h4>
<blockquote>
<p><i>None at this time.</i></p>
</blockquote>
<p>(End of items for Consumability.)</p>
<h3><a name="Reliability" id="Reliability">Reliability</a></h3>
<p> As the basis for the entire Eclipse eco-system, the Eclipse SDK must be robust,
flexible and secure. This work will address those issues by providing API for
missing or currently internal functionality, and focusing on the issues that
effect the stability of the platform. </p>
<h4>Committed Items (Reliability)</h4>
<blockquote>
<p><i>None at this time.</i></p>
</blockquote>
<h4>Proposed Items (Reliability)</h4>
<blockquote>
<p><strong>Provide API for missing/internal features.</strong> We will identify
areas where applications built on Eclipse currently must invoke internal
functionality in order to provide good integration with the SDK. We will
address these cases by creating proper, API-quality equivalents or otherwise
removing the dependencies on internals. [All] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=200100">200100</a>) </p>
<p><strong>API Tooling.</strong> We will improve existing API tools and create
new ones, so that plug-in developers will be able to easily identify their
API (and internal) dependencies, the clients of their API, cases where they
have broken binary compatibility as well as situations where changes to their
internals will break others. The tooling will also support the management
and updating of bundle and perhaps package version numbers in accordance
with the bundle versioning guidelines used by Eclipse. [PDE, JDT] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=200098">200098</a>) </p>
<p><strong>Provide commonly requested Java security features.</strong> We will
add support for security facilities such as JAAS, JCA, keystore, credentials,
and signature validation. [Equinox] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=200091">200091</a>) </p>
<p><strong>Focus on architectural integrity.</strong> We will explicitly focus
on identifying and fixing places where significant bugs or incomplete implementations
have caused problems for our consumers. The intent is to make a significant
investment in fixing these issues. [All] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=200099">200099</a>) </p>
<p><strong>Invest in PDE Build and Release Engineering.</strong> We will address
issues related to the reproducibility of our builds, and make it easier for
others to make use of our build technology. [PDE, Rel. Eng.] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=200092">200092</a>) </p>
</blockquote>
<h4>Deferred Items (Reliability)</h4>
<blockquote>
<p><i>None at this time.</i></p>
</blockquote>
<p>(End of items for Reliability.)</p>
<h3><a name="TheFuture" id="TheFuture">The Future</a></h3>
<p> Eclipse is well-established as the cross-platform IDE of choice, but it has
become much more than that. The extensive and diverse range of applications
that are being built on the Eclipse code base, and the constantly changing
capabilities of the underlying systems on which it runs, are driving us to
push the limits of our technology in almost every dimension. This work area
marks the start of a new, multi-year focus on innovation, to ensure that the
Eclipse SDK continues to be a vibrant, powerful, dynamic basis for our community's
use.</p>
<h4>Committed Items (The Future)</h4>
<blockquote>
<p><i>None at this time.</i></p>
</blockquote>
<h4>Proposed Items (The Future)</h4>
<blockquote>
<p><strong>Create the Eclipse 4.0 plan.</strong> We will identify the goals,
scope, timeframe and major features of the next major version of the Eclipse
SDK. To do this, we need to understand exactly how and when a new major release
of Eclipse can be delivered, including what its relationship will be to the
ongoing Eclipse 3.x development. We also need to identify the current and
future needs of our consumers. And finally, we need to create a coherent
plan to address these needs, so that we can begin to satisfy them once R3.4
is released. [All] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=200097">200097</a>) </p>
<p><strong>OSGi standards participation.</strong> We will invest in the future
of OSGi by monitoring and participating in the Enterprise Expert Group work
(e.g., Provisioning, Launching, Logging (serviceability)) and ongoing framework
specification work. [Equinox] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=200093">200093</a>) </p>
<p><strong>Model the IDE.</strong> The functionality of the Eclipse Workbench
and IDE have grown significantly since they were created. In some cases,
older capabilities have been superceded by newer ones or have been proven
to be unwieldy or otherwise unsatisfying. We will create a new model of the
underlying structure of the Eclipse UI, to be used as the basis for our future
work. [Platform UI] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id= 200094"> 200094</a>) </p>
<p><strong>Investigate new user-interface directions.</strong> User-interface
state-of-the-art is constantly evolving and changing as the capabilities
of the underlying platforms increase. We will investigate the use of these
capabilities within Eclipse. Potential work areas include: skinning, scripting,
resolution-independent graphics, better desktop integration, and web-based
presentations. [SWT, Platform UI] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=200095">200095</a>) </p>
<p><strong>Investigate the next generation of JDT capabilities.</strong> We
will continue to invest in our Java development tools, by investigating how
best to address future hardware, Java language and IDE capabilities. Potential
work areas include: better leverage of multi-core CPUs and/or distributed
environments, better alignment with J2ME and J2EE, and increased granularity
in Java search. [JDT UI, JDT Core] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=200096">200096</a>) </p>
</blockquote>
<h4>Deferred Items (The Future)</h4>
<blockquote>
<p><i>None at this time.</i></p>
</blockquote>
<p>(End of items for The Future.)</p>
<!-- End of Sections by Work Area -->
<h2><a name="Appendix1" id="Appendix1">Appendix 1: Execution Environment by Plug-in</a></h2>
<p>In the table below, the column labeled &quot;3.4 EE&quot; (3.4 Execution Environment)
indicates the minimum Java class library requirements of each plug-in
for the 3.4 release, where the value is one of:</p>
<table border="0" width="90%">
<tbody>
<tr>
<td align="center"><b>Entry</b></td>
<td align="left"><b>Meaning</b></td>
</tr>
<tr>
<td><div align="center"><strong>M1.0</strong></div></td>
<td>OSGi Minimum Execution Environment 1.0 - This is a subset of the J2ME
Foundation class libraries defined by OSGi to be the base for framework
implementations. See the OSGi specification for more details.</td>
</tr>
<tr>
<td width="9%"><div align="center"><strong>M1.1</strong></div></td>
<td width="91%">OSGi Minimum Execution Environment 1.1 - This is a subset
of the J2ME Foundation class libraries defined by OSGi to be the base
for framework implementations. See the OSGi specification for more details.</td>
</tr>
<tr>
<td><div align="center"><strong>F1.0</strong></div></td>
<td>J2ME Foundation 1.0 - indicates that the plug-in can only be run on
Foundation 1.0 or greater. Note that with the exception of some MicroEdition
IO classes, Foundation 1.0 is a subset of J2SE 1.3.</td>
</tr>
<tr>
<td><div align="center"><strong>F1.1</strong></div></td>
<td>J2ME Foundation 1.1 - indicates that the plug-in can only be run on
Foundation 1.1 or greater. Note that with the exception of some MicroEdition
IO classes, Foundation 1.1 is a subset of J2SE 1.4.</td>
</tr>
<tr>
<td><div align="center"><strong>1.2</strong></div></td>
<td>J2SE 1.2 - indicates that the plug-in can only be run on JSE 1.2 or
greater.</td>
</tr>
<tr>
<td><div align="center"><strong>1.3</strong></div></td>
<td>J2SE 1.3 - indicates that the plug-in can only be run on JSE 1.3 or
greater.</td>
</tr>
<tr>
<td><div align="center"><strong>1.4</strong></div></td>
<td>J2SE 1.4 - indicates that the plug-in can only be run on JSE 1.4 or
greater.</td>
</tr>
<tr>
<td><div align="center"><strong>1.4/1.5</strong></div></td>
<td>Indicates that the plug-in can run on JSE 1.4 or greater, but provides
enhanced functionality when run on J2SE 5.0.</td>
</tr>
<tr>
<td><div align="center"><strong>1.5</strong></div></td>
<td>J2SE 5.0 - indicates that the plug-in can only be run on JSE 5.0 or
greater.</td>
</tr>
<tr>
<td><div align="center"><strong>1.6</strong></div></td>
<td>J2SE 6.0 - indicates that the plug-in can only be run on JSE 6.0 or
greater.</td>
</tr>
<tr>
<td align="center"><b>n/a</b></td>
<td>Unknown at the time of this revision.</td>
</tr>
</tbody>
</table>
<br />
<b>Table of minimum execution environments by plug-in.</b> <br />
<br />
<table border="1">
<tbody>
<tr>
<td width="290" bgcolor="#CCCCCC"><div align="center" ><b>Plug-in</b></div></td>
<td width="60" bgcolor="#CCCCCC"><div align="center">
<p align="center"><b>3.4EE</b></p>
</div></td>
</tr>
<tr>
<td>javax.servlet</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>javax.servlet.jsp</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.apache.ant</td>
<td><div align="center">1.2</div></td>
</tr>
<tr>
<td>org.apache.commons.el</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.apache.commons.logging</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.apache.jasper</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.apache.lucene</td>
<td><div align="center">n/a</div></td>
</tr>
<tr>
<td>org.eclipse.ant.core</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.ant.ui</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.compare</td>
<td><div align="center">n/a</div></td>
</tr>
<tr>
<td>org.eclipse.core.boot</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.eclipse.core.commands</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.eclipse.core.contenttype</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.eclipse.core.expressions</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.eclipse.core.filebuffers</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.core.filesystem</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.core.jobs</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.eclipse.core.net</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.core.resources</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.core.resources.compatibility</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.core.runtime</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.eclipse.core.runtime.compatibility</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.core.runtime.compatibility.auth</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.eclipse.core.runtime.compatibility.registry</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.eclipse.core.variables</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.debug.core</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.debug.ui</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.equinox.app</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.eclipse.equinox.common</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.eclipse.equinox.http.jetty</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.eclipse.equinox.http.servlet</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.eclipse.equinox.http.registry</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.eclipse.equinox.jsp.jasper</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.eclipse.equinox.jsp.jasper.registry</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.eclipse.equinox.launcher</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.eclipse.equinox.preferences</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.eclipse.equinox.registry</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.eclipse.help</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.eclipse.help.appserver</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.eclipse.help.base</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.eclipse.help.ui</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.eclipse.help.webapp</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.eclipse.jdt</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.jdt.apt.core</td>
<td><div align="center">1.5</div></td>
</tr>
<tr>
<td>org.eclipse.jdt.apt.ui</td>
<td><div align="center">1.5</div></td>
</tr>
<tr>
<td>org.eclipse.jdt.compiler.apt</td>
<td><div align="center">1.6</div></td>
</tr>
<tr>
<td>org.eclipse.jdt.compiler.tool</td>
<td><div align="center">1.6</div></td>
</tr>
<tr>
<td>org.eclipse.jdt.core</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.jdt.core.manipulation</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.jdt.debug</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.jdt.debug.ui</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.jdt.doc.isv</td>
<td><div align="center">n/a</div></td>
</tr>
<tr>
<td>org.eclipse.jdt.doc.user</td>
<td><div align="center">n/a</div></td>
</tr>
<tr>
<td>org.eclipse.jdt.junit</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.jdt.junit.runtime</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.jdt.junit4.runtime</td>
<td><div align="center">1.5</div></td>
</tr>
<tr>
<td>org.eclipse.jdt.launching</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.jdt.source</td>
<td><div align="center">n/a</div></td>
</tr>
<tr>
<td>org.eclipse.jdt.ui</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.jface</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.eclipse.jface.text</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.jsch.core</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.jsch.ui</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.ltk.core.refactoring</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.ltk.ui.refactoring</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.osgi (system.bundle)</td>
<td><div align="center">M1.0</div></td>
</tr>
<tr>
<td>org.eclipse.osgi.services</td>
<td><div align="center">M1.0</div></td>
</tr>
<tr>
<td>org.eclipse.osgi.util</td>
<td><div align="center">M1.0</div></td>
</tr>
<tr>
<td>org.eclipse.pde</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.pde.build</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.pde.core</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.pde.doc.user</td>
<td><div align="center">n/a</div></td>
</tr>
<tr>
<td>org.eclipse.pde.junit.runtime</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.pde.runtime</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.pde.source</td>
<td><div align="center">n/a</div></td>
</tr>
<tr>
<td>org.eclipse.pde.ui</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.pde.ui.templates</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.platform</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.eclipse.platform.doc.isv</td>
<td><div align="center">n/a</div></td>
</tr>
<tr>
<td>org.eclipse.platform.doc.user</td>
<td><div align="center">n/a</div></td>
</tr>
<tr>
<td>org.eclipse.platform.source</td>
<td><div align="center">n/a</div></td>
</tr>
<tr>
<td>org.eclipse.platform.source.*</td>
<td><div align="center">n/a</div></td>
</tr>
<tr>
<td>org.eclipse.rcp</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.eclipse.rcp.source</td>
<td><div align="center">n/a</div></td>
</tr>
<tr>
<td>org.eclipse.rcp.source.*</td>
<td><div align="center">n/a</div></td>
</tr>
<tr>
<td>org.eclipse.sdk</td>
<td><div align="center">n/a</div></td>
</tr>
<tr>
<td>org.eclipse.search</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.swt</td>
<td bgcolor="#ffffff"><div align="center">M1.0</div></td>
</tr>
<tr>
<td>org.eclipse.swt.*</td>
<td bgcolor="#ffffff"><div align="center">M1.0</div></td>
</tr>
<tr>
<td>org.eclipse.team.core</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.team.cvs.core</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.team.cvs.ssh</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.team.cvs.ssh2</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.team.cvs.ui</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.team.ui</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.text</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.tomcat</td>
<td><div align="center">n/a</div></td>
</tr>
<tr>
<td>org.eclipse.ui</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.eclipse.ui.browser</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.ui.cheatsheets</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.eclipse.ui.console</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.ui.editors</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.ui.externaltools</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.ui.forms</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.eclipse.ui.ide</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.ui.intro</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.eclipse.ui.navigator</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.ui.navigator.resources</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.ui.net</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.ui.presentations.r21</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.ui.views</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.ui.win32</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.ui.workbench</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.eclipse.ui.workbench.compatibility</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.ui.workbench.texteditor</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.eclipse.update.configurator</td>
<td bgcolor="#ffffff"><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.eclipse.update.core</td>
<td bgcolor="#ffffff"><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.eclipse.update.core.linux</td>
<td bgcolor="#ffffff"><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.eclipse.update.core.win32</td>
<td bgcolor="#ffffff"><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.eclipse.update.scheduler</td>
<td bgcolor="#ffffff"><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.eclipse.update.ui</td>
<td><div align="center">F1.0</div></td>
</tr>
<tr>
<td>org.junit (old)</td>
<td><div align="center">1.4</div></td>
</tr>
<tr>
<td>org.junit (JUnit4)</td>
<td><div align="center">1.5</div></td>
</tr>
<tr>
<td>org.mortbay.jetty</td>
<td><div align="center">F1.0</div></td>
</tr>
</tbody>
</table>
</body>
</html>