<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!--  Use this to test local rendering in firefox. Comment out this line once this plan is linked to portal data. -->
<?xml-stylesheet type="text/xsl" href="project-plan-render.xsl"?>

<!-- <?xml-stylesheet type="text/xsl" href="http://www.eclipse.org/projects/project-plan.xsl"?> -->

<p:plan
  plan-format="1.0"
  xmlns:p="http://www.eclipse.org/project/plan" xmlns="http://www.w3.org/1999/xhtml"
  name="Eclipse Project">

<p:release projectid="eclipse" version="Indigo"/>

<!-- ============================================== -->

<p:introduction>
<div>
<p>
Last revised 16:00 ET September 22, 2010.  (<img src="http://www.eclipse.org/eclipse/development/new.gif" alt="(new)" border="0" height="12" width="12" /> 
marks interesting changes since the previous draft of 
<a href="http://www.eclipse.org/projects/project-plan.php?planurl=http://www.eclipse.org/eclipse/development/plans/eclipse_project_plan_3_7_20100630.xml">June 30, 2010</a>.)
</p>
<p><i>Please send comments about this 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.6, designated release 3.7 and code-named Indigo.
</p>

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

</div>
</p:introduction>

<!-- ============================================== -->

<p:release_deliverables>
<div>

<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_7&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 and source repositories for the Rich Client Platform) (downloadable).</li>
  <li>Eclipse JDT (runtime and source repositories for the Java Development Tools) (downloadable).</li>
  <li>Eclipse PDE (runtime and source repositories for the Plug-in Development Environment) (downloadable).</li>
  <li>Eclipse SDK Examples (downloadable).</li>
  <li>SWT distribution (downloadable).</li>
</ul>
<p>* The <a href="http://www.eclipse.org/equinox/">Equinox Project</a> is part of the top level
  <a href="http://www.eclipse.org/rt/">RT Project</a>. A significant portion of the Equinox
  deliverables are consumed and redistributed as part of the Eclipse Project's SDK, Platform,
  and RCP deliverables.</p>

</div>
</p:release_deliverables>

<!-- ============================================== -->

<p:release_milestones>

<p:preamble><p>      
  Release milestones will be occurring at roughly 6 week intervals, and will be aligned with the
  <a href="http://wiki.eclipse.org/Indigo_Simultaneous_Release">
  Indigo Simultaneous Release</a> train.</p>
</p:preamble>
<p:milestone date="08/06/2010" milestone="M1"><div>3.7M1</div></p:milestone>
<p:milestone date="09/17/2010" milestone="M2"><div>3.7M2</div></p:milestone>
<p:milestone date="10/29/2010" milestone="M3"><div>3.7M3</div></p:milestone>
<p:milestone date="12/10/2010" milestone="M4"><div>3.7M4</div></p:milestone>
<p:milestone date="01/28/2011" milestone="M5"><div>3.7M5</div></p:milestone>
<p:milestone date="03/11/2011" milestone="M6"><div>3.7M6 (API Freeze)</div></p:milestone>
<p:milestone date="04/29/2011" milestone="M7"><div>3.7M7 (Feature Freeze)</div></p:milestone>

<p:postamble>
<div>
<p>Individual, milestone level plans for the components that make up the Eclipse Project can be found 
  on the <a href="http://wiki.eclipse.org/Eclipse/Indigo_Plan">Eclipse Project Indigo Plan page</a>
  on the Eclipse wiki.</p>
<p>Our target is to complete 3.7 in late June 2011, in alignment with Indigo.
  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>
<p>Dates for builds and test passes after M7 will be available in the 
<!-- <a href="http://www.eclipse.org/eclipse/development/plans/freeze_plan_3.7.php">Eclipse Indigo end-game plan</a>. -->
Eclipse Indigo end-game plan, available shortly before M7 in April 2011.
</p>
</div>
</p:postamble>

</p:release_milestones>

<!-- ============================================== -->

<p:target_environments>

