<?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 17:00 ET Feb 4, 2008 (<img src="new.gif" alt="(new)" border="0" height="12" width="12" /> marks
interesting changes since the previous 
  <a href="eclipse_project_plan_3_4_20070816.html">draft of August 16, 2007</a>)
<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>
  <li> <img src="new.gif" alt="(new)" border="0" height="12" width="12" /> 
       Friday Mar. 28, 2008 - Milestone 6 (3.4 M6) - stable build - API complete - API Freeze</li>
  <li> <img src="new.gif" alt="(new)" border="0" height="12" width="12" />
       Friday May   2, 2008 - Milestone 7 (3.4 M7) - stable build- feature complete - development 
    freeze - lock down and testing begins</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>
<center>
  <table border="1" cellpadding="2" cellspacing="2" width="80%" summary="Eclipse Reference Platforms">
    <tbody>
      <tr align="center">
        <td><b>Reference Platforms</b></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 14 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><img src="new.gif" alt="(new)" border="0" height="12" width="12" /> 
                Sun Java 2 Standard Edition 6.0 Update 4 for Microsoft Windows</li>
            <li>Sun Java 2 Standard Edition 5.0 Update 14 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_16 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 14 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_16 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 14 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 14 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 14 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 <img src="new.gif" alt="(new)" border="0" height="12" width="12" /> 10.5, Universal, Carbon</b> running:
          <ul>
            <li>Apple Java 2 Platform Standard Edition (J2SE) 5, service release
              4</li>
          </ul></td>
      </tr>
    </tbody>
  </table>
</center>
<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">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>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>(<img src="new.gif" alt="(new)" border="0" height="12" width="12" /> committed)
    <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>(<img src="new.gif" alt="(new)" border="0" height="12" width="12" /> committed)
    <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>(<img src="new.gif" alt="(new)" border="0" height="12" width="12" /> committed)
    <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>(<img src="new.gif" alt="(new)" border="0" height="12" width="12" /> committed)
    <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>
</blockquote>
<h4>Proposed Items (Platforms)</h4>
<blockquote>
  <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>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>(<img src="new.gif" alt="(new)" border="0" height="12" width="12" /> committed)
    <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>(<img src="new.gif" alt="(new)" border="0" height="12" width="12" /> committed)
    <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>Proposed Items (Consumability)</h4>
<blockquote>
  <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>
</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>(<img src="new.gif" alt="(new)" border="0" height="12" width="12" /> committed)
    <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>(<img src="new.gif" alt="(new)" border="0" height="12" width="12" /> committed)
    <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>(<img src="new.gif" alt="(new)" border="0" height="12" width="12" /> committed)
    <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>(<img src="new.gif" alt="(new)" border="0" height="12" width="12" /> committed)
    <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>
</blockquote>
<h4>Proposed Items (Reliability)</h4>
<blockquote>
  <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>(<img src="new.gif" alt="(new)" border="0" height="12" width="12" /> committed)
    <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>(<img src="new.gif" alt="(new)" border="0" height="12" width="12" /> committed)
    <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>(<img src="new.gif" alt="(new)" border="0" height="12" width="12" /> committed)
    <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>
</blockquote>
<h4>Proposed Items (The Future)</h4>
<blockquote>
  <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 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 &quot;3.4 minimum execution environment&quot;
  column 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"><strong>Plug-in</strong></td>
      <td width="60"><div align="center">
          <p align="center"><b>3.4<br />
            minimum<br />
            execution<br />
            environment </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"><img src="new.gif" alt="(new)" border="0" height="12" width="12" /> 1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.help.appserver</td>
      <td><div align="center"><img src="new.gif" alt="(new)" border="0" height="12" width="12" /> 1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.help.base</td>
      <td><div align="center"><img src="new.gif" alt="(new)" border="0" height="12" width="12" /> 1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.help.ui</td>
      <td><div align="center"><img src="new.gif" alt="(new)" border="0" height="12" width="12" /> 1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.help.webapp</td>
      <td><div align="center"><img src="new.gif" alt="(new)" border="0" height="12" width="12" /> 1.4</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"><img src="new.gif" alt="(new)" border="0" height="12" width="12" /> 1.4</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"><img src="new.gif" alt="(new)" border="0" height="12" width="12" /> 1.4</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"><img src="new.gif" alt="(new)" border="0" height="12" width="12" /> 1.4</div></td>
    </tr>
    <tr>
      <td><img src="new.gif" alt="(new)" border="0" height="12" width="12" /> org.eclipse.ui.intro.universal</td>
      <td><div align="center">1.4</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>
