Sitetoewijzing Updateserver
De standaardupdateserver van Eclipse is een updateserver die toegankelijk is met URL's. De standaardimplementatie gaat uit van een server met een vaste indeling. De inhoud van de server (in termen van beschikbare features en plug-ins) wordt beschreven in een siteoverzichtsbestand, site.xml. U kunt dit bestand handmatig onderhouden of automatisch door de server laten genereren.
Siteoverzicht
De URL van de updateserver kan worden opgegeven als de volledige URL van het siteoverzichtsbestand, of als URL van een directorypad met het siteoverzichtsbestand (zoals bij de verwerking van index.html). De indeling van het siteoverzichtsbestand site.xml wordt gedefinieerd door de volgende DTD:
<?xml encoding="ISO-8859-1"?>
<!ELEMENT site (description?, feature*, archive*, category-def*)>
<!ATTLIST site
type CDATA #IMPLIED
url CDATA #IMPLIED
mirrorURL CDATA #IMPLIED
availableLocales CDATA #IMPLIED
digestURL CDATA #IMPLIED
associateSitesURL CDATA #IMPLIED
pack200 CDATA #IMPLIED
>
<!ELEMENT description (#PCDATA)>
<!ATTLIST description
url CDATA #IMPLIED
>
<!ELEMENT feature (category*)>
<!ATTLIST feature
type CDATA #IMPLIED
id CDATA #IMPLIED
version CDATA #IMPLIED
url CDATA #REQUIRED
patch (false | true) false
os CDATA #IMPLIED
nl CDATA #IMPLIED
arch CDATA #IMPLIED
ws CDATA #REQUIRED
>
<!ELEMENT archive EMPTY>
<!ATTLIST archive
path CDATA #REQUIRED
url CDATA #REQUIRED
>
<!ELEMENT category EMPTY>
<!ATTLIST category
name CDATA #REQUIRED
>
<!ELEMENT category-def (description?)>
<!ATTLIST category-def
name CDATA #REQUIRED
label CDATA #REQUIRED
>
De elementen en kenmerken worden als volgt gedefinieerd:
- <site> - definitie van het siteoverzicht
- type - optionele specificatie voor het sitetype. De waarde verwijst naar een typetekenreeks die wordt geregistreerd via het installatieframeworkextensiepunt. Als u niets opgeeft, wordt het standaardsitetype van Eclipse gebruikt (zie verderop in dit document).
- url - optionele definitie van de basislijn-URL van de updatesite (deze wordt gebruikt om de locatie van <feature> en <archive> te bepalen). Dit kan een relatieve URL (ten opzichte van site.xml) of een absolute URL zijn. Als u niets opgeeft, wordt standaard de URL-locatie van het bestand site.xml gebruikt.
- mirrorsURL - optionele URL die verwijst naar een bestand met definities van updatesitemirrors. U kunt zowel een absolute URL opgeven als een relatieve URL (ten opzichte van deze site). Het mirrorbestand wordt verderop in dit document beschreven.
- availableLocales - optionele lijst van locales waarvoor digests beschikbaar zijn.
- digestURL - optionele URL die verwijst naar de directory met digests. Tijdens runtime wordt,
op basis van availableLocales, een van de digests uit de directory die is opgegeven in digestURL
geselecteerd via hetzelfde algoritme dat wordt gebruikt om eigenschappen in de klasse
java.util.ResourceBundle te selecteren. Digestbestanden moeten de naam digest<locale>.zip krijgen,
waarbij locale ofwel een lege tekenreeks (standaarddigest) is, ofwel de locale die is gedefinieerd in java.util.Locale.
- associateSitesURL - optionele URL die verwijst naar het XML-bestand met sites die tegelijkertijd
met deze site geopend moeten zijn.
- pack200 - met dit kenmerk wordt Update Manager geïnformeerd dat er verpakte content is die moet
worden gedownload in plaats van het normale JAR-bestand. Als dit kenmerk niet wordt ingesteld, zoekt Update Manager
niet naar verpakte content en wordt altijd het normale JAR-bestand gedownload. Om een JAR van een updatesite
op te halen waarvoor pack200="true", zoekt Update Manager eerst naar het bestand pack.gz naast het
gezochte JAR-bestand. Als bijvoorbeeld foo.jar moet worden gedownload, zoekt Update Manager eerst naar
foo.jar.pack.gz. Als het bestand pack.gz bestaat, wordt dit gedownload in plaats van het JAR-bestand.
Als het bestand pack.gz file is gedownload, wordt het uitgepakt om het originele JAR-bestand op te leveren.
Als het bestand pack.gz niet op de updatesite voorkomt, wordt het normale JAR-bestand gedownload.
- <description> - een korte beschrijving als eenvoudige tekst. Deze tekst
kan worden vertaald.
- url - optionele URL voor de volledige HTML-beschrijving. De URL kan worden opgegeven als absoluut URL-adres of als relatief URL-adres (ten opzichte van site.xml).
Voor NL-afhandeling moet de URL-waarde worden gescheiden zodat voor elke taal alternatieve URL's kunnen worden opgegeven.
- <feature> - specificatie van feature-archief waarnaar wordt verwezen.
- type - optionele featuretypespecificatie. De waarde verwijst naar een typetekenreeks die wordt geregistreerd via het installatieframeworkextensiepunt. Als u niets opgeeft, wordt het standaardfeaturetype voor de site gebruikt. Als het sitetype het standaardsitetype van Eclipse is, is het standaardfeaturetype het pakketfeaturetype (zie verderop in dit document).
- id - optioneel feature-ID. Deze informatie wordt gebruikt om features sneller te kunnen opzoeken. Dit ID moet overeenkomen met het ID dat is opgegeven in het bestand feature.xml van het bijbehorende archief (het kenmerk url).
Als u dit kenmerk opgeeft, moet u ook het kenmerk version opgeven.
- version - optionele featureversie. Deze informatie wordt gebruikt om features sneller te kunnen opzoeken. Dit ID moet overeenkomen met de versie die is opgegeven in het bestand feature.xml van het bijbehorende archief (het kenmerk url).
Als u dit kenmerk opgeeft, moet u ook het kenmerk id opgeven.
- url - verplichte URL-verwijzing naar het feature-archief. Dit kan een absolute URL of een relatieve URL (ten opzichte van de locatie van het bestand site.xml) zijn.
Opmerking: de standaardsite-implementatie biedt toegang tot features zonder dat deze expliciet gedeclareerd zijn met een <feature>-vermelding. Standaard wordt een niet-gedeclareerde-featureverwijzing geïnterpreteerd als "features/<id>_<version>.jar".
Opmerking: u kunt de zoekprestaties verbeteren door altijd de kenmerken id en version te definiëren.
- patch - optioneel kenmerk om aan te geven dat dit een patch (speciaal soort feature) is.
Opmerking: u kunt de zoekprestaties verbeteren door dit kenmerk altijd te definiëren.
- os - optionele besturingssysteemspecificatie. Een door komma's gescheiden lijst met besturingssysteemverwijzingen die in Eclipse zijn gedefinieerd (zie Javadoc voor org.eclipse.core.runtime.Platform).
Hiermee geeft u aan dat deze feature alleen mag worden geïnstalleerd op een van de opgegeven besturingssystemen. Als dit kenmerk niet is opgegeven, kan de feature op elk systeem worden geïnstalleerd (overdraagbare implementatie).
Deze informatie wordt gebruikt als hint in de installatie- en updatesupport (de gebruiker kan de installatie van de feature forceren, ongeacht deze instelling).
- arch - optionele computerarchitectuurspecificatie. Een door komma's gescheiden lijst met architectuurverwijzingen die in Eclipse zijn gedefinieerd (zie Javadoc voor org.eclipse.core.runtime.Platform).
Hiermee geeft u aan dat deze feature alleen mag worden geïnstalleerd op een van de opgegeven systemen.
Als dit kenmerk niet is opgegeven, kan de feature op elk systeem worden geïnstalleerd (overdraagbare implementatie).
Deze informatie wordt gebruikt als hint in de installatie- en updatesupport (de gebruiker kan de installatie van de feature forceren, ongeacht deze instelling).
- ws - optionele venstersysteemspecificatie. Een door komma's gescheiden lijst met venstersysteemverwijzingen die in Eclipse zijn gedefinieerd (zie Javadoc voor org.eclipse.core.runtime.Platform).
Hiermee geeft u aan dat deze feature alleen mag worden geïnstalleerd op een van de opgegeven venstersystemen.
Als dit kenmerk niet is opgegeven, kan de feature op elk systeem worden geïnstalleerd (overdraagbare implementatie).
Deze informatie wordt gebruikt als hint in de installatie- en updatesupport (de gebruiker kan de installatie van de feature forceren, ongeacht deze instelling).
- nl - optionele localespecificatie. Een door komma's gescheiden lijst met Java-localeverwijzingen.
Hiermee geeft u aan dat deze feature alleen mag worden geïnstalleerd op een systeem
met een compatibele locale (dit wordt bepaald op basis van Java-locale-matchingregels). Als
dit kenmerk niet is opgegeven, kan de feature worden geïnstalleerd op alle systemen
(taal-onafhankelijke implementatie). Deze informatie wordt gebruikt als hint in de installatie- en updatesupport (de gebruiker kan de installatie van de feature forceren, ongeacht deze instelling).
- <archive> - specificatie van opslagarchief (bestanden die gekoppeld zijn via de elementen <plugin> of <data> in het featuremanifest). De archieven worden door de site beheerd als een pad-naar-URL-overzicht. Voor de standaardsite-implementatie van Eclipse hoeft de sectie <archive> niet te worden opgenomen in het siteoverzicht (site.xml). Archiefverwijzingen die niet expliciet zijn gedefinieerd als onderdeel van een sectie <archive> worden verondersteld te zijn gekoppeld aan een relatieve URL (ten opzichte van de locatie van het bestand site.xml) in de vorm "<archivePath>".
- path - verplicht kenmerk voor het archiefpad. Dit is een tekenreeks die wordt bepaald door de feature waarin wordt verwezen naar dit archief, en wordt niet anders geïnterpreteerd door de site (dan als zoekopdrachttoken).
- url - verplichte URL-verwijzing naar het archief. Dit kan een absolute URL of een relatieve URL (ten opzichte van de locatie van het bestand site.xml) zijn.
- <category-def> - optionele definitie van een categorie die kan worden gebruikt door installatie- en updatesupport om features te rangschikken in een hiërarchische structuur.
- name - categorienaam. Dit kenmerk moet worden opgegeven als een door "/"-tekens gescheiden pad van naamtokens.
- label - weer te geven label. Deze tekst kan worden vertaald.
- <category> - werkelijke categoriespecificatie voor een feature-vermelding.
Gewoonlijk moet de codering van feature.xml-manifestdocumenten worden ingesteld op UTF-8. Voorbeeld:
<?xml version="1.0" encoding="UTF-8"?>
Vertaalbare tekst in het bestand site.xml kan worden ondergebracht in afzonderlijke site<_locale>.properties-bestanden met Java-eigenschappenbundelconventies.
Let wel, de vertaalde tekenreeksen worden gebruikt ten tijde van de installatie (niet in het runtime-mechanisme voor pluginfragmenten). De eigenschappenbundels worden opgezocht via een relatief pad ten opzichte van de locatie van site.xml.
Standaardsitelayout
<site root>/
site.xml
features/
feature-archieven (bijvoorbeeld org.eclipse.javatools_1.0.1.jar)
<featureId>_<featureVersion>/ (optioneel)
niet-pluginbestanden voor feature
plugins/
plugin-archieven (bijvoorbeeld org.eclipse.ui_1.0.3.jar)
Mirrorbestand
Het updatemirrorbestand (waarnaar wordt verwezen door het kenmerk mirrorsURL van <site>) bevat definities voor updatesitemirrors. De indeling wordt gedefinieerd door de volgende DTD:
<?xml encoding="ISO-8859-1"?>
<!ELEMENT mirrors (mirror*))>
<!ELEMENT mirror EMPTY>
<!ATTLIST mirror
url CDATA #REQUIRED
label CDATA #REQUIRED
>
- <mirrors> - definitie van de beschikbare updatesitemirrors.
- <mirror> - definitie van een mirrorsite.
- url - de URL van de mirrorsite.
- label - weer te geven label. Deze tekst kan worden vertaald.
Digestbestand
Digestbestanden (de bestanden waarnaar wordt verwezen in het kenmerk digestURL van <site>) zijn gezipte XML-bestanden met de volgende DDT:
<?xml encoding="ISO-8859-1"?>
<!ELEMENT digest (feature*)>
Hierbij is de definitie van feature hetzelfde als in het featuremanifest.
Bestand met gekoppelde sites
Het bestand met gekoppelde sites (waarnaar wordt verwezen door het kenmerk associateSitesURL van
<site>) bevat definities van gekoppelde sites. De indeling wordt gedefinieerd door de volgende DTD:
<?xml encoding="ISO-8859-1"?>
<!ELEMENT associateSites (associateSite*)>
<!ELEMENT associateSites EMPTY>
<!ATTLIST associateSite
url CDATA #REQUIRED
label CDATA #REQUIRED
>
- <associateSites> - definieert de sites die aan deze updatasite gekoppeld zijn
- <associateSite> - definieert een gekoppelde site
- url - de URL van de gekoppelde site
- label - weer te geven label. Deze tekst kan worden vertaald.
Toegangsbeheer
De standaardsite-implementatie van Eclipse biedt ondersteuning voor HTTP-toegang met basisgebruikersverificatie (gebruikers-ID en wachtwoord).
U kunt de basistoegangsbeheermechanismen van Eclipse op twee manieren aanpassen:
-
U kunt logica aanleveren op de updateserver (bijvoorbeeld door servlets te implementeren waarmee het overzicht site.xml wordt berekend en de toegang tot archieven wordt beheerd aan de hand van gebruikerscriteria).
-
U kunt een aangepaste, concrete implementatie van het siteobject aanleveren (installeren op de clientcomputer, updateserver opgeven met <site type="">). De vereiste controlemechanismen worden ondersteund door de aangepaste concrete site-implementatie en eventuele serverzijdelogica.
Eclipse bevat een voorbeeldimplementatie van een toegangsmechanisme op basis van featuresleutelbestanden.