Komponentenarchive

Die Informationen über die Komponentenpaketierung wird in einem eigenen Java .jar abgelegt. Standardmäßige Java jar-Funktionen werden zum Erstellen von Komponentenarchiven verwendet. Komponentenarchive verweisen auf getrennt paketierte Plug-in-Archive (siehe nächsten Abschnitt) und auf Nicht-Plug-in-Dateien.

Die Komponenten werden über eine strukturierte Kennung basierend auf dem Internet Domain-Namen des Providers identifiziert. Die Organisation eclipse.org produziert etwa die Komponente org.eclipse.jdt. Der für die Komponentenkennung verwendete Zeichensatz entspricht dem für Plug-in-Kennungen (siehe Plug-in Manifest).

Die empfohlene Namenskonvention für die Komponentenarchiven lautet
<id>_<version>.jar

Wobei <id> die Komponentenkennung und <version> die vollständige Versionskennung in der jeweiligen feature.xml ist. Beachten Sie, dass es sich dabei um die empfohlene Konvention handelt, die die Wahrscheinlichkeit von Namenskollisionen minimiert, doch ist diese für die Eclipse-Architektur nicht unbedingt erforderlich. Folgende Namen sind etwa gültige Komponentenarchivnamen:

org.eclipse.jdt_2.0.0.jar
org.eclipse.pde_2.0.jar
my_feature.jar

Intern wird jedes Komponentenarchiv in Bezug auf sein Komponentenverzeichnis paketiert (jedoch ohne das Verzeichnispfadelement einzuschließen). Das Archiv hat die folgende Struktur:

feature.xml
feature<_locale>.properties (siehe "Übersetzte Komponenteninformation")
andere Komponentendateien und Unterverzeichnisse (TBD)
META-INF/
    Java jar-Manifest- und Sicherheitsdateien

Komponenten-Manifest

Das Format des Komponenten-Manifests wird durch die folgende dtd definiert:

<?xml encoding="ISO-8859-1"?>

<!ELEMENT feature (install-handler? | description? | copyright? | license? | url? | includes* | requires? | plugin* | data*)>
<!ATTLIST feature
    id            CDATA #REQUIRED
    version       CDATA #REQUIRED
    label         CDATA #IMPLIED
    provider-name CDATA #IMPLIED
    image         CDATA #IMPLIED
    os            CDATA #IMPLIED
    arch          CDATA #IMPLIED
    ws            CDATA #IMPLIED
    nl            CDATA #IMPLIED
    colocation-affinity
                  CDATA #IMPLIED
    primary       (true | false) "false"
    exclusive     (true | false) "false"
    plugin        CDATA #IMPLIED

    application   CDATA #IMPLIED
>

<!ELEMENT install-handler EMPTY>
<!ATTLIST install-handler
    library       CDATA #IMPLIED
    handler       CDATA #IMPLIED
>

<!ELEMENT description (#PCDATA)>
<!ATTLIST description
    url           CDATA #IMPLIED
>

<!ELEMENT copyright (#PCDATA)>
<!ATTLIST copyright
    url           CDATA #IMPLIED
>

<!ELEMENT license (#PCDATA)>
<!ATTLIST license
    url           CDATA #IMPLIED
>

<!ELEMENT url (update?, discovery*)>

<!ELEMENT update EMPTY>
<!ATTLIST update
    url           CDATA #REQUIRED
    label         CDATA #IMPLIED
>

<!ELEMENT discovery EMPTY>
<!ATTLIST discovery
    type          (web | update) "update"

    url           CDATA #REQUIRED
    label         CDATA #IMPLIED
>

<!ELEMENT includes EMPTY>
<!ATTLIST includes
    id                CDATA #REQUIRED
    version           CDATA #REQUIRED
    name              CDATA #IMPLIED
    optional          (true | false) "false"
    search-location   (root | self | both) "root"
    match             (perfect | equivalent | compatible | greaterOrEqual) "compatible"
>

<!ELEMENT requires (import+)>

<!ELEMENT import EMPTY>
<!ATTLIST import
    plugin        CDATA #IMPLIED
    feature       CDATA #IMPLIED

    version       CDATA #IMPLIED
    match         (perfect | equivalent | compatible | greaterOrEqual) "compatible"
    patch         (true | false) "false"

>

<!ELEMENT plugin EMPTY>
<!ATTLIST plugin
    id            CDATA #REQUIRED
    version       CDATA #REQUIRED
    fragment      (true | false) "false"
    os            CDATA #IMPLIED
    arch          CDATA #IMPLIED
    ws            CDATA #IMPLIED
    nl            CDATA #IMPLIED
    download-size CDATA #IMPLIED
    install-size  CDATA #IMPLIED
>

<!ELEMENT data EMPTY>
<!ATTLIST data
    id            CDATA #REQUIRED
    os            CDATA #IMPLIED
    arch          CDATA #IMPLIED
    ws            CDATA #IMPLIED
    nl            CDATA #IMPLIED
    download-size CDATA #IMPLIED
    install-size  CDATA #IMPLIED
>

Die Elemente und Attribute werden wie folgt definiert:

Bei Interaktion mit der Aktualisierungs-Site ordnet die Komponentenimplementierung die Elemente <Plugin> und <Daten> den Pfadkennungen zu, die von der Site verwendet werden, um die tatsächlich herunterzuladenden und zu installierenden Dateien festzulegen. Die Standardkomponentenimplementiertung durch Eclipse setzt die Pfadkennungen wie folgt zusammen: Beachten Sie, dass feature.xml -Manifestdokumente im allgemeinen UTF-8-Codierung angeben sollten. Zum Beispiel

<?xml version="1.0" encoding="UTF-8"?>

Umsetzbarer Text in feature.xml kann mit Hilfe von Java-Merkmalsbündelungskonventionen in feature<_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). 

Copyright IBM Corporation und Andere 2000, 2003.