特性保存檔

特性套裝資訊被放置在分別的 Java .jar 檔案中。 標準 Java jar 機能可用來建構特性保存檔。 特性保存檔分別參照已包裝的外掛程式保存檔(請參照下一區段)和非外掛程式(non-plug-in)檔案。

使用依據提供者網域名稱的結構化識別碼來識別特性。 例如,組織 eclipse.org 產生 org.eclipse.jdt 特性。關於特性識別的字元集,如同指定的 外掛程式識別碼(請參閱外掛程式 Manifest)。

建議為特性保存檔的慣例名稱為
<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 Manifest 和安全設定檔案

特性處理

特性處理格式由下列 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"?>

feature.xml 檔包含可翻換文字,可利用 Java property bundle 使用慣例將檔案依語言環境分為 feature<_locale>.properties 檔。 請注意,在安裝時期使用可翻換的字串(例如,勿使用外掛程式片段執行時期機制)。  

Copyright IBM Corporation and others 2000, 2003.