blob: 4cc89ee7163b6c9dd976aa2cb8155a1474825ae1 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2005. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
<title>Features</title>
</HEAD>
<BODY BGCOLOR="#ffffff">
<H1 CLASS="Head" dir="ltr">
Features</H1>
<p>On disk, an Eclipse based product is structured as a collection of <em>plug-ins</em>.
Each plug-in contains the code that provides some of the product's
functionality. The code and other files for a plug-in are installed on the local
computer, and get activated automatically as required. A product's plug-ins are
grouped together into features. A <em>feature</em> is the smallest unit of separately downloadable and installable
functionality.</p>
<p>The fundamentally modular nature of the Eclipse platform makes it easy
to install additional features and plug-ins into an Eclipse based
product, and to update the product's existing features and plug-ins. You
can do this either by using traditional native installers running separately from Eclipse,
or by using the Eclipse platform's own update manager. The Eclipse <em>update
manager</em> can be used to discover, download, and install updated features and
plug-ins from special web based Eclipse update sites.</p>
<p>The basic underlying mechanism of the update manager is simple: the files for a feature or
plug-in are always stored in a sub-directory whose name includes a version
identifier (e.g., &quot;2.0.0&quot;). Different versions of a feature or plug-in
are always given different version identifiers, thereby ensuring that
multiple versions of the same feature or plug-in can co-exist on
disk. This means that installing or updating features and plug-ins requires
adding more files, but never requires deleting or overwriting existing files.
Once the files are installed on the local computer, the new feature and plug-in
versions are available to be configured. The same installed base of files is
therefore capable of supporting many different <em>configurations</em>
simultaneously; installing and upgrading an existing product is reduced to
formulating a configuration that is incrementally newer than the current one. Important
configurations can be saved and restored to active service in the
event of an unsuccessful upgrade.</p>
<p>Large Eclipse based products can organize their features into trees starting
from the root feature that represents the entire product. This root feature then
includes smaller units of functionality all the way down to leaf features that
list one or more plug-ins and fragments. The capability to group features
hierarchically allows products to be stacked using a 'Russian doll' approach - a
large product can build on top of a smaller one by including it and adding more
features.</p>
<p>Some included features may be useful add-ons, but are not vital to the proper
functioning of the overall product. Feature providers can elect to mark them as <b>optional</b>.
When installing optional features, users are provided with a choice of whether
they want them or not. If not installed right away, optional features can be
added at a later date.</p>
<p>The <b>About</b> option on the <b>Help</b> menu provides information
about installed features and plug-ins. The <b>Software Updates</b> sub-menu
on the <b>Help</b> menu groups together commands for updating existing features, and
for finding, downloading, and installing new features.
</p>
<P><img border="0" src="../images/ngrelc.png" alt="Related concepts" ><br>
<a href="concepts-2.htm">Workbench</a></P>
<P>
<img border="0" src="../images/ngrelt.png" alt="Related tasks" >
<br><a href="../tasks/tasks-33.htm">Inspecting the current configuration</a>
<br><a href="../tasks/tasks-34.htm">Installing new features with the update manager</a>
<br><a href="../tasks/tasks-35.htm">Enabling, disabling, and uninstalling features</a>
<br>
<a href="../tasks/tasks-36.htm">Updating features with the update manager</a>
<br>
<a href="../tasks/tasks-37.htm">Controlling the Eclipse update policy</a>
<br><a href="../tasks/tasks-38.htm">Restoring a saved configuration</a>
</P>
</BODY>
</HTML>