Správce aktualizace Eclipse slouží k zobrazování a procházení site s aktualizacemi Eclipse předvídatelným způsobem. Site s aktualizacemi může obsahovat kategorie uvedené v pohledu stromu a tyto kategorie pak obsahují funkce. Funkce lze prohlížet v pohledu Náhled ve Správci aktualizace. Je-li funkce platným kandidátem pro instalaci, bude obsahovat tlačítko "Instalovat nyní", které spustí instalačního průvodce Eclipse. Po dokončení instalační úlohy se funkce stane součástí produktu.
Tato standardní prezentace instalovatelných funkcí není jediným způsobem aktualizace. Poskytovatelé mohou převzít prezentaci, registraci, vyhledávání a jiné úlohy od Správce aktualizace a vrátit mu řízení až tehdy, když má dojít k vlastní instalaci funkce do produktu Eclipse.
Správce aktualizace dokáže provozovat servlet, jenž umí přijímat požadavky z webových stránek. Tato schopnost není automatická: musí být aktivována na stránce Předvolby>Instalovat/Aktualizace>Aktualizace iniciované z webu (site). Po stisku OK Správce aktualizace zaktivuje aplikační server, který zpracuje příchozí požadavky. Po tomto kroku budou všechny adresy URL - otevřené v rámci Správce aktualizace - obsahovat kód s informacemi o zpětné URL. Je-li počáteční URL běžnou webovou stránkou, bude zakódovaná URL obsahovat dotazovací část, která přidá zpětnou URL sloužící k volání modulu Eclipse:
http://acme.com/myApplication.html
se změní na
http://acme.com/myApplication.html?updateURL=<localhost>:<localport>?org.eclipse.update/install
kde 'localhost' je adresa serveru Eclipse spuštěného na lokálním počítači, lokální port je vybrán dynamicky při spuštění serveru, a dotaz je název webové aplikace Eclipse a název servletu, jenž zpracuje žádost.
Pokud již původní URL obsahuje dotaz:
http://acme.com/myApplication/myServlet?arg1=value1&arg2=value2
zakódování pouze přidá naše informace jako další parametr:
http://acme.com/myApplication/myServlet?arg1=value1&arg2=value2&updateURL=<localhost>:<localport>?org.eclipse.update/install
Zakódování je ignorováno běžnými webovými stránkami a dotazy - nezpůsobuje žádné problémy ani neovlivňuje prezentaci. Pouze doplňuje informace s možností jejich využití stránkou, která o nich ví.
Protože webová stránka musí být spuštěna ze Správce aktualizace, záložky webu (site) v pohledu Aktualizovat lze vytvořit jako webové. Správce aktualizace s těmito záložkami příslušně zachází a když na některou poklepete, otevře URL v prohlížeči (je-li k dispozici vložený prohlížeč na dané verzi operačního a systému oken, otevře ji přímo ve Správci aktualizace; jinak ji otevře v rezidentním okně prohlížeče).
Poskytovatelé mají možnost nastavit své webové aktualizační stránky libovolným způsobem: mohou používat propracované webové aplikace podporované databázemi nebo jednoduché statické HTML. Použití komplexní architektury umožňuje poskytovatelům nabízet uživatelům větší hodnotu. Komplexní hledání nových funkcí, aktualizace a e-opravy, bohaté vizuální prezentace vybraných funkcí, články o jejich funkčnosti, různé užitečné odkazy a hlasování o 'nejoblíbenějších funkcích' jsou jen některé z možností. Poskytovatelé mohou navíc zpřístupnit autentizaci a omezit přístup k některým funkcím, vyžadovat registraci uživatelů atd.
Existuje mnoho různých způsobů k extrakci zakódovaných informací. Jednoduchá možnost je použít funkci Java Script, viz níže:
<SCRIPT LANGUAGE="JavaScript"> function getArgs() { var args = new Object(); var query = location.search.substring(1); var pairs = query.split("&"); for (var i=0; i<pairs.length; i++) { var pos = pairs[i].indexOf('='); if (pos == -1) continue; var argname = pairs[i].substring(0, pos); var value = pairs[i].substring(pos+1); args[argname] = unescape(value); } return args; } </SCRIPT>
Výše uvedená funkce analyzuje adresu URL aktuální stránky a vrací argumenty dotazu jako pole.
Úlohou zpětné adresy URL je umožnit webovým stránkám vrácení řízení zpět do modulu Eclipse. Jakmile uživatel vybere funkci k instalaci, musí se vrátit zpět do Eclipse a dokončit ji. Úlohou webem iniciované aktualizace není vyřadit weby (site) s aktualizacemi ze hry: jsou stále potřeba, ale v tomto scénáři slouží pouze jako místo, kde jsou funkce fyzicky uloženy. Webová stránka musí v určitém okamžiku volat zpět do modulu Eclipse a předat URL aktualizačního serveru spolu s ID a verzí vybrané funkce. Tato informace je zakódována s využitím původní zpětné adresy URL a přidáním argumentů, čímž dojde k vytvoření dotazu.
Argumenty dotazu zpětného volání:
Volání zpět do Eclipse má být provedeno poté, co uživatel dokončí všechny výběry na webové stránce a zbývá jen stisknout nějaké tlačítko nebo odkaz 'Stáhnout'. Příklad jednoduché implementace této schopnosti:
<input type="button" name="Download" value="Download" onClick="javascript:download('com.example.root', '1.0.0')">
Ve výše uvedeném kódu jsou Id a verze funkce pevně naprogramovány ve značce tlačítka.
Funkci stahování lze implementovat následujícím způsobem:
function download(id, version) { var args = getArgs(); if (args.updateURL) { var updateURL = args.updateURL; var callback = updateURL+"?server= "+escape("http://acme.com/updateSite/")+ "&feature="+escape(id+'_'+version)+"&backURL="+escape(location); location = callback; } }
Ve výše uvedené funkci JavaScript k vytvoření dotazu slouží zpětná adresa URL, která byla zakódována ve stránce URL ze začátku. Jakmile dojde k vytvoření dotazu, bude prohlížeč požádán o jeho otevření. Tento krok zajistí, že prohlížeč zavolá servlet Eclipse, který dotaz zpracuje, připojí se k webu (site) s aktualizacemi poskytovatele (v tomto případě "http://acme.com/updateSite/") a vyhledá funkci se zadaným id a verzí. Pokud vše proběhne v pořádku, dojde k zobrazení okna Eclipse na popředí a k otevření známého instalačního průvodce. V tomto okamžiku budete zpět v Eclipse a můžete tak dokončit instalaci jako obvykle.
Je důležité upozornit na to, že získání kódované zpětné URL je klíčové pro celý mechanizmus. Pokud stránka obsahující odkaz či tlačítko 'stáhnout' je několik úrovní hluboko v mapě webového serveru, musí kořenová webová stránka (ta, jež byla spuštěna ze Správce aktualizace) zajistit předání zpětné URL dále všem stránkám otevřeným z této stránky. To lze provést různými způsoby (přímé zakódování v dané stránce, uložení přechodnýho souboru cookie, jeho uložení v servletu, jenž slouží stránkám z tohoto webu (site) atd.).