Web-liipaistut päivitykset

Eclipse-päivitystenhallinnassa voidaan hahmontaa ja selata Eclipse-päivityssivustoja ennustettavalla tavalla. Päivityssivusto voi sisältää rakenne-esityksessä näkyviä luokkia, ja nämä luokat voivat puolestaan sisältää tuoteominaisuuksia. Tuoteominaisuuksia voidaan tutkia päivitystenhallinnan esikatselunäkymässä. Jos tuoteominaisuus on kelvollinen asennusehdokas, se sisältää "Asenna nyt" -painikkeen, joka aloittaa Eclipse-ympäristön ohjatun asennustoiminnon. Kun asennustehtävä on suoritettu, tuoteominaisuus on osa tuotetta.

Tämä asennettavien tuoteominaisuuksien vakioesittelytapa ei ole ainoa esittelytapa. Toimittajat voivat ottaa päivitystenhallinnalta esimerkiksi esittely-, rekisteröinti- ja hakutehtäviä ja palauttaa niiden ohjauksen vasta sitten, kun Eclipse-tuotteeseen on aika asentaa tuoteominaisuus.

Päivitystenhallinnassa voidaan ajaa palvelinsovelma, joka voi hyväksyä pyyntöjä Web-sivuilta. Tämä toiminto ei ole automaattinen: se täytyy aktivoida Oletusasetukset>Asenna/päivitäe>Web-liipaistut päivitykset -sivulla. Kun painetaan OK-painiketta, päivitystenhallinta aktivoi sovelluspalvelimen, joka pystyy käsittelemään saapuvia pyyntöjä. Sen jälkeen kaikkiin päivitystenhallinnassa avattaviin URL-osoitteisiin koodataan vastakutsun URL-osoitetiedot. Jos alkuperäinen URL-osoite on säännöllinen Web-sivu, koodatussa URL-osoitteessa on kyselyosa, joka lisää Eclipse-sovelluksen kutsuun käytettävän vastakutsun URL-osoitteen:

http://acme.com/myApplication.html

muutetaan muotoon

http://acme.com/myApplication.html?updateURL=<localhost>:<localport>?org.eclipse.update/install

jossa localhost on paikalliskoneessasi olevan Eclipse-palvelimen osoite, localport valitaan dynaamisesti palvelimen käynnistyksen yhteydessä ja kysely on Eclipse-ympäristön Web-sovelluksen nimi ja pyynnön käsittelevän palvelinsovelman nimi.

Jos alkuperäinen URL-osoite on jo kysely:

http://acme.com/myApplication/myServlet?arg1=value1&arg2=value2

koodaus lisää tietosi toisena parametrina:

http://acme.com/myApplication/myServlet?arg1=value1&arg2=value2&updateURL=<localhost>:<localport>?org.eclipse.update/install

Tavalliset Web-sivut ja kyselyt ohittavat koodauksen, eikä se aiheuta ongelmia tai vaikuta esitykseen. Koodaus vain lisää tiedot, joita koodauksesta tietävä sivu voi käyttää.

Koska Web-sivu on käynnistettävä päivitystenhallinnassa, sivuston kirjanmerkit päivitysnäkymässä voidaan luoda Web-kirjanmerkkeinä. Päivitystenhallinta käsittelee nämä kirjanmerkit vastaavasti, ja kun napsautat kirjanmerkkiä, se avaa URL-osoitteen selaimessa (jos käyttö- ja ikkunointijärjestelmän versiossa on käytettävissä sisäinen selain, se avautuu suoraan päivitystenhallinnassa; muuten se avautuu pysyvän selaimen ikkunassa).

Tehtävät, jotka voidaan suorittaa Web-sivulla

