フィーチャー・アーカイブ
フィーチャー・パッケージ情報は、いくつかの 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="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
>
エレメントおよび属性の定義は次のとおりです。
-
<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 です。
-
plugin (2.1 の新機能) - フィーチャーの属性情報 (1 次フィーチャーなどのイメージ、変換、スプラッシュ・スクリーン) を
持つために使用されるフィーチャーにリストされるプラグインの ID を表すオプション ID。
これが指定されないと、属性プラグインの ID はフィーチャーの ID と同じであると想定されます。
-
exclusive (2.1 の新機能) - オプション・フラグ。
「true」の場合、他のフィーチャーを持つグループにフィーチャーをインストールできないことを
示します。
-
<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 - 参照されるサイトの表示ラベル (名前)
-
type (2.1 の新機能) - デフォルトで、ディスカバリー・サイトは更新サイト (「update」) であると想定されます。
この属性の値を「web」に設定することにより、適切なブラウザーで直接表示できる
通常の Web ハイパーリンクとして URL を扱うように Eclipse に指示できます。
-
<includes> - このフィーチャーの一部と見なされる、ネストされたフィーチャーへの参照 (オプション)。
ネストされたフィーチャーは、このフィーチャーと同じ更新サイトになければなりません。
-
id - ネストされたフィーチャーの ID (必須)
-
version - ネストされたフィーチャーのバージョン (必須)
-
optional (2.1 の新機能) - この属性が「true」に設定されている場合、フィーチャーをオプションとして組み込むことができます。
ユーザーは、オプションのフィーチャーをインストールしなかったり、オプションのフィーチャーがインストールされている
場合にそのフィーチャーを使用不可にしたり、後でオプションのフィーチャーをインストールしたりすることができます。
オプションのフィーチャーがなくても、それはエラーとして扱われません。
-
name (2.1 の新機能) - オプションのフィーチャーがない場合、Eclipse はその名前を適切に解釈することができません。
この属性は、オプションのフィーチャーがインストールされていないときに、Eclipse がオプションのフィーチャーの
名前を解釈できるようにする代わりのものとして使用できます。
-
match (2.1 の新機能) - フィーチャーが match="perfect" (デフォルト) で組み込まれている
場合、参照を満足させるためには正確なバージョンが必要です。
一方、それ以外の値は (「compatible」や「equivalent」など) は多少柔軟性があります。
この属性を「perfect」以外の値に設定することは、ブランチを更新したり、ブランチにパッチを適用したりする
場合に重要です。
-
search-location (2.1 の新機能) - match が「perfect」以外の値に設定されている
場合、組み込まれるフィーチャーは「match」属性によって設定される制限内で更新できます。
search-location はデフォルトで「root」です。
これは、親の「url」エレメント内にある「update」エレメントに指定される URL が想定されることを意味します。
組み込まれたフィーチャーに独自の「update」エレメントが定義された場合、デフォルトでは
そのフィーチャーは無視されます。
子の更新を独自のロケーションから行うことを親のフィーチャーが必要としている
場合、親のフィーチャーはこの属性を「both」または「self」に設定できます。
-
<requires> - フィーチャー従属情報 (オプション)。
これは、プラグインの依存関係として表されます。
指定されると、これはインストール時にインストールおよび更新サポートによって強制されます。
-
<import> - 依存関係エントリー。
仕様および処理は、plugin.xml の <import> 仕様のサブセットです。
-
<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 ファイルに分けることができます。
翻訳されたストリングは、インストール時に使用されます (つまり、プラグイン・フラグメント・ランタイム機構は使用しません)。