コンソール・モジュールには以下の記述子が必要です。
- Web アプリケーション記述子 (web.xml)。この記述子は必須で、Java サーブレット仕様により記述されます。
- ポートレット・アプリケーション記述子 (portlet.xml)。この記述子は必須で、ポートレット仕様により記述されます。
portlet.xml の作成方法の例については、コンソール・モジュールのサンプルを参照してください。
- ポータル・トポロジー記述子 (ibm-portal-topology.xml)。この記述子はコンソール・モジュールに固有で、モジュール内のポートレットとリソース、モジュールをページにどのように配置するか、ナビゲーションからどのようにアクセスするかを定義します。
- ポータル・セキュリティー記述子 (ibm-portal-security.xml)。この記述子はコンソール・モジュールに固有で、役割とナビゲーション・ノードおよびポートレットへのアクセスを定義します。
トポロジーおよびセキュリティー記述子は、PAA パッケージを他のポータル・アプリケーション WAR ファイルと区別している主要なコンポーネントです。
コンソール・モジュールのサンプルにはこれらの記述子が含まれており、それらのフィーチャーが示されています。
サンプル記述子は、エレメントを説明するインライン・コメントとその使用法を提供します。
最初のコンソール・モジュールには、Application Server Toolkit に対して PAA Visual Designer プラグインを使用して、記述子を開発する必要があります。
XML の構造に慣れるためにこれらを手動で作成する場合は、このトピックのステップが、IBM により提供されるサンプルにアプリケーションをデプロイするために使用できる単純な記述子の作成方法を示します。
これらのステップを実行した後でより完全な情報を得るには、PAA スキーマのサンプルおよび参照トピックを参照する必要があります。
ポータル・トポロジー記述子
これらのステップを実行するには、テキスト・エディターまたは XML エディターで ibm-portal-topology.xml というファイルを開き、各ステップの最後にそれぞれの変更点を保管します。
- 次のエレメントを ibm-portal-topology.xml にコピーします。
<?xml version="1.0" encoding="UTF-8"?>
<ibm-portal-topology
xmlns="http://www.ibm.com/websphere/appserver/schemas/6.0/ibm-portal-topology.xsd"
xmlns:base="http://www.ibm.com/websphere/appserver/schemas/6.0/ibm-portal-base.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.ibm.com/websphere/appserver/schemas/6.0/ibm-portal-topology.xsd ibm-portal-topology.xsd">
<application-definition appID="com.ibm.isclite.samples.basicModule" version="6.1">
</application-definition>
<PAA-ref>com.ibm.isclite.samples.PageLayout</PAA-ref>
</ibm-portal-topology>
- アプリケーションのタイトルを作成します。タイトルは、アプリケーション定義エレメントの最初のエレメントです。
<title>
<base:nls-string lang="en">My basic module</base:nls-string>
</title>
- 次に示すように、コンポーネント・ツリーを <requires/> エレメントの後に置きます。
<component-tree uniqueName="com.ibm.isclite.samples.basicModule.appTree">
<portlet-definition uniqueName="com.ibm.isclite.samples.basicModule.portletDefinition.A">
<title>
<base:nls-string lang="en">My basic module</base:nls-string>
</title>
<resource-link name="basicModule"
portletApplication="com.ibm.isclite.samples.basicmodule.BasicModule.01a"
type="static"/>
</portlet-definition>
<portlet-entity uniqueName="com.ibm.isclite.samples.basicModule.portletEntity.A"
portletDefinitionRef="com.ibm.isclite.samples.basicModule.portletDefinition.A">
<title>
<base:nls-string lang="en">My basic module</base:nls-string>
</title>
</portlet-entity>
</component-tree>
- <resource-link/> エレメントの name 属性は、ポートレット・デプロイメント記述子から <portlet-name/> を指定する必要があります。
- <resource-link/> エレメントの portletApplication 属性は、ポートレット・デプロイメント記述子から <portlet-app/> エレメントの id 属性を指定する必要があります。
- <portlet-entity/> エレメントの portletDefinitionRef 属性は、<portlet-definition/> の固有の名前を参照します。この記述子の以降のエレメントは、<portlet-entity/> の固有の名前を使用してポートレットを呼び出します。
複数のポートレット・エンティティーが、同じポートレット定義を指定することができます。
これを実行するために、単一のポートレット定義には単一のポートレット・エンティティーが備わっています。
- この例でレンダリングされるポートレット・タイトルは、ポートレット・エンティティーから派生しています。
この値が提供されない場合は、ポートレット・タイトルはレイアウト・ツ
リーの <window/> エレメントにより提供されるタイトルによりレンダリ
ングされます。
その値も提供されない場合、タイトルは <resource-link/> により示されるポートレットの portlet.xml 内の <portlet-name/> エレメントから取得されます。
- 次に示すように、コンポーネント・ツリーの後にレイアウト・ツリーを配置します。
<layout-tree>
<layout-element uniqueName="com.ibm.isclite.samples.basicModule.layoutElement.A">
<title>
<base:nls-string lang="en">My basic module</base:nls-string>
</title>
<simple-container orientation="row"
uniqueName="com.ibm.isclite.samples.basicModule.container.A">
<window uniqueName="com.ibm.isclite.samples.basicModule.window.A">
<title>
<base:nls-string lang="en">My basic module</base:nls-string>
</title>
<component-definition-ref>
com.ibm.isclite.samples.basicModule.portletEntity.A
</component-definition-ref>
</window>
</simple-container>
</layout-element>
</layout-tree>
- レイアウト・ツリーの各レイアウト・エレメントは、コンソールのページ・レイアウトを定義します。
- 各ページはネストされたコンテナーを持つことができ、それぞれの単純なコンテナーは複数のウィンドウを持つことができます。
それぞれの単純なコンテナーは行方向または列方向のいずれかです。これらのコンテナーをネストすると、ページ・レイアウトで複雑なテーブル構造を作成することができます。
- <component-definition-ref/> エレメントはこのウィンドウのコンテンツを提供するポートレット・エンティティーの固有の名前を指定します。
- 次に示すように、レイアウト・ツリーの後にナビゲーション・エレメントを作成します。
<navigation-element uniqueName="com.ibm.isclite.samples.navigationElement.basicModule"
layoutElementRef="com.ibm.isclite.samples.basicModule.layoutElement.A">
<title>
<base:nls-string lang="en">Basic Module Sample</base:nls-string>
</title>
<preference name="ProductFilter">
<base:value>
<base:string>com.ibm.isclite.samples.PageLayout</base:string>
</base:value>
</preference>
<parent-tree parentTreeRef="com.ibm.isclite.samples.navigationElement.Samples"/>
</navigation-element>
- 各ナビゲーション・エレメントは、コンソール・ナビゲーション内のノードを定義します。ナビゲーション・エレメントをネストする場合は、コンソール・ナビゲーション内に反映される階層木構造が作成されます。
これを行うために、単一のナビゲーション・エレメントのみが提供されています。
layoutElementRef 属性は、このエレメントがコンソール・ユーザーによって選択されるときに表示されるページ上でレンダリングされる、レイアウト・エレメントの固有の名前を示します。
- ProductFilter 設定の内容は、リード・アプリケーションの appID を示します。ナビゲーションをフィルタリングするためにコンソール・ユーザーがリード製品を選択する場合には、これを使用してこのナビゲーション・エレメントをレンダリングします。
- parentTreeRef エレメントの内容は、このエレメントの親ナビゲーション・エレメントの固有の名前を示します。
次の図は、ページ・レイアウト・サンプルでこのナビゲーション・エレメントがレンダリングされる方法を示しています。
この図では、ユーザーがナビゲーションをフィルタリングするために
View 選択リストから、
Integrated Solutions Console Sample を選択しています。
図 1. コンソール・モジュール・ナビゲーションのサンプル

