<?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 3.4 Plan (Final)</title>
<link rel="stylesheet" href="../../default_style.css" type="text/css" />
</head>
<body>
<h1>The Eclipse Project 3.4 Plan (Final)</h1>
Last revised 15:00 ET May 30, 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_20080204.html">draft of Feb 4, 2008</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> Friday Mar. 28, 2008 - Milestone 6 (3.4 M6) - stable build - API complete - API Freeze</li>
  <li> 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
(<img src="new.gif" alt="(new)" border="0" height="12" width="12" /> multiple updates)
  (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, SR6b</li>
            <li>BEA JRockit 27.4.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 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, SR6b</li>
            <li>BEA JRockit 27.4.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 SR10</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, SR6b</li>
            <li>BEA JRockit 27.4.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 SR10</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, SR6b</li>
          </ul></td>
      </tr>
      <tr>
        <td><b>Microsoft Windows Vista, x86-64, Win32</b> running (any of):
          <ul>
            <li>Sun Java 2 Standard Edition 5.0 Update 14 for Microsoft Windows (AMD64/EM64T)</li>
            <li>IBM 64-bit SDK for Windows, Java 2 Technology Edition 5.0, SR6b</li>
          </ul></td>
      </tr>
      <tr>
        <td><b>Microsoft Windows XP Professional x64 Edition, x86-64, Win32</b> running (any of):
          <ul>
            <li>Sun Java 2 Standard Edition 5.0 Update 14 for Microsoft Windows (AMD64/EM64T)</li>
            <li>IBM 64-bit SDK for Windows, Java 2 Technology Edition 5.0, SR6b</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>HP-UX 11i v2, ia64, Motif 2.1, GTK</b> running:
          <ul>
            <li>HP-UX Java 2 Standard Edition 5.0 Update 7 for Itanium</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, SR6b</li>
          </ul></td>
      </tr>
      <tr>
        <td><b>Red Hat Enterprise Linux 5.0, Power, GTK</b> running:
          <ul>
            <li>IBM 32-bit SDK for Linux on pSeries architecture, Java 2 Technology Edition 5.0, SR6b</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 5.0, SR6b</li>
          </ul></td>
      </tr>
      <tr>
        <td><b>Apple Mac OS X 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><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>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>(<img src="new.gif" alt="(new)" border="0" height="12" width="12" /> committed)
    <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>Proposed Items (Platforms)</h4>
<blockquote>
  <p><i>None at this time.</i></p>
</blockquote>
<h4>Deferred Items (Platforms)</h4>
<blockquote>
  <p>(<img src="new.gif" alt="(new)" border="0" height="12" width="12" /> deferred)
    <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>
</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><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>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>
  <p>(<img src="new.gif" alt="(new)" border="0" height="12" width="12" /> committed)
    <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>(<img src="new.gif" alt="(new)" border="0" height="12" width="12" /> committed)
    <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>Proposed Items (Consumability)</h4>
<blockquote>
  <p><i>None at this time.</i></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><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>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>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>
</blockquote>
<h4>Proposed Items (Reliability)</h4>
<blockquote>
  <p><i>None at this time.</i></p>
</blockquote>
<h4>Deferred Items (Reliability)</h4>
<blockquote>
  <p>(<img src="new.gif" alt="(new)" border="0" height="12" width="12" /> deferred)
    <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>
<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><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>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>(<img src="new.gif" alt="(new)" border="0" height="12" width="12" /> committed)
    <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>Proposed Items (The Future)</h4>
<blockquote>
  <p><i>None at this time.</i></p>
</blockquote>
<h4>Deferred Items (The Future)</h4>
<blockquote>
  <p>(<img src="new.gif" alt="(new)" border="0" height="12" width="12" /> deferred)
    <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. (<img src="new.gif" alt="(new)" border="0" height="12" width="12" /> Note: 
    Significant preliminary work was done; see the bug for more info. 
    Work will continue as part of "e4".) [Platform UI] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id= 200094"> 200094</a>) </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> 
   (<img src="new.gif" alt="(new)" border="0" height="12" width="12" /> multiple updates)<br />
<br />

<table border="1">
  <tbody>
  <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>com.ibm.icu</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>com.jcraft.jsch</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>javax.servlet.jsp</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>javax.servlet</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.analysis</td>
      <td><div align="center">not specified</div></td>
    </tr>
    <tr>
      <td>org.apache.lucene</td>
      <td><div align="center">not specified</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">1.4</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.databinding.beans</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.core.databinding</td>
      <td><div align="center">F1.1</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">F1.0</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.resources</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.runtime.compatibility</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.eclipse.core.runtime</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.cvs</td>
      <td><div align="center">not specified</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.ecf.filetransfer</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.eclipse.ecf.identity</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.eclipse.ecf.provider.filetransfer.ssl</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.ecf.provider.filetransfer</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.eclipse.ecf.ssl</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.ecf</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.app</td>
      <td><div align="center">M1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.common</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.frameworkadmin.equinox</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.frameworkadmin</td>
      <td><div align="center">F1.1</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.registry</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.jsp.jasper.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.launcher</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.artifact.repository</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.console</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.core</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.director.app</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.directorywatcher</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.director</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.engine</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.exemplarysetup</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.extensionlocation</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.garbagecollector</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.jarprocessor</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.metadata.generator</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.metadata.repository</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.metadata</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.reconciler.dropins</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.touchpoint.eclipse</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.touchpoint.natives</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.ui.sdk</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.ui</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.updatechecker</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.p2.updatesite</td>
      <td><div align="center">F1.1</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.equinox.security.ui</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.security</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.simpleconfigurator.manipulator</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.eclipse.equinox.simpleconfigurator</td>
      <td><div align="center">F1.1</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">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.help.ui</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.help.webapp</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.help</td>
      <td><div align="center">F1.0</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.pluggable.core</td>
      <td><div align="center">1.6</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.manipulation</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.jdt.core</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.debug</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.jdt.junit.runtime</td>
      <td><div align="center">1.3</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.junit</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.jdt.launching</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.jdt.ui</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.jdt</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.jface.databinding</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.jface</td>
      <td><div align="center">F1.0</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.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.osgi</td>
      <td><div align="center">M1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.pde.api.tools.ui</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.pde.api.tools</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.junit.runtime</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.pde.p2.ui</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.ui.templates</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.pde.ui</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.pde</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.rcp</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.eclipse.sdk</td>
      <td><div align="center">not specified</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><div align="center">F1.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.ssh2</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.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.ui.browser</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.ui.cheatsheets</td>
      <td><div align="center">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">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.ui.ide.application</td>
      <td><div align="center">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.universal</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.ui.intro</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.navigator</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.ui.net</td>
      <td><div align="center">F1.0</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.log</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.ui.views.properties.tabbed</td>
      <td><div align="center">F1.0</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.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.ui.workbench</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.eclipse.ui</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.eclipse.update.configurator</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.eclipse.update.core</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.eclipse.update.scheduler</td>
      <td><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.junit4</td>
      <td><div align="center">1.5</div></td>
    </tr>
    <tr>
      <td>org.junit</td>
      <td><div align="center">1.3</div></td>
    </tr>
    <tr>
      <td>org.mortbay.jetty</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.objectweb.asm</td>
      <td><div align="center">1.3</div></td>
    </tr>
    <tr>
      <td>org.sat4j.core</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.sat4j.pb</td>
      <td><div align="center">1.4</div></td>
    </tr>
  </tbody>
</table>

</body>
</html>
