Friday, November 27, 2009

Categorizing plug-ins

Despite what is commonly believed and what I have repeated to several occasions, p2 does allow for the installation of anything, anything being for example just bundles. It just happens that today, with the practices adopted over the years, features have grown to be the primary way of delivering features.
I'm now showing how to create a p2 repository whose category refers to bundles.
Steps:
  1. Create a new feature project. This adds the category property to the installable unit, thus allowing the UI to recognize the feature as a category to be displayed.
  2. Create a file named p2.inf in the feature project and paste in the following two lines:
    properties.1.name=org.eclipse.equinox.p2.type.category
    properties.1.value=true

  3. Include the plug-ins you want to see being categorized. This is where you define what goes in the category. Each entry in the plug-ins list will be shown under the category.

  4. Remove everything from the build.properties included in the feature. This causes PDE to not generate a feature.jar.
  5. Export the feature enabling metadata generation.

You can find a zip of this example on the wiki.
Happy categorization, happy provisioning!

2 comments:

luciano said...

I tried this approach with your plug-in and also with an own plug-in, but it did not work. No item was shown in the p2 UI. Do I need a certain version of the p2 things?

Kane said...

Tried it.
Just work on 3.6.