Stedsoversikt over oppdateringsserver
Standard Eclipse-oppdateringsserver er en hvilken som helst URL-tilgjengelig server. Standardimplementeringen
forutsetter en server med fast layout. Serverinnholdet (i form av tilgjengelige funksjoner og
plugin-moduler) er beskrevet i en stedsoversiktfil, site.xml. Denne filen kan vedlikeholdes manuelt, eller
den kan beregnet dynamisk av serveren.
Stedsoversikt
Oppdateringsserver-URLen kan oppgis som en fullstendig URL for stedsoversiktfilen, eller en URL for en katalogbane
som inneholder stedsoversiktfilen (på samme måte som index.html-behandling). Formatet på site.xml-stedsoversikten er definert av følgende 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
>
Dette er definisjonene av elementene og attributtene:
- <site> - definerer stedsoversikten
- type - valgfri stedstypespesifikasjon. Verdien refererer til en typestreng som er referert via
utvidelsespunktet for installeringsrammeverket. Hvis den ikke er oppgitt, antas det at typen er standard
Eclipse-stedstype (slik den er oppgitt i dette dokumentet).
- url - valgfri URL som definerer hoved-URLen for oppdateringsstedet (som brukes til å bestemme
plasseringen av den enkelte <feature> og <archive>). Kan være relativ eller absolutt.Hvis den er
relativ, er den relativ til site.xml.Hvis den ikke er oppgitt, er den som standard URL-plasseringen av
site.xml-filen.
- mirrorsURL - valgfri URL som peker på en fil som inneholder definisjoner av oppdateringsstedspeilinger. Denne
URLen kan være absolutt eller relativ i forhold til dette stedet. Speilingsfilen er beskrevet senere i dette
dokumentet.
- availableLocales - valgfri liste over språkmiljøer som det finnes konsentrater for
- digestURL - valgfri URL som peker på katalog som inneholder konsentrater. Ved kjøring, ut fra
availableLocales, blir et av konsentratene fra katalogen spesifisert i
digestURL valgt ved samme algoritme som brukes til å velge egenskaper i klassen
java.util.ResourceBundle. Konsentratfiler kan kalles digest<locale>.zip der locale er enten en tom streng
(standardkonsentrat) eller språkmiljøet som definert i java.util.Locale.
- associateSitesURL - valgfri URL som peker på XML-filen som lister opp steder som bør åpnes samtidig med stedet
- pack200 - Dette attributtet forteller oppdateringsstyreren at det kan finnes pakket innhold som den bør laste ned, i stedet
for den vanlige JAR-filen.
Hvis dette attributtet ikke er definert, vil oppdateringsstyreren aldri se etter pakket innhold, og vil alltid laste ned vanlig JAR-fil.
For å hente en JAR-fil fra et oppdateringssted som spesifiserer
pack200="true", vil oppdateringsstyreren først se etter filen
pack.gz i JAR-filen den ønsker.
For eksempel bil oppdateringsstyreren ved nedlasting av
foo.jar først se etter foo.jar.pack.gz. Hvis filen
pack.gz finnes, vil den bli lastet ned i stedet for JAR-filen.
Når filen pack.gz er lastet den, pakkes den ut og fremviser den opprinnelige JAR-filen.
Hvis filen pack.gz ikke finnes på oppdateringsstedet, blir den vanlige JAR-filen lastet ned som vanlig.
- <description> - en kort beskrivelse som enkel tekst. Skal oversettes.
- url - valgfri URL for den fullstendige beskrivelsen i form av HTML. URLen kan oppgis som absolutt eller
relativ. Hvis URLen er relativ, er den relativ til site.xml.
Legg merket til at ved NL-behandling skal
URL-verdien holdes atskilt, slik at alternative URLer kan oppgis for hvert språk.
- <feature> - identifiserer referert funksjonsarkiv
- type - valgfri funksjonstypespesifikasjon. Verdien refererer til en typestreng som er referert via
utvidelsespunktet for installeringsrammeverket. Hvis den ikke er oppgitt, antas det at typen er standard
funksjonstype for stedet. Hvis stedstypen er standard Eclipse-stedstype, er standardfunksjonstypen den pakkede
funksjonstypen (slik den er oppgitt i dette dokumentet).
- id - valgfri funksjons-ID. Informasjonen blir brukt som en ytelsesoptimalisering for å øke hastigheten
på søk etter funksjoner. Må samsvare med IDen som er oppgitt i feature.xml i det refererte arkivet (URL-attributtet).
Hvis
den er oppgitt, må versjonsattributtet også oppgis.
- version - valgfri funksjonsversjon. Informasjonen blir brukt som en ytelsesoptimalisering for å øke hastigheten
på søk etter funksjoner. Må samsvare med versjonen som er oppgitt i feature.xml i det refererte arkivet
(URL-attributtet).
Hvis den er oppgitt, må ID-attributtet også oppgis.
- url - obligatorisk URL-referanse til funksjonsarkivet. Kan være relativ eller absolutt. Hvis den er relativ, er
den relativ til plasseringen av filen site.xml.
Merk:
Med standard stedsimplementering kan funksjoner brukes uten at de er eksplisitt deklarert med en
<feature>-oppføring. Som standard blir en ikke-deklarert funksjonsreferanse tolket som "features/<id>_<version>.jar".
Merk: For at ytelsen ved oppslag skal blir bedre, bør du alltid definerer ID- og versjonsattributtene.
- patch - valgfritt attributt som viser at dette er en rettelse (spesiell type funksjon).
Merk: For at ytelsen ved oppslag skal blir bedre, bør du alltid definerer dette attributtet.
- os - valgfri operativsystemspesifikasjon. En liste over operativsystemer definert av Eclipse (se
org.eclipse.core.runtime.Platform) i Javadoc. Listen bruker komma som skilletegn. Viser at denne funksjonen bare skal installeres på et av de oppgitte operativsystemene. Hvis dette attributtet ikke er oppgitt, kan funksjonen installeres på alle systemer (flyttbar implementering).
Denne informasjonen blir brukt som et tips av installerings- og oppdateringsstøtten (brukeren kan tvinge gjennom
installering av funksjonen uavhengig av denne innstillingen).
- arch - valgfri spesifikasjon av maskinarkitekturen. En liste over arkitekturer definert av Eclipse (se
org.eclipse.core.runtime.Platform i Javadoc). Listen bruker komma som skilletegn. Viser at denne funksjonen bare skal installeres på et av de oppgitte systemene. Hvis dette attributtet ikke er oppgitt, kan funksjonen installeres på alle systemer (flyttbar implementering).
Denne informasjonen blir brukt som et tips av installerings- og oppdateringsstøtten (brukeren kan tvinge gjennom
installering av funksjonen uavhengig av denne innstillingen).
- ws - valgfri vindussystemspesifikasjon. En liste over vindussystemer definert av Eclipse (se
org.eclipse.core.runtime.Platform i Javadoc). Listen bruker komma som skilletegn. Viser at denne funksjonen bare skal installeres på et av de oppgitte vindussystemene. Hvis dette attributtet ikke er oppgitt, kan funksjonen installeres på alle systemer (flyttbar implementering).
Denne informasjonen blir brukt som et tips av installerings- og oppdateringsstøtten (brukeren kan tvinge gjennom
installering av funksjonen uavhengig av denne innstillingen).
- nl - valgfri språkmiljøspesifikasjon. En liste over språkmiljøer definert av Java. Listen bruker komma som
skilletegn. Viser at denne funksjonen bare skal installeres på et system som kjøres med et kompatibelt språkmiljø
(ved hjelp av Javas regler for samsvarende språkmiljø). Hvis dette attributtet ikke er oppgitt, kan funksjonen
installeres på alle systemer (språknøytral implementering). Denne informasjonen blir brukt som et tips av
installerings- og oppdateringsstøtten (brukeren kan tvinge gjennom installering av funksjonen uavhengig av denne
innstillingen).
- <archive> - identifiserer referert "lagerarkiv" (de faktiske filene som er referert via elementet
<plugin> eller <data> i funksjonsmanifestet). Dette stedet administrerer ganske enkelt
arkiver som en bane-til-URL-oversikt. Standard Eclipse-stedsimplementering krever ikke at valget <archive> er
inkludert i stedsoversikten (site.xml). Alle arkivreferanser som ikke er eksplisitt definert som del av en
<archive>, antas å være tilordnet en URL med formen "<archivePath>" relativ til plasseingen av
filen site.xml.
- path - obligatorisk arkivbane-ID. Dette er en streng som bestemmes av funksjonen som refererer til dette
arkivet, og den blir ellers ikke tolket av stedet (annet enn som et oppslagssymbol).
- url - obligatorisk URL-referanse til arkivet. Kan være relativ eller absolutt.
Hvis den er relativ, er den
relativ til plasseringen av filen site.xml.
- <category-def> - en valgfri definisjon av en kategori som kan brukes av installerings- og
oppdateringsstøtten til å organisere funksjoner hierarkisk
- name - kategorinavn. Det er oppgitt som en bane med navnesymboler skilt av /
- label - etikett som kan vises. Skal
oversettes.
- <category> - faktisk kategorispesifikasjon for en funksjonsoppføring
Legg merke til at feature.xml-manifestdokumentene generelt skal oppgi UTF-8-koding. Eksempel:
<?xml version="1.0" encoding="UTF-8"?>
Tekst som kan oversettes, som ligger i site.xml, kan deles inn i site<_locale>.properties-filer ved
hjelp av konvensjoner for Java-egenskapsbunter. Legg merke til at strenger som kan oversettes, blir brukt under
installering (det vil si at de ikke bruker kjøretidsmekanismen for plugin-fragmentet). Egenskapsbuntene er plassert
relativt til site.xml-plasseringen.
Standard sideutforming
<site root>/
site.xml
features/
funksjonsarkiver
(for eksempel org.eclipse.javatools_1.0.1.jar)
<featureId>_<featureVersion>/
(valgfri)
ikke-plugin-filer for funksjon
plugins/
plugin-arkiver
(for eksempel org.eclipse.ui_1.0.3.jar)
Speilingsfil
Oppdateringsspeilingsfilen (den som pekes på av mirrorsURL-attributtet i <site>) inneholder
definisjoner for speiling av oppdateringssteder. Formatet er definert av følgende DTD:
<?xml encoding="ISO-8859-1"?>
<!ELEMENT mirrors (mirror*))>
<!ELEMENT mirror EMPTY>
<!ATTLIST mirror
url
CDATA #REQUIRED
label
CDATA #REQUIRED
>
- <mirrors> - definerer de tilgjengelige oppdateringsstedspeilingene
- <mirror> - definerer et speilingssted
- url - URLen til speilingsstedet
- label - etikett som kan vises. Skal
oversettes.
Konsentratfil
Konsentratfiler (som attributtet digestURL for <stedet> peker på) er en zippet XML-fil med følgende
DDT:
<?xml encoding="ISO-8859-1"?>
<!ELEMENT digest (feature*)>
der funksjonsdefinisjonen er den samme som i funksjonsmanifesten.
Tilknyttede stedsfiler
De tilhørende stedsfilene (den som attributtet associateSitesURL for et <sted> peker på) inneholder definisjon av tilknyttede steder.
Formatet er definert ved følgende DTD:
<?xml encoding="ISO-8859-1"?>
<!ELEMENT associateSites (associateSite*)>
<!ELEMENT associateSites EMPTY>
<!ATTLIST associateSite
url
CDATA #REQUIRED
label
CDATA #REQUIRED
>
- <associateSites> - definerer steder som er knyttet til dette oppdateringsstedet
- <associateSite> - definerer et tilknyttet sted
- url - URL for tilknyttet sted
- label - etikett som kan vises. Skal
oversettes.
Styre tilgang
Standard Eclipse-stedsimplementering støtter http-tilgang med grunnleggende brukerautentisering (bruker-ID og
passord).
Tilpassede tilgangskontrollmekanismer kan legges til det grunnleggende Eclipse-systemet på to måter:
-
ved å oppgi serversidelogikk på oppdateringsserveren (for eksempel implementering av servletter som beregner
site.xml-oversikten og styring av tilgangen til enkeltarkiver basert på brukerkriterier)
-
ved å oppgi en tilpasset konkret implementering av stedsobjektet (installert på klientmaskinen, oppgitt av
oppdateringsserveren <site type="">).
Den tilpassede konkrete stedsimplementeringen, sammen med en
hvilken som helst serversidelogikk støtter de nødvendige kontrollmekanismene.
Eclipse har et eksempel som demonstrerer en implementering av en tilgangsmekanisme basert på
funksjonsnøkkelfiler.