What are the differences between plug-ins, features, and products in Eclipse RCP?

32,402

As the RCP tutorial details

Plugins are the smallest deployable and installable software components of Eclipse.

Each plugin can define extension-points which define possibilities for functionality contributions (code and non-code) by other plugins. Non-code functionality contributions can, for example, provide help content.

The basis for this architecture is the runtime environment Equinox of Eclipse which is the reference implementation of OSGI. See OSGi development - Tutorial for details.
The Plugin concept of Eclipse is the same as the bundle concept of OSGI. Generally speaking a OSGI bundle equals a Plugin and vice-versa.

first rcp


The Feature Tutorial mentions

A feature project is basically a list of plugins and other features which can be understood as a logical separate unit.

Eclipse uses feature projects for the updates manager and for the build process. You can also supply a software license with a feature

new feature


Finally, a product is a stand-alone program built with the Eclipse platform. A product may optionally be packaged and delivered as one or more features, which are simply groupings of plug-ins that are managed as a single entity by the Eclipse update mechanisms.

Product definition file show the overview tab


So:

plugins can be grouped into features which can be packaged as one executable unit called product.

Share:
32,402

Related videos on Youtube

Jens Schauder
Author by

Jens Schauder

Softwaredeveloper, Blogger, nitpick. Spring Data committer.

Updated on July 05, 2022

Comments

  • Jens Schauder
    Jens Schauder about 2 years

    What are the differences? What gets used for which purpose?

  • Cratylus
    Cratylus almost 12 years
    This is a rather old answer but anyway:I understand what you are saying, but what is the difference between the Dependencies tab of the Feature project and the Dependencies tab of the Plugin.xml and the Dependencies tab of the Product?Would it be possible to explain?
  • VonC
    VonC almost 12 years
    @user384706 basically, the Dependencies tab of the Product allows you to list features (group of plugins) as well as plugins needed for your product (help.eclipse.org/indigo/…: "The Dependencies page lists all Required Features and Plug-ins that must be present in the product before the Update Manager installs this feature. If any of these pre-requisites are missing, the feature will not be installed". The Dependencies tab of the Plugin.xml only lists other needed plugins.
  • Cratylus
    Cratylus almost 12 years
    Thank you!And why is there a dependencies definition tab in MANIFEST.MF and in plugin.xml and in build.properties.xml of the same plugin?I can't wrap my head around this and make random changes to the project
  • VonC
    VonC almost 12 years
    @user384706 the MANIFEST.MF will contained the "resolved" list of needed plugins at runtime (see help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.pde.d‌​oc.user%2Fguide%2Fto‌​ols%2Feditors%2Fmani‌​fest_editor%2Fdepend‌​encies.htm): "At any time, you can click the add dependencies hyperlink to have PDE analyze your code and generate the correct dependencies in your MANIFEST.MF file via either the Require-Bundle or Import-Package headers." So you shouldn't modify directly that part. The plugin.xml can only contain the direct dependencies (as opposed to all dep. in MANIFEST.ML)
  • VonC
    VonC almost 12 years
    @user384706 this is different from the dependencies in the build.properties, which only concern the needed plugins at compile time, for building the plugin.
  • Cratylus
    Cratylus almost 12 years
    Thanks for your help and time!Clearer now