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

1

83

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

Filibeg answered 22/4, 2010 at 15:14 Comment(0)
N
124

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.

Nocturnal answered 22/4, 2010 at 16:54 Comment(5)
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?Barfuss
@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.Nocturnal
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 projectBarfuss
@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.doc.user%2Fguide%2Ftools%2Feditors%2Fmanifest_editor%2Fdependencies.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)Nocturnal
@user384706 this is different from the dependencies in the build.properties, which only concern the needed plugins at compile time, for building the plugin.Nocturnal

© 2022 - 2024 — McMap. All rights reserved.