A feature is a way of grouping and describing different functionality that makes up a product. Grouping plug-ins into features allows the product to be installed and updated using the Eclipse update server and related support. The platform itself is partitioned into three major features:
There are other minor features, such as examples and OS-dependent portions of the platform.
Note: The platform installation and update framework allows you to build your own custom implementations of the concepts discussed here. That is, you can define your own types of features, (their packaging formats, install procedures, etc.), as well as your own types of server sites for updating your features. The remainder of this discussion is focused on the platform default implementations for features and update sites.
Features do not contain any code. They merely describe a set of plug-ins that provide the function for the feature and information about how to update it. Features are packaged in a feature archive file and described using a feature manifest file, feature.xml. The following is the first part of the manifest for the platform feature:
<?xml version="1.0" encoding="UTF-8"?> <feature id="org.eclipse.platform" label="%featureName" version="3.0.0" provider-name="%providerName" plugin="" image="eclipse_update_120.jpg" primary="true" application="org.eclipse.ui.ide.workbench"> <description> %description </description> <license url="%licenseURL"> %license </license> <url> <update label="%updateSiteName" url="http://update.eclipse.org/updates/3.0"/> <discovery label="%updateSiteName" url="http://update.eclipse.org/updates/3.0"/> </url> <plugin id="org.apache.ant" download-size="0" install-size="0" version="1.6.1"/> <plugin id="org.apache.lucene" download-size="0" install-size="0" version="1.3.0"/> ... </feature>