plugin.xml ファイル
プラグインは、plugin.xml という XML マニフェスト・ファイルに記述されています。 このファイルは、プラグイン・デプロイメント・ファイルの一部です。 マニフェスト・ファイルにより、 ポータル・アプリケーションのランタイムに、プラグインの登録とアクティブ化にはどんな情報が必要かが指示されます。 マニフェスト・ファイルは、基本的には、プラグ可能なコンポーネントと ポータル・アプリケーションのランタイムとの間の契約書のような役割を果たします。WebSphere® Application Server の plugin.xml は、Eclipse ワークベンチ用に用意されているものとほぼ同じですが、いくつかの点で Eclipse ワークベンチの場合とは異なっています。
ロケーション
Web アプリケーション・アーカイブ・ファイルに組み込む場合は、plugin.xml ファイルを、その Web アプリケーション用に存在するディレクトリー階層のコンテキストの下の WEB-INF ディレクトリーに置く必要があります。plugin.xml ファイルが Enterprise JavaBeans Java™ アーカイブ (JAR) ファイルまたは共有ライブラリー JAR ファイルに置かれている場合は、plugin.xml ファイルをルート・ディレクトリーに置く必要があります。 参加コンポーネントがアプリケーション・サーバー上にロードされ、開始されると、 拡張レジストリー・サービスに plugin.xml ファイルが組み込まれます。
使用上の注意
- このファイルは読み取り専用ですか?
いいえ
- このファイルは製品コンポーネントによって更新されますか?
???
- 更新される場合、その更新のきっかけとなるものは何ですか?
Rational Application Developer は、Web コンポーネントを Web モジュールにアセンブルする際、または Web コンポーネントあるいは Web モジュールのプロパティーを変更する際に、web.xml ファイルを更新します。
- このファイルの内容は、いつ、どのように使用されますか?
WebSphere Application Server の機能では、Web アプリケーション開発の構成およびデプロイメント段階において、このファイル内の情報が使用されます。
- マニフェスト・マークアップ定義は、さまざまなネーミング・トークンおよび ID を利用します。
あいまいさを避けるために、これらの命名規則には以下のような運用上のルールがあります。
一般に、ID ではすべて大/小文字が区別されます。
SimpleToken := sequence of characters from ('a-z','A-Z','0-9') ComposedToken := SimpleToken | (SimpleToken '.' ComposedToken) PlugInId := ComposedToken PlugInPrereq := PlugInId ExtensionId := SimpleToken ExtensionPointId := SimpleToken ExtensionPointReference := ExtensionPointId | (PlugInId '.' ExtensionPointId)
サンプル・ファイル・エントリー
プラグイン・マニフェスト DTD 全体は、以下のようになります。 XML スキーマはマニフェストの定義には使用されません。プラグイン用の Eclipse ツールが、現時点では DTD を必要とするためです。 XML DTD 構造規則の element* は、そのエレメントがゼロ回以上出現することを意味します。element? は、 そのエレメントがゼロ回または 1 回出現することを意味します。そして element+ は、 そのエレメントが 1 回以上出現することを意味します。
<?xml encoding="US-ASCII"?>
<!ELEMENT plugin (requires?, extension-point*, extension*)>
<!ATTLIST plugin
name CDATA #IMPLIED
id CDATA #REQUIRED
version CDATA #REQUIRED
provider-name CDATA #IMPLIED
>
<!ELEMENT requires (import+)>
<!ELEMENT import EMPTY>
<!ATTLIST import
plugin CDATA #REQUIRED
version CDATA #IMPLIED
match (exact | compatible | greaterOrEqual) #IMPLIED
>
<!ELEMENT extension-point EMPTY>
<!ATTLIST extension-point
name CDATA #IMPLIED
id CDATA #REQUIRED
schema CDATA #IMPLIED
>
<!ELEMENT extension ANY>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA #IMPLIED
name CDATA #IMPLIED
>
WebSphere Application Server の違い
- plugin エレメント
- このマニフェストで提供されるプラグイン・エレメントには、クラス属性は含まれていません。 クラス属性が不要なのは、プラグイン・メカニズムでは、 Eclipse ワークベンチで必要な特定のクラスをプラグイン開発者が拡張または使用する必要がないためです。 また、プラグイン・エレメントにはランタイム・エレメントも含まれません。 これは、J2EE などの規格で、アプリケーションのランタイム・ライブラリーのロケーションが既に定義されているためです。
- import エレメント
- この必須エレメントには、エクスポート属性が含まれていません。管理を容易にするために、 J2EE モジュールは自己完結型であることが奨励されているためです。 エクスポート属性の除去に加えて、一致属性では、バージョンの一致で「より大か等しい」(greaterOrEqual) を選択することもできます。
- extension-point エレメント
- extension-point エレメントは、名前属性をオプションとして扱います。この J2EE 実装では、 この属性を実際に使用することはないためです。
プラグイン・マニフェストの詳細は、Eclipse 資料の、『Platform Plug-In Developer Guide』>『Other reference information』>『Plug-in manifest』に記載されています。
<?xml version="1.0"?>
<!--the plugin id is derived from the vendor domain name -->
<plugin
id=”com.ibm.ws.console.core”
version=”1.0.0”
provider-name=”IBM WebSphere”>
<!--declaration of prerequisite plugins-->
<requires>
<import plugin=”com.ibm.data” version=”2.0.1” match=”compatible”/>
<import plugin=”com.ibm.resources” version=”3.0” match=”exact”/>
</requires>
<!--declaration of link extension point -->
<extension-point
id=”linkExtensionPoint”
schema=”/schemas/linkSchema.xsd”/>
<!--declaration of an extension to the link extension point -->
<extension
point=”com.ibm.ws.console.core.linkExtensionPoint”
id=”linkExtension”>
<link
label=”Example.displayName”
actionView=”com.ibm.ws.console.servermanagement.forwardCmd.do?
forwardName=example.config.view&
lastPage=ApplicationServer.config.view”>
</link>
</extension>
</plugin>