<div>
<p>In order to remain current, each Eclipse Project 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 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.1, J2SE 1.4, Java 5, etc).</p>
<p>In general, the 3.7 release of the Eclipse Project is developed on a mix
  of Java SE 5 and Java SE 6 VMs. As such, the Eclipse SDK as a whole
  is targeted at all modern, desktop Java VMs. Most functionality is available for
  Java SE 5 level development everywhere, and extended development capabilities are made
  available on the VMs that support them.</p>
<p><a href="#Appendix1">Appendix 1</a> contains a table that indicates the class
  library level required for each bundle.</p>
<p>There are many different implementations of the Java Platform running atop
  a variety of operating systems. We focus our 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. 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>Eclipse 3.7 is tested and validated on the following reference platforms
  (this list is updated over the course of the release cycle):</p>
<style type="text/css">
	table.platforms {
		border-width: 1px;
		border-spacing: 0px;
		border-style: solid;
		border-collapse: separate;
	}
	table.platforms th {
		border-width: 1px;
		padding: 3px;
		border-style: inset;
		border-color: black;
		background-color: #B9A9FF;
	}
	table.platforms td {
		border-width: 1px 1px 1px 1px;
		padding: 3px 3px 3px 3px;
		border-style: inset inset inset inset;
		border-color: gray gray gray gray;
	}
	table.platforms tr.c0 td {
		background-color: #FDFDFD;
	}
	table.platforms tr.c1 td {
		background-color: #F4EEFF;
	}
</style>
<center>
	<table class="platforms">
		<tr>
			<th>Operating System</th>
			<th>Version</th>
			<th>Hardware</th>
			<th>JRE</th>
			<th>Windowing System</th>
		</tr>
		<!-- ************ WINDOWS ************** -->
		<tr class="c0">
			<td rowspan="6">Windows</td>
			<td rowspan="2">7</td>
			<td rowspan="1">x86 32-bit</td>
			<td rowspan="6">Sun Java 6 Update 17<br/>
				IBM Java 6 SR8
			</td>
			<td rowspan="6">Win32</td>
		</tr>
		<tr>
			<td rowspan="1">x86 64-bit</td>
		</tr>
		<tr>
			<td rowspan="2">Vista</td>
			<td rowspan="1">x86 32-bit</td>
		</tr>
		<tr class="c0">
			<td rowspan="1">x86 64-bit</td>
		</tr>
		<tr class="c0">
			<td rowspan="2">XP</td>
			<td rowspan="1">x86 32-bit</td>
		</tr>
		<tr class="c0">
			<td rowspan="1">x86 64-bit</td>
		</tr>
		<!-- ************ RHEL ************** -->
		<tr class="c1">
			<td rowspan="3">Red Hat Enterprise Linux</td>
			<td rowspan="2">5.0</td>
			<td rowspan="1">x86 32-bit</td>
			<td>Sun Java 6 Update 17<br/>
				IBM Java 6 SR8
			</td>
			<td rowspan="3">GTK</td>
		</tr>
		<tr class="c1">
			<td rowspan="1">Power 64-bit</td>
			<td>IBM Java 6 SR8</td>
		</tr>
		<tr class="c1">
			<td rowspan="1">4.0</td>
			<td rowspan="1">x86 64-bit</td>
			<td>Sun Java 6 Update 17<br/>
				IBM Java 6 SR8
			</td>
		</tr>
		<!-- ************ SLES ************** -->
		<tr class="c0">
			<td rowspan="3">SUSE Linux Enterprise Server</td>
			<td rowspan="3">11</td>
			<td rowspan="1">x86 32-bit</td>
			<td rowspan="2">Sun Java 6 Update 17<br/>
				IBM Java 6 SR8
			</td>
			<td rowspan="3">GTK</td>
		</tr>
		<tr class="c0">
			<td rowspan="1">x86 64-bit</td>
		</tr>
		<tr class="c0">
			<td rowspan="1">Power 64-bit</td>
			<td>IBM Java 6 SR8</td>
		</tr>
		<!-- ************ Ubuntu ************** -->
		<tr class="c1">
			<td rowspan="2">Ubuntu Long Term Support</td>
			<td rowspan="2">10.04</td>
			<td rowspan="1">x86 32-bit</td>
			<td rowspan="2">Sun Java 6 Update 17<br/>
				IBM Java 6 SR8
			</td>
			<td rowspan="2">GTK</td>
		</tr>
		<tr class="c1">
			<td rowspan="1">x86 64-bit</td>
		</tr>
		<!-- ************ Solaris ************** -->
		<tr class="c0">
			<td rowspan="2">Sun Solaris</td>
			<td rowspan="2">10</td>
			<td rowspan="1">x86 32-bit</td>
			<td rowspan="2">Sun Java 6 Update 17</td>
			<td rowspan="2">GTK</td>
		</tr>
		<tr class="c0">
			<td rowspan="1">SPARC 32-bit</td>
		</tr>
		<!-- ************ HPUX ************** -->
		<tr class="c1">
			<td rowspan="1">HP-UX</td>
			<td rowspan="1">11i v2</td>
			<td rowspan="1">ia64 32-bit</td>
			<td rowspan="1">HP-UX Java 5 Update 18</td>
			<td rowspan="1">Motif 2.1</td>
		</tr>
		<!-- ************ AIX ************** -->
		<tr class="c0">
			<td rowspan="1">IBM AIX</td>
			<td rowspan="1">5.3</td>
			<td rowspan="1"><img src="http://www.eclipse.org/eclipse/development/new.gif" alt="(new)" border="0" height="12" width="12" /> Power 64-bit</td>
			<td rowspan="1">IBM Java 6 SR8</td>
			<td rowspan="1"><img src="http://www.eclipse.org/eclipse/development/new.gif" alt="(new)" border="0" height="12" width="12" /> GTK</td>
		</tr>
		<!-- ************ Mac ************** -->
		<tr class="c1">
			<td rowspan="3">Apple Mac OS X</td>
			<td rowspan="3"><img src="http://www.eclipse.org/eclipse/development/new.gif" alt="(new)" border="0" height="12" width="12" /> 10.6</td>
			<td rowspan="1"><img src="http://www.eclipse.org/eclipse/development/new.gif" alt="(new)" border="0" height="12" width="12" /> <s>Universal</s></td>
			<td rowspan="3"><img src="http://www.eclipse.org/eclipse/development/new.gif" alt="(new)" border="0" height="12" width="12" /> Apple Java 10.6 Update 2</td>
			<td rowspan="1"><img src="http://www.eclipse.org/eclipse/development/new.gif" alt="(new)" border="0" height="12" width="12" /> <s>Carbon</s></td>
		</tr>
		<tr class="c1">
			<td rowspan="1">Universal 32-bit</td>
			<td rowspan="2">Cocoa</td>
		</tr>
		<tr class="c1">
			<td rowspan="1">Universal 64-bit</td>
		</tr>
	</table>
 </center>

