platform-update-home/doc/Test Scenarios/eclipse update 3.0.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.11 - (download) (as text) (annotate)
Tue Jul 29 15:45:27 2003 UTC (6 years, 4 months ago) by dbirsan
Branch: MAIN
Changes since 1.10: +4 -4 lines
*** empty log message ***
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <meta name="GENERATOR" content="Microsoft FrontPage 5.0">
</head>
<body>

<h1>
Scenario: Updating Eclipse Install Using Eclipse Update 3.0</h1>
Last Updated:
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%A, %B %d, %Y" startspan -->Tuesday, June 24, 2003<!--webbot bot="Timestamp" endspan i-CheckSum="36838" --><p>
<i>Note: This is the draft of the new test scenarios that are based on 2.1 
version but take into account redesigned Eclipse Update user interface. Some of 
the old functionality may not be available in the new UI, making some scenarios 
obsolete. These scenarios will be clearly marked as such.</i></p>
<h3>
Objectives:</h3>
The objective of these scenarios is to illustrate the Eclipse Update 3.0
function through simple end-to-end use cases. The scenarios are divided
into two parts.<ul>
<li>
Part-1 exercises updating of Eclipse itself from a test site containing
Eclipse builds repackaged as downloadable features. The Eclipse feature
structure is a reasonable representation of a non-trivial product. It contains
a primary feature (the platform) and a number of other features ( jdt,
pde, etc) and is nested.</li>

<li>
Part-2 uses an example "product" to go through the various steps of updating
and extending it using both the Eclipse Update, as well as native installation
(using .zip file containing features and plug-ins that can be extracted
directly into the file system)</li>

<li>
Part-3 uses an even simpler feature hierarchy to go through more advanced 
capabilities that include optional features and emergency fixes.</li>
</ul>

<h2>
Part 1: Updating Eclipse - "One Click" Update</h2>

<h3>
Setup:</h3>
Available sites:<ul>
<li>
<a href="http://download.eclipse.org/updates/">http://update.eclipse.org/testUpdates/</a></li>
</ul>

<table BORDER COLS=1 WIDTH="100%" >
<tr>
<td>
<center><b><font color="#FF0000">*** PLEASE READ *** PLEASE READ *** PLEASE
READ *** PLEASE READ ***</font></b></center>
</td>
</tr>

<tr>
<td><font color="#000000">As part of this scenario you will be downloading
and installing various versions of the Eclipse components into the running
Eclipse. The update site is populated with features that have their version
numbers modified as part of the build process. They are generally of the
form 2.0.0.QUALIFIER, where the qualifier differs build to build. Note,
however, that when you install base Eclipse (.zip downloaded from eclipse.org),
all of its features and plug-ins only use 3 part version identifiers (generally
2.1.0). So all the 2.1.0.Q updates in fact appear more recent that the
build you are running, even though they may in fact be an older build.
Note, that when you update the Eclipse components from the update site
and restart you may in fact now be running </font><font color="#FF0000">DIFFERENT
CODE THAN WHAT YOU STARTED WITH</font><font color="#000000">. So it is
really important that you start each of the test scenario steps with a
<b>clean install of eclipse</b>. </font><font color="#FF0000">It is suggested
that you always use a second install of Eclipse running with a different
workspace (than what you use to do development) to actually run through
these scenarios.</font><p><font color="#000000">When opening Bugzilla defects, use the 
Platform/Update
component. Please ALWAYS specify the failing scenario step, and include
a .zip of the &lt;workspace>/.metadata/ directory</font></td>
</tr>
</table>

<h3>
Steps:</h3>

<ul>
<li>
Install second copy of Eclipse to run these scenarios ... do not use your
development copy of Eclipse for this.</li>

<li>
either use the default workspace created by the second Eclipse copy, or
specify (-data) a new workspace for these scenarios</li>
</ul>

<h4>
A. Startup new Eclipse</h4>

<ul>
<li>
A.1. startup Eclipse. On the initial startup with new workspace you should
see the splash come up, be taken down down, and come up again before it
is finally taken down before the Workbench appears. This is due to Eclipse
restart when new features are detected on startup.</li>

<li>
A.2 go to <b>Help>About</b> and click [Feature Details] and [Plug-in Details]
to see more details of what is actually running. Note the baseline version
of the various items (most will be 2.1.0)</li>

<li>
A.3. go to <b>Help> Software Updates> Configuration Manager</b> and verify that the features
corresponding to the baseline install appear in the "Eclipse Platform&quot; root 
node.</li>
</ul>

<h4>
<font color="#FF00FF">B. Save baseline configuration [cannot be done in the new 
UI]</font></h4>

<ul>
<li>
<font color="#FF00FF">B.1. in "Configuration" view, expand "Configuration History"</font></li>

<li>
<font color="#FF00FF">B.2. select the current configuration (at this point it should be the only
one)</font></li>

<li>
<font color="#FF00FF">B.3. popup menu, Save</font></li>

<li>
<font color="#FF00FF">B.4. expand "Saved Configurations"</font></li>

