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