<p>As stated above, <i>we expect that Eclipse works fine on other current
  Java VM and OS versions but we cannot flag these as reference platforms without
  significant community support for testing them.</i></p>
</div>

<p:internationalization>
<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>
</p:internationalization>

</p:target_environments>
 
<!-- ============================================== -->

<p:compatibility_with_previous_releases>
<div>

<h3>Compatibility of Release 3.7 with 3.6</h3>
<p>Eclipse 3.7 will be compatible with Eclipse 3.6 (and all earlier 3.x versions).</p>

<p><strong>API Contract Compatibility:</strong> Eclipse SDK 3.7 will be upwards
  contract-compatible with Eclipse SDK 3.6 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_6_porting_guide.html" target="_top">
    <em>Eclipse 3.7 Plug-in Migration Guide</em>
  </a>. Programs that use affected APIs and extension points will need to be ported
  to Eclipse SDK 3.7 APIs. Downward contract compatibility
  is not supported. There is no guarantee that compliance with Eclipse SDK 3.7
  APIs would ensure compliance with Eclipse SDK 3.6 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.7 will be upwards
  binary-compatible with Eclipse SDK 3.6 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_6_porting_guide.html" target="_top">
    <em>Eclipse 3.7 Plug-in Migration Guide</em>
  </a>. Downward plug-in compatibility is not supported. Plug-ins for Eclipse SDK
  3.7 will not be usable in Eclipse SDK 3.6. 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.7 will be upwards source-compatible
  with Eclipse SDK 3.6 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_6_porting_guide.html" target="_top">
    <em>Eclipse 3.7 Plug-in Migration Guide</em>
  </a>. This means that source files written
  to use Eclipse SDK 3.6 APIs might successfully compile and run against Eclipse
  SDK 3.7 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.7 will be upwards
  workspace-compatible with earlier 3.x versions of the Eclipse SDK unless noted.
  This means that workspaces and projects created with Eclipse SDK 3.6 .. 3.0 can be successfully
  opened by Eclipse SDK 3.7 and upgraded to a 3.7 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.7 should provide similar upwards compatibility
  for their hidden and visible workspace metadata created by earlier versions;
  3.7 plug-in developers are responsible for ensuring that their plug-ins recognize
  metadata from earlier versions 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.7 will be unusable with a product based on an earlier
  version of Eclipse. Visible metadata files created (or overwritten) by Eclipse
  3.7 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>

