Archives de Recursos

As informações de empacotamento de recurso são colocadas em um arquivo .jar do Java separado. As facilidades do jar do Java padrão são utilizadas para construir archives de recursos. Os archives de recursos se referem a archives de plug-in compactados separadamente (veja a próxima seção) e a arquivos sem plug-in.

Os recursos são identificados utilizando um identificador estruturado baseado no nome de domínio da Internet do provedor. Por exemplo, a organização eclipse.org produz o recurso org.eclipse.jdt. O conjunto de caracteres utilizado para identificadores de recurso é especificado para identificadores de plug-in (consulte Manifesto do Plug-in).

A convenção recomendada para nomenclatura de archives de recursos é
<id>_<versão>.jar

Em que <id> é o identificador de recurso e <versão> é o identificador de versão completa contido no feature.xml respectivo. Observe que, esta é uma convenção recomendada que minimiza a oportunidade de colisões, mas não é requerida pela arquitetura de Eclipse. Por exemplo, a seguir encontram-se nomes de archives de recursos válidos

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

Internamente, cada archive de recurso é compactado relativo ao diretório do recurso (mas não incluindo o elemento de caminho do diretório). O archive possui a seguinte estrutura

feature.xml
feature<_locale>.properties (consulte "Informações de Recurso Traduzível")
outros arquivos e subdiretórios de recurso (TBD)
META-INF/
    Manifesto jar do Java e arquivos de segurança

Manifesto do recurso

O formato do manifesto do recurso é definido pelo seguinte 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 plug-in EMPTY>
<!ATTLIST plug-in
    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
>

As definições de elemento e atributo são as seguintes:

Ao interagir com o site de atualização, a implementação de recurso mapeia os elementos <plugin> e <data> nos identificadores de caminho utilizados pelo site para determinar os arquivos reais para download e instalação. A implementação do recurso padrão fornecida pelo Eclipse constrói os identificadores de caminho da seguinte maneira: Observe que, em geral os documentos de manifesto de feature.xml  devem especificar a codificação UTF-8. Por exemplo

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

O texto traduzível contido no feature.xml pode ser separado nos arquivos feature<_locale>.properties utilizando as convenções de pacote de propriedade Java. Observe que, as cadeias traduzíveis são utilizadas no tempo de instalação (isto é, não empregam o mecanismo de tempo de execução de fragmento do plug-in).  

Copyright IBM Corporation e outros 2000, 2003.