

This template bundle is just to help other turn their own bundle into a "feature branding bundle". 

It should never be built or used directly. 

The files here could be provided as a seperate bundle, whose sole purpose 
is to provide branding information, or (usually better) can be merged in 
with an existing bundle that is always 'included' with the feature to be branded.  
 
steps: 

feature.xml 

  pick one of the main plugins in that feature and list as "plugin=xxxx" attribute of feature element. 

  specify an 'image' file (optional)
  Can provide a feature install/update image that is used in some install scenerios
  (not currently used by P2). See 
  http://help.eclipse.org/ganymede/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/misc/feature_manifest.html
  NOTE: the wtp feature image provided in this template bundle would need to be copied to the root of your 
  feature. 

feature.properties

  Be sure the provider name is "Eclipse Web Tools Platform"

in plugin (that you choose above): 

  add/copy  following files

  
    about.ini
    about.properties
    about.mappings
    
      Those three about.* files should go in root of plugin
    
    WTP_icon_x32_v2.png
    
      Often best to put this icon file in icons/WTP_icon_x32_v2.png. 
      but can go anywhere, as long as matches 'featureImage' in about.ini

  edit: 

    about.ini: 
    
       make sure the 'featureImage' is correct for where you put the icon file

    about.properties: 
    
        Edit the lines in square brackets. 
        The first line, at least, needs to be changed to match your feature name. 
        And add/edit any other information you think important to describe the feature.
        
    about.mappings
    
        no real changes needed (if using standard one). This file has a token 
        0=@build@ 
        were the @build@ is replaced during our WTP batch production builds with the build timestamp

    build.properties: 

        make sure the icon file and all three about.* files are included in bin.includes statement

    plugin.properties: 

        a. be sure provider name is "Eclipse Web Tools Platform"
        
        b. change the plugin name to be the same as the feature name, or, at least something 
        meaningful in that context, 
        which is usually not (old) the plugin name itself, if an existing plugin.
        (see bug 277594 if interested in the odd design, or bug?) 


