<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<title>Eclipse Platform/Core</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="http://dev.eclipse.org/default_style.css" type="text/css">
</head>
<body>
<center>
	<font class=indextop>core</font><br>
	<font class=indexsub>the foundation of the platform</font><p></p>
	<a href="main.html">[home]</a>
	<a href="documents.html">[documents]</a>
	<a href="downloads.html">[downloads]</a>
	<a href="resources.html">[resources]</a>
	<a href="planning.html">[planning]</a>
	<a href="testing.html">[testing]</a>
</center>
<br>
<table BORDER=0 CELLPADDING=2 WIDTH="100%" >
	<tr> 
		<td ALIGN=LEFT VALIGN=TOP COLSPAN="2" BGCOLOR="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">Documents</font></b></td>
	</tr>
  <tr> 
    <td ALIGN=RIGHT VALIGN=TOP WIDTH="2%"><img SRC="images/Adarrow.gif" BORDER=0 height=16 width=16></td>
    <td WIDTH="98%"><b>Articles</b> 
      <ul>
        <li>September 2004 -  <a href="http://www.eclipse.org/articles/Article-Branding/branding-your-application.html"/> Branding your application</a> by Andrew Eidsness and Pascal Rapicault</li>
        <li><em>(work in progress)</em> What is a plug-in? by Debbie Wilson and 
          Jeff McAffer</li>
        <li>January 2003 - <a href="http://www.eclipse.org/articles/Article-Builders/builders.html">Builders and Natures</a> by John Arthorne</li>
        <li>August 2002 - <a href="http://www.eclipse.org/articles/Article-Resource-deltas/resource-deltas.html">Responding 
          to resource changes in the Eclipse workspace</a> by John Arthorne</li>
      </ul>
	  <p>&nbsp;</p>
    </td>
  </tr>
  <tr> 
    <td ALIGN=RIGHT VALIGN=TOP WIDTH="2%"><img SRC="images/Adarrow.gif" BORDER=0 height=16 width=16></td>
    <td WIDTH="98%"><b>Documents/Proposals</b> <ul>
        <li><a href="http://dev.eclipse.org/conventions.html">Coding Conventions 
          - Eclipse</a></li>
        <li><a href="documents/coding_conventions.html">Coding Conventions - Platform/Core 
          Team</a></li>
        <li><a href="documents/core_formatting.xml">Code Formatting - Platform/Core 
          Team Code Format Template</a></li>
        <li><a href="docs/eclipse-remote-dev-guidelines/remote-development.html"> 
          Eclipse Remote Development Guidelines</a> (draft) [April 2002]</li>
        <li><a href="runtime/index.html">The OSGi-based runtime</a></li>
        <li><a href="documents/core_overview.html">Core Overview</a></li>
        <li><a href="documents/plugin-versioning.html">Plug-in Versioning</a></li>
        <li><a href="documents/update.html">Eclipse Update Site</a></li>
        <li><a href="documents/user_settings/index.html">User Settings</a></li>
        <li><a href="documents/session_tests.html">Session Test Framework</a></li>
        <li><a href="documents/path_changes.html">Lifting restrictions on IPath 
          characters (the colon/slash problem)</a> [October 2004]</li>
        <li><a href="documents/rfc/0010/dynamic_capabilities.html">Markup to express 
          bundle dynamic capabilities</a> [December 2004]</li>
        <li><a href="documents/3.1/large_scale_issues.html">Issues with large-scale 
          development</a> [December 2004]</li>
        <li><a href="documents/3.1/message_bundles.html">Message Bundles</a> [February 
          2005]</li>
        <li><a href="documents/3.1/run_from_jars.html">Running Eclipse from JARs</a> 
          [February 2005]</li>
        <li><img src="images/new.gif" width="31" height="14"><a href="documents/3.1/perf_stats.html">
        	Gathering performance statistics</a> [March 2005]</li>
      </ul>
	  <p>&nbsp;</p>
    </td>
  </tr>
  <tr>
    <td ALIGN=RIGHT VALIGN=TOP WIDTH="2%"><img SRC="images/Adarrow.gif" BORDER=0 height=16 width=16></td>
    <td><b>Active Work</b>
      <p></p>
      Here is a list of activities that we are currently working on, along with 
      links to their planning pages. 
      <ul>
        <li><img src="images/small_check.gif"> <a href="planning/3.0/plan_content_types.html">Content 
          Types</a></li>
        <li><img src="images/small_check.gif"> <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-ui-home/permissions-proposal/permissions-proposal.html">File 
          Attributes</a></li>
        <li><img src="images/small_check.gif"> <a href="planning/3.0/plan_encoding.html">File 
          Encoding</a></li>
        <li><img src="images/small_check.gif"> <a href="documents/history_store.html">History 
          store</a> modifications</li>
        <li><img src="images/small_check.gif"> User Settings/Preferences <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-ui-home/R3_1/dynamic_teams/dynamic_teams.html">(Dynamic 
          Team page</a>, <a href="documents/user_settings/index.html">Core page</a>)</li>
        <li><img src="images/small_check.gif"> <a href="documents/3.1/large_scale_issues.html">Issues 
          with large-scale development</a></li>
        <li><img src="images/small_check.gif"> <a href="documents/rfc/0010/dynamic_capabilities.html">Markup 
          to express bundle dynamic capabilities</a></li>
        <li><img src="images/small_check.gif"> <a href="documents/3.1/message_bundles.html">Message 
          bundles</a></li>
        <li><img src="images/small_check.gif"> <a href="documents/3.1/run_from_jars.html">Running 
          Eclipse from JARs</a></li>
      </ul>
      <p>&nbsp;</p></td>
  </tr>
  <tr> 
    <td ALIGN=RIGHT VALIGN=TOP WIDTH="2%"><img SRC="images/Adarrow.gif" BORDER=0 height=16 width=16></td>
    <td WIDTH="98%"><b>Archives</b> 
    <ul>
		<li><a href="documents/rfc/index.html">RFCs</a> (mostly from 2.0)</li>
        <li>Inflexible Project Structure - <a href="http://www.eclipse.org/eclipse/development/inflexible-projects-problem.html">Problem 
          Definition</a>, <a href="http://www.eclipse.org/eclipse/development/towards-more-flexible-projects.html">Possible 
          Solutions</a>, and the <a href="http://www.eclipse.org/eclipse/development/flexible-projects-proposal.html">Proposed 
          Solution</a></li>
		<li><em>(obsolete)</em> <a href="docs/classloader-properties/classloader_properties.html">Using 
          the Class Loader Properties File</a></li>
		<li><em>(obsolete)</em> <a href="docs/package-prefixes/prefixes.html">Using Package Prefixes 
          in the plugin.xml</a></li>
	</ul>
	<p></p>
	</td>
  </tr>
</table>


</body>
</html>