終了したら、ファイルを保管して閉じ、コンソール・モジュール・プロジェクトの /WEB-INF ディレクトリーに格納します。
ポータル・セキュリティー記述子のサンプル
これらのステップを実行するには、テキスト・エディターまたは XML エディターで ibm-portal-security.xml というファイルを開き、各ステップの最後にそれぞれの変更点を保管します。
- 次のエレメントを ibm-portal-security.xml にコピーします。
<?xml version="1.0" encoding="UTF-8"?>
<ibm-portal-security
xmlns="http://www.ibm.com/websphere/appserver/schemas/6.0/ibm-portal-security.xsd"
xmlns:base="http://www.ibm.com/websphere/appserver/schemas/6.0/ibm-portal-base.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.ibm.com/websphere/appserver/schemas/6.0/ibm-portal-topology.xsd ibm-portal-topology.xsd
http://www.ibm.com/websphere/appserver/schemas/6.0/ibm-portal-base.xsd ibm-portal-base.xsd
http://www.ibm.com/websphere/appserver/schemas/6.0/ibm-portal-security.xsd ibm-portal-security.xsd">
</ibm-portal-security>
- <ibm-portal-security/> エレメントのコンテンツとして <application-role/> エレメントを追加します。
<application-role uniqueName="monitor">
</application-role>
このサンプルは、アクセス権の管理の役割である monitor を定義します。
このエレメントおよび uniqueName 属性の詳しい説明については、例: ポータル・セキュリティー・スキーマ
を参照してください。
- アプリケーション役割のコンテンツとして、次の <portal-role/> エレメントを追加します。
<portal-role object-ref="com.ibm.isclite.samples.navigationElement.basicModule"/>
<portal-role object-ref="com.ibm.isclite.samples.basicModule.navigationElement.A"/>
<portal-role object-ref="com.ibm.isclite.samples.basicModule.portletEntity.A"
role-type="Privileged User"/>
このサンプルではユーザーに対して、2 つのナビゲーション・エレメントの表示と、1 つのポートレット・ヘルプの表示、編集、およびアクセスを行うための、モニター・アクセス権を割り当てています。
このエレメントおよびその属性の詳しい説明については、
例: ポータル・セキュリティー・スキーマ
を参照してください。
終了したら、ファイルを保管して閉じ、コンソール・モジュール・プロジェクトの /WEB-INF ディレクトリーに格納します。