<?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="Juno"/>

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

<p:introduction>
<div>
<p>
Last revised 16:00 ET June 5, 2012.   (<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_4_2_20120503.xml">May 3, 2012</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.7, designated release 4.2 and code-named Juno.
  This release is occurring simultaneously with the 3.8 platform release. The 4.2 release is a mature
  platform release containing significant new feature work, while the 3.8
  release focuses on stability and bug fixes.
</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;R4_2&quot; in the Eclipse Project <a href="http://git.eclipse.org">Git
    repositories</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 Tooling) (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/Juno/Simultaneous_Release_Plan">
  Juno Simultaneous Release</a> train.</p>
</p:preamble>
<p:milestone date="08/05/2011" milestone="M1"><div>4.2M1</div></p:milestone>
<p:milestone date="09/16/2011" milestone="M2"><div>4.2M2</div></p:milestone>
<p:milestone date="10/28/2011" milestone="M3"><div>4.2M3</div></p:milestone>
<p:milestone date="12/09/2011" milestone="M4"><div>4.2M4</div></p:milestone>
<p:milestone date="01/27/2012" milestone="M5"><div>4.2M5</div></p:milestone>
<p:milestone date="03/16/2012" milestone="M6"><div>4.2M6 (API Freeze)</div></p:milestone>
<p:milestone date="05/04/2012" milestone="M7"><div>4.2M7 (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/Juno_Plan">Eclipse Project Juno Plan page</a>
  on the Eclipse wiki.</p>
<p>Our target is to complete 4.2 in late June 2012, in alignment with Juno.
  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 
are available in the <a href="http://www.eclipse.org/eclipse/development/plans/freeze_plan_4_2.php">Eclipse 4.2 endgame plan</a>.
</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><img src="http://www.eclipse.org/eclipse/development/new.gif" alt="(new)" border="0" height="12" width="12" /> 
  In general, the 4.2 release of the Eclipse Project is developed on a mix
  of Java SE 6 and Java SE 7 VMs. As such, the Eclipse SDK as a whole
  is targeted at all modern, desktop Java VMs. Most functionality is available for
  Java SE 6 level development everywhere, and extended development capabilities are made
  available on the VMs that support them.</p>
<p><a href="#appendix">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 4.2 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="4">Windows</td>
			<td rowspan="2">7</td>
			<td rowspan="1">x86 32-bit</td>
			<td rowspan="4">Oracle Java 7 Update 2<br/>
				Oracle Java 6 Update 27<br/>
				IBM Java 6 SR9
			</td>
			<td rowspan="4">Win32</td>
		</tr>
		<tr>
			<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="3">6</td>
			<td rowspan="1">x86 32-bit</td>
			<td rowspan="2">
			    Oracle Java 7 Update 2<br/>
			    Oracle Java 6 Update 27<br/>
				IBM Java 6 SR9
			</td>
			<td rowspan="3">GTK</td>
		</tr>
		<tr class="c1">
			<td rowspan="1">x86 64-bit</td>
		</tr>
		<tr class="c1">
			<td rowspan="1">Power 64-bit</td>
			<td>IBM Java 6 SR9</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">Oracle Java 6 Update 27<br/>
				IBM Java 6 SR9
			</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 SR9</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">Oracle Java 6 Update 27<br/>
				IBM Java 6 SR9
			</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">Oracle Solaris</td>
			<td rowspan="2">11</td>
			<td rowspan="1">x86 32-bit</td>
			<td rowspan="2">Oracle Java 6 Update 27</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 v3</td>
			<td rowspan="1">ia64 32-bit</td>
			<td rowspan="1">HP-UX Java 6 Update 10</td>
			<td rowspan="1">GTK</td>
		</tr>
		<!-- ************ AIX ************** -->
		<tr class="c0">
			<td rowspan="1">IBM AIX</td>
			<td rowspan="1">7.1</td>
			<td rowspan="1">Power 64-bit</td>
			<td rowspan="1">IBM Java 6 SR9</td>
			<td rowspan="1">GTK</td>
		</tr>
		<!-- ************ Mac ************** -->
		<tr class="c1">
			<td rowspan="2">Apple Mac OS X</td>
			<td rowspan="2">10.6</td>
			<td rowspan="1">Universal 32-bit</td>
			<td rowspan="2">Apple Java 10.6 Update 5</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, DBCS, and BiDi locales are supported by the Eclipse SDK on all reference platforms.</p>
<p>The Eclipse SDK supports GB 18030 (level 1), the Chinese code page standard,
  on Windows, Linux 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 4.2 with 3.8</h3>
<p>Eclipse 4.2 will be compatible with Eclipse 3.8 (and all earlier 3.x versions).</p>

<p><strong>API Contract Compatibility:</strong> Eclipse SDK 4.2 will be upwards
  contract-compatible with Eclipse SDK 3.8 except in those areas noted in the
  <a href="http://www.eclipse.org/eclipse/development/porting/eclipse_4_2_porting_guide.html" target="_top">
    <em>Eclipse 4.2 Plug-in Migration Guide</em>
  </a>. Programs that use affected APIs and extension points will need to be ported
  to Eclipse SDK 4.2 APIs. Downward contract compatibility
  is not supported. There is no guarantee that compliance with Eclipse SDK 4.2
  APIs would ensure compliance with Eclipse SDK 3.8 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 4.2 will be upwards
  binary-compatible with Eclipse SDK 3.8 except in those areas noted in the
  <a href="http://www.eclipse.org/eclipse/development/porting/eclipse_4_2_porting_guide.html" target="_top">
    <em>Eclipse 4.2 Plug-in Migration Guide</em>
  </a>. Downward plug-in compatibility is not supported. Plug-ins for Eclipse SDK
  4.2 will not be usable in Eclipse SDK 3.8. 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 4.2 will be upwards source-compatible
  with Eclipse SDK 3.8 except in the areas noted in the
  <a href="http://www.eclipse.org/eclipse/development/porting/eclipse_4_2_porting_guide.html" target="_top">
    <em>Eclipse 4.2 Plug-in Migration Guide</em>
  </a>. This means that source files written
  to use Eclipse SDK 3.8 APIs might successfully compile and run against Eclipse
  SDK 4.2 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 4.2 will be upwards
  workspace-compatible with earlier 3.x and 4.x versions of the Eclipse SDK unless noted.
  This means that workspaces and projects created with Eclipse SDK 4.1, 4.0, 3.8 .. 3.0 can be successfully
  opened by Eclipse SDK 4.2 and upgraded to a 4.2 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 4.2 should provide similar upwards compatibility
  for their hidden and visible workspace metadata created by earlier versions;
  4.2 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 4.2 will be unusable with a product based on an earlier
  version of Eclipse. Visible metadata files created (or overwritten) by Eclipse
  4.2 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 or
  x-internal in the bundle manifest entry,
  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 "4.2" 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>
<ul>
<li>
	<strong>Add support for Java SE 7 features.</strong>
	The most recent feature release of Java SE is version 7, which was released on July 28, 2011. 
	This release contains extensions to the Java language, including support for
	dynamically-typed languages, and other minor language changes
	(Coin project). Eclipse Java development tooling will include support for
	compiling, editing, and launching applications for Java 7. [JDT Core, JDT UI] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=288548">288548</a>)
	<br/>
	<br/>
	<b>Note:</b> because of the high importance of Java 7 tools to the Eclipse community,
	we are delivering complete basic Java 7 functionality in Indigo SR1 (September 2011).
	Further enhancements to Java 7 development tools will continue in the Juno release.
</li>
<li>(<img src="http://www.eclipse.org/eclipse/development/new.gif" alt="(new)" border="0" height="12" width="12" /> committed)
	<strong>Migrate SWT graphics operations to Cairo.</strong>
	GTK+ is transitioning away from X Window System in favor of Cairo for drawing
	operations. The GTK+ port of SWT will migrate drawing operations to Cairo in
	preparation for a future port of SWT to GTK+ 3.
	 [SWT] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=354978">354978</a>)
</li>
<li>(<img src="http://www.eclipse.org/eclipse/development/new.gif" alt="(new)" border="0" height="12" width="12" /> committed)
	<strong>BiDi enhancements.</strong>
	We will invest in ensuring the Eclipse platform remains a first class basis for	products 
	supporting bidirectional text (BiDi). Areas of investigation include:  support for text with internal 
	structure or syntax including BiDi data, support for text input widgets, and comprehensive
	support for static complex expressions.
	[SWT] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=359627">359627</a>)
</li>
</ul>
</p:committed>

<p:proposed>
<ul>
  <p><i>None at this time.</i></p>
</ul>
</p:proposed>

<p:deferred>
<ul>
<li>
	<strong>Start work on Java SE 8 features.</strong>
	The next Java SE release is version 8, which is currently scheduled for October
	2012. This release is expected to contain extensions to the Java language,
	including support for lambda expressions, default methods, annotations on
	types, a modularity system and minor language changes. 
	Eclipse Java development tooling will make progress towards compiling, editing
	and launching applications for Java 8 for those parts which have publicly
	available specifications. Work in progress will be made available as feature
	patches for early adopters while we work towards the official Java SE 8
	release.
	 [JDT Core, JDT UI] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=358387">358387</a>)
</li>
<li>
	<strong>Adopt new Windows 7 APIs</strong>
	There are a number of Windows 7 APIs that are needed to implement 
	current/modern looking user interfaces. These include: aero glass shell, Direct2D 
	graphics and stylized menus. SWT will add support to take advantage of these APIs.
	 [SWT] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=359625">359625</a>)
</li>
</ul>
</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>
<ul>
<li>
	<strong>Transition to Git.</strong>
	The Eclipse project will transition its source control system from CVS to Git during
	this release. This should have little or no effect on end user functionality, but requires
	changes to the project build infrastructure, tools, and development practices.
	[All Components] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=345479">345479</a>)
</li>
<li>(<img src="http://www.eclipse.org/eclipse/development/new.gif" alt="(new)" border="0" height="12" width="12" /> committed)
	<strong>Make Eclipse Platform 4 enterprise ready.</strong>
	Version 4 of the Eclipse Platform has had two releases since graduating
	from the e4 incubator, but was still treated as secondary to the 3.x platform generation.
	In this release we will take the final steps to make version 4.2 the primary platform
	for enterprise level adoption. This work includes refactoring and cleanup of the workbench
	compatibility code, implementing Intro support, improving performance, addressing
	globalization and accessibility bugs, and regularly running the full suite of Eclipse SDK
	regression tests against Platform version 4.
	[Platform UI] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=359626">359626</a>)
</li>
<li>(<img src="http://www.eclipse.org/eclipse/development/new.gif" alt="(new)" border="0" height="12" width="12" /> committed)
	<strong>Build system consolidation.</strong>
	The 3.x and 4.x platform builds currently use different build systems and run on
	different build hardware. We will consolidate these systems to run all builds
	on eclipse.org build infrastructure. As part of this process the 4.x build will transition
	to being the primary Eclipse project build system, with 3.x stream builds performed
	on a reduced schedule for ongoing maintenance work.
	[Releng] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=355430">355430</a>)
</li>
</ul>
</p:committed>

<p:proposed>
  <p><i>None at this time.</i></p>
</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>
<ul>
<li>
	<strong>Use annotations for null checking.</strong>
	Null reference analysis in Eclipse Java development tooling is currently limited
	to analysis within the scope of individual methods. We will explore widening this analysis
	by using annotations to indicate whether particular parameters, return types, and fields 
	are designed to allow null values.
	[JDT Core, JDT UI] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=186342">186342</a>)
</li>
</ul>
</p:committed>

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

<p:deferred>
<ul>
<li>
	<strong>Support different target platforms per project.</strong>
	The PDE target platform mechanism has seen dramatic improvements with
	support for provisioning target platforms from remote repositories, local software
	installs, and feature lists. We will further enhance this system by supporting
	a different target platform for each project in the workspace.
	[PDE UI] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=159072">159072</a>)
</li>
</ul>
</p:deferred>

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

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

<p:appendix name="Execution Environment by Bundle">
  
<p>In the table below, the &quot;4.2 minimum execution environment&quot;
  column indicates the minimum Java class library requirements of each bundle
  for the 4.2 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>4.2<br/>minimum<br/>execution<br/>environment</b></p></div></td>
    </tr>
    <tr>
      <td>com.ibm.icu</td>
      <td><div align="center">1.5</div></td>
    </tr>
    <tr>
      <td>com.jcraft.jsch</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>com.sun.el</td>
      <td><div align="center">1.5</div></td>
    </tr>
    <tr>
      <td>javax.annotation</td>
      <td><div align="center">1.5</div></td>
    </tr>
    <tr>
      <td>javax.el</td>
      <td><div align="center">1.5</div></td>
    </tr>
    <tr>
      <td>javax.inject</td>
      <td><div align="center">1.5</div></td>
    </tr>
    <tr>
      <td>javax.servlet</td>
      <td><div align="center">1.6</div></td>
    </tr>
    <tr>
      <td>javax.servlet.jsp</td>
      <td><div align="center">1.6</div></td>
    </tr>
    <tr>
      <td>javax.xml</td>
      <td><div align="center">J2SE-1.2</div></td>
    </tr>
    <tr>
      <td>org.apache.ant</td>
      <td><div align="center">J2SE-1.2</div></td>
    </tr>
    <tr>
      <td>org.apache.batik.css</td>
      <td><div align="center">1.3</div></td>
    </tr>
    <tr>
      <td>org.apache.batik.util</td>
      <td><div align="center">1.3</div></td>
    </tr>
    <tr>
      <td>org.apache.batik.util.gui</td>
      <td><div align="center">1.3</div></td>
    </tr>
    <tr>
      <td>org.apache.commons.codec</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.apache.commons.httpclient</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.felix.gogo.command</td>
      <td><div align="center">not specified</div></td>
    </tr>
    <tr>
      <td>org.apache.felix.gogo.runtime</td>
      <td><div align="center">not specified</div></td>
    </tr>
    <tr>
      <td>org.apache.felix.gogo.shell</td>
      <td><div align="center">not specified</div></td>
    </tr>
    <tr>
      <td>org.apache.jasper.glassfish</td>
      <td><div align="center">1.6</div></td>
    </tr>
    <tr>
      <td>org.apache.lucene</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.apache.lucene.analysis</td>
      <td><div align="center">1.4</div></td>
    </tr>
    <tr>
      <td>org.apache.lucene.core</td>
      <td><div align="center">1.4</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.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.1</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.5</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.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.e4.core.commands</td>
      <td><div align="center">1.5</div></td>
    </tr>
    <tr>
      <td>org.eclipse.e4.core.contexts</td>
      <td><div align="center">1.5</div></td>
    </tr>
    <tr>
      <td>org.eclipse.e4.core.di</td>
      <td><div align="center">1.5</div></td>
    </tr>
    <tr>
      <td>org.eclipse.e4.core.di.extensions</td>
      <td><div align="center">1.5</div></td>
    </tr>
    <tr>
      <td>org.eclipse.e4.core.services</td>
      <td><div align="center">1.5</div></td>
    </tr>
    <tr>
      <td>org.eclipse.e4.ui.bindings</td>
      <td><div align="center">1.5</div></td>
    </tr>
    <tr>
      <td>org.eclipse.e4.ui.css.core</td>
      <td><div align="center">1.5</div></td>
    </tr>
    <tr>
      <td>org.eclipse.e4.ui.css.swt</td>
      <td><div align="center">1.5</div></td>
    </tr>
    <tr>
      <td>org.eclipse.e4.ui.css.swt.theme</td>
      <td><div align="center">1.5</div></td>
    </tr>
    <tr>
      <td>org.eclipse.e4.ui.di</td>
      <td><div align="center">1.5</div></td>
    </tr>
    <tr>
      <td>org.eclipse.e4.ui.model.workbench</td>
      <td><div align="center">1.5</div></td>
    </tr>
    <tr>
      <td>org.eclipse.e4.ui.services</td>
      <td><div align="center">1.5</div></td>
    </tr>
    <tr>
      <td>org.eclipse.e4.ui.widgets</td>
      <td><div align="center">1.5</div></td>
    </tr>
    <tr>
      <td>org.eclipse.e4.ui.workbench</td>
      <td><div align="center">1.5</div></td>
    </tr>
    <tr>
      <td>org.eclipse.e4.ui.workbench.addons.swt</td>
      <td><div align="center">1.5</div></td>
    </tr>
    <tr>
      <td>org.eclipse.e4.ui.workbench.renderers.swt</td>
      <td><div align="center">1.5</div></td>
    </tr>
    <tr>
      <td>org.eclipse.e4.ui.workbench.swt</td>
      <td><div align="center">1.5</div></td>
    </tr>
    <tr>
      <td>org.eclipse.e4.ui.workbench3</td>
      <td><div align="center">1.5</div></td>
    </tr>
    <tr>
      <td>org.eclipse.emf.common</td>
      <td><div align="center">1.5</div></td>
    </tr>
    <tr>
      <td>org.eclipse.emf.ecore</td>
      <td><div align="center">1.5</div></td>
    </tr>
    <tr>
      <td>org.eclipse.emf.ecore.change</td>
      <td><div align="center">1.5</div></td>
    </tr>
    <tr>
      <td>org.eclipse.emf.ecore.xmi</td>
      <td><div align="center">1.5</div></td>
    </tr>
    <tr>
      <td>org.eclipse.help</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.eclipse.help.base</td>
      <td><div align="center">1.5</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.annotation</td>
      <td><div align="center">1.5</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.5</div></td>
    </tr>
    <tr>
      <td>org.eclipse.jdt.debug.ui</td>
      <td><div align="center">1.5</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.5</div></td>
    </tr>
    <tr>
      <td>org.eclipse.jdt.ui</td>
      <td><div align="center">1.5</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.5</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.trace</td>
      <td><div align="center">1.5</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">1.5</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.hamcrest.core</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.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>
    <tr>
      <td>org.slf4j.api</td>
      <td><div align="center">F1.1</div></td>
    </tr>
    <tr>
      <td>org.w3c.css.sac</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.w3c.dom.smil</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    <tr>
      <td>org.w3c.dom.svg</td>
      <td><div align="center">F1.0</div></td>
    </tr>
    </tbody>
</table>
  </p:appendix>  
</p:plan>