</div>
</p:compatibility_with_previous_releases>
  
<!-- ============================================== -->

<p:themes_and_priorities>

<p:preamble>
<div>
<p>The plan items listed below were defined according to contributor requirements and the Eclipse
  <a href="http://wiki.eclipse.org/RequirementsCouncilThemesAndPriorities">Themes and Priorities</a>
  set forth by the Eclipse Requirements Council. 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 entails.</p>
<p> Although there are three mature 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.). As such, this plan covers the work of all mature projects
  under the top level Eclipse Project.</p>
<p>Not all plan items represent the same amount of work; some may be quite
  large, others, quite small. Although some plan items are for work that is 
  more pressing than others, the plan items appear in no particular order.
  See the corresponding bugzilla items for up-to-date status information on
  ongoing work and planned delivery milestones.</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. In bugzilla, this is reflected by
    having a concrete target milestone assigned.</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. In bugzilla, such items are reflected
    by having a target milestone "3.7" or "---" assigned.</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. In bugzilla, such items are reflected by having
    a target milestone "---" assigned.</li>
</ul>
</div>
</p:preamble>

<!-- ============================================== -->

<p:theme name="Platforms">
<p:description>
<p>This work is focused on ensuring that Eclipse takes full advantage of all
  capabilities of the underlying technologies that it is based on, be they
  operating system, window system, Java or other. This includes support
  for native accessibility, internationalization and localization capabilities.
</p>
</p:description>

<p:committed>
  <p><i>None at this time.</i></p>
</p:committed>

<p:proposed>
<ul>
<li><img src="http://www.eclipse.org/eclipse/development/new.gif" alt="(new)" border="0" height="12" width="12" />
	<strong>Add support for Java SE 7 features.</strong>
	The next feature release of Java SE is
	version 7, which will probably be available in 2011. This release is
	expected to contain extensions to the Java language, including support for
	dynamically-typed languages, and other minor language changes
	(Coin project). Eclipse Java tooling will include initial support for
	compiling, editing, and launching applications for Java 7 for those parts which
	have publicly available specifications. [JDT Core,
	JDT UI] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=288548">288548</a>)
</li>
<li><img src="http://www.eclipse.org/eclipse/development/new.gif" alt="(new)" border="0" height="12" width="12" />
	<strong>Adopt new accessibility API.</strong>
	In the 3.6 release, SWT provided new API to support the IAccessible2 standard. This
	API should be adopted throughout the Eclipse platform user interface to ensure the platform
	is fully accessible to all users. In addition, SWT will extend its accessibility support
	to include IAccessibleEditableText, and expand its accessibility testing efforts.
	[SWT, Platform UI] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=325993">325993</a>)
</li>
<li><img src="http://www.eclipse.org/eclipse/development/new.gif" alt="(new)" border="0" height="12" width="12" />
	<strong>BIDI enhancements.</strong>
	We will invest in ensuring the Eclipse platform remains a first class basis for	products 
	supporting bidirectional text. Areas of investigation include: support for controlling text 
	direction independently from widget orientation, text orientation support in the Text
	widget, ability to change text orientation at runtime, and stronger support for
	bidirectional calendars.
	[SWT] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=325994">325994</a>)