Toimittajat voivat asettaa omia Web-päivityssivujaan haluamallaan tavalla: ne voivat käyttää tietokannoin tuettuja monimutkaisia Web-sovelluksia tai yksinkertaista, staattista HTML-kieltä. Monimutkaista arkkitehtuuria käyttämällä toimittajat voivat tarjota käyttäjille entistä enemmän lisäarvoa. Uusien tuoteominaisuuksien, päivitysten ja sähköisten korjausten yhdistelmähaut, graafisesti näyttävät valittujen tuoteominaisuuksien esitykset, niiden toimintoja koskevat artikkelit, erilaiset hyödylliset linkit ja suosituimpien tuoteominaisuuksien äänestykset muodostavat vain osan kaikista mahdollisuuksista. Lisäksi toimittajat voivat esimerkiksi rajoittaa joidenkin tuoteominaisuuksien käyttöä ottamalla käyttöön todennuksen tai vaatia käyttäjän rekisteröintiä.

Eclipse-sovelluksen kutsu Web-sivulta

Koodatut tiedot voidaan poimia monin eri tavoin. Hyvin yksinkertainen tapa on JavaScript-funktion käyttö seuraavasti:

<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>

Edellä oleva funktio jäsentää nykyisen sivun URL-osoitteen ja palauttaa kyselyn argumentit taulukkona.

Kutsun callback URL-osoitteen tarkoituksena on sallia, että Web-sivut palauttavat ohjauksen takaisin Eclipse-sovellukselle. Kun käyttäjä on valinnut asennettavan tuoteominaisuuden, se täytyy palauttaa Eclipse-sovellukselle viimeisteltäväksi. Web-laukaistun päivityksen tarkoituksena ei ole tehdä päivityssivustoista tarpeettomia: niitä tarvitaan yhä, mutta tässä skenaariossa niitä käytetään vain sijaintina, jossa tuoteominaisuuksia säilytetään. Web-sivun täytyy jossakin vaiheessa tehdä vastakutsu Eclipse-sovellukseen ja siirtää päivityssivuston URL-osoite sekä valitun tuoteominaisuuden tunnus ja versio. Nämä tiedot koodataan käyttämällä alkuperäisen vastakutsun URL-osoitetta ja lisäämällä argumentit siten, että muodostuu kysely.

Vastakutsukyselyn argumentit ovat seuraavat:

Eclipse-sovelluksen vastakutsu täytyy tehdä silloin, kun käyttäjät ovat tehneet kaikki valintansa Web-sivulla ja heidän tarvitsee enää painaa jonkinlaista latauspainiketta tai hyperlinkkiä. Tämän toiminnon yksinkertainen toteutus voi olla seuraavanlainen:

<input type="button" 	name="Download" value="Download" 
			onClick="javascript:download('com.example.root', '1.0.0')">

Yllä olevassa koodissa tuoteominaisuuden tunnus ja versio on pysyväiskoodattu painikkeen tunnisteeseen.

Lataustoiminto voidaan toteuttaa seuraavasti:

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;
   }
}

Yllä olevassa JavaScript-funktiossa vastakutsun URL-osoitetta, joka on alun perin koodattu sivun URL-osoitteeseen, käytetään kyselyn muodostukseen. Kun kysely on luotu, selainta pyydetään avaamaan se. Tuolloin selain kutsuu Eclipse-palvelinsovelmaa, joka käsittelee kyselyn, luo yhteyden toimittajan päivityssivustoon (tässä tapauksessa "http://acme.com/updateSite/") ja paikantaa tuoteominaisuuden, jolla on kyseinen tunnus ja versio. Jos kaikki menee suunnitellusti, Eclipse-ikkuna näkyy ylhäällä ja tuttu ohjattu asennustoiminto käynnistyy. Tässä vaiheessa olet taas Eclipse-sovelluksessa ja voit viimeistellä asennuksen normaalisti.

On hyvä muistuttaa, että koodattu vastakutsun URL-osoite on olennainen koko mekanismissa. Jos latauslinkin tai -painikkeen sisältävä sivu on alhaalla Web-sivustokartassa, Web-juurisivun (päivitystenhallinnassa aloitetun sivun) täytyy varmistaa, että kaikille sivuille välitetty vastakutsun URL-osoite on avattu tuolla sivulla. Tähän on monia tapoja (suora koodaus sivulla, väliaikaisen evästeen tallennus, sen säilytys palvelinsovelmassa, joka palvelee sivuja sivustolta ja niin edelleen).