功能部件归档

功能部件封装信息放置在独立的 Java .jar 中。标准 Java jar 设施用于构造功能部件归档。功能部件归档引用独立封装的插件归档(参见下一节)和非插件文件。

功能部件是根据供应商因特网域名使用结构化标识来标识的。例如,组织 eclipse.org produces 会产生功能部件 org.eclipse.jdt。用于功能部件标识的字符集与为插件标识指定的字符集相同(参见插件清单)。

用于命名功能部件归档的推荐约定是
<id>_<version>.jar

其中 <id> 是功能部件标识,<version> 是包含在各个 feature.xml 中的完整版本标识。注意,这是发生冲突的可能性最小的推荐约定,但对于 Eclipse 体系结构不是必需的。例如,下面是有效的功能部件归档名

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

另外,每个功能部件归档是针对它的功能部件目录(但不包括目录路径元素)封装的。归档具有以下结构

feature.xml
feature<_locale>.properties(参见“翻译的功能部件信息”)
其它功能部件文件和子目录(TBD)
META-INF/
    Java jar 清单和安全性文件

功能部件清单

功能部件清单格式由下列 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
>

元素和属性定义如下所示:

当与更新站点交互时,功能部件实现将 <plugin><data> 元素映射到站点使用的路径标识中以确定要下载和安装的实际文件。Eclipse 提供的缺省功能部件实现按如下所示构造路径标识: 注意,通常情况下,feature.xml 清单文档应指定 UTF-8 编码。例如

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

可使用 Java 属性捆绑约定将包含在 feature.xml 中的可翻译文本分成若干个 feature<_locale>.properties 文件。注意,在安装时使用翻译的字符串(即,不要使用插件段运行时机制)。 

Copyright IBM Corporation and others 2000, 2003.