Product installation guidelines

The platform provides standard tools for updating and extending products.  In order to participate in the platform mechanisms for updating and extending products, your packaged product should follow the following guidelines.  This will allow your product to peacefully coexist with, or even enhance, other Eclipse based products.

Consider again the sample directory structure for the acmeweb product:

acmeweb/
    acmeweb.exe        
    eclipse/        
        .eclipseproduct    
        eclipse.exe    
        startup.jar    
        install.ini    
        .config/    
            platform.cfg
        jre/
        features/    
            com.example.acme.acmefeature_1.0.0/
                feature.xml
            org.eclipse.platform_2.0.0/
            org.eclipse.platform.win32_2.0.0/
            ...
        plugins/
            com.example.acme.acmefeature_1.0.0/
                plugin.xml
                about.ini
                about.html
                about.mappings
                about.properties
                acme.gif
                plugin_customization.ini
                splash.jpg
                welcome.xml
            com.example.acme.acmewebsupport_1.0.0/
            org.eclipse.platform_2.0.0/
            ...
        links/
            ...

Where did these files come from?  Let's look at the product content from the perspective of the development team.  The installed files can be grouped into five main categories:

A proper installation script will produce the appropriate directory structure by doing the following:

 

Multi-user issues

When a product is installed for the intention of allowing multiple users, care must be taken to separate individual users' data (such as the workspace directory) from the shared product install directory.

 

Uninstall issues

When a product is uninstalled, the following concepts are important.

 

Reinstalling the product

When the product is already installed, the installer should allow a service update or upgrade if one is available.  The existence of the product can be confirmed by looking for acmeweb/eclipse/.eclipseproduct.  The information in this marker file can be used to confirm with the user that the correct product is being updated.  The availability of updates can be confirmed with pattern matches against feature names.  For example, the presence of acmeweb/eclipse/plugins/com.example.acmefeature_1.0.1 would indicate that the 1.0.1 version update had already been applied to the product.

Once the validity of the reinstall is established, the install program should copy or replace files as needed.  If the version of the underlying Eclipse platform has not changed, there is a good chance that complete directories can be ignored.  The version numbers appended to the platform features and plugins can be used to determine whether any changes underneath a plug-in or feature's directory are necessary. 

Additional information on installing products can be found in How to write an Eclipse installer.