Eclipses oppdateringsstyrer kan brukes til å behandle og bla gjennom Eclipse-oppdateringssteder på en forutsigelig måte. Et oppdateringssted kan inneholde kategorier vist i treoversikten, og disse kategoriene inneholder i sin tur funksjoner. Funksjoner kan inspiseres i forhåndsvisningen i oppdateringsstyreren. Hvis en funksjon er en gyldig installeringskandidat, inneholder den knappen "Installer nå", som starter installeringsveiviseren for Eclipse. Når installeringen er ferdig, er funksjonen en del av produktet.
Denne standardmåten å presenterer funksjoner for installering på, er ikke den eneste måten. Leverandører kan overta presentasjon, registrering og søking og andre oppgaver fra oppdateringsstyreren og returnere kontrollen bare når det er tid for faktisk å installere en funksjon i et Eclipse-produkt.
Oppdateringsstyreren kan kjøre en servlett som kan godta forespørsler fra web-sider. Denne funksjonaliteten er ikke automatisk: den må aktiveres på siden Preferanser>Installer/oppdater>Web-utløste oppdateringer. Når OK trykkes, aktiverer oppdateringsstyreren applikasjonsserveren som kan behandle innkommende forespørsler. Deretter blir alle URLer som er åpnet fra oppdateringsstyreren, kodet med informasjon om tilbakekall-URLen. Hvis den første URLen er en vanlig web-side, inneholder den kodede URLen spørringsdelen som legger til tilbakekall-URLen som skal brukes for å kalle opp Eclipse:
http://acme.com/myApplication.html
blir til
http://acme.com/myApplication.html?updateURL=<localhost>:<localport>?org.eclipse.update/install
der 'localhost' er adressen til Eclipse-serveren som kjøres på den lokale maskinen. Den lokale porten blir valgt dynamisk når serveren startes, og spørringen er Eclipses web-applikasjonsnavn og navnet på servletten som håndterer forespørselen.
Hvis den opprinnelige URLen allerede er en spørring:
http://acme.com/myApplication/myServlet?arg1=value1&arg2=value2
vil kodingen bare legge til informasjonen som en enda en parameter:
http://acme.com/myApplication/myServlet?arg1=value1&arg2=value2&updateURL=<localhost>:<localport>?org.eclipse.update/install
Kodingen blir ignorert av vanlige web-sider og spørringer, den fører ikke til problemer og påvirker heller ikke presentasjonen. Den legger bare til informasjon som kan brukes av en side som vet om den.
Fordi en web-side må startes fra oppdateringsstyreren, kan stedsbokmerker i Oppdateringer-visningen opprettes som web-bokmerker. Oppdateringsstyreren behandler disse bokmerkene deretter, og når du dobbeltklikker på et bokmerke, åpnes URLen i en nettleser. (Hvis en innebygd nettleser er tilgjengelig på den versjonen du har av operativ- og vindussystemet, blir den åpnet direkte i oppdateringsstyreren, ellers blir den åpnet i vinduet til den faste nettleseren).
Leverandører kan selv velge hvordan de vil konfigurere web-sidene for oppdatering: de kan bruke forseggjorte web-applikasjoner støttet av databaser, eller de kan bruke enkel, statisk HTML. Med mer kompleks arkitektur kan leverandørene tilby brukerne mer. Man kan for eksempel ha komplekse søk etter nye funksjoner, oppdateringer og e-rettelser, rik visuell presentasjon av valgte funksjoner, artikler om funksjonaliteten, forskjellige nyttige linker og 'mest populære funksjoner'-avstemning. I tillegg kan leverandører aktivere autentisering for å begrense tilgangen til noen av funksjonene, kreve brukerregistrering osv.
Det er mange forskjellige måter å trekke ut kodet informasjon på. En veldig enkel måte er å bruke Java-skriptfunksjonen som vist nedenfor:
<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>
Funksjonen over analyserer URLen for den gjeldende siden og returnerer spørringsargumenter som en matrise.
Rollen til tilbakekall-URLen er å la web-sider gi kontrollen tilbake til Eclipse. Når brukerne har valgt en funksjon som skal installeres, må de tilbake til Eclipse for å fullføre den. Rollen til den web-utløste oppdateringen er å gjøre oppdateringsstedet foreldet: de trengs fremdeles, men i dette scenariet blir de bare brukt som en plassering der funksjoner er lagret fysisk. Web-siden må på et eller annet tidspunkt utføre tilbakekall til Eclipse og sende oppdateringssted-URLen, i tillegg til den valgte funksjons-IDen og versjonen. Denne informasjonen blir kodet ved å bruke den opprinnelige tilbakekall-URLen og legge til argumentene, slik at det opprettes en spørring.
Argumentene for tilbakekallspørringen er:
Tilbakekall til Eclipse skal gjøres når brukerne har foretatt alle valg på web-siden, og alt som gjenstår, er å trykke en eller annen 'Last ned'-knapp eller hyperlink. Dette er en enkel implementering av denne funksjonaliteten:
<input type="button" name="Download" value="Download" onClick="javascript:download('com.example.root', '1.0.0')">
I koden over er funksjons-IDen og versjonene hardkodet i knappekoden.
Nedlastingsfunksjonen kan implementeres slik:
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; } }
I JavaScript-funksjonen over blir tilbakekall-URLen som var kodet på side-URLen fra begynnelsen, brukt til å utforme spørringen. Når spørringen er opprettet, blir nettleseren bedt om å åpne den. Dette trinnet vil få nettleseren til å kalle opp Eclipse-servletten, som vil behandle spørringen, koble seg til leverandørens oppdateringssted (i dette tilfellet "http://acme.com/updateSite/") og finne funksjonen med den oppgitte IDen og versjonen. Hvis alt går som det skal, vil Eclipse-vinduet bli vist øverst, og den velkjente installeringsveiviseren vil åpnes. Da er du tilbake i Eclipse og kan fullføre installeringen på vanlig måte.
Det er viktig å påpeke at det er avgjørende for hele mekanismen at du har en kodet tilbakekall-URL. Hvis siden som inneholder 'last ned'-linken eller knappen, er flere lag dyp i nettstedsoversikten, må rot-web-siden (den som er startet fra oppdateringsstyreren) forsikre seg om at tilbakekall-URLen er sendt ned til alle sidene som er åpnet fra den aktuelle siden. Dette kan gjøres på forskjellige måter (kode denne siden direkte, lagre en midlertidig cookie, lagre den i en servlett som betjener sidene fra stedet, osv.).