<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Using Update Manager to Update EMF, SDO, XSD</title>
<link rel="stylesheet" href="http://www.eclipse.org/emf/docs/book.css" type="text/css" />
</head>

<body lang="EN-US" xml:lang="EN-US">

<h1 align="CENTER">Using Update Manager to Update EMF, SDO, or XSD</h1>
<blockquote>
<b>Summary</b>

<br/>
<p>
  In this article you will learn how to update your Eclipse configuration using the Eclipse Update Manager. 
  </p>

      <p>Last revised <tt>$Date: 2008/05/21 20:09:05 $</tt> ( 
      <img width="12" height="12" src="/emf/images/green-box.gif"
      border="0" />

      marks interesting changes over a previous revision of this
      document) 

      </p>
</blockquote>

<hr width="100%" />

<h3>Contents</h3>

<table summary="" border="0" cellspacing="2" cellpadding="2"
width="100%">
<tr>
<td valign="top" width="60">Step 0:</td>
<td valign="top"><a href="#step0">Prerequisites</a></td>
</tr>

<tr>
<td valign="top">Step 1:</td>
<td valign="top">Updating Eclipse via Update Manager: <a href="#step1a">Release Builds</a>
or <a href="#step1b">non-Release Builds</a>
</td>
</tr>

<tr>
<td valign="top">Step 2:</td>
<td valign="top"><a href="#step2">Choose Features to Install</a>
</td>
</tr>

<tr>
<td valign="top">Step 3:</td>
<td valign="top"><a href="#step3">Accept Licenses, Choose Install Location, Begin Download</a> </td>
</tr>

<tr>
<td valign="top">Step 4:</td>
<td valign="top"><a href="#step4">Verify Update</a>
</td>
</tr>
</table>

<br />
<hr />
<p style="text-align: right"><a id="step0"
name="step0">&nbsp;</a><a href="#top">contents</a></p>

<h3> Step 0. Prerequisistes</h3>

<p>IBM's implementation of the Service Data Objects (SDO) 1.0 specification is packaged with the Eclipse Modeling Framework (EMF) 2.0 and EMF 2.0.1 - however, 2.0.1 contains several bug fixes and improvements over 2.0.0, so it is recommended that you install the most recent version available. SDO is part of the EMF <a href="http://www.eclipse.org/tools/">Eclipse Tools</a> project.</p>

<p>XML Schema Definition (XSD), an <a href="http://www.eclipse.org/emf/">EMF</a> subproject, is packaged in the EMF Software Development Kit (SDK), which provides support for modeling based on XML Schema documents. 
You need to <a href="http://www.eclipse.org/emf/updates/">install EMF 2.x</a> to use SDO or XSD.</p>

<p>Make sure you read the <a href="http://www.eclipse.org/emf/downloads/">installation requirements</a> before you install EMF. Basically, you need to have <a href="http://www.eclipse.org/downloads/index.php">Eclipse 3.1 or 3.0.1</a> and a Java Development Kit (JDK) or Java Runtime Environment (JRE) 1.4 installed before you install EMF, SDO, or XSD via Update Manager. (To run pre-compiled code, a JRE will suffice; if you intend to use Eclipse to compile code, a full JDK is required.)</p>

<p>When installing, you can choose from installing the SDK (includes everything - EMF, SDO, and XSD - but not the Examples) or can choose sources, docs, or runtimes separately. The minimum to run SDO is the EMF runtime and the SDO runtime. For XSD, you need XSD and EMF runtimes; for EMF, just the EMF runtime.</p>

<p>Once Eclipse is installed, launch it. Then select:

<table>
<tr><td>&nbsp;</td><td colspan="4">Help</td></tr>
<tr><td>&nbsp;</td><td>&nbsp;</td><td colspan="3">&gt; Software Updates</td></tr>
<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td colspan="2">&gt; Find and Install...</td></tr>
<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td colspan="1">&gt; Search for new features to install</td></tr>
</table>

<hr />
<p style="text-align: right"><a id="step1a"
name="step1a">&nbsp;</a><a href="#top">contents</a></p>