<li>
<font color="#FF00FF">B.5. select the configuration you have just saved</font></li>

<li>
<font color="#FF00FF">B.6. popup, Properties, change name to "Baseline"</font></li>

<li>
<font color="#FF00FF">B.7 close Update Manager</font></li>
</ul>

<h4>
C. "One Click" update</h4>

<ul>
<li>
C.0. NOTE: you must be connected to the network with access to www.eclipse.org 
to perform this step. You will be downloading a full Eclipse SDK drop as part of 
this step. So you should have a reasonably fast network connection for this 
step. In addition, since 'official' Eclipse update site contains only final 
releases, we must redirect update search to pick up integration builds from the 
test update site. To do so, open <b>Window&gt;Preferences&gt;Install/Update&gt;Automatic 
Updates</b> and paste the following URL into the address mappings entry:<br>
<br>
<a href="http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-update-home/policy.xml">http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-update-home/policy.xml</a><br>
&nbsp;</li>

<li>
C.1. select <b>Help&gt;Software Updates&gt;New Updates (Experimental)</b></li>

<li>
C.2. Make sure that 'Search for updates of the currently installed features' 
radio button is selected (the default)</li>

<li>
C.3. wait while eclipse is searching for new updates</li>

<li>
C.3. the search results page should display a new version of eclipse SDK
pre-selected</li>

<li>
C.3.1. accept any license agreements</li>

<li>
C.4. click [Finish] and proceed to install the update. When you see feature
verification dialog, click [Install].</li>

<li>
C.5. when you complete the installation, you'll be prompted to restart.
Select [Yes] to restart the platform.</li>

<li>
C.6. workbench should restart automatically</li><ul>
<li>
<b>PLEASE NOTE</b>: at this point you are no longer executing the update
manager code you started with, but rather are running a version of the
update manager that was contained in the update (along with the rest of
the platform plug-ins). Depending on what the update site contained at that
point (changes build to build) the platform may not even restart, and you
may need to reinstall eclipse to continue. Report defects for this (to
make sure there is not actually a legitimate problem) but please be clear
that you failed in step C.6.</li>
</ul>

<li>
C.7. go to Help> About> [Plug-In Details] and [Feature Details] to verify
you are running new version of the platform (the versions for the items
will be 2.1.0.&lt;qualifier>)</li>

<li>
C.8. Go to Help> Software Updates> Configuration Manager, expand "Current Configuration"
and verify you now recognize the new version of the platform that was updated</li>
</ul>

<h4>
D. Restoring Original Configuration</h4>

<ul>
<li>
D.1. Select <b>Help&gt;Software Updates&gt;Configuration Manager</b> to open the 
configuration manager window.</li>
<li>
D.2 Select the current configuration object (the root node) and choose 'Revert 
to previous' (alternatively, select the link with the same name from the list of tasks 
on the right).</li>

<li>
D.3. When the wizard opens, a list of past configurations should show up (sorted 
by date in descending order). The previous configuration (first from the top) 
will be pre-selected.</li>

<li>
D.4. press [Finish]</li>

<li>
D.5. A message about required workbench restart will open. Accept it.</li>

<li>
D.6. workbench should restart automatically. Open Configuration Manager again.
<font color="#FF00FF">[note: we should investigate if we can remember the state 
and do this automatically]</font></li>

<li>
D.7. expand the root node and verify all configured features
are the baseline feature versions (generally 2.1.0)</li>

<li>
D.8. click "Show Disabled Features" button in the toolbar of the Configuration 
Manager. Observe the updated version as disabled.</li>

<li>
D.9. go to <b>Help>About</b> dialog, [Plug-In Details] and verify you are in
fact running the baseline plug-ins (all 2.1.0, except for the "special cases"
like Xerces, Ant, Lucene, Tomcat, etc)</li>

<li>
D.10. shut down the workbench</li>
</ul>

<h2>
Part 2: Alphabet Soup</h2>

<h3>
Setup:</h3>
Available sites:
<ul>
<li>
<a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-update-home/3.0/site/index.html">http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-update-home/3.0/site/</a></li>
</ul>
The above site contains pre-built features used as part of the following
scenario steps. It also includes several .zip files (containing features
and plug-ins) that are used to simulate native installer steps.<br>&nbsp;
<table BORDER COLS=1 WIDTH="100%" >
<tr>
<td>
<center><b><font color="#FF0000">*** PLEASE READ *** PLEASE READ *** PLEASE
READ *** PLEASE READ ***</font></b></center>
</td>
</tr>

<tr>
<td><font color="#000000">When opening Bugzilla defects, use the Platform/Update
component. Please ALWAYS specify the failing scenario step, and include
a .zip of the &lt;workspace>/.metadata/ directory</font></td>
</tr>
</table>

<h3>
Description:</h3>
The Alphabet Soup is a simple application packaged as an Eclipse product,
plus several extensions. The application installs a tool button, and a
menu ("Alphabet Soup") that can be used to query the content of the "soup
bowl" and interact with the individual installed "letters" (each letter
in the bowl corresponds to a separate plug-in)
<ul>
<li>
base product is a nested feature, my.alphabet, containing two sub-features
with base sets of "letters"</li>

