blob: 8fb39f081bf9a7cc5ffaad635e21ff75de173a09 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
<HEAD>
<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2005. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
<TITLE>Updating a product or extension</TITLE>
<link rel="stylesheet" type="text/css" HREF="../book.css">
</HEAD>
<BODY BGCOLOR="#ffffff">
<h2>Updating a product or extension</h2>
<p>By following the prescribed procedures for packaging and installing products,
we can take advantage of the <b>platform update manager,</b> which treats
products and extensions in a uniform way and allows users to discover and
install updated versions of products and extensions.</p>
<p>Before looking at the implementation of such a server, it's important to
revisit some important concepts:</p>
<ul>
<li>The platform provides a framework for defining <b>features</b> and update <b>sites</b>.&nbsp;
The platform itself defines a concrete implementation of features and
sites.&nbsp; This concrete implementation is what allows the update server
to upgrade and install additional features.</li>
<li>The platform <b>update server</b> can be used to <b>update</b> products by
installing new versions of features.&nbsp; It can also be used to <b>install</b>
or <b>update</b> extensions by adding or upgrading features.&nbsp;&nbsp;
This is only possible for products and extensions that conform to the
platform's concrete implementation of features and sites and conform to the
appropriate install guidelines.</li>
<li>Developers are free to use native installers and uninstallers to upgrade
their own products and extensions without regard to sites and the
update manager.</li>
</ul>
<p>That said, what do we do if we want to fully participate in the platform
implementation of product updating and use its update server?</p>
<h3>Feature and plug-in packaging</h3>
<p>The previous example product and extension directory structures show how
features and plug-ins are laid out once they are installed.&nbsp; In order to
install features using the update server, the features must be packaged in a
feature archive file.&nbsp; This is described in <a href="../reference/misc/feature_archive.html"> Feature
Archive Files</a>. </p>
<p>Plug-ins and fragments must be packaged according to the format described in <a href="../reference/misc/plugin_archive.html"> Plug-in
Archive Files</a>.</p>
<h3>Update server layout</h3>
<p>The update server must be a URL-accessible server with a fixed layout.&nbsp;
The list of available features and plug-ins provided by the server is described
in a site map file, <b>site.xml</b>.&nbsp; The update server URL can be
specified as a full URL to the site map file, or a URL of a directory path
containing the site map.&nbsp; The site map file contains a list of all the
available features and the location of the feature archives on the server.&nbsp;
It also describes the locations of the plug-in archives that are referenced in
the feature manifest.</p>
<p>A simple site layout for our example web product and extension could look something like this:</p>
<pre>&lt;site root&gt;/
site.xml
features/ <i>(contains feature archive files)</i>
com.example.acme.acmefeature_1.0.1.jar
com.example.betterwebs.betterfeature_1.0.1.jar
...
plugins/ <i>(contains plug-in archive files)</i>
com.example.acme.acmefeature_1.0.1.jar
com.example.acme.acmewebsupport_1.0.3.jar
com.example.betterwebs.betterfeature_1.0.1.jar
com.example.betterwebs.betterwebsupport_1.0.1.jar
...</pre>
<p>The complete definition for the site map is described in <a href="../reference/misc/update_sitemap.html"> Update Server Site Map</a>.</p>
<h3>Update servers and policies</h3>
<p>An Eclipse update server is provided for updating the platform
itself. In addition, the platform update UI allows users can maintain a list of update servers that
can be searched for new features. Any site that conforms to the specified update server
layout may be added to the list. Users can choose to manually or automatically search for
additional features or upgrades to their installed features. </p>
<p>Some organizations may wish to have more control over how their user installations are updated.
This can be accomplished with an update <b>policy</b> file that specifies which features can be updated
and which servers can be used to update a particular feature. See <a href="../../org.eclipse.platform.doc.user/tasks/tasks-37.htm">Controlling the Eclipse update policy</a>
for a complete definition of the policy file and how it is used.
</p>
</BODY>
</HTML>