diff --git a/planning/equinox_kepler_plan.xml b/planning/equinox_kepler_plan.xml
new file mode 100644
index 0000000..7a2a9aa
--- /dev/null
+++ b/planning/equinox_kepler_plan.xml
@@ -0,0 +1,938 @@
+<?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="rt.equinox" version="Kepler"/>
+
+<!-- ============================================== -->
+
+<p:introduction>
+<div>
+<p>
+Last revised 16:00 ET April 24, 2013.   (<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/equinox/planning/equinox_kepler_plan.xml">July 26, 2012</a>.)
+</p>
+<p><i>Please send comments about this plan to the</i> <a href="mailto:equinox-dev@eclipse.org">equinox-dev@eclipse.org</a> <i>developer
+  mailing list.</i>
+</p>
+<p>The goal of the Equinox project is to be a first class OSGi community and foster the vision of Eclipse
+  Runtime technologies. As part of this, it is responsible for developing and delivering the OSGi
+  framework implementation used for all of Eclipse.  Equinox is also responsible for developing
+  other core runtime technologies such as p2, extension registry, security and core server-side
+  runtime components.
+</p>
+<p>This document lays out the feature and API set for the next feature release
+  of Equinox after 3.8, designated release 3.9 and code-named Kepler.
+</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 compontent leads) 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 Equinox Project. Each plan item covers a feature or API
+  that is to be added to the Equinox Project deliverables, or some aspect of
+  the Equinox 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 Equinox Project deliverables, available as
+    versions tagged &quot;R3_9&quot; in the Equinox Project <a href="http://git.eclipse.org/c/equinox">GIT
+    repository</a>.</li>
+	<li><b>Framework:</b>
+		<ul>
+		   <li>An OSGi R5 Core Framework implementation</li>
+		   <li>Native launcher and splash screen support</li>
+</ul>
+    </li>
+	<li><b>Compendium Services:</b>
+		<ul>
+		   <li>Application Container - An implementation of the OSGi R4.3 Application Container service.</li>
+		   <li>Config Admin - An implementation of the OSGi R4.3 Configuration Admin service.</li>
+		   <li>Coordinator - An implementation of the OSGi R4.3 Coordinator service.</li>
+		   <li>Device Access Service - An implementation of the OSGi R4.3 Device Access service.</li>
+		   <li>Declarative Services - An implementation of the OSGi R4.3 Declarative Services specification.</li>
+		   <li>Event Admin Service - An implementation of the OSGi R4.3 Event Admin Service.</li>
+		   <li>HTTP Service - An implementation of the OSGi R4.3 HTTP service.</li>
+		   <li>HTTP Servlet - Generic support for exposing another servlet facility (e.g., an underlying application server) as an OSGi HTTP service.</li>
+		   <li>IO Connector Service - An implementation of the OSGi R4.3 IO Connector Service.</li>
+		   <li>Initial Provisioning - An implementation of the OSGi R4.3 Initial Provisioning.</li>
+		   <li>Log Service - An implementation of the OSGi R4.3 Log service.</li>
+		   <li>Metatype Service - An implementation of the OSGi R4.3 Metatype service.</li>
+		   <li>Preferences Service - The Eclipse preference service is an extension of the standard OSGi preference service that adds listeners and the notion of preference scopes.</li>
+		   <li>User Admin Service - An implementation of the OSGi R4.3 User Admin Service.</li>
+		   <li>Wire Admin Service - An implementation of the OSGi R4.3 Wire Admin Service.</li>
+    	</ul>
+    </li>
+    <li><b>p2</b>
+		<ul>
+			<li>Command line application to mirror repositories.</li>
+			<li>Command line application to manage (install / uninstall / update) an eclipse install.</li>
+			<li>UI to manage an eclipse installation from within eclipse.</li>
+			<li>API to programmatically interact with p2.</li>
+		</ul>
+	</li>
+    <li><b>Component model</b>
+    	<ul>
+    		<li>Eclipse Extension Registry - The Eclipse extension registry allows bundles to communicate and cooperate using declarative markup and lazy instantiation.</li>
+    		<li>Equinox Transforms - A framework to provide transformations of bundle resources.</li>
+			<li>Equinox Regions - Provides API for configuring bundles in to regions to provide isolation.</li>
+    	</ul>
+    </li>
+    <li><b>Security</b>
+    	<ul>
+    		<li>Equinox Secure Storage</li>
+    		<li>Certificate Trust Engine - API for to managing trusted certificates</li>
+    	</ul>
+    </li>
+    <li><b>Server Side</b>
+    	<ul>
+    		<li>HTTP Registry - Support for registering servlets, resources and JSPs via the Eclipse extension registry rather than using the code based OSGi registration mechanisms.</li>
+			<li>JSP Registry - Provides a JSP Factory that allows JSP usage with the HTTP Registry.</li>
+    		<li>Servlet Bridge - Low level hook servlet installed in an existing traditional application server. This servlet launches an embedded Equinox and enables it to handle incoming HTTP requests originally sent to the underlying server.</li>
+    		<li>HTTP Jetty - A thin layer that exposes an embedded Jetty server as a compliant OSGi HTTP service.</li>
+    	</ul>
+    </li>
+    <li><b>Weaving</b>
+    	<ul>
+    		<li>Equinox Weaving - Support for weaving aspects at runtime.</li>
+    	</ul>
+    </li>
+</ul>
+</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/Kepler_Simultaneous_Release">
+  Kepler Simultaneous Release</a> train.</p>
+</p:preamble>
+<p:milestone date="2012-08-10" milestone="M1"><div>4.3M1</div></p:milestone>
+<p:milestone date="2012-09-21" milestone="M2"><div>4.3M2</div></p:milestone>
+<p:milestone date="2012-11-02" milestone="M3"><div>4.3M3</div></p:milestone>
+<p:milestone date="2012-12-14" milestone="M4"><div>4.3M4</div></p:milestone>
+<p:milestone date="2013-02-01" milestone="M5"><div>4.3M5</div></p:milestone>
+<p:milestone date="2013-03-15" milestone="M6"><div>4.3M6 (API Freeze)</div></p:milestone>
+<p:milestone date="2013-05-03" milestone="M7"><div>4.3M7 (Feature Freeze)</div></p:milestone>
+
+<p:postamble>
+<div>
+<p>Individual, milestone level plans for the components that make up the Equinox Project can be found 
+  on the <a href="http://wiki.eclipse.org/Equinox/Plan/Kepler">Equinox Project Kepler Plan page</a>
+  on the Equinox wiki.</p>
+<p>Our target is to complete 3.9 in late June 2013, in alignment with Kepler.
+  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 made available in the Kepler end-game plan in April 2013.
+<!-- are available in the <a href="http://www.eclipse.org/eclipse/development/plans/freeze_plan_4_3.php">Equinox Kepler end-game plan</a>. -->
+</p>
+</div>
+</p:postamble>
+
+</p:release_milestones>
+
+<!-- ============================================== -->
+
+<p:target_environments>
+
+<div>
+<p>In order to remain current, each Equinox Project release targets reasonably current
+  operating environments.</p>
+<p>Most of Equinox 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 Kepler release of the Equinox 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>Equinox Kepler 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="2">Windows</td>
+			<td rowspan="2">7</td>
+			<td rowspan="1">x86 32-bit</td>
+			<td rowspan="2">Oracle Java 7u9<br/>
+				Oracle Java 6 Update 37<br/>
+				IBM Java 6 SR11
+			</td>
+			<td rowspan="2">Win32</td>
+		</tr>
+		<tr>
+			<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 7u9<br/>
+			    Oracle Java 6 Update 37<br/>
+				IBM Java 6 SR11<br/>
+				Open JDK 7u9
+			</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 SR11</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 37<br/>
+				IBM Java 6 SR11
+			</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 SR11</td>
+		</tr>
+		<!-- ************ Ubuntu ************** -->
+		<tr class="c1">
+			<td rowspan="2">Ubuntu Long Term Support</td>
+			<td rowspan="2">12.04</td>
+			<td rowspan="1">x86 32-bit</td>
+			<td rowspan="2">Oracle Java 6 Update 37<br/>
+				IBM Java 6 SR11
+			</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 37</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 64-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 SR11</td>
+			<td rowspan="1">GTK</td>
+		</tr>
+		<!-- ************ Mac ************** -->
+		<tr class="c1">
+			<td rowspan="2">Apple Mac OS X</td>
+			<td rowspan="2">10.8</td>
+			<td rowspan="1">Universal 32-bit</td>
+			<td rowspan="2">Oracle Java 7u9</td>
+			<td rowspan="2">Cocoa</td>
+		</tr>
+		<tr class="c1">
+			<td rowspan="1">x86 64-bit</td>
+		</tr>
+	</table>
+ </center>
+
+<p>As stated above, <i>we expect that Equinox 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 Equinoxe 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 3.9 with 3.8</h3>
+<p>Equinox Kepler will be compatible with Equinox 3.8 (Juno) (and all earlier 3.x versions).</p>
+
+<p><strong>API Contract Compatibility:</strong> Equinox Kepler will be upwards
+  contract-compatible with Equinox Juno 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_7_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 Equinox Kepler APIs. Downward contract compatibility
+  is not supported. There is no guarantee that compliance with Equinox Kepler
+  APIs would ensure compliance with Equinox Juno (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> Equinox Kepler will be upwards
+  binary-compatible with Equinox Juno (3.8) 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_7_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 Equinox
+  3.9 will not be usable in Equinox 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> Equinox Kepler will be upwards source-compatible
+  with Equinox Juno (3.8) 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_4_3_porting_guide.html" target="_top">
+    <em>Eclipse 4.3 Plug-in Migration Guide</em>
+  </a>. This means that source files written
+  to use Equinox Juno (3.8) APIs might successfully compile and run against Equinox
+  Kepler APIs, although this is not guaranteed. Downward source compatibility
+  is not supported. If source files use new Equinox APIs, they will not be
+  usable with an earlier version of Equinox. </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 
+  exported with the x-internal directive,
+  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 Equinox 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="Scalability and Performance">
+<p:description>
+<p>New usage scenarios for Equinox require it to be faster, smaller, bigger, ...
+  The technology needs to scale up or down to allow Equinox to scale down to small embedded environments as well
+  as scaling up to large server environments.
+  Monitor overall performance and memory consumption which includes the addition of new performance tests for new features.
+</p></p:description>
+
+<p:committed>
+  <p><i>None at this time.</i></p>
+</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="Robustness">
+<p:description>
+<p>As the basis for the entire Eclipse eco-system, Equinox 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.  No new OSGi specifications are planned
+  to be implemented during the 3.9 release.  The 3.9 release of Equinox is
+  largely a maintenance release for the existing implementations contained
+  in the project.
+</p>
+</p:description>
+
+<p:committed>
+  <ul>
+  <li><strong>Defect Fixing</strong>
+     The 3.9 Equinox release will be largely focused on fixing bugs and 
+     doing a small amount of requested enhancements.  As such the plan
+     for 3.9 is rather thin since there is no plans for major new fuctions.
+  </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: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>3.9<br/>minimum<br/>execution<br/>environment</b></p></div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.app</td>
+      <td><div align="center">M1.2</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.cm</td>
+      <td><div align="center">M1.2</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.common</td>
+      <td><div align="center">F1.1</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.concurrent</td>
+      <td><div align="center">F1.0</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.device</td>
+      <td><div align="center">F1.0</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.ds</td>
+      <td><div align="center">M1.2</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.event</td>
+      <td><div align="center">M1.1</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.frameworkadmin</td>
+      <td><div align="center">F1.1</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.frameworkadmin.equinox</td>
+      <td><div align="center">F1.1</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.http</td>
+      <td><div align="center">M1.1</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.http.jetty</td>
+      <td><div align="center">1.4</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.http.registry</td>
+      <td><div align="center">F1.0</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.http.servlet</td>
+      <td><div align="center">F1.0</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.http.servletbridge</td>
+      <td><div align="center">F1.0</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.io</td>
+      <td><div align="center">M1.0</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.ip</td>
+      <td><div align="center">F1.0</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.jsp.jasper</td>
+      <td><div align="center">F1.0</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.jsp.jasper.registry</td>
+      <td><div align="center">F1.0</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.launcher</td>
+      <td><div align="center">M1.2</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.launcher.carbon.macosx</td>
+      <td><div align="center">N/A</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.launcher.cocoa.macosx</td>
+      <td><div align="center">N/A</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.launcher.cocoa.macosx.x86_64</td>
+      <td><div align="center">N/A</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.launcher.gtk.linux.ppc</td>
+      <td><div align="center">N/A</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.launcher.gtk.linux.s390</td>
+      <td><div align="center">N/A</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.launcher.gtk.linux.s390x</td>
+      <td><div align="center">N/A</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.launcher.gtk.linux.x86</td>
+      <td><div align="center">N/A</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.launcher.gtk.linux.x86_64</td>
+      <td><div align="center">N/A</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.launcher.gtk.solaris.sparc</td>
+      <td><div align="center">N/A</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.launcher.gtk.solaris.x86</td>
+      <td><div align="center">N/A</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.launcher.motif.aix.ppc</td>
+      <td><div align="center">N/A</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.launcher.motif.hpux.PA_RISC</td>
+      <td><div align="center">N/A</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.launcher.motif.hpux.ia64_32</td>
+      <td><div align="center">N/A</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.launcher.motif.linux.x86</td>
+      <td><div align="center">N/A</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.launcher.motif.solaris.sparc</td>
+      <td><div align="center">N/A</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.launcher.win32.win32.ia64</td>
+      <td><div align="center">N/A</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.launcher.win32.win32.x86</td>
+      <td><div align="center">N/A</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.launcher.win32.win32.x86_64</td>
+      <td><div align="center">N/A</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.launcher.wpf.win32.x86</td>
+      <td><div align="center">N/A</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.log</td>
+      <td><div align="center">M1.2</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.metatype</td>
+      <td><div align="center">M1.1</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.p2.artifact.repository</td>
+      <td><div align="center">F1.1</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.p2.console</td>
+      <td><div align="center">F1.1</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.p2.core</td>
+      <td><div align="center">F1.1</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.p2.director</td>
+      <td><div align="center">F1.1</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.p2.director.app</td>
+      <td><div align="center">F1.1</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.p2.directorywatcher</td>
+      <td><div align="center">F1.1</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.p2.engine</td>
+      <td><div align="center">F1.1</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.p2.exemplarysetup</td>
+      <td><div align="center">F1.1</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.p2.extensionlocation</td>
+      <td><div align="center">F1.1</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.p2.garbagecollector</td>
+      <td><div align="center">F1.1</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.p2.jarprocessor</td>
+      <td><div align="center">F1.1</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.p2.metadata</td>
+      <td><div align="center">F1.1</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.p2.metadata.generator</td>
+      <td><div align="center">1.4</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.p2.metadata.repository</td>
+      <td><div align="center">F1.1</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.p2.publisher</td>
+      <td><div align="center">F1.1</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.p2.reconciler.dropins</td>
+      <td><div align="center">F1.1</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.p2.repository</td>
+      <td><div align="center">F1.1</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.p2.repository.tools</td>
+      <td><div align="center">F1.1</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.p2.touchpoint.eclipse</td>
+      <td><div align="center">F1.1</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.p2.touchpoint.natives</td>
+      <td><div align="center">F1.1</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.p2.ui</td>
+      <td><div align="center">F1.1</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.p2.ui.sdk</td>
+      <td><div align="center">F1.1</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.p2.ui.sdk.scheduler</td>
+      <td><div align="center">F1.1</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.p2.updatechecker</td>
+      <td><div align="center">F1.1</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.p2.updatesite</td>
+      <td><div align="center">F1.1</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.preferences</td>
+      <td><div align="center">F1.1</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.registry</td>
+      <td><div align="center">F1.0</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.security</td>
+      <td><div align="center">1.4</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.security.macosx</td>
+      <td><div align="center">1.4</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.security.tests</td>
+      <td><div align="center">1.4</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.security.ui</td>
+      <td><div align="center">1.4</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.security.win32.x86</td>
+      <td><div align="center">1.4</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.servletbridge</td>
+      <td><div align="center">F1.0</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.simpleconfigurator</td>
+      <td><div align="center">F1.1</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.simpleconfigurator.manipulator</td>
+      <td><div align="center">F1.1</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.supplement</td>
+      <td><div align="center">F1.0</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.transforms.hook</td>
+      <td><div align="center">1.4</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.transforms.xslt</td>
+      <td><div align="center">1.4</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.useradmin</td>
+      <td><div align="center">M1.1</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.util</td>
+      <td><div align="center">M1.1</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.equinox.wireadmin</td>
+      <td><div align="center">M1.0</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.osgi</td>
+      <td><div align="center">M1.2</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.osgi.services</td>
+      <td><div align="center">M1.2</div></td>
+    </tr>
+    <tr>
+      <td>org.eclipse.osgi.util</td>
+      <td><div align="center">M1.2</div></td>
+    </tr>
+  </tbody>
+</table>
+  </p:appendix>  
+</p:plan>