<li>
3 extension features containing additional "letters" (plug-ins). The features
have a dependency relationship as follows:</li>

<ul>
<li>
"round letters" extension pack requires the base to be installed</li>

<li>
"straight letters" extension pack requires "round letters" extension pack
to be installed</li>

<li>
"numbers" extension pack requires both "round letters" extension pack and
"straight letters" extension pack to be installed</li>
</ul>
</ul>
Just follow the steps and you'll get the idea.<h3>
Steps:</h3>

<ul>
<li>
Install second copy of Eclipse to run these scenarios ... do not use your
development copy of Eclipse for this.</li>

<li>
either use the default workspace created by the second Eclipse copy, or
specify (-data) a new workspace for these scenarios</li>
</ul>

<h4>
O. Completing the install</h4>

<ul>
<li>
O.1. after you have installed baseline eclipse, unzip the Alphabet Soup
product features from <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-update-home/3.0/site/native/my.alphabet_1.0.0.zip">my.alphabet_1.0.0.zip</a>&nbsp;
into the eclipse/ installation directory. The unzip should overwrite the
install.ini file that is packaged with Eclipse (sets the Alphabet Soup
feature as the primary feature). The product feature .zips can be found
in <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-update-home/3.0/site/native/">http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-update-home/3.0/site/native/</a></li>

<li>
O.2. start eclipse .... after "Completing the install ..." the platform
restarts as "Alphabet Soup" application (own Welcome, About)</li>

<li>
O.3. Click on the "Alphabet Soup" button in the tool bar ... you should
have letters A, B, C and E (all 1.0.0) in your bowl.</li>

<li>
O.4. Go to the "Alphabet Soup" menu and verify you can interact with each
letter (one action per letter on the menu)</li>

<li>
O.5. Open Help> Software Updates> Configuration Manager</li>

<li>
O.6. Expand "Alphabet Soup". Verify "Alphabet Soup 1.0.0" is configured,
and it contains 2 sub-features (Round and Straight letters)</li>

<li>
O.7. click on each of the features and view more details about each feature 
(double-click for Properties, follow 'More Info...' hyperlink etc.).</li>

<li>
O.8. select "Alphabet Soup 1.0.0" and press [Disable]. You should be notified
that you cannot disable the primary feature (if this is not the case, [Cancel]
the disable action and report a defect).</li>
</ul>

<h4>
P. Updating the primary feature using new updates wizard</h4>

<ul>
<li>
P.1. Open <b>Help&gt;Software Updates&gt;New Updates</b>. Select 'Search for new 
features to install'. Check "Alphabet Soup Update Site" from the list and expand 
it. Uncheck all categories except &quot;Alphabet Soup&quot;. Press 'Next'.</li>

<li>
P.2. When the search is over, you should see three versions Alphabet Soup: 
1.0.1, 1.1.0 and 2.0.0.</li>

<li>
P.3. Select "Alphabet Soup 1.0.1" and press 'Next'. Go through the install
wizard accepting defaults.</li>

<li>
P.4. Restart the workbench when prompted. Open Configuration Manager.</li>

<li>
P.5. Expand "Alphabet Soup" .... verify you now have Alphabet Soup
1.0.1 installed and configured.</li>

<li>
P.6. Click the "Show disabled features" filter button .... should see both
versions (one enabled, the other disabled (icon with red "stop"
overlay))</li>

<li>
P.7. click the "Alphabet Soup" tool button ... should show new versions
of the base letters (1.0.1). The actions on "Alphabet Soup" menu should
also indicate we are running the new version.</li>

<li>
P.8. shut down the workbench</li>
</ul>

<h4>
Q. Updating the primary feature using "native" install (.zip)</h4>

<ul>
<li>
Q.1. unzip the Alphabet Soup product features from <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-update-home/3.0/site/native/my.alphabet_1.1.0.zip">my.alphabet_1.1.0.zip</a>&nbsp;
into the eclipse/ installation directory (look into the features/ or plugins/
subdirectory to verify you see new 1.1.0 versions)</li>

<li>
Q.2. start Eclipse (a.k.a. Alphabet Soup). You'll see the splash coming
up twice as the platform is updating the configuration. Workbench will
come up, with a dialog informing you have changes. Click [OK] to open the
update manager change dialog.</li>

<li>
Q.3. check the change (so it is applied) and press [Finish]</li>

<li>
Q.4. restart the workbench when prompted</li>

<li>
Q.5. click the "Alphabet Soup" tool button and trigger "Alphabet Soup"
menu action to see you have the new version (1.1.0) of the "soup bowl and
letters"</li>

<li>
Q.6. Open Configuration Manager expand "Alphabet Soup". Should see
Alphabet Soup 1.1.0 enabled, and the other 2 disabled (click the
"Show disabled features").</li>
</ul>

<h4>
<font color="#000000">R. Adding an extension using the update manager</font></h4>

