フィーチャー・アーカイブ
フィーチャー・パッケージ情報は、いくつかの Java .jar に置かれています。
フィーチャー・アーカイブの組み立てには、標準 Java jar 機能が使用されます。
フィーチャー・アーカイブは、パッケージされたプラグイン・アーカイブ (次のセクションを参照) と非プラグイン・ファイルをそれぞれ参照します。
フィーチャーは、プロバイダーのインターネット・ドメイン・ネームに基づく構造化 ID を使用して識別されます。
たとえば、組織 eclipse.org はフィーチャー org.eclipse.jdt を生成します。
フィーチャー ID に使用される文字セットは、プラグイン ID
(プラグイン・マニフェストを参照) に指定されたものです。
推奨されるフィーチャー・アーカイブの命名規則:
<id>_<version>.jar
ここで、<id> はフィーチャー ID、<version> は完全なバージョン ID で、それぞれの 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="shift_jis"?>
<!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
>
エレメントおよび属性の定義は次のとおりです。
-
<feature> - フィーチャーを定義します。
-
id - 必須フィーチャー ID (例 com.xyz.myfeature)
-
version - (必須) コンポーネント・バージョン (例、1.0.3)
-
label - オプションの表示ラベル (名前)。
翻訳されることを前提としています。
-
provider-name - このコンポーネントを提供する組織を識別する表示ラベル (オプション)。
翻訳されることを前提としています。
-
image - フィーチャーに関する情報を表示するときに使用するイメージ (オプション)。
feature.xml を基準にして指定されます。
-
os - オペレーティング・システムの仕様 (オプション)。
Eclipse によって定義された、コンマで区切られた OS 指定機能のリスト (org.eclipse.core.boot.BootLoader については Javadoc を参照)。
指定された OS システムのいずれかにのみ、このフィーチャーをインストールしなければならないことを指示します。
この属性が指定されていない場合、フィーチャーをすべてのシステムにインストールできます (ポータブル・インプリメンテーション)。
この情報は、インストールおよび更新サポートでヒントとして使用されます (この設定に関係なく、ユーザーはインストールを強制できます)。
-
arch - マシン・アーキテクチャーの仕様 (オプション)。
Eclipse によって定義された、コンマで区切られたアーキテクチャー指定機能のリスト (org.eclipse.core.boot.BootLoader については Javadoc を参照)。
指定されたシステムのいずれかにのみ、このフィーチャーをインストールしなければならないことを指示します。
この属性が指定されていない場合、フィーチャーをすべてのシステムにインストールできます (ポータブル・インプリメンテーション)。
この情報は、インストールおよび更新サポートでヒントとして使用されます (この設定に関係なく、ユーザーはインストールを強制できます)。
-
ws - ウィンドウ操作システムの仕様 (オプション)。
Eclipse によって定義された、コンマで区切られた WS 指定機能のリスト (org.eclipse.core.boot.BootLoader については Javadoc を参照)。
指定された WS システムのいずれかにのみ、このフィーチャーをインストールしなければならないことを指示します。
この属性が指定されていない場合、フィーチャーをすべてのシステムにインストールできます (ポータブル・インプリメンテーション)。
この情報は、インストールおよび更新サポートでヒントとして使用されます (この設定に関係なく、ユーザーはインストールを強制できます)。
-
nl - ロケール仕様 (オプション)。
Java によって定義された、コンマで区切られたロケール指定機能のリスト。
互換ロケールで稼動している (Java ロケール・マッチング規則を使用) システムにのみ、このフィーチャーをインストールしなければならないことを指示します。
この属性が指定されていない場合、フィーチャーをすべてのシステムにインストールできます (言語に中立なインプリメンテーション)。
この情報は、インストールおよび更新サポートでヒントとして使用されます (この設定に関係なく、ユーザーはインストールを強制できます)。
-
colocation-affinity - このフィーチャーのデフォルトのインストール・ロケーションを選択するために使用される別のフィーチャー ID への参照 (オプション)。
このフィーチャーが新しいフィーチャーとして (このフィーチャーの別のバージョンもインストールされていない)
インストールされているとき、このフィーチャーを参照フィーチャーとして同じインストール・ロケーションにインストールしようとします。
-
primary - このフィーチャーを 1 次フィーチャーとして使用できるかどうかを指定する指示 (オプション)。
デフォルトは false (1 次フィーチャーではない) です。
-
application - 宣言フィーチャーが 1 次フィーチャーである場合、始動中に使用される Eclipse アプリケーションの ID (オプション)。
アプリケーション ID は、org.eclipse.core.runtime.applications 拡張ポイントに登録された有効なアプリケーションを表していなければなりません。
デフォルトは org.eclipse.ui.workbench です。
-
<install-handler>
-
library - インストール・ハンドラー・クラスを含む .jar ライブラリー (オプション)。
これが指定された場合、参照される .jar はフィーチャー・アーカイブに含まれている必要があります。
feature.xml エントリーを基準にしたフィーチャー・アーカイブ内のパスとして指定されます。
指定されないと、インストール・ハンドラー・クラスをロードするため、フィーチャー・アーカイブ自体が使用されます。
class 属性も指定された場合のみ、この属性は解釈されます。
-
handler - インストール・ハンドラーの ID (オプション)。
この値は、library 属性の値に応じて解釈されます。
library が指定されている場合、これは、指定された library に含まれているクラスの完全修飾名として解釈されます。
library が指定されていない場合、org.eclipse.update.installHandlers 拡張ポイントに登録された拡張の拡張 ID として解釈されます。
どちらの場合も、結果のクラスは IInstallHandler インターフェースをインプリメントする必要があります。
クラスは動的にロードされ、フィーチャー処理の間の特定のポイントで呼び出されます。
ハンドラーには、API クラスに対して更新プラグイン、また Eclipse プラグインからの可視性があります。
-
<description> - 単純なテキストでのコンポーネントの簡単な説明。
翻訳されることを前提としています。
-
url - HTML による完全な説明の URL (オプション)。
URL は、絶対パスまたは相対パスで指定できます。
相対パスの場合、フィーチャー・アーカイブを基準にする (そこにパッケージされている) と想定されます。
NL 処理の場合、それぞれの言語ごとに代替 URL を指定できるよう、URL 値を分離しなければならないことに注意してください。
-
<copyright> - 単純なテキストでのフィーチャーの著作権。
翻訳されることを前提としています。
-
url - HTML による完全な説明の URL (オプション)。
URL は、絶対パスまたは相対パスで指定できます。
相対パスの場合、フィーチャー・アーカイブを基準にする (そこにパッケージされている) と想定されます。
NL 処理の場合、それぞれの言語ごとに代替 URL を指定できるよう、URL 値を分離しなければならないことに注意してください。
-
<license> - 単純なテキストでのフィーチャーの「閲覧」ライセンス。
翻訳されることを前提としています。
これは、ダウンロード/インストール処理中に [Accept] [Reject] (受け入れるか拒否するか) アクションで標準ダイアログに表示されます。
Eclipse 更新マネージャーを使用してインストールまたは更新するため、閲覧ライセンスを指定する必要があることに注意してください。
ネストされた機能を使用している場合、ネストしている親 (つまり、インストールまたは更新で選択されたフィーチャー)
だけが閲覧ライセンス・テキストを定義しなければなりません。
オプションの url 属性が指定されている場合も、ライセンス・テキストが必要です。
-
url - HTML による完全な説明の URL (オプション)。
URL は、絶対パスまたは相対パスで指定できます。
相対パスの場合、フィーチャー・アーカイブを基準にする (そこにパッケージされている) と想定されます。
NL 処理の場合、それぞれの言語ごとに代替 URL を指定できるよう、URL 値を分離しなければならないことに注意してください。
この URL のコンテンツは、インストール処理中に閲覧ライセンスとして表示されるものとは異なることに注意してください。
閲覧ライセンスは、<license> エレメントの実際の値 (たとえば <license>click through text</license>) です。
-
<url> - フィーチャーの更新/新規フィーチャーを含むサイトの URL (オプション)
-
<update> - このフィーチャーの更新のためにアクセスする URL
-
url - 実際の URL
-
label - 参照されるサイトの表示ラベル (名前)
-
<discovery> - 新しいフィーチャーを提供する URL。
通常、プロバイダーはこのエレメントを使用して、自身のサイト、または補足フィーチャーを提供するパートナーのサイトを参照します。
Eclipse は、このエレメントを使用して新規サイトの URL をクライアントに配布します。
-
url - 実際の URL
-
label - 参照されるサイトの表示ラベル (名前)
-
<includes> - このフィーチャーの一部と見なされる、ネストされたフィーチャーへの参照 (オプション)。
ネストされたフィーチャーは、このフィーチャーと同じ更新サイトになければなりません。
-
<id> - ネストされたフィーチャーの ID (必須)
-
<version> - ネストされたフィーチャーのバージョン (必須)
-
<requires> - フィーチャー従属情報 (オプション)。
これは、プラグインの依存関係として表されます。
指定されると、これはインストール時にインストールおよび更新サポートによって強制されます。
-
<import> - 依存関係エントリー。
仕様および処理は、plugin.xml の <import> 仕様のサブセットです。
-
plugin - 従属プラグインの ID
-
version - プラグイン・バージョンの仕様 (オプション)
-
match - マッチング規則 (オプション)。
有効な値および処理は以下のとおりです。
-
バージョン属性が指定されていない場合、match 属性が指定されていても、それは無視されます。
-
perfect - 従属プラグインのバージョンは、指定されたバージョンと正確に一致している必要があります。
-
equivalent - 従属プラグインのバージョンは、少なくとも指定されたバージョン、
またはそれ以上のサービス・レベルでなければなりません
(メジャーおよびマイナー・バージョン・レベルは指定されたバージョンと等しくなければなりません)。
-
compatible - 従属プラグインのバージョンは、少なくとも指定されたバージョンと同じ、
またはサービス・レベルかマイナー・レベルがそれ以上のレベルでなければなりません
(メジャー・バージョン・レベルは指定されたバージョンと同じでなければなりません)。
-
greaterOrEqual - 従属プラグインのバージョンは、少なくとも指定されたバージョンと同じ、
またはサービス、マイナーまたはメジャー・レベルが指定されたバージョン以上である必要があります。
-
<plugin> - 参照プラグインを識別します。
-
id - 必須プラグイン ID (plugin.xml から)
-
version - 必須プラグイン・バージョン (plugin.xml から)
-
fragment - このエントリーがプラグイン・フラグメントかどうかの指定 (オプション)。
デフォルトは "false" です。
-
os - オペレーティング・システムの仕様 (オプション)。
Eclipse によって定義された、コンマで区切られた OS 指定機能のリスト (org.eclipse.core.boot.BootLoader については Javadoc を参照)。
指定された OS システムのいずれかにのみ、このエントリーをインストールしなければならないことを指示します。
この属性が指定されていない場合、エントリーをすべてのシステムにインストールできます (ポータブル・インプリメンテーション)。
この情報は、インストールおよび更新サポートでヒントとして使用されます (この設定に関係なく、ユーザーはエントリーのインストールを強制できます)。
-
arch - マシン・アーキテクチャーの仕様 (オプション)。
Eclipse によって定義された、コンマで区切られたアーキテクチャー指定機能のリスト (org.eclipse.core.boot.BootLoader については Javadoc を参照)。
指定されたシステムのいずれかにのみ、このフィーチャーをインストールしなければならないことを指示します。
この属性が指定されていない場合、フィーチャーをすべてのシステムにインストールできます (ポータブル・インプリメンテーション)。
この情報は、インストールおよび更新サポートでヒントとして使用されます (この設定に関係なく、ユーザーはインストールを強制できます)。
-
ws - ウィンドウ操作システムの仕様 (オプション)。
Eclipse によって定義された、コンマで区切られた WS 指定機能のリスト (org.eclipse.core.boot.BootLoader については Javadoc を参照)。
指定された WS システムのいずれかにのみ、このエントリーをインストールしなければならないことを指示します。
この属性が指定されていない場合、エントリーをすべてのシステムにインストールできます (ポータブル・インプリメンテーション)。
この情報は、インストールおよび更新サポートでヒントとして使用されます (この設定に関係なく、ユーザーはエントリーのインストールを強制できます)。
-
nl - ロケール仕様 (オプション)。
Java によって定義された、コンマで区切られたロケール指定機能のリスト。
互換ロケールで稼動している (Java ロケール・マッチング規則を使用)
システムにのみ、このエントリーをインストールしなければならないことを指示します。
この属性が指定されていない場合、エントリーをすべてのシステムにインストールできます (言語に中立なインプリメンテーション)。
この情報は、インストールおよび更新サポートでヒントとして使用されます (この設定に関係なく、ユーザーはエントリーのインストールを強制できます)。
-
download-size - フィーチャー・パッケージ機能によって提供されるヒントで、参照されるプラグイン・アーカイブのダウンロード・サイズを
K バイト単位で示します (オプション)。
指定されない場合、ダウンロード・サイズは分かりません
(インプリメンテーションの注: インプリメンテーションでは、「不明」とサイズ 0 を区別する必要があります)。
-
install-size - フィーチャー・パッケージ機能によって提供されるヒントで、参照されるプラグイン・アーカイブのインストール・サイズを
K バイト単位で示します (オプション)。
指定されない場合、インストール・サイズは分かりません
(インプリメンテーションの注: インプリメンテーションでは、「不明」とサイズ 0 を区別する必要があります)。
-
<data> - フィーチャーの一部である非プラグイン・データを識別します。
-
id - 相対パス書式のデータ ID (必須)。
-
os - オペレーティング・システムの仕様 (オプション)。
Eclipse によって定義された、コンマで区切られた OS 指定機能のリスト (org.eclipse.core.boot.BootLoader については Javadoc を参照)。
指定された OS システムのいずれかにのみ、このエントリーをインストールしなければならないことを指示します。
この属性が指定されていない場合、エントリーをすべてのシステムにインストールできます (ポータブル・インプリメンテーション)。
この情報は、インストールおよび更新サポートでヒントとして使用されます (この設定に関係なく、ユーザーはエントリーのインストールを強制できます)。
-
arch - マシン・アーキテクチャーの仕様 (オプション)。
Eclipse によって定義された、コンマで区切られたアーキテクチャー指定機能のリスト (org.eclipse.core.boot.BootLoader については Javadoc を参照)。
指定されたシステムのいずれかにのみ、このフィーチャーをインストールしなければならないことを指示します。
この属性が指定されていない場合、フィーチャーをすべてのシステムにインストールできます (ポータブル・インプリメンテーション)。
この情報は、インストールおよび更新サポートでヒントとして使用されます (この設定に関係なく、ユーザーはインストールを強制できます)。
-
ws - ウィンドウ操作システムの仕様 (オプション)。
Eclipse によって定義された、コンマで区切られた WS 指定機能のリスト (org.eclipse.core.boot.BootLoader については Javadoc を参照)。
指定された WS システムのいずれかにのみ、このエントリーをインストールしなければならないことを指示します。
この属性が指定されていない場合、エントリーをすべてのシステムにインストールできます (ポータブル・インプリメンテーション)。
この情報は、インストールおよび更新サポートでヒントとして使用されます (この設定に関係なく、ユーザーはエントリーのインストールを強制できます)。
-
nl - ロケール仕様 (オプション)。
Java によって定義された、コンマで区切られたロケール指定機能のリスト。
互換ロケールで稼動している (Java ロケール・マッチング規則を使用) システムにのみ、このエントリーをインストールしなければならないことを指示します。
この属性が指定されていない場合、エントリーをすべてのシステムにインストールできます (言語に中立なインプリメンテーション)。
この情報は、インストールおよび更新サポートでヒントとして使用されます (この設定に関係なく、ユーザーはエントリーのインストールを強制できます)。
-
download-size - フィーチャー・パッケージ機能によって提供されるヒントで、参照されるデータ・アーカイブのダウンロード・サイズを
K バイト単位で示します (オプション)。
指定されない場合、ダウンロード・サイズは分かりません
(インプリメンテーションの注: インプリメンテーションでは、「不明」とサイズ 0 を区別する必要があります)。
-
install-size - フィーチャー・パッケージ機能によって提供されるヒントで、参照されるデータ・アーカイブのインストール・サイズを
K バイト単位で示します (オプション)。
指定されない場合、インストール・サイズは分かりません
(インプリメンテーションの注: インプリメンテーションでは、「不明」とサイズ 0 を区別する必要があります)。
更新サイトと対話する際、フィーチャー・インプリメンテーションは <plugin> および <data>
エレメントを、ダウンロードまたはインストールする実際のファイルを決定するためにサイトで使用されるパス ID にマップします。
Eclipse で提供されているデフォルトのフィーチャー・インプリメンテーションは、パス ID を次のように構成します。
-
<plugin> エレメントは、形式 "plugins/<pluginId>_<pluginVersion>.jar" のパス・エントリーになります
(たとえば "plugins/org.eclipse.core.boot_2.0.0.jar")。
-
<data> エレメントは、形式 "features/<featureId>_<featureVersion>/<dataId>" のパス・エントリーになります
(たとえば "features/com.xyz.tools_1.0.3/examples.zip")。
一般に、feature.xml マニフェスト文書は、UTF-8 エンコードを指定しなければならないことに注意してください。
次に例を示します。
<?xml version="1.0" encoding="UTF-8"?>
feature.xml に含まれている変換可能なテキストは、Java プロパティーのバンドル規則を使用して、フィーチャー
<_locale>.properties ファイルに分けることができます。
変換されたストリングは、インストール時に使用されることに注意してください
(つまり、プラグイン・フラグメントのランタイム・メカニズムを採用しないでください)。