This document describes a new Eclipse Update capability that allows large shops with many seats of Eclipse-based products to exert control over how these products are updated.
The document is related to a 3.0 plan item tracked by the following Bugzilla entry:
37702 [plan item] Improve organizational control over product updates
Eclipse Update allows users to search for updates to the currently installed features. For each installed feature, Update will use the embedded URL to connect to the remote server and search for new versions. If there are updates, Eclipse allows users to initiate the install procedure. After downloading, installing and restarting the platform, new feature version is ready for use.
In companies with many users of the same Eclipse-based product (typically a commercial one), several problems can arise from this model:
The proposed solution in Eclipse 3.0 consists of three new capabilities that together address all of the above problems.
First step for a product administrator would be to set up a local Eclipse update site on a server connected to the company's LAN (behind the firewall). The update site would be a subset of the product's update site on the Internet because it would contain only features and plug-ins related to the updates that the company wants applied at the moment. Technically, this site would be a regular Elipse update site with site.xml, feature and plug-in archives.
Administrators would construct this site in two ways:
Since features have Update site URL embedded, they are unaware of the local update sites set up by administrators. It is therefore important to provide redirection capability. This and other update policy settings can be set for a Eclipse product by creating an update policy file and configuring Update to use that file when searching.
The file in question can have any name, but needs to conform to standard Java properties syntax. The file can be set in Preferences>Install/Update>Automatic Updates [as of M1; final home may change for 3.0; in M1, the entry is called 'Address Mapping URL'; this will also change in subsequent milestones]. This entry field is empty by default: users may set the URL of the update policy file. This file is set up by local administrators and is shared for all the product installations. Sharing can be achieved in two ways:
org.eclipse.update.core/updatePolicyFile = <URL value>
A file has been chosen for two reasons: it allows central control over the update policy settings for an installed product, and it is also 'all or nothing' - individual users cannot change some aspects of the policy while keeping others.
The policy file can contain the following key/value pairs:
Syntax:
url-map.<feature ID prefix> = <local URL> url-map.* = <default local URL for all the features>
This key is used to remap Update URLs embedded in feature manifests. When searching for new updates, Eclipse search will check the update policy (if present) and check if url-map for the matching feature prefix is specified. If a match is found, the mapped URL will be used instead of the embedded one. This way, administrators can configure Eclipse products to search for updates in the local server behind the firewall.
Several url-map entries may exist in the file. The feature prefixes may be
chosen to be less or more specific. For example, to redirect all Eclipse
updates, the key would be url-map.org.eclipse. Similarly, it is
possible to use a complete feature ID as a prefix if redirection is required on
a per-feature basis. Finally, using '*' would set up a server URL for all the
features (a setting that should generally not be used unless total control is
needed).
Syntax:
try-embedded = (true | false) "true"
This key sets the policy regarding features for which mapped URL was not
found. If 'true' (default), update search will default to the embedded URL if no
matching url-map has been found in the update policy file. Setting
'false' effectively hides the embedded update URL. The default settings is
recommended because it allows the primary product features to be updated from
the local server, while third-party (add-on) features downloaded into the
product using Eclipse Update can still by updated from the internet.
The third part of the overall solution is covered by another plan item (Improve Update Manager search) but is mentioned here because it is an integral part of the solution. Automatic updates will allow Eclipse to run update search on a specified schedule (on each startup (the default), once a day, once a week etc.).
Here is the complete sequence of steps that represents the solution:
Early implementation of the update policy (with redirection) is already in the regular integration builds (since M1). Wizard for creating partial local shadows of the remote update sites will appear after M2 (actual milestone not known yet).