功能部件归档

功能部件封装信息放置在独立的 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"
    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
    url           CDATA #REQUIRED
    label         CDATA #IMPLIED
>

<!ELEMENT includes EMPTY>
<!ATTLIST includes
    id            CDATA #REQUIRED
    version       CDATA #REQUIRED
>

<!ELEMENT requires (import+)>

<!ELEMENT import EMPTY>
<!ATTLIST import
    plugin        CDATA #REQUIRED
    version       CDATA #IMPLIED
    match         (perfect | equivalent | compatible | greaterOrEqual) "compatible"
>

<!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 Corp. and others 2000, 2002.