Archives de fonctions

Les informations de regroupement des fonctions sont placées dans un fichier .jar Java distinct. Les fonctions .jar Java standard sont utilisées pour la création des archives de fonctions. Les archives de fonctions font référence à des archives de plug-in mis en forme séparément (voir section suivante) et à des fichiers autres que des fichiers de plug-in.

Les fonctions sont identifiées à l'aide d'un identificateur structuré, fondé sur le nom du domaine Internet du fournisseur. Par exemple, l'organisation eclipse.org génère la fonction org.eclipse.jdt. Le jeu de caractères utilisé pour les identificateurs de fonction correspond à celui spécifié pour les identificateurs de plug-in (reportez-vous à la rubrique Manifeste des plug-in).

La convention recommandée pour l'attribution du nom des archives de fonction est la suivante :
<id>_<version>.jar

<id> correspondant à l'identifiant de fonction et <version> à l'identifiant de la version intégrale contenu dans le fichier feature.xml respectif. Cette convention recommandée minimise les chances de collision, mais elle n'est pas requise par l'architecture Eclipse. Par exemple, les noms d'archive de fonction suivants sont valides :

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

En interne, chaque archive de fonction est mise en forme par rapport à son répertoire de fonctions (mais sans inclure le chemin du répertoire). La structure de l'archive est la suivante :

feature.xml
feature<_locale>.properties (voir "Informations traduites sur les fonctions")
autres sous-répertoires et fichiers de fonctions (à déterminer)
META-INF/
    Fichiers de sécurité et de manifeste jar Java

Manifeste de fonctions

Le format du manifeste des fonctions est défini par la DTD suivante :

<?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
>

Les définitions d'élément et d'attribut sont les suivantes :

Si elle interagit avec le site de mise à jour, l'implémentation de la fonction mappe les éléments <plugin> et <data> en identificateurs de chemin utilisés par le site pour déterminer les fichiers à télécharger et installer. L'implémentation par défaut des fonctions fournie par Eclipse génère les identificateurs de chemin de la manière suivante : En général, les documents du manifeste feature.xml doivent spécifier un encodage UTF-8. Par exemple

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

Le texte traduisible du fichier feature.xml peut être séparé en fichiers feature<_locale>.properties à l'aide des conventions de regroupement des propriétés Java. Les chaînes traduites sont utilisées lors de l'installation (n'utilisez donc pas le mécanisme d'exécution des fragments de plug-in). 

Copyright IBM Corporation and others 2000, 2003.