Site-Übersicht des Aktualisierungsservers
Der standardmäßige Eclipse-Aktualisierungsserver ist jeder beliebige über URL zugreifbare Server. Die Standardimplementierung geht von einem Fixed Layout-Server aus. Der Inhalt des Servers (in Bezug auf die vorhandenen Komponenten und Plug-ins) wird in einer Website-Übersichtsdatei site.xml definiert. Diese Datei kann manuell oder dynamisch rechnergesteuert vom Server verwaltet werden.
Website-Übersicht
Die URL des Aktualisierungsservers kann als vollständige URL für die Website-Übersichtsdatei oder als URL eines Verzeichnispfads mit der Website-Übersichtsdatei (ähnlich der index.html-Verarbeitung) angegeben werden. Das Format der Website-Übersicht site.xml wird durch folgende dtd definiert:
<?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
>
Die Elemente und Attribute werden wie folgt definiert:
- <site>: Definiert die Website-Übersicht
- type: Optionale Spezifikation des Site-Typs. Der Wert bezieht sich auf eine Typzeichenfolge, die über den Erweiterungspunkt install framework registriert ist. Wenn nicht angegeben, wird für den Typ der standardmäßige Eclipse-Site-Typ (wie in diesem Dokument angegeben) herangezogen.
- url: Optionale URL, die die Schriftgrundlinien-URL der Update-Site definiert (wird verwendet, um einzelne Positionen von <Features> und <Archiven> festzulegen). Kann relativ oder absolut sein. Bei relativer Angabe ist diese relativ zu site.xml. Wenn keine Angabe vorhanden ist, wird standardmäßig die URL-Adresse der site.xml-Datei herangezogen.
- mirrorsURL: Optionale URL, die auf eine Datei verweist, die Definitionen des Aktualisierungssitespiegels enthält. Diese URL kann absolut oder im Verhältnis zu dieser Site sein. Die Spiegeldatei wird später in diesem Dokument beschrieben.
- availableLocales: Eine optionale Liste der Ländereinstellungen, für die Auszüge verfügbar sind.
- digestURL: Eine optionale URL, die auf das Verzeichnis zeigt, in dem Auszüge vorhanden sind. Während der Laufzeit wird basierend auf dem Wert für "availableLocales" einer der Auszüge in dem Verzeichnis, das durch "digestURL" angegeben ist, mit demselben Algorithmus ausgewählt, der für die Auswahl von Eigenschaften in der Klasse
"java.util.ResourceBundle" verwendet wird. Auszugsdateien sollten den Namen "digest<ländereinstellung>.zip" tragen. Hierbei steht "ländereinstellung" entweder für eine leere Zeichenfolge (Standardauszug) oder für eine
in der Klasse "java.util.Locale" definierte Ländereinstellung.
- associateSitesURL: Eine optionale URL, die auf die XML-Datei mit einer Liste der Sites zeigt, die gleichzeitig mit dieser Site geöffnet werden sollen.
- pack200: Dieses Attribut weist den Update-Manager an, dass möglicherweise Paketinhalt vorhanden ist, der anstelle der normalen JAR-Datei heruntergeladen werden sollte. Wenn dieses Attribut nicht angegeben ist, sucht der Update-Manager in keinem Fall nach Paketinhalt und lädt immer die normale JAR-Datei herunter. Um eine JAR-Datei von einer Update-Site abzurufen, für
die pack200="true" angegeben ist, sucht der Update-Manager zuerst neben der gewünschten JAR-Datei nach einer Datei "pack.gz". Beispiel: Beim Herunterladen der Datei "foo.jar" sucht der Update-Manager zuerst nach einer Datei
"foo.jar.pack.gz". Falls eine Datei "pack.gz" vorhanden ist, wird sie anstelle der JAR-Datei heruntergeladen.
Sobald die Datei "pack.gz" heruntergeladen wurde, wird sie entpackt, damit die eigentliche JAR-Datei verfügbar ist.
Falls die Datei "pack.gz" in der Update-Site nicht vorhanden ist, wird die normale JAR-Datei wie gewöhnlich heruntergeladen.
- <description>: Kurzbeschreibung als einfacher Text. Sollte übersetzt werden.
- url: Optionale URL für die vollständige Beschreibung als HTML. Die URL kann absolut oder relativ angegeben werden. Bei relativer Angabe ist die URL relativ zu site.xml.
Beachten Sie, dass für die NL-Bearbeitung der URL-Wert getrennt sein muss, um die Angabe alternativer URLs für jede Landessprache zu ermöglichen.
- <feature>: Kennzeichnet das Komponentenarchiv, auf das verwiesen wird.
- type: Optionale Spezifikation des Komponententyps. Der Wert bezieht sich auf eine Typzeichenfolge, die über den Erweiterungspunkt install framework registriert ist. Wenn nicht angegeben, wird für den Typ der standardmäßige Komponententyp herangezogen. Wenn der Site-Typ der standardmäßige Eclipse-Site-Typ ist, ist der standardmäßige Komponententyp der paketierte Komponententyp (wie in diesem Dokument angegeben).
- id: Optionale Komponentenkennung. Die Information wird zur Performance-Optimierung verwendet, um die Suche nach Komponenten zu beschleunigen. Muss mit der in feature.xml des Archivs, auf das verwiesen wird, (das url-Attribut) angegebenen Kennung übereinstimmen.
Wenn angegeben, muss auch das Versionsattribut angegeben werden.
- version: Optionale Komponentenversion. Die Information wird zur Performance-Optimierung verwendet, um die Suche nach Komponenten zu beschleunigen. Muss mit der in feature.xml des Archivs, auf das verwiesen wird, (das url-Attribut) angegebenen Version übereinstimmen.
Wenn angegeben, muss auch das ID-Attribut angegeben werden.
- url: Erforderlicher URL-Verweis auf das Komponentenarchiv. Kann relativ oder absolut sein. Bei relativer Angabe ist er relativ zur Adresse der Datei site.xml.
Hinweis:
Die standardmäßige Site-Implementierung ermöglicht den Zugriff auf Komponenten ohne explizite Deklaration mit Hilfe des Eintrags <feature>. Standardmäßig wird ein nicht deklarierter Featureverweis als "features/<id>_<version>.jar" interpretiert.
Hinweis: Um eine bessere Darstellungsleistung zu erreichen, sind die ID und die Versionsattribute immer zu definieren.
- patch: Optionales Attribut, um anzugeben, dass es sich um einen Patch-Code handelt (spezieller Featuretyp).
Hinweis: Um eine bessere Darstellungsleistung zu erreichen, definieren Sie dieses Attribut immer.
- os: Optionale Spezifikation des Betriebssystems. Eine durch Kommas getrennte Aufstellung von Betriebssystem-Laufwerkskennzeichungen, die von Eclipse definiert werden (siehe Javadoc für
org.eclipse.core.runtime.Platform). Weist darauf hin, dass diese Komponente nur auf einem der angegebenen Betriebssysteme installiert werden sollte. Wenn dieses Attribut nicht angegeben wird, kann die Komponente auf allen Systemen installiert werden (tragbare Implementierung). Diese Information wird von der Installations- und Aktualisierungsunterstützung als ein Hinweis verwendet (Benutzer können die Installation eines Features ungeachtet dieser Einstellung erzwingen).
- arch: Optionale Spezifikation der Systemarchitektur. Eine durch Kommas getrennte Aufstellung von Architektur-Laufwerkskennzeichungen, die von Eclipse definiert werden (siehe Javadoc für
org.eclipse.core.runtime.Platform). Weist darauf hin, dass diese Komponente nur auf einem der angegebenen Systeme installiert werden sollte. Wenn dieses Attribut nicht angegeben wird, kann die Komponente auf allen Systemen installiert werden (tragbare Implementierung). Diese Information wird von der Installations- und Aktualisierungsunterstützung als ein Hinweis verwendet (Benutzer können die Installation eines Features ungeachtet dieser Einstellung erzwingen).
- ws: Optionale Angabe des Fenstertechniksystems. Eine durch Kommas getrennte Aufstellung von Fenstersystem-Laufwerkskennzeichungen, die von Eclipse definiert werden (siehe Javadoc für
org.eclipse.core.runtime.Platform). Weist darauf hin, dass diese Komponente nur auf einem der angegebenen Fenstersysteme installiert werden sollte. Wenn dieses Attribut nicht angegeben wird, kann die Komponente auf allen Systemen installiert werden (tragbare Implementierung). Diese Information wird von der Installations- und Aktualisierungsunterstützung als ein Hinweis verwendet (Benutzer können die Installation eines Features ungeachtet dieser Einstellung erzwingen).
- nl: Optionale Angabe der Ländereinstellung. Eine durch Komma getrennte, von Java definierte Liste von Angaben für Ländereinstellungen. Weist darauf hin, dass diese Komponente nur auf einem System, das mit einer kompatiblen Ländereinstellung läuft, installiert werden sollte. Wenn dieses Attribut nicht angegeben wird, kann die Komponente auf allen Systemen installiert werden (sprachunabhängige Implementierung). Diese Information wird von der Installations- und Aktualisierungsunterstützung als ein Hinweis verwendet (Benutzer können die Installation eines Features ungeachtet dieser Einstellung erzwingen).
- <archive>: Kennzeichnet das "Speicher"-Archiv, auf das verwiesen wird (die eigentlichen Dateien, auf die über die Elemente <plugin> oder <data> im Feature-Manifest verwiesen wird). Die Site verwaltet die Archive einfach als Zuordnung von Pfad zu URL. Für die standardmäßige Eclipse-Site-Implementierung muss der Abschnitt <archive> nicht in der Website-Übersicht (site.xml) enthalten sein. Bei allen nicht explizit als Teil eines Abschnitts <archive> definierten Archivverweisen wird davon ausgegangen, dass diese in Form von "<archivePath>" relativ zur Adresse der site.xml-Datei einer URL zugeordnet werden.
- path: Erforderliche Archivpfadkennung. Dies ist eine Zeichenfolge, die von der Komponente bestimmt wird, die auf dieses Archiv verweist und nicht anderweitig von der Site interpretiert wird (ausgenommen als Suchfunktions-Token).
- url: Erforderlicher URL-Verweis auf das Archiv. Kann relativ oder absolut sein.
Bei relativer Angabe ist er relativ zur Adresse der Datei site.xml.
- <category-def>: Eine optionale Definition einer Kategorie, die vom Installations- und Update-Support zur hierarchischen Organisation der Komponent en verwendet werden kann.
- name: Kategoriename. Wird als Pfad von Namens-Token angegeben, die durch / getrennt sind.
- label: Anzeigbare Bezeichnung. Zur Übersetzung gedacht.
- <category>: Eigentliche Kategoriespezifikation für einen Komponenteneintrag.
Beachten Sie, dass feature.xml-Manifestdokumente im allgemeinen UTF-8-Codierung angeben sollten. Beispiel:
<?xml version="1.0" encoding="UTF-8"?>
Umsetzbarer Text in site.xml kann mit Hilfe von Bündelungskonventionen für Java-Eigenschaften in site<_locale>.properties-Dateien getrennt werden. Beachten Sie, dass die übersetzten Zeichenfolgen zum Zeitpunkt der Installation verwendet werden (d.h. verwenden Sie nicht den Plug-in-Fragmentlaufzeitmechanismus). Die Eigenschaften-Bundles befinden sich relativ zur site.xml-Adresse.
Standardmäßiges Site-Layout
<site root>/
site.xml
features/
feature archives
(eg. org.eclipse.javatools_1.0.1.jar)
<featureId>_<featureVersion>/
(optional)
non-plug-in files for feature
plugins/
Plug-in-Archive
(eg. org.eclipse.ui_1.0.3.jar)
Spiegeldatei
Die Datei des Aktualisierungsspiegels (die, auf die durch das mirrorsURL-Attribut von <site> verwiesen wurde), enthält Definitionen für Aktualisierungssitespiegel. Das Format wird durch die folgende DTD definiert:
<?xml encoding="ISO-8859-1"?>
<!ELEMENT mirrors (mirror*))>
<!ELEMENT mirror EMPTY>
<!ATTLIST mirror
url
CDATA #REQUIRED
label CDATA #REQUIRED
>
- <mirrors>: definiert die verfügbaren Aktualisierungssitespiegel
- <mirror>: definiert eine Spiegelsite
- url: die URL der Spiegelsite
- label: Anzeigbare Bezeichnung. Zur Übersetzung gedacht.
Auszugsdatei
Auszugsdateien (also die Dateien, auf die das Attribut "digestURL" des Elements
<site> zeigt) sind komprimierte XML-Dateien mit der folgenden DDT:
<?xml encoding="ISO-8859-1"?>
<!ELEMENT digest (feature*)>
Hierbei ist die Featuredefinition mit der entsprechenden Angabe im Featuremanifest identisch.
Zugeordnete Datei "sites"
Die zugeordnete Datei "sites" (also die Datei, auf die das Attribut "associateSitesURL" des Elements
<site> zeigt) enthält Definitionen der zugeordneten Sites. Ihr Format ist durch die folgende DTD definiert:
<?xml encoding="ISO-8859-1"?>
<!ELEMENT associateSites (associateSite*)>
<!ELEMENT associateSites EMPTY>
<!ATTLIST associateSite
url
CDATA #REQUIRED
label CDATA #REQUIRED
>
- <associateSites>: Definiert die Sites, die dieser Update-Site zugeordnet sind.
- <associateSite>: Definiert eine zugeordnete Site.
- url: Die URL der zugeordneten Site.
- label: Anzeigbare Bezeichnung. Zur Übersetzung gedacht.
Zugriffskontrolle
Die standardmäßige Eclipse-Site-Implementierung liefert Unterstützung für http-Zugriff mit grundlegender Benutzerauthentifizierung (Benutzer-ID und Kennwort).
Angepasste Zugriffskontrollmechanismen können auf zwei Arten zu Basis-Eclipse hinzugefügt werden:
-
Durch eine serverseitige Logik auf dem Aktualisierungsserver (z.B. Implementieren von Servlets, die die site.xml-Zuordnung berechnen und den Zugriff auf einzelne Archive basierend auf einigen Benutzerkriterien steuern)
-
Durch eine angepasste konkrete Implementierung des Site-Objekts (auf der angegebenen Client-Maschine, Aktualisierungsserver installiert <site type="">).
Die angepasste konkrete Site-Implementierung unterstützt gemeinsam mit einer allfälligen serverseitigen Logik die erforderlichen Kontrollmechanismen.
Eclipse bietet ein Beispiel für die Implementierung eines Zugriffsmechanismus basierend auf Komponentenschlüsseldateien.