Webaktiverede opdateringer

Opdateringsstyringen til Eclipse kan anvendes til at udføre og gennemse Eclipse-opdateringswebsteder på en forudsigelig måde. Et opdateringswebsted kan indeholde kategorier, der vises i træstrukturen, og disse kategorier kan efter tur indeholde funktioner. Funktionerne kan undersøges i oversigten Vis resultat i opdateringsstyringen. Hvis en funktion er en gyldig installationskandidat, indeholder den knappen "Installér nu", som starter Eclipse-installationsguiden. Efter afslutningen af installation bliver funktionen en del af produktet.

Denne standardmåde til præsentation af funktioner til installation er ikke den eneste måde. Udbydere kan overtage præsentation, registrering, søgning og andre funktioner fra opdateringsstyringen og kun returnere styringen, når en funktion rent faktisk skal installeres i et Eclipse-produkt.

Opdateringsstyringen kan udføre en miniserver, der kan acceptere anmodninger fra websider. Denne mulighed er ikke automatisk. Den skal aktiveres på siden Indstillinger>Installér/Opdatér>Webaktiverede opdateringer. Når der trykkes på OK, aktiverer opdateringsstyringen den programserver, der kan håndtere indgående anmodninger. Derefter bliver alle URL'er, der åbnes inde fra opdateringsstyringen, kodet med oplysningerne fra tilbagekalds-URL'en. Hvis start-URL'en er en almindelig webside, indeholder den kodede URL den forespørgselsdel (som tilføjer tilbagekalds-URL'en, der skal bruges), som kalder Eclipse:

http://acme.com/myApplication.html

bliver til

http://acme.com/myApplication.html?updateURL=<lokal vært>:<lokal port>?org.eclipse.update/install

Hvor 'lokal vært' er adressen på den Eclipse-server, der udføres på din lokale maskine. Lokal port vælges dynamisk, når serveren startes, og forespørgslen er navnet på Eclipse Web-programmet og navnet på den miniserver, der håndterer anmodningen.

Hvis den oprindelige URL allerede er en forespørgsel:

http://acme.com/myApplication/myServlet?arg1=værdi1&arg2=værdi2

tilføjer kodningen ganske enkelt oplysningerne som en anden parameter:

http://acme.com/myApplication/myServlet?arg1=værdi1&arg2=værdi2&updateURL=<lokal vært>:<lokal port>?org.eclipse.update/install

Kodningen ignoreres af normale websider og forespørgsler og medfører ingen problemer og påvirker heller ikke præsentationen. Den tilføjer ganske enkelt oplysninger, der kan anvendes af en side, som kender den.

Da en webside skal startes fra opdateringsstyringen, kan bogmærker oprettes i oversigten Opdateringer som internetbogmærker. Opdateringsstyringen behandler disse bogmærker som sådan, og når du dobbeltklikker på et, åbner det URL'en i en browser. Hvis en indbygget browser er tilgængelig i styre- og vinduessystemet, åbnes den direkte i opdateringsstyringen. Ellers åbnes den i det permanente browservindue.

Opgaver, der kan udføres på en webside

Udbydere kan konfigurere deres websider til opdatering, som de vil. De kan anvende omfattende webprogrammer, der er baseret på databaser, eller bruge enkel statisk HTML-kode. Med en mere kompleks arkitektur kan udbydere give mere værdi til brugere. Nogle af mulighederne er komplekse søgninger efter nye funktioner, opdateringer og e-rettelser, omfattende visuelle præsentationer af udvalgte funktioner, artikler om deres funktionalitet, forskellige nyttige link, afstemning om 'mest populære funktioner' mv. Derudover kan udbydere anvende validering for at begrænse adgangen til nogle af funktionerne, kræve brugerregistrering osv.

Aktivér Eclipse fra en webside

Der er mange måder at udtrække kodede oplysninger på. En meget simpel måde er at bruge Java Scriptfunktionen, der vises 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>

Ovenstående funktion analyserer URL'en til den aktuelle side og returnerer forespørgselsparametre som et array.

Tilbagekalds-URL'ens rolle er at tillade websider, at de returnerer styringen tilbage til Eclipse. Når en bruger har valgt at installere en funktion, skal funktionen returneres til Eclipse, så den kan afsluttes. En webaktiveret opdaterings rolle er ikke at gøre opdateringswebsteder forældede. De skal stadig bruges, men i dette eksempel anvendes de ganske enkelt som en placering, hvor funktionerne er gemt fysisk. En webside skal på et tidspunkt kalde tilbage til Eclipse og overføre URL'en til opdateringswebstedet foruden den valgte funktions-id og version. Disse oplysninger kodes ved at anvende den oprindelige tilbagekalds-URL og tilføje parametrene og på den måde udforme en forespørgsel.

Parametrene til tilbagekaldsforespørgslen er:

Kald tilbage til Eclipse skal udføres, når brugere er færdige med alle valg på deres webside, og der kun mangler at blive trykket på en knap til overførsel (download) eller et hyperlink. En enkel implementering af denne mulighed er:

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

I ovenstående kode er funktions-id'en indkodet fast i koden button.

Overførselsfunktionen kan implementeres på følgende måde:

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 ovenstående JavaScriptfunktion, anvendes tilbagekalds-URL'en, der fra starten blev kodet i side-URL'en, anvendt til at udforme forespørgslen. Når forespørgslen er oprettet, bliver browseren anmodet om at åbne den. Dette trin medfører, at browseren kalder Eclipse-miniserveren, som behandler forespørgslen, opretter forbindelse til udbyderens opdateringswebsted (i dette tifælde "http://acme.com/updateSite/") og inder funktionen med den angivne id og version. Hvis dette sker uden problemer, flyttes Eclipse-vinduet op, og den kendte installationsguide åbnes. På dette trin er du tilbage i Eclipse, og du kan afslutte installationen som normalt.

Det er vigtigt at påpege, at der skal være en kodet tilbagekalds-URL til hele mekanismen. Hvis den side, der indeholder linket eller knappen 'Download', indeholder adskillige niveauer på webadressen, skal rodwebsiden (den side, der aktiveres fra opdateringsstyringen) sikre, at tilbagekalds-URL'en sendes videre til alle sider, der åbnes inde fra den pågældende side. Det kan gøres på forskellig måde (ved direkte kodning på siden, ved at gemme en transient cookie, ved at gemme den på en miniserver, der betjener sider på webstedet osv.).