Architected Futures™

Tools and strategies ... for boiling the ocean

EATS e4 Feature Project Specification

Purpose

Eclipse product configurations can be managed as plug-in collections, or as feature collections. However, web-based update sites work on the basis of feature sets. So, since we want to be able to provide web-based update distribution to users of the product, the product needs to be configured based on features.

Features provide an intermediate level of management for the product content in between the product and the plug-in level. Features define collections of plug-ins and other features that are organized as a unit collection defining a single logical unit with a unified purpose. Features have an ID, a name, a version and license information. They may also including branding specifications. They provide an easier scheme for organizing code and specifying dependency requirements as an alternative to needing to deal with large collections of plug-ins on an individual basis. Since features may be composed of other features, they are capable of specifying collections at various levels of aggregation.

Process

  1. File -> New -> Other -> Plug-in Development -> Feature Project is used to initiate the Feature Project wizard. Click Next.
    New Feature Project Selection
  2. The next dialog panel provided by the wizard details the properties for the feature project. Complete the naming and identification properties and then click Finish.
    Feature Properties Specification
  3. Once the wizard is complete and the feature project has been created, the workbench opens an editor for the detail specification of the project configuration. The Feature Content area of the editor window provides entries to open detail views allowing definition of different aspects of the configuration of the feature project. You can use these links on the Overview page or use the tabs at the bottom of the window to create or adjust the configuration.  
    Feature Project Configuration Overview
    To identify an initial plug-in or set of plug-ins, use the plug-ins link or tab. Then click on Add....
    Add New Plug-in or Fragment
  4. This will bring up a Plug-in Selection dialog. 
    Plug-in Selection Dialog
    The plug-in will now be identified on the Feature Content Plug-in Page as part of the feature. Repeat the process for any additional plug-ins or fragments to be included in the feature. Use the feature tab to perform a similar process to include other features as part of this feature. When you are done be sure to save the changes to the project configuration.
    Plug-in Added as Feature Content
  5. For a project to be managed on the basis of features rather than plug-ins, the product specification must reflect that option. If you have not already done that, open the product file and use the radio selection to specify that the product should be configured based on features. 
    Product Configuration Option Selection
  6. To add the a new feature dependency to the project, select the Dependencies tab. This should provide a view of dependencies which is based on Features. Click the Add... button.
    Feature Dependencies Identification
  7. Similar to the plug-in selection described above, this will bring up a Feature Selection dialog. Typing a fragment of the name of the desired feature in the small text box at the top of the dialog window will fill the large text box with a list of features which have that text content within their names. Click on the desired feature and click OK.
    Feature Project Feature Dependency Selection
    The feature will now be identified on the dependencies tab for the product. In addition to any other features defining the application repeat the process to add the org.eclipse.e4.rcp feature to the project. When finished click on the Add Required button to add any additional dependent feature to the project. Minimally org.eclipse.emf.ecore and org.eclipse.emf.common should  be added. When you are done be sure to save the changes to the project configuration.
    Feature Project Feature Dependencies

Add new comment

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
SystemsThinking