On disk, an Eclipse-based product is structured as a collection of components and fragments. Each component or fragment contains the code that provides some of the product's functionality. The code and other files for a component or fragment are installed on the local computer, and get activated automatically as required. A product's components are grouped together into features
. A feature is the smallest unit of separately downloadable and installable functionality
The fundamentally modular nature of the Eclipse platform makes it easy to install additional features and components into an Eclipse-based product, and to update the product's existing features and components. 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 Update Manager can be used to discover, download, and install updated features and components from special web based Eclipse update sites.
The basic underlying mechanism of the Update Manager is simple: the files for a feature or component are always stored in a sub-directory whose name includes a version identifier (e.g., "2.0.0"). Different versions of a feature or component are always given different version identifiers, thereby ensuring that multiple versions of the same feature or component can co-exist on disk. This means that installing or updating features and components 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 component versions are available to be configured. The same installed base of files is therefore capable of supporting many different configurations 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.
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 built on top of smaller products by including the smaller products and adding more features.
Some included features may be useful add-ons but not vital to the proper functioning of the overall product. Feature providers can elect to mark these features as optional. The Update Manager allows users to choose whether or not to install optional features. If not installed right away, optional features can be added at a later date.
Parent topic: Packaging: XPD622