</li>
<li><img src="http://www.eclipse.org/eclipse/development/new.gif" alt="(new)" border="0" height="12" width="12" />
	<strong>Support for Webkit on Windows.</strong>
	We will provide support for using Webkit as the embedded browser in Eclipse when
	running on Windows.	Note that the Eclipse platform will not distribute Webkit, but 
	will provide bindings so that it can be used within Eclipse and SWT when available.
	[SWT] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=325995">325995</a>)
</li>
</ul>
</p:proposed>

<p:deferred>
  <p><i>None at this time.</i></p>
</p:deferred>

</p:theme>
    
<!-- ============================================== -->

<p:theme name="Robustness">
<p:description>
<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
  affect the stability of the platform.
</p>
</p:description>

<p:committed>
  <p><i>None at this time.</i></p>
</p:committed>

<p:proposed>
<ul>
<li><img src="http://www.eclipse.org/eclipse/development/new.gif" alt="(new)" border="0" height="12" width="12" />
	<strong>Build at eclipse.org.</strong>
	The current Eclipse project build and test infrastructure runs on proprietary hardware
	accessible only to certain committers. We will work to migrate the Eclipse project
	build to run on eclipse.org hardware, so that all committers have equal access to the
	build environment. At the same time, we will investigate adopting some of the build
	technology provided by the Eclipse Foundation, such as Hudson for viewing
	and managing builds.
	[Rel. Eng., PDE] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=325997">325997</a>)
</li>
<li><img src="http://www.eclipse.org/eclipse/development/new.gif" alt="(new)" border="0" height="12" width="12" />
	<strong>Help servlet API.</strong>
	To allow customized Help front ends, the Eclipse Help System will introduce a set
	of servlets which publicly expose API for all of the back end functionality.  This
	will include capabilities such as filtering, searching, indexing, navigation, and runtime content.
	[User Assistance] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=319907">319907</a>)
</li>
<li><img src="http://www.eclipse.org/eclipse/development/new.gif" alt="(new)" border="0" height="12" width="12" />
	<strong>Resource filter improvements.</strong>
	In the previous release, the concept of resource filters was introduced. We will
	make improvements to the implementation of filters, including optimizing
	the storage representation of filters, and providing extensible UI components
	for working with filters. We will also investigate using resource filters to flatten
	a hierarchy of resources into a single directory.
	[Workspace, Platform UI] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=325998">325998</a>)
</li>
</ul>
</p:proposed>

<p:deferred>
  <p><i>None at this time.</i></p>
</p:deferred>

</p:theme>
    
<!-- ============================================== -->

<p:theme name="Ease of Use">
<p:description>
<p>The Eclipse platform is not lacking in functionality, but sometimes fails to present 
	that functionality to end users in a way that is easy to discover and use. This theme
	encompasses work to simplify and improve the end user experience, and to keep
	up with modern user interface input forms such as multi-touch gestures.</p>
</p:description>

<p:committed>
  <p><i>None at this time.</i></p>
</p:committed>

<p:proposed>
<ul>
<li><img src="http://www.eclipse.org/eclipse/development/new.gif" alt="(new)" border="0" height="12" width="12" />
	<strong>Multi-touch support.</strong>
	We will add API in SWT for multi-touch events. These events will allow Eclipse applications
	to react to native multi-touch events on operating system where such events are supported
	(currently Windows 7 and Mac OS X 10.6). [SWT] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=279884">279884</a>)
</li>
<li><img src="http://www.eclipse.org/eclipse/development/new.gif" alt="(new)" border="0" height="12" width="12" />
	<strong>Problems view enhancements.</strong>
	The <b>Problems</b> view supports invoking Quick Fix to automatically resolve
	problems, but this capability is difficult to discover and use. We will make this
	option more visible to users, and make it easier to resolve multiple problems 
	at once from the problems view.
	[Platform UI] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=326000">326000</a>)