<ul>
<li>
<font color="#000000">R.1. </font>Open <b>Help&gt;Software Updates&gt;New Updates</b>. Select 'Search for new 
features to install'. Check "Alphabet Soup Update Site" from the list and expand 
it. Uncheck all categories except &quot;Alphabet Soup Fun Pack - Round Letters&quot;. Press 'Next'.</li>

<li>
<font color="#000000">R.2. check "Alphabet Soup Round Letters Extension
Pack 1.0.0" and press [Next]. Accept defaults in wizard and [Finish].
Restart workbench when prompted.</font></li>

<li>
<font color="#000000">R.3. click of the "Alphabet Soup" tool button and
interact with "Alphabet Soup" menu to see new round letters (D and G).
<b>Note:</b>
may need to go to Window> Customize Perspective...> Other and select the
action sets for the new letters</font></li>

<li>
<font color="#000000">R.4. open Configuration Manager and verify the
new feature is showing as configured.</font></li>

<li>
<font color="#000000">R.5. close the Configuration Manager and shut down the workbench</font></li>
</ul>

<h4>
<font color="#000000">S. Adding an extension using "native" install (.zip)
and link file</font></h4>

<ul>
<li>
<font color="#000000">S.0. <b>Note</b>: the first 3 steps will typically
be performed by a native installer. Since you are simulating these steps
you need to do this manually.</font></li>

<li>
<font color="#000000">S.1. Set up a new install directory somewhere in
your file system. Create eclipse/ subdirectory under it. U</font>nzip the
Alphabet Soup Straight Letters extension&nbsp; from <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-update-home/3.0/site/native/my.alphabet.more.straight.letters_1.0.0.zip">my.alphabet.more.straight.letters_1.0.0.zip</a>&nbsp;
into the eclipse/ subdirectory. You should end up with</li>

<ul>
<li>
&lt;some new install directory>/</li>

<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eclipse/
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
features/
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
plugins/</ul>

<li>
S.2. In the original eclipse install (the one that contains the platform
and Alphabet Soup), create a new directory called "links" as a peer to
features/ and plugins/. You should end up with</li>

<ul>
<li>
&lt;eclipse platform install directory>/</li>

<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eclipse/
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
links/
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; features/
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
plugins/</ul>

<li>S.3. within the links/ subdirectory, create a file called my.alphabet.link&nbsp; 
and add a single line into it</li> <br>
<br>
<font face="Courier New">&nbsp;&nbsp;&nbsp; <font size="2">path=&lt;some new 
install directory&gt; </font></font>
<p><b>Note</b>: the path should be an absolute path using local file system
syntax. The .link file is loaded as a Java properties file, so on Windows
you need to double up the back-slashes (e.g. path=c:\\temp\\install) </li>
<li>
S.4. start eclipse (Alphabet Soup). You'll see the splash coming up twice
as the platform is updating the configuration. Workbench will come up,
with a dialog informing you have changes. Click [OK] to open the Pending Changes dialog.</li>

<li>
S.5. check the change (so it is applied) and press [Finish]</li>

<li>
S.6. restart the workbench when prompted</li>

<li>
S.7. click the "Alphabet Soup" tool button and trigger "Alphabet Soup"
menu action to see you have the new letters.</li>

<br><b>Note</b>: may need to go to Window> Customize Perspective...> Other
and select the new letters to get the menu actions to become visible
<br><b>Note</b>: if you are following all the steps in the scenario, the
base letters (A, B, C, E) should be at 1.1.0, and the extensions (D, G)
(F, H) at 1.0.0
<li>
S.8. Open Configuration Manager and expand "Alphabet Soup". You should see
a new site representing the extension install (different icon), and it should contain the
extension feature you've installed.</li>
<li>
S.9. Click on the new extension, and disable it in the Preview view. After 
restart, verify that all the features and plug-ins from the extension are 
missing. Enable it and verify that they are back after the restart.</li>
</ul>

<h4>
<font color="#FF00FF">T. Installing another extension using the update manager (with environment
filtering) [this cannot be done with the new UI]</font></h4>

<ul>
<li>
<font color="#FF00FF">T.1. expand "Sites to Visit", "Alphabet Soup Update
Site", "Alphabet Soup Fun Pack - Numbers"</font></li>

<li>
<font color="#FF00FF">T.2. The Numbers extension specifies an OS in its
feature definition. The update site contains features for Win and Linux.
On those two platforms you should see a list of features designated for
than platform. On other platforms you are out of luck ... you don't get
to play with numbers (skip the rest of this step)</font></li>

<li>
<font color="#FF00FF">T.3. uncheck the "Show matching features only" filter
.... should now see all the features for both platforms. Check the filter
back again.</font></li>

<li>
<font color="#FF00FF">T.4. select "Alphabet Soup Numbers Extension Pack
for &lt;OS>1.0.1" and click [Install]. Accept defaults in wizard. In the
location selection page ensure the extension location created in steps
S is not offered as a choice. Press [Finish]. Restart workbench when prompted.</font></li>

<li>
<font color="#FF00FF">T.5. click of the "Alphabet Soup" tool button and
interact with "Alphabet Soup" menu to see new numbers (3 and 5). <b>Note:</b>
may need to go to Window> Customize Perspective...> Other and select the
action sets for the new numbers</font></li>