<h3> Step 1a. Updating Eclipse via Update Manager: Release Builds</h3>

<p>To install a Release Build of EMF, SDO, or XSD, such as 2.0.0 or 2.0.1, simply pick the <a href="http://update.eclipse.org/updates/3.0/site.xml">Eclipse.org update site</a>, then expand the twisty to reveal the categories beneath. Choose the EMF SDK and version you would like to install.

<br/><br/><img src="images/uum01.gif" width="395" height="369" border="0" alt="Choose EMF SDK and version (Releases only)">

<br/><br/><a href="#step2">Skip to Step 2</a>.</p>

<hr />
<p style="text-align: right"><a id="step1b"
name="step1b">&nbsp;</a><a href="#top">contents</a></p>

<h3> Step 1b. Updating Eclipse via Update Manager: Non-Release Builds</h3>

<p>To install a Maintenance, Integration or Stable build, choose the 'Eclipse Modeling Framework (EMF) Updates'. <a name="img02">&nbsp;</a>

<br/><br/><img src="images/uum02.gif" width="533" height="343" border="0" alt="Choose EMF SDK and version (Integration, Maintenance, Stable or Release)">

<br/><br/>If that site is not already listed, click 'New Remote Site' and enter the URL of the site (or one of its mirrors). </p>

<img src="images/uum04.gif" border="0" alt="Click 'New Remote Site...' to add a new update site">

<br/><br/>If you browse to this site, <a href="http://www.eclipse.org/emf/updates/">http://www.eclipse.org/emf/updates/</a>, 
you can see an list of the available updates there as well.

<br/><br/><img src="images/uum03.gif" border="0" alt="Enter 'http://www.eclipse.org/emf/updates/'">

<br/><br/>Then expand the twisty under the newly added site to reveal the categories beneath (see <a href="#img02">image</a> above). Choose the EMF SDK and version you would like to install.

<br/><br/><a href="#step2">Continue to Step 2</a>.

<hr />
<p style="text-align: right"><a id="step2"
name="step2">&nbsp;</a><a href="#top">contents</a></p>

<h3>Step 2. Choose Features to Install</h3>

Choose the features you would like to install.

<br/><br/><img src="images/uum05.gif" width="579" height="522" border="0" alt="Choose features to install">

<br/><br/>The simplest (but largest install / longest download) option is to pick the SDK, since it includes most of the other features. Click the 'Filter features included in other features on the list' checkbox to compress the listing.

<br/><br/><img src="images/uum06.gif" width="600" height="377" border="0" alt="Choose filtered features to install">

<br/><br/>Click next to begin the install.

<hr />
<p style="text-align: right"><a id="step3"
name="step3">&nbsp;</a><a href="#top">contents</a></p>

<h3> Step 3. Accept Licenses, Choose Install Location, Begin Download</h3>

<p>Note: the images below are taken from the installation of 2.0.0 Relase installed from the 
<a href="http://www.eclipse.org/emf/updates/">Eclipse Modeling Framework (EMF) Updates</a>. 
If you're installing from the <a href="http://update.eclipse.org/updates/3.0/site.xml">Eclipse.org update site</a>, you will not see the 4th part of the version, 
that is, you will see 2.0.0 instead of 2.0.0.R200406280827. Note also that due to the way that Eclipse handles plugin versioning, to update from 
2.0.0.I to 2.0.0, or 2.0.1.M to 2.0.1 is not possible. You cannot update from a 4-part version to its equivalent 3-part version, since Update Manager 
considers that 2.0.0 < 2.0.0.R. You can, however, upgrade from 2.0.0.R to 2.0.1.</p>

<p>So, to move from an I or M build to its Release, 
you must either uninstall/disable that version and install fresh, or update from 2.0.1.M to 2.0.1.R (not 2.0.1), keeping that 4th version part intact.</p>

<p><img width="12" height="12" src="/emf/images/green-box.gif"
      border="0" /> <b>Note:</b>As of EMF 2.2, this issue no longer applies as all builds contain a 4th part defining the timestamp of the build itself. You can now seamlessly upgrade from version to version using Update Manager.</p> 

