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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.12 - (view) (download) (as text)

1 : vlad 1.1 <!doctype html public "-//w3c//dtd html 4.0 transitional//en">
2 :     <html>
3 :     <head>
4 :     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
5 : dejan 1.12 <meta name="GENERATOR" content="Microsoft FrontPage 5.0">
6 : vlad 1.1 </head>
7 :     <body>
8 :    
9 : vlad 1.2 <h1>
10 :     Scenario: Updating Eclipse Install Using The Update Manager</h1>
11 : dejan 1.12 Last Updated:
12 :     <!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%A, %B %d, %Y" startspan -->Friday, February 21, 2003<!--webbot bot="Timestamp" endspan i-checksum="55249" --><h3>
13 : vlad 1.1 Objectives:</h3>
14 : vlad 1.3 The objective of these scenarios is to illustrate the Eclipse update manager
15 : vlad 1.4 function through simple end-to-end use cases. The scenarios are divided
16 : dejan 1.12 into two parts.<ul>
17 : vlad 1.2 <li>
18 : dejan 1.12 Part-1 exercises updating of Eclipse itself from a test site containing
19 : vlad 1.2 Eclipse builds repackaged as downloadable features. The Eclipse feature
20 :     structure is a reasonable representation of a non-trivial product. It contains
21 :     a primary feature (the platform) and a number of other features ( jdt,
22 : vlad 1.7 pde, etc) and is nested.</li>
23 : vlad 1.2
24 :     <li>
25 :     Part-2 uses an example "product" to go through the various steps of updating
26 :     and extending it using both the update manager, as well as native installation
27 : dejan 1.12 (using .zip file containing features and plug-ins that can be extracted
28 : vlad 1.2 directly into the file system)</li>
29 : dejan 1.12
30 :     <li>
31 :     Part-3 uses an even simpler feature hierarchy to go through more advanced
32 :     capabilities that include optional features and emergency fixes.</li>
33 : vlad 1.2 </ul>
34 :    
35 :     <h2>
36 : vlad 1.8 Part 1: Updating Eclipse - "One Click" Update</h2>
37 : vlad 1.2
38 : vlad 1.1 <h3>
39 :     Setup:</h3>
40 :     Available sites:
41 :     <ul>
42 :     <li>
43 : dejan 1.12 <a href="http://download.eclipse.org/updates/">http://update.eclipse.org/testUpdates/</a></li>
44 : vlad 1.2 </ul>
45 : vlad 1.1
46 :     <table BORDER COLS=1 WIDTH="100%" >
47 :     <tr>
48 :     <td>
49 :     <center><b><font color="#FF0000">*** PLEASE READ *** PLEASE READ *** PLEASE
50 :     READ *** PLEASE READ ***</font></b></center>
51 :     </td>
52 :     </tr>
53 :    
54 :     <tr>
55 : vlad 1.3 <td><font color="#000000">As part of this scenario you will be downloading
56 : vlad 1.1 and installing various versions of the Eclipse components into the running
57 : vlad 1.3 Eclipse. The update site is populated with features that have their version
58 : vlad 1.1 numbers modified as part of the build process. They are generally of the
59 :     form 2.0.0.QUALIFIER, where the qualifier differs build to build. Note,
60 : vlad 1.3 however, that when you install base Eclipse (.zip downloaded from eclipse.org),
61 : dejan 1.12 all of its features and plug-ins only use 3 part version identifiers (generally
62 :     2.1.0). So all the 2.1.0.Q updates in fact appear more recent that the
63 : vlad 1.3 build you are running, even though they may in fact be an older build.
64 :     Note, that when you update the Eclipse components from the update site
65 :     and restart you may in fact now be running </font><font color="#FF0000">DIFFERENT
66 :     CODE THAN WHAT YOU STARTED WITH</font><font color="#000000">. So it is
67 : vlad 1.9 really important that you start each of the test scenario steps with a
68 : dejan 1.12 <b>clean install of eclipse</b>. </font><font color="#FF0000">It is suggested
69 : vlad 1.9 that you always use a second install of Eclipse running with a different
70 :     workspace (than what you use to do development) to actually run through
71 : dejan 1.12 these scenarios.</font><p><font color="#000000">When opening Bugzilla defects, use the
72 :     Platform/Update
73 : vlad 1.2 component. Please ALWAYS specify the failing scenario step, and include
74 :     a .zip of the &lt;workspace>/.metadata/ directory</font></td>
75 : vlad 1.1 </tr>
76 :     </table>
77 :    
78 :     <h3>
79 :     Steps:</h3>
80 :    
81 :     <ul>
82 :     <li>
83 :     Install second copy of Eclipse to run these scenarios ... do not use your
84 :     development copy of Eclipse for this.</li>
85 :    
86 :     <li>
87 :     either use the default workspace created by the second Eclipse copy, or
88 :     specify (-data) a new workspace for these scenarios</li>
89 :     </ul>
90 :    
91 :     <h4>
92 :     A. Startup new Eclipse</h4>
93 :    
94 :     <ul>
95 :     <li>
96 :     A.1. startup Eclipse. On the initial startup with new workspace you should
97 :     see the splash come up, be taken down down, and come up again before it
98 :     is finally taken down before the Workbench appears. This is due to Eclipse
99 :     restart when new features are detected on startup.</li>
100 :    
101 :     <li>
102 : dejan 1.12 A.2 go to Help> About and click [Feature Details] and [Plug-in Details]
103 : vlad 1.10 to see more details of what is actually running. Note the baseline version
104 : dejan 1.12 of the various items (most will be 2.1.0)</li>
105 : vlad 1.8
106 :     <li>
107 :     A.3. go to Help> Software Updates> Update Manager and verify that the features
108 :     corresponding to the baseline install appear in the "Current Configuration"</li>
109 : vlad 1.1 </ul>
110 :    
111 :     <h4>
112 :     B. Save baseline configuration</h4>
113 :    
114 :     <ul>
115 :     <li>
116 :     B.1. in "Configuration" view, expand "Configuration History"</li>
117 :    
118 :     <li>
119 :     B.2. select the current configuration (at this point it should be the only
120 :     one)</li>
121 :    
122 :     <li>
123 :     B.3. popup menu, Save</li>
124 :    
125 :     <li>
126 :     B.4. expand "Saved Configurations"</li>
127 :    
128 :     <li>
129 :     B.5. select the configuration you have just saved</li>
130 :    
131 :     <li>
132 :     B.6. popup, Properties, change name to "Baseline"</li>
133 :    
134 :     <li>
135 : dejan 1.12 B.7 close Update Manager</li>
136 : vlad 1.1 </ul>
137 :    
138 : vlad 1.8 <h4>
139 :     C. "One Click" update</h4>
140 : vlad 1.1
141 :     <ul>
142 :     <li>
143 : vlad 1.8 C.0. NOTE: you must be connected to the network with access to www.eclipse.org
144 : dejan 1.12 to perform this step. You will be downloading a full Eclipse SDK drop as
145 : vlad 1.8 part of this step. So you should have a reasonably fast network connection
146 :     for this step.</li>
147 : vlad 1.1
148 :     <li>
149 : vlad 1.8 C.1. select Help> Software Updates> New Updates</li>
150 : vlad 1.1
151 :     <li>
152 : vlad 1.8 C.2. wait while eclipse is searching for new updates</li>
153 : vlad 1.1
154 :     <li>
155 : vlad 1.8 C.3. the search results page should display a new version of eclipse SDK
156 :     preselected</li>
157 : vlad 1.1
158 :     <li>
159 : vlad 1.11 C.3.1. accept any license agreements</li>
160 :    
161 :     <li>
162 : vlad 1.8 C.4. click [Finish] and proceed to install the update. When you see feature
163 : vlad 1.10 verification dialog, click [Install].</li>
164 : vlad 1.1
165 :     <li>
166 : dejan 1.12 C.5. when you complete the installation, you'll be prompted to restart.
167 : vlad 1.10 Select [Yes] to restart the platform</li>
168 : vlad 1.1
169 :     <li>
170 : dejan 1.12 C.6. workbench should restart automatically</li><ul>
171 : vlad 1.1 <li>
172 : vlad 1.8 <b>PLEASE NOTE</b>: at this point you are no longer executing the update
173 :     manager code you started with, but rather are running a version of the
174 :     update manager that was contained in the update (along with the rest of
175 : dejan 1.12 the platform plug-ins). Depending on what the update site contained at that
176 : vlad 1.8 point (changes build to build) the platform may not even restart, and you
177 :     may need to reinstall eclipse to continue. Report defects for this (to
178 :     make sure there is not actually a legitimate problem) but please be clear
179 :     that you failed in step C.6.</li>
180 : vlad 1.1 </ul>
181 :    
182 :     <li>
183 : vlad 1.10 C.7. go to Help> About> [Plug-In Details] and [Feature Details] to verify
184 : vlad 1.8 you are running new version of the platform (the versions for the items
185 : dejan 1.12 will be 2.1.0.&lt;qualifier>)</li>
186 : vlad 1.1
187 :     <li>
188 : vlad 1.8 C.8. Go to Help> Software Updates> Update Manager and expand "Current Configuration"
189 :     and verify you now recognize the new version of the platform that was updated</li>
190 : vlad 1.1 </ul>
191 :    
192 :     <h4>
193 : vlad 1.8 D. Restoring Original Configuration</h4>
194 : vlad 1.1
195 :     <ul>
196 :     <li>
197 : vlad 1.8 D.1. in Update Manager, expand "Saved Configurations"</li>
198 : vlad 1.1
199 :     <li>
200 : vlad 1.8 D.2. select "Baseline" created in step B</li>
201 : vlad 1.1
202 :     <li>
203 : vlad 1.10 D.3. press [Restore]</li>
204 : vlad 1.1
205 :     <li>
206 : vlad 1.8 D.4. Restart the workbench when prompted</li>
207 : vlad 1.1
208 :     <li>
209 : dejan 1.12 D.5. workbench should restart automatically, and open into Update Manager</li>
210 : vlad 1.1
211 :     <li>
212 : vlad 1.8 D.6. expand "Current Configuration" and verify all configured features
213 : dejan 1.12 are the baseline feature versions (generally 2.1.0)</li>
214 : vlad 1.1
215 :     <li>
216 : vlad 1.10 D.6.1. click "Show Disabled Features" button in the toolbar of the Configurations
217 : dejan 1.12 view. Observe the updated version as disabled.</li>
218 : vlad 1.10
219 :     <li>
220 : dejan 1.12 D.7. click the "Show Disabled Features" button in the Configuration view
221 : vlad 1.1 tool bar</li>
222 :    
223 :     <li>
224 : vlad 1.8 D.8. verify "Current Configuration" shows the features updated in steps
225 : vlad 1.1 D and E as disabled (different icon)</li>
226 : vlad 1.3
227 :     <li>
228 : vlad 1.10 D.9. go to Help> About dialog, [Plug-In Details] and verify you are in
229 : dejan 1.12 fact running the baseline plug-ins (all 2.0.0, except for the "special cases"
230 :     like Xerces, Ant, Lucene, Tomcat, etc)</li>
231 : vlad 1.1
232 :     <li>
233 : vlad 1.8 D.10. shut down the workbench</li>
234 : vlad 1.1 </ul>
235 :    
236 : vlad 1.2 <h2>
237 :     Part 2: Alphabet Soup</h2>
238 :    
239 :     <h3>
240 :     Setup:</h3>
241 :     Available sites:
242 :     <ul>
243 :     <li>
244 : vlad 1.5 <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-update-home/site/index.html">http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-update-home/site/</a></li>
245 : vlad 1.2 </ul>
246 : dejan 1.12 The above site contains pre-built features used as part of the following
247 : vlad 1.2 scenario steps. It also includes several .zip files (containing features
248 : dejan 1.12 and plug-ins) that are used to simulate native installer steps.<br>&nbsp;
249 : vlad 1.2 <table BORDER COLS=1 WIDTH="100%" >
250 :     <tr>
251 :     <td>
252 :     <center><b><font color="#FF0000">*** PLEASE READ *** PLEASE READ *** PLEASE
253 :     READ *** PLEASE READ ***</font></b></center>
254 :     </td>
255 :     </tr>
256 :    
257 :     <tr>
258 : dejan 1.12 <td><font color="#000000">When opening Bugzilla defects, use the Platform/Update
259 : vlad 1.2 component. Please ALWAYS specify the failing scenario step, and include
260 :     a .zip of the &lt;workspace>/.metadata/ directory</font></td>
261 :     </tr>
262 :     </table>
263 :    
264 :     <h3>
265 :     Description:</h3>
266 :     The Alphabet Soup is a simple application packaged as an Eclipse product,
267 :     plus several extensions. The application installs a tool button, and a
268 :     menu ("Alphabet Soup") that can be used to query the content of the "soup
269 :     bowl" and interact with the individual installed "letters" (each letter
270 : dejan 1.12 in the bowl corresponds to a separate plug-in)
271 : vlad 1.2 <ul>
272 :     <li>
273 :     base product is a nested feature, my.alphabet, containing two sub-features
274 :     with base sets of "letters"</li>
275 :    
276 :     <li>
277 : dejan 1.12 3 extension features containing additional "letters" (plug-ins). The features
278 : vlad 1.2 have a dependency relationship as follows:</li>
279 :    
280 :     <ul>
281 :     <li>
282 :     "round letters" extension pack requires the base to be installed</li>
283 :    
284 :     <li>
285 :     "straight letters" extension pack requires "round letters" extension pack
286 :     to be installed</li>
287 :    
288 :     <li>
289 :     "numbers" extension pack requires both "round letters" extension pack and
290 :     "straight letters" extension pack to be installed</li>
291 :     </ul>
292 :     </ul>
293 : dejan 1.12 Just follow the steps and you'll get the idea.<h3>
294 : vlad 1.2 Steps:</h3>
295 :    
296 :     <ul>
297 :     <li>
298 :     Install second copy of Eclipse to run these scenarios ... do not use your
299 :     development copy of Eclipse for this.</li>
300 :    
301 :     <li>
302 :     either use the default workspace created by the second Eclipse copy, or
303 :     specify (-data) a new workspace for these scenarios</li>
304 :     </ul>
305 :    
306 :     <h4>
307 :     O. Completing the install</h4>
308 :    
309 :     <ul>
310 :     <li>
311 : dejan 1.12 O.1. after you have installed baseline eclipse, unzip the Alphabet Soup
312 : vlad 1.2 product features from <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-update-home/site/native/my.alphabet_1.0.0.zip">my.alphabet_1.0.0.zip</a>&nbsp;
313 :     into the eclipse/ installation directory. The unzip should overwrite the
314 :     install.ini file that is packaged with Eclipse (sets the Alphabet Soup
315 :     feature as the primary feature). The product feature .zips can be found
316 :     in <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-update-home/site/native/">http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-update-home/site/native/</a></li>
317 :    
318 :     <li>
319 :     O.2. start eclipse .... after "Completing the install ..." the platform
320 :     restarts as "Alphabet Soup" application (own Welcome, About)</li>
321 :    
322 :     <li>
323 :     O.3. Click on the "Alphabet Soup" button in the tool bar ... you should
324 :     have letters A, B, C and E (all 1.0.0) in your bowl.</li>
325 :    
326 :     <li>
327 :     O.4. Go to the "Alphabet Soup" menu and verify you can interact with each
328 :     letter (one action per letter on the menu)</li>
329 :    
330 :     <li>
331 :     O.5. Open Help> Software Updates> Update Manager</li>
332 :    
333 :     <li>
334 :     O.6. Expand "Current Configuration". Verify "Alphabet Soup 1.0.0" is configured,
335 : dejan 1.12 and it contains 2 sub-features (Round and Straight letters)</li>
336 : vlad 1.2
337 :     <li>
338 : dejan 1.12 O.7. click on each of the features and view more details about each feature</li>
339 : vlad 1.2
340 :     <li>
341 :     O.8. select "Alphabet Soup 1.0.0" and press [Disable]. You should be notified
342 :     that you cannot disable the primary feature (if this is not the case, [Cancel]
343 :     the disable action and report a defect).</li>
344 :     </ul>
345 :    
346 :     <h4>
347 :     P. Updating the primary feature using update manager</h4>
348 :    
349 :     <ul>
350 :     <li>
351 :     P.1. expand "Sites to Visit", and "Alphabet Soup Update Site" and "Alphabet
352 :     Soup Category"</li>
353 :    
354 :     <li>
355 :     P.2. Select "Alphabet Soup 1.0.0" ... preview should not show [Update]
356 :     button</li>
357 :    
358 :     <li>
359 :     P.3. Select "Alphabet Soup 1.0.1" and select [Update]. Go through the install
360 :     wizard accepting defaults.</li>
361 :    
362 :     <li>
363 :     P.4. Restart the workbench when prompted. Will restart with update manager
364 :     open.</li>
365 :    
366 :     <li>
367 :     P.5. Expand "Current Configuration" .... verify you now have Alphabet Soup
368 :     1.0.1 installed and configured.</li>
369 :    
370 :     <li>
371 :     P.6. Click the "Show disabled features" filter button .... should see both
372 : dejan 1.12 versions (one enabled, the other disabled (icon with red "stop"
373 : vlad 1.2 overlay))</li>
374 :    
375 :     <li>
376 :     P.7. click the "Alphabet Soup" tool button ... should show new versions
377 :     of the base letters (1.0.1). The actions on "Alphabet Soup" menu should
378 :     also indicate we are running the new version.</li>
379 :    
380 :     <li>
381 :     P.8. close update manager</li>
382 :    
383 :     <li>
384 :     P.9. shut down the workbench</li>
385 :     </ul>
386 :    
387 :     <h4>
388 :     Q. Updating the primary feature using "native" install (.zip)</h4>
389 :    
390 :     <ul>
391 :     <li>
392 : dejan 1.12 Q.1. unzip the Alphabet Soup product features from <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-update-home/site/native/my.alphabet_1.1.0.zip">my.alphabet_1.1.0.zip</a>&nbsp;
393 : vlad 1.2 into the eclipse/ installation directory (look into the features/ or plugins/
394 : dejan 1.12 subdirectory to verify you see new 1.1.0 versions)</li>
395 : vlad 1.2
396 :     <li>
397 : dejan 1.12 Q.2. start Eclipse (a.k.a. Alphabet Soup). You'll see the splash coming
398 :     up twice as the platform is updating the configuration. Workbench will
399 : vlad 1.2 come up, with a dialog informing you have changes. Click [OK] to open the
400 :     update manager change dialog.</li>
401 :    
402 :     <li>
403 :     Q.3. check the change (so it is applied) and press [Finish]</li>
404 :    
405 :     <li>
406 :     Q.4. restart the workbench when prompted</li>
407 :    
408 :     <li>
409 :     Q.5. click the "Alphabet Soup" tool button and trigger "Alphabet Soup"
410 :     menu action to see you have the new version (1.1.0) of the "soup bowl and
411 :     letters"</li>
412 :    
413 :     <li>
414 :     Q.6. Open update manager and expand "Current Configuration". Should see
415 : dejan 1.12 Alphabet Soup 1.1.0 enabled, and the other 2 disabled (click the
416 : vlad 1.2 "Show disabled features").</li>
417 :     </ul>
418 :    
419 :     <h4>
420 :     <font color="#000000">R. Adding an extension using the update manager</font></h4>
421 :    
422 :     <ul>
423 :     <li>
424 :     <font color="#000000">R.1. expand "Sites to Visit", "Alphabet Soup Update
425 :     Site", "Alphabet Soup Fun Pack - Round Letters"</font></li>
426 :    
427 :     <li>
428 :     <font color="#000000">R.2. select "Alphabet Soup Round Letters Extension
429 :     Pack 1.0.0" and click [Install]. Accept defaults in wizard and [Finish].
430 :     Restart workbench when prompted.</font></li>
431 :    
432 :     <li>
433 : dejan 1.12 <font color="#000000">R.3. click of the "Alphabet Soup" tool button and
434 : vlad 1.2 interact with "Alphabet Soup" menu to see new round letters (D and G).
435 : vlad 1.3 <b>Note:</b>
436 : dejan 1.12 may need to go to Window> Customize Perspective...> Other and select the
437 : vlad 1.3 action sets for the new letters</font></li>
438 : vlad 1.2
439 :     <li>
440 : dejan 1.12 <font color="#000000">R.4. expand Current Configuration and verify the
441 : vlad 1.2 new feature is showing as configured.</font></li>
442 :    
443 :     <li>
444 : dejan 1.12 <font color="#000000">R.5. close the update manager and shut down the workbench</font></li>
445 :    
446 :     <li>
447 :     R.6. As an alternative, try to install several extension features at once using
448 :     group install. For each feature you want to add, check the checkbox at the
449 :     bottom of the Preview for that feature. When done, go to 'Selected Updates' view
450 :     and process all the pending jobs. A multi-install wizard should guide you
451 :     through the installation.</li>
452 : vlad 1.2 </ul>
453 :    
454 :     <h4>
455 :     <font color="#000000">S. Adding an extension using "native" install (.zip)
456 :     and link file</font></h4>
457 :    
458 :     <ul>
459 :     <li>
460 :     <font color="#000000">S.0. <b>Note</b>: the first 3 steps will typically
461 :     be performed by a native installer. Since you are simulating these steps
462 :     you need to do this manually.</font></li>
463 :    
464 :     <li>
465 :     <font color="#000000">S.1. Set up a new install directory somewhere in
466 :     your file system. Create eclipse/ subdirectory under it. U</font>nzip the
467 : dejan 1.12 Alphabet Soup Straight Letters extension&nbsp; from <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-update-home/site/native/my.alphabet.more.straight.letters_1.0.0.zip">my.alphabet.more.straight.letters_1.0.0.zip</a>&nbsp;
468 : vlad 1.2 into the eclipse/ subdirectory. You should end up with</li>
469 :    
470 :     <ul>
471 :     <li>
472 : vlad 1.3 &lt;some new install directory>/</li>
473 :    
474 :     <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eclipse/
475 :     <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
476 :     features/
477 :     <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
478 :     plugins/</ul>
479 : vlad 1.2
480 :     <li>
481 :     S.2. In the original eclipse install (the one that contains the platform
482 :     and Alphabet Soup), create a new directory called "links" as a peer to
483 :     features/ and plugins/. You should end up with</li>
484 :    
485 :     <ul>
486 :     <li>
487 : vlad 1.3 &lt;eclipse platform install directory>/</li>
488 :    
489 :     <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eclipse/
490 :     <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
491 :     links/
492 :     <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; features/
493 :     <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
494 :     plugins/</ul>
495 : vlad 1.2
496 : dejan 1.12 <li>S.3. within the links/ subdirectory, create a file called my.alphabet.link&nbsp;
497 :     and add a single line into it</li> <br>
498 :     <br>
499 :     <font face="Courier New">&nbsp;&nbsp;&nbsp; <font size="2">path=&lt;some new
500 :     install directory&gt; </font></font>
501 : vlad 1.3 <p><b>Note</b>: the path should be an absolute path using local file system
502 : vlad 1.2 syntax. The .link file is loaded as a Java properties file, so on Windows
503 : dejan 1.12 you need to double up the back-slashes (e.g. path=c:\\temp\\install) </li>
504 : vlad 1.2 <li>
505 : dejan 1.12 S.4. start eclipse (Alphabet Soup). You'll see the splash coming up twice
506 :     as the platform is updating the configuration. Workbench will come up,
507 : vlad 1.2 with a dialog informing you have changes. Click [OK] to open the update
508 :     manager change dialog.</li>
509 :    
510 :     <li>
511 :     S.5. check the change (so it is applied) and press [Finish]</li>
512 :    
513 :     <li>
514 :     S.6. restart the workbench when prompted</li>
515 :    
516 :     <li>
517 :     S.7. click the "Alphabet Soup" tool button and trigger "Alphabet Soup"
518 : vlad 1.3 menu action to see you have the new letters.</li>
519 : vlad 1.2
520 : vlad 1.3 <br><b>Note</b>: may need to go to Window> Customize Perspective...> Other
521 :     and select the new letters to get the menu actions to become visible
522 :     <br><b>Note</b>: if you are following all the steps in the scenario, the
523 :     base letters (A, B, C, E) should be at 1.1.0, and the extensions (D, G)
524 :     (F, H) at 1.0.0
525 : vlad 1.2 <li>
526 :     S.8. Open update manager and expand "Current Configuration". Should see
527 :     a new site representing the extension install, and it should contain the
528 :     extension feature you've installed.</li>
529 : dejan 1.12 <li>
530 :     S.9. Click on the new extension, and disable it in the Preview view. After
531 :     restart, verify that all the features and plug-ins from the extension are
532 :     missing. Enable it and verify that they are back after the restart.</li>
533 : vlad 1.2 </ul>
534 :    
535 :     <h4>
536 :     T. Installing another extension using the update manager (with environment
537 :     filtering)</h4>
538 :    
539 :     <ul>
540 :     <li>
541 :     <font color="#000000">T.1. expand "Sites to Visit", "Alphabet Soup Update
542 :     Site", "Alphabet Soup Fun Pack - Numbers"</font></li>
543 :    
544 :     <li>
545 :     <font color="#000000">T.2. The Numbers extension specifies an OS in its
546 :     feature definition. The update site contains features for Win and Linux.
547 :     On those two platforms you should see a list of features designated for
548 :     than platform. On other platforms you are out of luck ... you don't get
549 :     to play with numbers (skip the rest of this step)</font></li>
550 :    
551 :     <li>
552 :     <font color="#000000">T.3. uncheck the "Show matching features only" filter
553 : vlad 1.6 .... should now see all the features for both platforms. Check the filter
554 : vlad 1.2 back again.</font></li>
555 :    
556 :     <li>
557 :     <font color="#000000">T.4. select "Alphabet Soup Numbers Extension Pack
558 :     for &lt;OS>1.0.1" and click [Install]. Accept defaults in wizard. In the
559 :     location selection page ensure the extension location created in steps
560 :     S is not offered as a choice. Press [Finish]. Restart workbench when prompted.</font></li>
561 :    
562 :     <li>
563 :     <font color="#000000">T.5. click of the "Alphabet Soup" tool button and
564 :     interact with "Alphabet Soup" menu to see new numbers (3 and 5). <b>Note:</b>
565 : dejan 1.12 may need to go to Window> Customize Perspective...> Other and select the
566 : vlad 1.2 action sets for the new numbers</font></li>
567 :    
568 :     <li>
569 : dejan 1.12 <font color="#000000">T.6. expand Current Configuration and verify the
570 : vlad 1.2 new feature is showing as configured in the original install site</font></li>
571 :    
572 :     <li>
573 : vlad 1.6 <font color="#000000">T.7. close the update manager and shut down the workbench</font></li>
574 : vlad 1.2 </ul>
575 :    
576 : vlad 1.1 <h4>
577 : vlad 1.2 <font color="#000000">"Free-form" testing</font></h4>
578 :    
579 :     <ul>
580 :     <li>
581 :     <font color="#000000">the above scenarios describe a path through the update
582 :     support. Run through it once as described. There is lot's of opportunity
583 :     to do thing in different order, click on ither buttons, try other features
584 :     in the UI. Go ahead an explore. Remember, is you see something that does
585 :     not work, is not correct, or is not what you'd expected, open Bugzilla
586 :     defects in the platform/update component. Please ALWAYS specify the steps
587 :     leading up to the failure, and include a .zip of the &lt;workspace>/.metadata/
588 :     directory</font></li>
589 : vlad 1.4 </ul>
590 : vlad 1.2
591 : dejan 1.12 <h2>
592 :     Part 3: Optional features and e-fixes</h2>
593 :    
594 :     <h3>
595 :     Setup:</h3>
596 :     <p>Available sites:</p>
597 :     <ul>
598 :     <li>
599 :     <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-update-home/site/index.html">http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-update-home/optionalSite/</a></li>
600 :     </ul>
601 :     <p>The above site contains pre-built features used as part of the following
602 :     scenario steps.<br>&nbsp; </p>
603 :     <table BORDER COLS=1 WIDTH="100%" >
604 :     <tr>
605 :     <td>
606 :     <center>
607 :     <p><b><font color="#FF0000">*** PLEASE READ *** PLEASE READ *** PLEASE
608 :     READ *** PLEASE READ ***</font></b></p>
609 :     </center>
610 :     </td>
611 :     </tr>
612 :    
613 :     <tr>
614 :     <td><font color="#000000">When opening Bugzilla defects, use the Platform/Update
615 :     component. Please ALWAYS specify the failing scenario step, and include
616 :     a .zip of the &lt;workspace>/.metadata/ directory. Note that we ran out of
617 :     letters, so we are starting from A again. You need to include the part number
618 :     when specifying steps (e.g. 3.A7)</font></td>
619 :     </tr>
620 :     </table>
621 :    
622 :     <h3>
623 :     Description:</h3>
624 :     <p>The Optional Site is a simple site that contains several versions of the
625 :     'Root' feature. The feature includes another feature (XYZBogus) that in turn
626 :     includes features XYZ and Bogus. The last two features are included as optional,
627 :     which means that users can elect not to install them. Several interesting
628 :     consequences result from this capability, and this part deals with them.</p>
629 :     <p>The site also contains several e-fixes. E-fix is a feature that is designed
630 :     to patch another feature with an exact ID and version. It is used to deliver
631 :     temporary fixes between full root updates.</p>
632 :     <h2>A. Installing feature Root 1.0.0</h2>
633 :     <p>A1. Open Update Manager. Create a bookmark with the URL listed above.<br>
634 :     A2. Expand the new node and select feature Root 1.0.0. Press 'Install' button in
635 :     the Preview view.<br>
636 :     A3. Accept the license in the License page.<br>
637 :     A4. Uncheck 'XYZ 1.0.0' optional feature in the Optional Features page. Leave
638 :     'Bogus 1.0.0' feature selected.<br>
639 :     A5. Install (accept unsigned feature). Restart.<br>
640 :     A6. Verify that 'Root 1.0.0' feature has been installed and that 'XYZ 1.0.0' is
641 :     missing. <br>
642 :     A7. Toggle the view button so that disabled features are visible. Verify that
643 :     'XYZ 1.0.0' is shown and marked as '(not installed')<br>
644 :     A8. If you want to stop being warned about unsigned features, toggle the option
645 :     off in the Install/Update preferences. Verify that you are warned about the
646 :     consequences (rogue features deleting your entire hard drive and such).</p>
647 :     <h2>B. Updating Root 1.0.0 to Root 1.0.1</h2>
648 :     <p>B1. Open Update Manager. Expand 'Optional site' bookmark created in scenario
649 :     A and select 'Root 1.0.1'. Verify that Preview view shows 'Update' button. Press
650 :     it.<br>
651 :     B2. After accepting the license, verify that features 'XYZBogus' and 'Bogus' are
652 :     checked&nbsp; and grayed out in 'Optional Features' page, while 'XYZ' plug-ins is
653 :     unchecked (leave it unchecked). Install and restart.<br>
654 :     B3. Verify that we now have Root 1.0.1 installed that is still without XYZ
655 :     feature (XYZ 1.0.1 shows as 'not installed' when disabled features are shown in
656 :     the view).</p>
657 :     <h2>C. Preserving the state of the optional feature</h2>
658 :     <p>C1. Close Eclipse. Manually delete all 'com.example.*' features from the
659 :     features/ directory and all 'com.example.*' plug-ins from the plugins/
660 :     directory. Delete the '.config' directory in the .metadata directory of the
661 :     workspace (you want to preserve the bookmark).<br>
662 :     C2. Repeat scenario A but this time leave all the optional features selected.<br>
663 :     C3. Restart and open current configuration. Verify that all the features are
664 :     showing as enabled.<br>
665 :     C4. Select 'XYZ 1.0.0' feature and select 'Disable' button in the preview.
666 :     Restart.<br>
667 :     C5. Verify that 'XYZ 1.0.0' feature is now disabled in the 'Root 1.0.0'
668 :     hierarchy (you will need to make disabled features visible in the view to do
669 :     that).<br>
670 :     C6. Move to the Updates view and find Root 1.0.1 feature in 'Optional Site'
671 :     bookmark. Click on 'Update' button.<br>
672 :     C7. After accepting the license, leave all settings default and install the new
673 :     version. Restart.<br>
674 :     C8. Verify that 'Root 1.0.1' is now installed, and that 'XYZBogus 1.0.1' and
675 :     'Bogus 1.0.1' are showing in the hierarchy. Also verify that 'XYZ 1.0.1' is <b>
676 :     installed but disabled </b>(we are testing whether the original state of XYZ
677 :     1.0.0 was preserved during the update). The expected outcome is that the new
678 :     version of XYZ is installed but it remains disabled as before.</p>
679 :     <h2>D1. Installing the missing optional feature (from the originating site)</h2>
680 :     <p>D1.1. Repeat cleanup as in C1.<br>
681 :     D1.2. Repeat the scenario A.<br>
682 :     D1.3. After the restart, go back to the Updates view and select Root 1.0.0
683 :     again. Verify that the action button is visible and that the label is &quot;Change&quot;.
684 :     Press it.<br>
685 :     D1.4. When in 'Optional Features' wizard page, ensure that 'Bogus 1.0.0'
686 :     optional feature is checked and grayed out. Select 'XYZ 1.0.0' feature. Finish
687 :     the install. Restart.<br>
688 :     D1.5. Verify that we now have all the features in 'Root 1.0.0' hierarchy in the
689 :     current configuration.</p>
690 :     <h2>D2. Installing the missing optional feature (using the saved originating
691 :     site URL)</h2>
692 :     <p>D2.1. After finishing D1., delete XYZ 1.0.0 feature and XYZ 1.0.0 plug-in
693 :     manually from <b>features</b> and <b>plugins</b> directories, respectively.<br>
694 :     D2.2. After restart, open Update Manager and toggle 'Show Disabled Features'
695 :     button on the 'Configuration' view. Select 'XYZ 1.0.0' feature object (should be
696 :     shown as 'not installed').<br>
697 :     D2.3. Verify that the 'Install' button is shown in the Details view. Press it.<br>
698 :     D2.4. When the install wizard shows up, follow it until XYZ 1.0.0 plug-in is
699 :     installed. <font color="#0000FF">Cool: missing optional feature reference has a
700 :     preserved URL of the originating site that it can use to reconnect and install
701 :     it later.</font></p>
702 :     <h2>E. Discovering missing optional feature</h2>
703 :     <p>E1. Manually copy 'com.example.xyz_1.0.0' from 'features' directory and
704 :     'com.example.xyz_1.0.0' from 'plugins' directory into a temp. place. After that,
705 :     repeat cleanup as in C1.<br>
706 :     E2. Repeat the scenario A and verify that XYZ 1.0.0 is missing from the
707 :     configuration (shown as 'not installed').<br>
708 :     E3. Close Eclipse. Manually copy 'com.example.xyz_1.0.0' feature from the temp.
709 :     space into the 'features' directory and 'com.example.xyz_1.0.0' plug-in from the
710 :     temp. space into the 'plugins' directory. Start Eclipse.<br>
711 :     E4. Verify that no dialog was shown and that feature XYZ 1.0.0 was detected and
712 :     configured into the hierarchy of 'Root 1.0.0'.</p>
713 :     <h2>F. Installing missing optional features natively after updates</h2>
714 :     <p>F1. Repeat preservation + cleanup as in E1.<br>
715 :     F2. Repeat the scenario A.<br>
716 :     F3. Run the 'one-click' update (Help-&gt;Software Updates-&gt;New Updates). The wizard
717 :     should discover feature 'Root 1.0.1'. Accept the license and finish install.
718 :     Restart.<br>
719 :     F4. At this point, we should have installed Root 1.0.1 with XYZBogus 1.0.1 and
720 :     Bogus 1.0.1, but not XYZ 1.0.1 (not installed because we didn't have XYZ 1.0.0
721 :     and one-click update should only update installed software).<br>
722 :     F5. Manually copy feature XYZ 1.0.0 from the temp space and plug-in XYZ 1.0.0
723 :     from the temp space as in E3. <br>
724 :     F6. At this point, verify that XYZ 1.0.0 is present in the hierarchy of XYZ
725 :     1.0.0 but disabled because Root 1.0.0 is disabled.<br>
726 :     F7. Run the 'one-click' update again as in F3. It should discover XYZ 1.0.1
727 :     again because we now have previous version of XYZ and it can now bring it up to
728 :     1.0.1<br>
729 :     F8. Verify in the configuration that XYZ 1.0.1 is now installed and enabled.</p>
730 :     <p><font color="#0000FF">Note: as you go through the the scenarios G, H and I
731 :     that deal with e-fixes, it is recommended to increase the coverage by switching
732 :     between multiple workspaces (install couple of e-fixes, then start with a new
733 :     workspace, install some more, create a new workspace, install some more, than
734 :     switch back to the first one). Since state is stored in each workspace, that
735 :     will give Update an additional workout to reconcile its state with changes in
736 :     the file system (both partial and full reconcilers will kick in).</font></p>
737 :     <h2>G1. Cumulative patches</h2>
738 :     <p>G1.1 Repeat steps C1, C2 and C3 to install Root 1.0.0 feature hierarchy.
739 :     Verify that all Root features (including optional ones) are installed.<br>
740 :     G1.2 Expand optional site bookmark in Updates and locate folder &quot;Emergency
741 :     Fixes&quot;. Locate feature EFIX e334 1.0.0. Select it and install it.<br>
742 :     G1.3 After restart, verify that EFIX e334 has been installed and that it
743 :     includes XYZ 1.0.0.e334. The same XYZ feature should be included by Root
744 :     1.0.0-&gt;XYZ Bogus 1.0.0 (should show up arrow indicating branch update). There
745 :     should be no errors or warnings.<br>
746 :     G1.4 Expand optional site bookmark in Updates and locate folder &quot;Emergency
747 :     Fixes&quot;. Locate feature EFIX e335 1.0.0. Select it and install it. <i>Note: e335
748 :     is a cumulative fix because it fixes a problem in XYZ 1.0.0 and also includes a
749 :     fix in e334.<br>
750 :     </i>G1.5 After restart, verify that e335 has been installed and that it includes
751 :     XYZ 1.0.0.e335. The same XYZ feature should be included by Root 1.0.0-&gt;XYZ Bogus
752 :     1.0.0 (should show up arrow indicating branch update).&nbsp;<br>
753 :     G1.6 <b>The same XYZ 1.0.0.e335 should also show up as a child of EFIX e334</b>.
754 :     The interpretation is that XYZ 1.0.0.e335 also includes a fix for e334, so the
755 :     fact that the previous version has been disabled does not invalidate EFIX e334.</p>
756 :     <h2>G2. Patches that include other patches</h2>
757 :     <p>G2.1. Repeat steps C1, C2 and C3 to install Root 1.0.0 feature hierarchy.
758 :     Verify that all Root features (including optional ones) are installed.<br>
759 :     G2.2. Expand optional site bookmark in Updates and locate folder 'Emergency
760 :     Fixes'. Locate feature EFIX e452 1.0.0. Select it and install it.<br>
761 :     G2.3. After restart, verify that: EFIX e452 is installed; its child feature e388
762 :     should include Bogus Feature 1.0.0.e388. The same Bogus Feature should be
763 :     included by Root 1.0.0 hierarchy. There should be no errors or warnings.<br>
764 :     G2.4. Expand 'Saved Configurations' folder. Verify that a backup configuration
765 :     for e452 has been created (backup configurations have label in format &quot;@&lt;id_version&gt;&nbsp;
766 :     backup&quot;.</p>
767 :     <h2>H. Updating feature branches with partial patch cleanup</h2>
768 :     <p>H1. After installing patch e452 in scenario G2, search for new updates by
769 :     selecting 'Window-&gt;Updates-&gt;New Updates'. <br>
770 :     H2. When the update wizard comes up with the results, uncheck the checkbox
771 :     'Filter features included ...'. Uncheck &quot;Root 1.0.1&quot; and check &quot;XYZBogus 1.0.1&quot;
772 :     from the list of search results. <font color="#0000FF">Cool: this demonstrates
773 :     how branches in the feature hierarchy can be individually updated.</font><br>
774 :     H3. Accept the license agreement and install the feature.<br>
775 :     H4. After restart, verify that Root 1.0.0 now includes XYZBogus 1.0.1 (<font color="#0000FF">Cool:
776 :     XYZBogus 1.0.1 image should have an upward pointing arrow overlay indicating
777 :     that the feature has been updated from the original version specified in the
778 :     Root 1.0.0 manifest</font>). Also verify that e388 does not show up anywhere,
779 :     but EFIX e452 should still be present in the configuration.</p>
780 :     <p><font color="#0000FF">Note: Technically, since EFIX e452 includes EFIX e388
781 :     and since e388 is now disabled because XYZBogus 1.0.1 is updated, EFIX e452
782 :     should show error status (missing included feature). Update performs additional
783 :     computation in this case to find if e452 is really broken. The fact is that even
784 :     though the referenced feature e388 is disabled, it is a patch for XYZBogus 1.0.0
785 :     which has since been upgraded. Updates makes a (daring) assumption that a formal
786 :     update for a feature includes all the patches published for a previous version
787 :     of that feature. In this particular case, Update assumes that XYZBogus 1.0.1,
788 :     being an update to XYZBogus 1.0.0, contains all the fixes registered for
789 :     XYZBogus 1.0.0, including e388. It concludes that EFIX e452 will indirectly
790 :     satisfy its need for e388 through XYZBogus 1.0.1 code.</font></p>
791 :     <h2>I. Updating feature root with patch cleanup</h2>
792 :     <p>I1. After updating XYZBogus in scenario H, search for updates again. This
793 :     time, accept the default (Root 1.0.1) and install it.<br>
794 :     I2. After restart, verify that Root 1.0.1 is installed and that all the included
795 :     features are version 1.0.1. Also verify that there are no e-fixes left enabled
796 :     in the configuration.<br>
797 :     I3. Open file &quot;.install-log&quot; in &lt;workspace&gt;/.metadata/.config/ and verify that
798 :     it contains logs of all the activities performed in scenarios G, H and I.</p>
799 :     <h2>J. Handling cross-site version conflicts</h2>
800 :     <p>The role of this scenario is to show how cross-site conflicts are handled.
801 :     Cross-site conflicts are caused by root features in separate install sites that
802 :     include features of the same ID but different versions. Since both features will
803 :     be configured and their plug-ins contributed to the Eclipse runtime, runtime
804 :     will resolve the duplication by selecting plug-ins with the higher version.
805 :     Update warns about this 'silent' upgrade when an attempt is made to install or
806 :     update a feature that can cause such a conflict to appear.</p>
807 :     <ul>
808 :     <li>Available sites:
809 :     <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-update-home/site/index.html">http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-update-home/extensionSite/</a></li>
810 :     </ul>
811 :     <p>J1. Repeat cleanup as in C1.<br>
812 :     J2. Select &quot;Optional Site&quot; bookmark as in A1 and install Root 1.0.0 with all the
813 :     optional features. Restart.<br>
814 :     J3. Add another bookmark called &quot;Extension Site&quot; with the URL as shown above.<br>
815 :     J4. Expand the bookmark object and select feature &quot;Root Extension 1.0.0&quot;. Press
816 :     &quot;Install&quot; button.<br>
817 :     J5. Accept the license and select both the optional features for install.<br>
818 :     J6. Do not accept the default target install site. Instead, create a new one by
819 :     pressing &quot;Add&quot; button. Choose a location outside the Eclipse product tree
820 :     (anywhere else on the disk). Press &quot;Finish&quot;. Restart.<br>
821 :     J7. Verify that the current configuration has two install sites. The first one
822 :     should contain Eclipse features and Root 1.0.0. The second one (the one you
823 :     picked in J6) should contain Root Product Extension 1.0.0. There should be no
824 :     conflicts.<br>
825 :     J8. Search for new updates by selecting &quot;Window-&gt;Updates-&gt;New Updates&quot;. You
826 :     should get two results: Root 1.0.1 and Root Extension 1.0.1. Uncheck Root 1.0.1.
827 :     Press &quot;Next&quot; and accept all other default settings until &quot;Finish&quot; is enabled.
828 :     Press Finish&quot;.<br>
829 :     J9. Verify that a warning dialog is opened explaining the conflict. The conflict
830 :     should be caused by XYZ and Bogus features that will be 1.0.0 in one site and
831 :     1.0.1 in another if the update proceeds. Answer &quot;No&quot;.<br>
832 :     J10. Return back to the first page of the wizard and select both results (Root
833 :     1.0.1 and Root Extension 1.0.1). Advance to the last page and press &quot;Finish&quot;
834 :     again. This time, there should be no conflicts because both XYZ and Bogus
835 :     features will be simultaneously updated to version 1.0.1.<br>
836 :     J11. After restart, verify that the current configuration shows no warning
837 :     overlays.</p>
838 :     <h2>I. Web-triggered updates</h2>
839 :     <p>Update Manager has a neat feature whereby it can run a Web application and
840 :     accept calls from a browser with the right URL. Tasks like presentation, search,
841 :     classification, user verification etc. can all be handled by the provider's web
842 :     site (presumably running a Web application itself). Features and plug-ins are
843 :     still in the standard update sites, but these sites are used as feature servers.
844 :     When users click on 'Download' or similar buttons or links, a URL query is
845 :     composed and sent to Eclipse with the Update Web application running. Update
846 :     servlet receives the query and initiates the install process. At this point, we
847 :     are in the familiar install wizard.</p>
848 :     <ul>
849 :     <li>Available sites:
850 :     <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-update-home/site/index.html">http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-update-home/optionalSite/index.html</a></li>
851 :     </ul>
852 :     <p>I1. Repeat the cleanup as in C1.<br>
853 :     I2. Open &quot;Preferences&quot; dialog and select &quot;Install/Update-&gt;Web-triggered updates&quot;
854 :     page. Turn the web application on. When pressing &quot;OK&quot; there will be a couple of
855 :     seconds delay (starting the Tomcat server).<br>
856 :     I3. Open Update Manager and create a new site bookmark using the URL listed
857 :     above. When in the wizard, choose the non-default 'Web site' bookmark type.
858 :     Finish.<br>
859 :     I4. Double-click on the bookmark to cause the External Preview view to open
860 :     (note: this is only on Windows; on other platform, the page will open in a
861 :     standalone Web browser).<br>
862 :     I5. You should see a page with two Download buttons. Press on the Download
863 :     button for Root 1.0.0. Verify that a progress monitor dialog opens while
864 :     connecting to the feature server. Eventually, Install Wizard should show up.
865 :     Follow it to install Root 1.0.0.<br>
866 :     I6. After restart, double-click on the Web link again and click on the
867 :     'Download' button for Root 1.0.0. This time, a problem response page should show
868 :     up indicating that the requested feature is already installed.<br>
869 :     I7. Click on the 'Download' button for the feature Root 1.0.1. This one should
870 :     be treated as an update. Follow it to the end and restart.<br>
871 :     I8. Verify that the configuration shows the correct features.</p>
872 :    
873 : vlad 1.1 </body>
874 : dejan 1.12 </html>