<li>
<font color="#FF00FF">T.6. expand Current Configuration and verify the
new feature is showing as configured in the original install site</font></li>

<li>
<font color="#FF00FF">T.7. close the update manager and shut down the workbench</font></li>
</ul>

<h4>
<font color="#000000">"Free-form" testing</font></h4>

<ul>
<li>
<font color="#000000">the above scenarios describe a path through the update
support. Run through it once as described. There is lot's of opportunity
to do thing in different order, click on other buttons, try other features
in the UI. Go ahead an explore. Remember, is you see something that does
not work, is not correct, or is not what you'd expected, open Bugzilla
defects in the platform/update component. Please ALWAYS specify the steps
leading up to the failure, and include a .zip of the &lt;workspace>/.metadata/
directory</font></li>
</ul>

<h2>
Part 3: Optional features and e-fixes</h2>

<h3>
Setup:</h3>
<p>Available sites:</p>
<ul>
<li>
<a href="http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-update-home/optionalSite/">http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-update-home/optionalSite/</a></li>
</ul>
<p>The above site contains pre-built features used as part of the following
scenario steps.<br>&nbsp; </p>
<table BORDER COLS=1 WIDTH="100%" >
<tr>
<td>
<center>
<p><b><font color="#FF0000">*** PLEASE READ *** PLEASE READ *** PLEASE
READ *** PLEASE READ ***</font></b></p>
</center>
</td>
</tr>

<tr>
<td><font color="#000000">When opening Bugzilla defects, use the Platform/Update
component. Please ALWAYS specify the failing scenario step, and include
a .zip of the &lt;workspace>/.metadata/ directory. Note that we ran out of 
letters, so we are starting from A again. You need to include the part number 
when specifying steps (e.g. 3.A7)</font></td>
</tr>
</table>