</li>
<li><img src="http://www.eclipse.org/eclipse/development/new.gif" alt="(new)" border="0" height="12" width="12" />
	<strong>Help enhancements.</strong>
	We will make a number of enhancements to improve the usability and extensibility
	of the Eclipse help system. Specific areas of work include improved usability of help search scopes,
	support for pre-processing steps in help search, and more pervasive support for
	content filtering. [Platform UA] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=326001">326001</a>)
</li>
</ul>
</p:proposed>

<p:deferred>
  <p><i>None at this time.</i></p>
</p:deferred>

</p:theme>
    
</p:themes_and_priorities>

<!-- ============================================== -->

<p:appendix name="Execution Environment by Bundle">
  
<p>In the table below, the &quot;3.7 minimum execution environment&quot;
  column indicates the minimum Java class library requirements of each bundle
  for the 3.7 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>F1.0</strong></div></td>
      <td>J2ME Foundation 1.0 - indicates that the bundle 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 bundle 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.3</strong></div></td>
      <td>J2SE 1.3 - indicates that the bundle 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 bundle can only be run on JSE 1.4 or
        greater.</td>
    </tr>
    <tr>
      <td><div align="center"><strong>1.5</strong></div></td>
      <td>Java SE 5 - indicates that the bundle can only be run on Java SE 5 or
        greater.</td>

    </tr>
    <tr>
      <td><div align="center"><strong>1.6</strong></div></td>
      <td>Java SE 6 - indicates that the bundle can only be run on Java SE 6 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>

<p><b>Table of minimum execution environments by bundle.</b> (See also the
  <a href="http://www.eclipse.org/projects/project-plan.php?projectid=rt.equinox#appendix">Equinox Project plan</a>
  for the execution environment requirements of bundles contributed via that project.)</p>

<table border="1">
  <tbody>
    <tr>
      <td width="290"><strong>Bundle</strong></td>
      <td width="60"><div align="center"><p align="center"><b>3.7<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>org.apache.ant</td>
      <td><div align="center">J2SE-1.2</div></td>
    </tr>
    <tr>
      <td>org.apache.lucene</td>
      <td><div align="center">not specified</div></td>
    </tr>
    <tr>
      <td>org.apache.lucene.analysis</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.launching</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.compare.core</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.compare.win32</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</td>
      <td><div align="center">F1.1</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.observable</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.eclipse.core.databinding.property</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.externaltools</td>
      <td><div align="center">1.4</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.1</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</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.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.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.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">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.jdt</td>
      <td><div align="center">not specified</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</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">not specified</div></td>
    </tr>
    <tr>
      <td>org.eclipse.jdt.doc.user</td>
      <td><div align="center">not specified</div></td>
    </tr>
    <tr>
      <td>org.eclipse.jdt.junit</td>
      <td><div align="center">1.5</div></td>
    </tr>
    <tr>
      <td>org.eclipse.jdt.junit.core</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.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.jface</td>
      <td><div align="center">F1.1</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.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.pde</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.api.tools.ui</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">not specified</div></td>
    </tr>
    <tr>
      <td>org.eclipse.pde.ds.core</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.pde.ds.ui</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.launching</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.ua.core</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.pde.ua.ui</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.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">not specified</div></td>
    </tr>
    <tr>
      <td>org.eclipse.platform.doc.user</td>
      <td><div align="center">not specified</div></td>
    </tr>
    <tr>
      <td>org.eclipse.rcp</td>
      <td><div align="center">not specified</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.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</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">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</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.intro</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.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">F1.1</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.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.win32</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.eclipse.ui.workbench</td>
      <td><div align="center">F1.1</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><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.core.win32</td>
      <td><div align="center">not specified</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.hamcrest.core</td>
      <td><div align="center">1.5</div></td>
    </tr>
    <tr>
      <td>org.junit 3.8.2</td>
      <td><div align="center">1.3</div></td>
    </tr>
    <tr>
      <td>org.junit 4.8.1</td>
      <td><div align="center">1.5</div></td>
    </tr>
    <tr>
      <td>org.junit4</td>
      <td><div align="center">1.5</div></td>
    </tr>
    <tr>
      <td>org.objectweb.asm</td>
      <td><div align="center">1.3</div></td>
    </tr>
  </tbody>
</table>
  </p:appendix>  
</p:plan>