<img src="images/uum07.gif" border="0" alt="Accept the license(s) and click 'Next'">

<br/><br/>If you have already used UM, you may not get a choice of install path for the updated SDK - you can only review Eclipse's choice of install location. 

<br/><br/><img src="images/uum08.gif" border="0" alt="Updating existing plugins - same folder selected">

<br/><br/>However, if you have not already installed a package before, you will be presented choices for where to install.

<br/><br/><img src="images/uum09.gif" border="0" alt="Updating new plugins - click 'Add Site...' to choose a new folder">

<br/><br/>To install to a path not already listed, click 'Add Site...' and browse for a path into which to install the update.

<br/><br/><img src="images/uum10.gif" border="0" alt="Browsing for a folder to install into">

<br/><br/>When you click finish, you will be presented a confirmation about digital signature. Click 'Install'.

<br/><br/><img src="images/uum11.gif" border="0" alt="Click 'Install' to accept unsigned warning - SDK">

<br/><br/>Downloading in progress (this may not appear if you have this task set to run in the background)...

<br/><br/><img src="images/uum12.gif" border="0" alt="Downloading plugins and features">

<br/><br/>If installing the Examples, you will be prompted a second time for confirmation about digital signature. Click 'Install'.

<br/><br/><img src="images/uum13.gif" border="0" alt="Click 'Install' to accept unsigned warning - Examples">

<br/><br/>When done, restart your workbench.

<br/><br/><img src="images/uum14.gif" border="0" alt="Click 'Yes' to restart workbench">

<hr />
<p style="text-align: right"><a id="step4"
name="step4">&nbsp;</a><a href="#top">contents</a></p>

<h3> Step 4. Verify Update</h3>
<p>To verify your installation, you can perform the following steps.</p>

<table>
<tr><td>&nbsp;</td><td colspan="4">Help</td></tr>
<tr><td>&nbsp;</td><td>&nbsp;</td><td colspan="3">&gt; Software Updates</td></tr>
<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td colspan="2">&gt; Manage Configuration...</td></tr>
</table>

<br/><img src="images/uum15.gif" border="0" alt="Checking Eclipse configuration">
<p>You can also check the plugins &amp; features themselves:</p>
<table>
<tr><td>&nbsp;</td><td colspan="4">Help</td></tr>
<tr><td>&nbsp;</td><td>&nbsp;</td><td colspan="3">&gt; About Eclipse Platform</td></tr>
</table>
</p>

<p>Then, click the Plug-in Details button. Make sure the <i>org.eclipse.emf.*</i> plug-ins are at the 2.0.x level. The following six plug-ins relate to SDO:</p>

<ul>
<li>org.eclipse.emf.commonj.sdo</li>
<li>org.eclipse.emf.ecore.sdo</li>
<li>org.eclipse.emf.ecore.sdo.doc</li> 
<li>org.eclipse.emf.ecore.sdo.edit</li> 
<li>org.eclipse.emf.ecore.sdo.editor</li>
<li>org.eclipse.emf.ecore.sdo.source</li>
</ul>

The following eight plug-ins relate to XSD:</p>

<ul>
<li>org.eclipse.xsd</li>
<li>org.eclipse.xsd.doc</li>
<li>org.eclipse.xsd.edit</li>
<li>org.eclipse.xsd.editor</li> 
<li>org.eclipse.xsd.source</li>
<li>org.eclipse.xsd.test</li> 
<li>org.eclipse.emf.mapping.xsd2ecore</li>
<li>org.eclipse.emf.mapping.xsd2ecore.editor</li>
</ul>

<p>If you installed XSD, don't forget about the <a href="http://www.eclipse.org/emf/downloads/install.php">Crimson DOM bug</a> when running Eclipse.</p>

&nbsp;
<p><b>Conclusion</b><br>

In this article, we provided an overview of using Eclipse's Update Manager to install new EMF, SDO and XSD features into an existing Eclipse installation.</p>
<br>&nbsp;
</body>

</html>