<h3>
Description:</h3>
<p>The Optional Site is a simple site that contains several versions of the 
'Root' feature. The feature includes another feature (XYZBogus) that in turn 
includes features XYZ and Bogus. The last two features are included as optional, 
which means that users can elect not to install them. Several interesting 
consequences result from this capability, and this part deals with them.</p>
<p>The site also contains several e-fixes. E-fix is a feature that is designed 
to patch another feature with an exact ID and version. It is used to deliver 
temporary fixes between full root updates.</p>
<h2>A. Installing feature Root 1.0.0</h2>
<p>A1. Open New Updates wizard. Select 'Search for new features to install'. 
Press [Add Update Site...] and paste the URL listed above under 'Available 
Sites:' (also choose some name).<br>
A2. Check the newly created site and press [Next]. Check the feature Root 1.0.0 
from the list of results. Press [Next].<br>
A3. Accept the license in the License page.<br>
A4. Uncheck 'XYZ 1.0.0' optional feature in the Optional Features page. Leave 
'Bogus 1.0.0' feature selected.<br>
A5. Install (accept unsigned feature). Restart.<br>
A6. Using Configuration Manager, verify that 'Root 1.0.0' feature has been installed and that 'XYZ 1.0.0' is 
missing.<br>
A7. Verify that 
'XYZ 1.0.0' is shown and marked as '(not installed')<br>
A8. If you want to stop being warned about unsigned features, toggle the option 
off in the Install/Update preferences. Verify that you are warned about the 
consequences (rogue features deleting your entire hard drive and such).</p>
<h2>B. Updating Root 1.0.0 to Root 1.0.1</h2>
<p>B1. Open New Updates wizard. Select 'Search for new features to install'. 
Check 'Optional site' created in A1. Press [Next]. Verify that 'Root 1.0.0' is 
not present (should be filtered out since it is already installed). Check 'Root 1.0.1'. 
Press [Next].<br>
B2. After accepting the license, verify that features 'XYZBogus' and 'Bogus' are 
checked&nbsp; and grayed out in 'Optional Features' page, while 'XYZ' plug-ins is 
unchecked (leave it unchecked). Install and restart.<br>
B3. Using Configuration Manager, verify that we now have Root 1.0.1 installed that is still without XYZ 
feature (XYZ 1.0.1 shows as 'not installed').</p>
<h2>C. Preserving the state of the optional feature</h2>
<p>C1. Close Eclipse. Manually delete all 'com.example.*' features from the 
features/ directory and all 'com.example.*' plug-ins from the plugins/ 
directory. Delete the '.config' directory in the .metadata directory of the 
workspace (you want to preserve the bookmark).<br>
C2. Repeat scenario A but this time leave all the optional features selected.<br>
C3. Restart and open current configuration. Verify that all the features are 
showing as enabled.<br>
C4. Select 'XYZ 1.0.0' feature and select 'Disable' button in the preview. 
Restart.<br>
C5. Verify that 'XYZ 1.0.0' feature is now disabled in the 'Root 1.0.0' 
hierarchy (you will need to make disabled features visible in the view to do 
that).<br>
C6. Open the New Updates wizard, press [Next], [Next], find Root 1.0.1 feature, 
press [Next].<br>
C7. After accepting the license, leave all settings default and install the new 
version. Restart.<br>
C8. Verify that 'Root 1.0.1' is now installed, and that 'XYZBogus 1.0.1' and 
'Bogus 1.0.1' are showing in the hierarchy. Also verify that 'XYZ 1.0.1' is <b>
installed but disabled </b>(we are testing whether the original state of XYZ 
1.0.0 was preserved during the update). The expected outcome is that the new 
version of XYZ is installed but it remains disabled as before.</p>
<h2><font color="#FF00FF">D1. Installing the missing optional feature (from the originating site) 
[cannot be done in the new UI]</font></h2>
<p><font color="#FF00FF">D1.1. Repeat cleanup as in C1.<br>
D1.2. Repeat the scenario A.<br>
D1.3. After the restart, go back to the Updates view and select Root 1.0.0 again. Verify that 
the action button is visible and that the label is &quot;Change&quot;. Press it.<br>
D1.4. When in 'Optional Features' wizard page, ensure that 'Bogus 1.0.0' 
optional feature is checked and grayed out. Select 'XYZ 1.0.0' feature. Finish 
the install. Restart.<br>
D1.5. Verify that we now have all the features in 'Root 1.0.0' hierarchy in the 
current configuration.</font></p>
<h2>D2. Installing the missing optional feature (using the saved originating 
site URL)</h2>
<p><font color="#FF00FF">D2.1. After finishing D1., delete XYZ 1.0.0 feature and XYZ 1.0.0 plug-in 
manually from <b>features</b> and <b>plugins</b> directories, respectively.<br>
</font>D2.1(new) Perform D1.1 and D1.2 steps to install Root 1.0.0 without XYZ 
1.0.0.<br>
D2.2. After restart, open Configuration Manager. Select 'XYZ 1.0.0' feature object (should be 
shown as 'not installed').<br>
D2.3. Verify that the 'Install from originating server' hyperlink is shown in the 
list of tasks on the right. Select it.<br>
D2.4. When the install wizard shows up, follow it until XYZ 1.0.0 plug-in is 
installed. <font color="#0000FF">Cool: missing optional feature reference has a 
preserved URL of the originating site that it can use to reconnect and install 
it later.</font></p>
<p><font color="#FF0000">Bug #38273:</font> <font color="#0000FF">
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=38273">[new UI] Part 
3,D2.3: 'Install from originating server' does not work</a></font></p>
<h2>E. Discovering missing optional feature</h2>
<p>E1. Manually copy 'com.example.xyz_1.0.0' from 'features' directory and 
'com.example.xyz_1.0.0' from 'plugins' directory into a temp. place. After that, 
repeat cleanup as in C1.<br>
E2. Repeat the scenario A and verify that XYZ 1.0.0 is missing from the 
configuration (shown as 'not installed').<br>
E3. Close Eclipse. Manually copy 'com.example.xyz_1.0.0' feature from the temp. 
space into the 'features' directory and 'com.example.xyz_1.0.0' plug-in from the 
temp. space into the 'plugins' directory. Start Eclipse.<br>
E4. Verify that no dialog was shown and that feature XYZ 1.0.0 was detected and 
configured into the hierarchy of 'Root 1.0.0'.</p>
<h2>F. Installing missing optional features natively after updates</h2>
<p>F1. Repeat preservation + cleanup as in E1.<br>
F2. Repeat the scenario A.<br>
F3. Open the 'New Updates' wizard and select 'Search for updates of the 
currently installed features'. The wizard 
should discover feature 'Root 1.0.1' plus some e-fixes. Check Root 1.0.1 only 
and press [Next]. Accept the license and finish install. 
Restart.<br>
F4. At this point, we should have installed Root 1.0.1 with XYZBogus 1.0.1 and 
Bogus 1.0.1, but not XYZ 1.0.1.<br>
F5. Manually copy feature XYZ 1.0.0 from the temp space and plug-in XYZ 1.0.0 
from the temp space as in E3. <br>
F6. At this point, verify that XYZ 1.0.0 is present in the hierarchy of XYZ 
1.0.0 but disabled because Root 1.0.0 is disabled.<br>
F7. Run the 'one-click' update again as in F3. It should discover Root 1.0.1 
again because we now have previous version of XYZ and it can now bring it up to 
1.0.1. Reinstall Root 1.0.1 and restart.<br>
F8. Verify in the configuration that XYZ 1.0.1 is now installed and enabled.</p>
<p><font color="#0000FF">Note: as you go through the the scenarios G, H and I 
that deal with e-fixes, it is recommended to increase the coverage by switching 
between multiple workspaces (install couple of e-fixes, then start with a new 
workspace, install some more, create a new workspace, install some more, than 
switch back to the first one). Since state is stored in each workspace, that 
will give Update an additional workout to reconcile its state with changes in 
the file system (both partial and full reconcilers will kick in).</font></p>
<h2>G1. Cumulative patches</h2>
<p>G1.1 Repeat steps C1, C2 and C3 to install Root 1.0.0 feature hierarchy. 
Verify that all Root features (including optional ones) are installed.<br>
G1.2 Open New Updates and search for updates for installed features. A number of 
e-fixes should show up. Locate feature EFIX e334 1.0.0. Make sure it is the only 
feature checked and press [Next]. Install it by accepting all the defaults.<br>
G1.3 After restart, use Configuration Manager to verify that EFIX e334 has been installed and that it 
includes XYZ 1.0.0.e334. The same XYZ feature should be included by Root 
1.0.0-&gt;XYZ Bogus 1.0.0 (should show up arrow indicating branch update). There 
should be no errors or warnings.<br>
G1.4 Repeat G1.2. This time, EFIX e334 should not show up. Locate feature EFIX e335 1.0.0. 
Uncheck all other features, check it and install it. <i>Note: e335 
is a cumulative fix because it fixes a problem in XYZ 1.0.0 and also includes a 
fix in e334.<br>
</i>G1.5 After restart, use Configuration Manager to verify that e335 has been installed and that it includes 
XYZ 1.0.0.e335. The same XYZ feature should be included by Root 1.0.0-&gt;XYZ Bogus 
1.0.0 (should show up arrow indicating branch update).&nbsp;<br>
G1.6 <b>The same XYZ 1.0.0.e335 should also show up as a child of EFIX e334</b>. 
The interpretation is that XYZ 1.0.0.e335 also includes a fix for e334, so the 
fact that the previous version has been disabled does not invalidate EFIX e334.</p>
<h2>G2. Patches that include other patches</h2>
<p>G2.1. Repeat steps C1, C2 and C3 to install Root 1.0.0 feature hierarchy. 
Verify that all Root features (including optional ones) are installed.<br>
G2.2. Search for updates to installed features using New Updates wizard. Locate feature EFIX e452 1.0.0. 
Uncheck all other features, check it and install it.<br>
G2.3. After restart, verify that: EFIX e452 is installed; its child feature e388 
should include Bogus Feature 1.0.0.e388. The same Bogus Feature should be 
included by Root 1.0.0 hierarchy. There should be no errors or warnings.<br>
<font color="#FF00FF">G2.4. Expand 'Saved Configurations' folder. Verify that a backup configuration 
for e452 has been created (backup configurations have label in format &quot;@&lt;id_version&gt;&nbsp; 
backup&quot;. [This cannot be done in the new UI]</font></p>
<h2>H. Updating feature branches with partial patch cleanup</h2>
<p>H1. After installing patch e452 in scenario G2, search for new updates by 
selecting 'Window-&gt;Updates-&gt;New Updates' (ensure that the first radio 
button is selected). <br>
H2. When the search finishes, uncheck the checkbox 
'Filter features included ...'. Uncheck &quot;Root 1.0.1&quot; and check &quot;XYZBogus 1.0.1&quot; 
from the list of search results. <font color="#0000FF">Cool: this demonstrates 
how branches in the feature hierarchy can be individually updated.</font><br>
H3. Accept the license agreement and install the feature.<br>
H4. After restart, verify that Root 1.0.0 now includes XYZBogus 1.0.1 (<font color="#0000FF">Cool: 
XYZBogus 1.0.1 image should have an upward pointing arrow overlay indicating 
that the feature has been updated from the original version specified in the 
Root 1.0.0 manifest</font>). Also verify that e388 does not show up anywhere, 
but EFIX e452 should still be present in the configuration.</p>
<p><font color="#0000FF">Note: Technically, since EFIX e452 includes EFIX e388 
and since e388 is now disabled because XYZBogus 1.0.1 is updated, EFIX e452 
should show error status (missing included feature). Update performs additional 
computation in this case to find if e452 is really broken. The fact is that even 
though the referenced feature e388 is disabled, it is a patch for XYZBogus 1.0.0 
which has since been upgraded. Updates makes a (daring) assumption that a formal 
update for a feature includes all the patches published for a previous version 
of that feature. In this particular case, Update assumes that XYZBogus 1.0.1, 
being an update to XYZBogus 1.0.0, contains all the fixes registered for 
XYZBogus 1.0.0, including e388. It concludes that EFIX e452 will indirectly 
satisfy its need for e388 through XYZBogus 1.0.1 code.</font></p>
<p><font color="#FF0000">Bug #3840:</font>
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=38340">[new UI] Part3,H4: 
EFIX e452 is not configured properly</a></p>
<h2>I. Updating feature root with patch cleanup</h2>
<p>I1. After updating XYZBogus in scenario H, search for updates again. This 
time, choose Root 1.0.1 and install it.<br>
I2. After restart, verify that Root 1.0.1 is installed and that all the included 
features are version 1.0.1. Also verify that there are no e-fixes left enabled 
in the configuration.<br>
I3. Open file &quot;.install-log&quot; in &lt;workspace&gt;/.metadata/.config/ and verify that 
it contains logs of all the activities performed in scenarios G, H and I.</p>
<h2>J. Handling cross-site version conflicts</h2>
<p>The role of this scenario is to show how cross-site conflicts are handled. 
Cross-site conflicts are caused by root features in separate install sites that 
include features of the same ID but different versions. Since both features will 
be configured and their plug-ins contributed to the Eclipse runtime, runtime 
will resolve the duplication by selecting plug-ins with the higher version. 
Update warns about this 'silent' upgrade when an attempt is made to install or 
update a feature that can cause such a conflict to appear.</p>
<ul>
  <li>Available sites: <a href="http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-update-home/extensionSite/">http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-update-home/extensionSite/</a></li>
</ul>
<p>J1. Repeat cleanup as in C1.<br>
J2. Select &quot;Optional Site&quot; bookmark as in A1 and install Root 1.0.0 with all the 
optional features. Restart.<br>
J3. Add another bookmark called &quot;Extension Site&quot; with the URL as shown above.<br>
J4. Expand the bookmark object and select feature &quot;Root Extension 1.0.0&quot;. Press 
&quot;Install&quot; button.<br>
J5. Accept the license and select both the optional features for install.<br>
J6. Do not accept the default target install site. Instead, create a new one by 
pressing &quot;Add&quot; button. Choose a location outside the Eclipse product tree 
(anywhere else on the disk). Press &quot;Finish&quot;. Restart.<br>
J7. Verify that the current configuration has two install sites. The first one 
should contain Eclipse features and Root 1.0.0. The second one (the one you 
picked in J6) should contain Root Product Extension 1.0.0. There should be no 
conflicts.<br>
J8. Search for new updates by selecting &quot;Window-&gt;Updates-&gt;New Updates&quot;. You 
should get two results: Root 1.0.1 and Root Extension 1.0.1. Uncheck Root 1.0.1. 
Press &quot;Next&quot; and accept all other default settings until &quot;Finish&quot; is enabled. 
Press Finish&quot;.<br>
J9. Verify that a warning dialog is opened explaining the conflict. The conflict 
should be caused by XYZ and Bogus features that will be 1.0.0 in one site and 
1.0.1 in another if the update proceeds. Answer &quot;No&quot;.<br>
J10. Return back to the first page of the wizard and select both results (Root 
1.0.1 and Root Extension 1.0.1). Advance to the last page and press &quot;Finish&quot; 
again. This time, there should be no conflicts because both XYZ and Bogus 
features will be simultaneously updated to version 1.0.1.<br>
J11. After restart, verify that the current configuration shows no warning 
overlays.</p>
<h2><font color="#FF00FF">[The following steps don't work in the new UI]</font></h2>
<h2><font color="#FF00FF">K. Web-triggered updates</font></h2>
<p><font color="#FF00FF">Update Manager has a neat feature whereby it can run a Web application and 
accept calls from a browser with the right URL. Tasks like presentation, search, 
classification, user verification etc. can all be handled by the provider's web 
site (presumably running a Web application itself). Features and plug-ins are 
still in the standard update sites, but these sites are used as feature servers. 
When users click on 'Download' or similar buttons or links, a URL query is 
composed and sent to Eclipse with the Update Web application running. Update 
servlet receives the query and initiates the install process. At this point, we 
are in the familiar install wizard.</font></p>
<font color="#FF00FF">Available sites:&nbsp; </font>
<ul>
  <li><a href="http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-update-home/optionalSite/index.html">
  <font color="#FF00FF">http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-update-home/optionalSite/index.html</font></a><font color="#FF00FF">
  </font>
  </li>
</ul>
<p><font color="#FF00FF">K1. Repeat the cleanup as in Part 3,C1.<br>
K2. Open &quot;Preferences&quot; dialog and select &quot;Install/Update-&gt;Web-triggered updates&quot; 
page. Turn the web application on. When pressing &quot;OK&quot; there will be a couple of 
seconds delay (starting the Tomcat server).<br>
K3. Open Update Manager and create a new site bookmark using the URL listed 
above. When in the wizard, choose the non-default 'Web site' bookmark type. 
Finish.<br>
K4. Double-click on the bookmark to cause the External Preview view to open 
(note: this is only on Windows; on other platform, the page will open in a 
standalone Web browser).<br>
K5. You should see a page with two Download buttons. Press on the Download 
button for Root 1.0.0. Verify that a progress monitor dialog opens while 
connecting to the feature server. Eventually, Install Wizard should show up. 
Follow it to install Root 1.0.0.<br>
K6. After restart, double-click on the Web link again and click on the 
'Download' button for Root 1.0.0. This time, a problem response page should show 
up indicating that the requested feature is already installed.<br>
K7. Click on the 'Download' button for the feature Root 1.0.1. This one should 
be treated as an update. Follow it to the end and restart.<br>
K8. Verify that the configuration shows the correct features.</font></p>

<h2><font color="#FF00FF">L. Updates view clipboard operations</font></h2>

<p><font color="#FF00FF">L1. The following objects in the Updates view support clipboard operations:
site bookmarks, folders and searches. Spend some time creating new bookmarks,
folders and searches, and rearranging them using both clipboard (cut/copy/paste)
and direct manipulation (drag and drop) methods.</font></p>

</body>
</html>