Eclipse update site
I have to prepare easy installation and ensure a way of publishing upgrades for our new product (a set of Eclipse plug-ins). Fortunately eclipse update site is perfect solution for all eclipse based products. Here is a quick overview.
When you explore published update site you find out that it contains following:
- directory where are stored features
features/ - directory where are placed plug-ins
plugins/ - update description file
site.xml
feature
Feature defines group of eclipse plug-ins (or nested features) like one installable unit. You can specify here other required eclipse plug-ins, informations (description, licence etc), that occur during installation. To create new feature firstly create Feature project (File->New->Project->Plugin Development->Feature project). Wizzard will generate feature.xml - configuration file of feature. Feature is delivered to runtime in same format like plug-in (jar file or feature directory).
update site
Update site is maintained in Update site Project (File->New->Project->Plugin Development->Update site project). All information are stored in site.xml. It is downloaded by client and contains description of referenced features and definitions of categories.

Once you added feature you can build whole update site (it builds plug-ins referenced in features, builds features, creates suite folder structure and publishes it to given location).
installation/update in eclipse
Now we can easily install our product via eclipse’s Software update (Help->Software Update->Find and Install). After we added our update site location. Eclipse will explore published site.xml.
<?xml version="1.0" encoding="UTF-8"?>
<site>
<feature
url="features/com.jetminds.aribastudio.feature_1.0.0.jar"
id="com.jetminds.aribastudio.feature" version="1.0.0">
<category name="Jetminds Studio"/>
</feature>
<feature
url="features/com.jetminds.aribastudio.feature_1.0.1.jar"
id="com.jetminds.aribastudio.feature" version="1.0.1">
<category name="Jetminds Studio"/>
</feature>
<category-def
name="Jetminds Studio"
label="Jetminds Studio"/>
</site>
- in case of installation all already installed features are hidden
- in case of update all new available versions are shown

And that’s all today. Next time I will write about automatic updates using cruise control tool.


