Plugin product VS Feature product

That is THE question ??? And it seems quite difficult to have a clear answer. Let’s recapitulate the information I gathered on this topic mainly related to build issues.  Please feel free to comment on this post in order to complete or to correct what I am saying:

Plugin Products:

  • No problem when building (Gui or headless) => all the required (the same than the required plugins computed in the launch configuration dialog when debugging the app) plugins are present
  • The RCP application disk footprint is optimized !! No useless plugins
  • No features are exported: as a result the features list tab of about dialog is empty !!!
  • It seems that plugin products are not recommended for RCP with self update (I didnd’t tested that yet) ???

Feature Products:

  • When exporting (headless), the only present plugins and features are the one listed in the .product file
  • Need to create a “dependencies” features including all the required plugins OR depend on all the features containing the required plugins => bring a lot of useless plugins
  • Features listed in the about dialog

In my case, I decided to use a Feature Product and then to “manually” create a feature including all the 90 plugins required by my RCP.

Because I am lazy and hate repetitive tasks, I wrote a simple Java main parsing a launch configuration file (.launch located in the workspace metadata folder) and generating from a template the feature with all the required dependencies. Is there any other existing way to do that ??

Hope this can help others, and if you need my simple Java feature dependency creator, just ask it.



13 thoughts on “Plugin product VS Feature product

  1. Hi,

    Here we use plugin-based product since we don’t want to add useless bundles to our product.
    We did not find an easy way to do so with feature-based product. Indeed, the “Add Required Plug-ins” ( ) button we can find when editing a plugin-based product is very helpful, and does not exist with feature-based. I’d bet you use the same button when editing your launch configuration that you use to create the dependency feature.

    I’d prefer using a feature-based product with 2 features:
    * My features (containing org.bonitasoft.* bundles)
    * dependency feature (containing all 3rd party deps)
    But this is quite difficult to set up.
    If you have any advice to set up this product as easily as clicking on the “Add required Plug-ins” button, you’d make me an happy man ;)

    • Hi Mickael,

      Good to know that you have the same problem than us ;o) !!!!
      As I said in my post the solution I have is to first manually click on the “Add required Plug-ins” button in order to have a launch configuration with all required plugins. Then I have a simple java main parsing this file in order to generate my dependencies feature. Have you already open an bug entry somewhere about that ?

  2. Hi Manuel,

    You can initialize a feature with an existing launch configuration so that you can use the “Add required Plug-ins” button from the “Run configurations” dialog.

    This way you only have to maintain the plug-in dependencies on the launch configuration site.

    • Thanks for the tip Matthias. I was not aware about this feature. Do you know if there is any way to “call” this feature from ANT or Java code in order to include this step in an headless build ?


      • Sorry, don’t know. But I guess it wouldn’t be easy to realize because the feature is part of the “Feature Project” creation wizard.


  3. Pingback: Release engineer vs dependency management: Basing RCP Product and headless build from plugins to features « Bonita open source BPM community blog

  4. Pingback: Simple Configurator AND Update Configurator « Manuel Selva’s Eclipse blog

  5. I am very interesting in your simple Java feature dependency creator, I think it will help me a lot to create the dependencies feature. can you share to me

    • Unfortunately I changed of job and don’t have access anymore to this. It was a simple java main parsing the xml launch configuration file using a standard Java Sax parser.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s