Archivi di funzioni

Le informazioni relative alla creazione di pacchetti delle funzioni si trovano in un .jar Java separato. Le funzionalità standard dei jar Java vengono utilizzate per la costruzione degli archivi di funzioni. Gli archivi di funzioni fanno un riferimento separato agli archivi di plug-in in pacchetti (consultare la sezione successiva) e ai file che non sono plug-in.

Le funzioni vengono identificate mediante l'utilizzo di un identificativo di struttura basato sul nome di dominio del provider internet. Ad esempio, l'organizzazione eclipse.org produce la funzione org.eclipse.jdt. L'insieme di caratteri utilizzato per gli identificativi delle funzioni corrisponde a quello utilizzato per gli identificativi di plug-in (consultare Manifest di plug-in).

La convenzione consigliata per la denominazione degli archivi di funzione è
<id>_<version>.jar

Dove <id> è l'identificativo della funzione e <version> è l'identificativo della versione completa contenuta nella rispettiva funzione.xml. È importante notare che questa è una convenzione consigliata per ridurre le probabilità di conflitto, ma non è richiesta dall'architettura di Eclipse. Ad esempio, di seguito sono riportati alcuni nomi di archivi di funzioni validi

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

All'interno, ciascun archivio di funzioni è creato in pacchetti relativi alla directory della funzione (ma senza includere l'elemento percorso directory). La struttura dell'archivio è quella riportata di seguito

feature.xml
feature<_locale>.properties (consultare "Translated Feature Information")
altri file di funzione e sottodirectory (TBD)
META-INF/
    manifest di jar Java e file di protezione

Manifest di funzione

Il formato del manifest di funzione viene definito dalla seguente dichiarazione DTD:

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

Di seguito sono riportate le definizioni degli elementi e degli attributi:

Quando si interagisce con il sito di aggiornamento, l'implementazione della funzione associa gli elementi <plugin> e <data> in identificativi di percorso utilizzati dal sito per determinare quali siano i file effettivi da scaricare e installare. L'implementazione della funzione predefinita fornita da Eclipse costruisce gli identificativi di percorso come riportato di seguito: In generale, i documenti manifest di funzione.xml  devono specificare la codifica UTF-8. Ad esempio

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

È possibile separare il testo traducibile contenuto nella funzione.xml, nei file feature<_locale>.properties utilizzando le convenzioni dell'insieme delle proprietà Java. Si noti che le stringhe tradotte vengono utilizzate al momento dell'installazione (ad esempio, non adoperano il meccanismo di run-time del frammento di plug-in). 

Copyright IBM Corporation e altri 2000, 2003.