<!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>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>General Core Documents</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="runtime/index.html">The OSGi-based runtime</a></li>
        <li><a href="documents/core_overview.html">Core Overview</a></li>
        <li><a href="documents/update.html">Eclipse Update Site</a></li>
        <li><a href="documents/session_tests.html">Session Test Framework</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><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><a href="documents/plugin-versioning.html">Plug-in Versioning</a></li>
        <li><a href="documents/3.2/flexible_workspaces/">Flexible workspaces</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>
    <p>
    Eclipse 3.1:
    <ul>
        <li> 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> <a href="documents/history_store.html">History 
          store</a> modifications</li>
        <li> <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-ui-home/permissions-proposal/permissions-proposal.html">File 
          Attributes</a></li>
        <li> <a href="documents/3.1/large_scale_issues.html">Issues 
          with large-scale development</a></li>
        <li> <a href="documents/3.1/message_bundles.html">Message 
          bundles</a></li>
        <li> <a href="documents/3.1/run_from_jars.html">Running 
          Eclipse from JARs</a></li>
        <li> <a href="documents/rfc/0010/dynamic_capabilities.html">Markup 
          to express bundle dynamic capabilities</a></li>
        <li><a href="documents/3.1/perf_stats.html"> 
          Gathering performance statistics</a> [March 2005]</li>
        <li><a href="documents/3.1/debug.html">Gathering 
          Information about your plug-in</a> [June 2005]</li>
        <li><a href="documents/path_changes.html">Lifting restrictions on IPath 
          characters (the colon/slash problem)</a> [October 2004]</li>
    </ul>
    Eclipse 3.0:
    <ul>
        <li> <a href="planning/3.0/plan_content_types.html">Content 
          Types</a></li>
        <li> <a href="planning/3.0/plan_encoding.html">File 
          Encoding</a></li>
    </ul>
    Eclipse 1.0 to 2.1:
    <ul>
        <li><a href="documents/2.0/remote-development.html"> 
          Eclipse Remote Development Guidelines</a> (draft) [April 2002]</li>
		<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>