| <!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>. |
| The platform itself defines a concrete implementation of features and |
| sites. 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. It can also be used to <b>install</b> |
| or <b>update</b> extensions by adding or upgrading features. |
| 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. In order to |
| install features using the update server, the features must be packaged in a |
| feature archive file. 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. |
| The list of available features and plug-ins provided by the server is described |
| in a site map file, <b>site.xml</b>. 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. The site map file contains a list of all the |
| available features and the location of the feature archives on the server. |
| 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><site root>/ |
| 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> |