An extension is a set of Eclipse features and plug-ins that are designed to extend the functionality of already-installed Eclipse based products. Extensions are installed separately, but used only in conjunction with other Eclipse based products. This means that an extension does not need to install a JRE, the Eclipse platform, or a primary feature. The recommended directory structure for extensions allows a single installation to be used with multiple Eclipse based products.
The following directory structure shows how an extension for a hypothetical product, betterwebs, could be used to extend the functionality of the acmeweb product.
betterwebs/ eclipse/ (directory for installed Eclipse files) .eclipseextension (marker file) features/ (installed features) com.example.betterwebs.betterfeature_1.0.0/ feature.xml plugins/ com.example.betterwebs.betterfeature_1.0.0/ plugin.xml about.html com.example.betterwebs.betterwebsupport_1.0.0/
The relationship between an extension and the product that it is designed to enhance is set up in the links directory of the original product. Recall the following directory in the acmeweb product:
acmeweb/ ... eclipse/ (directory for installed Eclipse files) ... jre/ features/ (installed features) ... plugins/ ... links/ com.example.betterwebs.betterfeature.link
When an extension is installed, it creates a link file in the links directory of any product that it is intending to extend. This link file makes the original product aware of the existence of the extension.
The install process for extensions is similar to that for products except for the following differences:
The uninstall process for extensions is similar to that for products except that the uninstall must remove the link file from any products where it added one.
Additional information on installing extensions can be found in How to write an Eclipse installer.