![]() ![]() ![]() ![]() |
エクスポート/インポート ユーティリティでは、図 10-1 に示すように、ラウンドトリップ開発の全ライフサイクルが可能であり、Workshop for WebLogic 環境とステージングまたはプロダクション環境間でポータルを簡単に移動できます。
この章では、エクスポート/インポート ユーティリティの使用方法について説明します。このユーティリティに関する基礎情報や使用目的についても説明します。また、一般的な使用例を示す詳細なサンプルを提示します。
次の手順は、エクスポート/インポート ユーティリティをスタンドアロン アプリケーションとして実行することを予定している場合にのみ必要です。Workshop for WebLogic 伝播ツールのみを実行する場合、次の手順は必要ではありません。
PATH
環境変数に Ant 1.5 があることを確認してください。Ant は、WebLogic Server の標準インストールの一部です。次の場所にあります。
WEBLOGIC_HOME
は BEA_HOME
/weblogic92
です。
BEA_HOME/weblogic92/portal/bin/xip/build.xml
ファイルを開き、適切な場所を指すように [Installer] セクション内の次のプロパティを編集します。
BEA_HOME
/weblogic92/portal/lib/modules/wlp-propagation-web-lib.war
p13n_prop.jar
ファイルを抽出して、BEA_HOME
/weblogic92/portal/lib
で保存します。 注意 : | p13n_prop.jar ファイルが、このディレクトリで指定すると、build.xml ファイルの wlp.classpath に追加する必要はありません。このディレクトリで指定されていない場合、build.xml ファイルの wlp.classpath に追加します。 |
BEA_HOME/weblogic92/portal/bin/xip ディレクトリ内から実行します。
BEA_HOME
/weblogic92/portal/lib/modules/wlp-framework-full-app-lib.ear
から netuix.jar
ファイルを ${wlp.lib.dir}
に抽出します。 注意 : | ${wlp.lib.dir}/netuix.jar は build.xml の wlp.classpath にあります。 |
xip.properties
での xip.config.url
変数は 7003 ポート を使用します。コンフィグレーション ウィザードで設定されているポート番号に一致するように、そのポート番号を 7001 に変える必要があります。
xip.config.url=t3://localhost:7001
xip.properties
ファイルは BEA_HOME
/weblogic92/portal/bin/xip
にあります。
build.xml
での wls.classpath
は wls.lib.dir
を使用しないで bea.dir
を使用します。wls.classpath は以下に示したように wls.lib.dir
を使用する必要があります。
<property name="wls.classpath" value="${wls.lib.dir}/wlclient.jar" />
[javac] ?\xip\src\com\bea\wlp\xip\XipProperties.java:279: cannot find symbol
[javac] symbol : method setEnableWSRPPortletImport(boolean)
BEA_HOME/weblogic92/portal/bin/xip/src/com/bea/wlp/xip/XipProperties.java です。
エクスポート/インポート ユーティリティでは、図 10-1 に示すように、ラウンドトリップ開発の全ライフサイクルが可能であり、Workshop for WebLogic 環境とステージングまたはプロダクション環境間でポータルを簡単に移動できます。
このユーティリティにより .portal
、.pinc
、およびその他のポータル フレームワーク ファイルをデータベースにインポートでき、データベースからこれらのファイルをエクスポートできます。エクスポートしたファイルを Workshop for WebLogic にロードして戻したり、他の WebLogic Portal データベースにインポートしたりできます。
このユーティリティを使用すると、単一のデータベース トランザクションで処理を実行できます。何らかの理由でユーティリティに障害が発生しても、データベースは影響を受けません。
エクスポート/インポート ユーティリティの操作の対象となるのは、デスクトップ、ポートレットの参照、ブック、ページ、およびローカライゼーション定義です。言い換えると、ユーティリティは、.portal
、.pinc
、およびその他のポータル フレームワーク ファイルをデータベースからエクスポートし、それらのファイルのコンテンツをデータベースにインポートして戻します。
ヒント : | ポータル フレームワークの詳細については、『ポータル開発ガイド 』を参照してください。 |
注意 : | ポートレット、ルック アンド フィール、シェル、メニュー、レイアウト、テーマ、JSP、およびその他のコードの実際の定義は、EAR ファイルに含まれます。これらのファイルはポータル Web アプリケーションの、framework/markup ディレクトリなどのディレクトリに格納されます。これらのファイル ベースの要素を変更した場合は、EAR の再ビルドと再デプロイが必要になります。.portal ファイルとその他のフレームワーク ファイルは、定義ファイルを参照するだけです。 |
エクスポート/インポート ユーティリティで処理されないものは、キャンペーン、行動追跡イベント、コンテンツ管理資産、資格、WSRP プロデューサ登録、ポートレット カテゴリ、ローカライゼーション リソース、ユーザ プロファイル、および商用データです。
エクスポート/インポート ユーティリティでは、任意のレベル (ライブラリ、管理、訪問者) でオブジェクト (デスクトップ、ブック、またはページ) を選択し、指定したルールに基づいてインポートまたはエクスポートできます。
データベースの .portal
ファイル、.pinc
ファイル、およびその他のポータル フレームワーク ファイルのエクスポートとインポートを調整およびカスタマイズするには、次のことを行います。
図 10-2 に示すように、エクスポート/インポート ユーティリティはインポート、エクスポート、およびスコープ指定に関して、高い柔軟性を提供します。変更のスコープを、ライブラリ、管理 (デスクトップ)、または訪問者 (個人ユーザ) のレベルに設定できます。たとえば、管理スコープでデスクトップをインポートすると、インポートされた変更は指定されたデスクトップだけに適用されます。その特定のデスクトップがユーザによってカスタマイズされている場合は、その変更もユーザのデスクトップに継承されます。ただし、その変更が階層構造の上位へ継承されることはありません。ライブラリ内の要素は、デスクトップに対して行われた変更を継承しません。
ヒント : | ライブラリ、デスクトップ、およびユーザ ビューの関係の詳細については、「スコープとライブラリの継承」を参照してください。 |
エクスポート/インポート ユーティリティを使用する前に、ポータルの基本概念および用語について理解することが重要です。この節を読むと、この章の残りの部分の説明と例をより明確に理解できるようになります。
Workshop for WebLogic で作成する .portal
ファイルは、完全に機能するポータルです。ただし、デスクトップを作成するためのテンプレートとしても使用できます。このテンプレートに、ブック、ページ、およびポートレットの参照を作成します。.portal
ファイルをブラウザで表示すると、ポータルは「シングル ファイル モード」で表示されます。これは、ポータルをデータベースからではなく、ファイル システムから表示していることを意味します。つまり、.portal
ファイルの XML が解析され、変換されたポータルがブラウザに返されます。.portal
を作成するのは、開発目的に使用したり、静的ポータル (エンド ユーザや管理者によってカスタマイズされないポータル) として利用するためです。データベースを使用しないため、ユーザ カスタマイズや資格などの機能は利用できません。
作成した .portal
ファイルは、ステージング環境またはプロダクション環境用のデスクトップを作成するためのテンプレートとして使用することができます。デスクトップとは、訪問者がアクセスするポータルのビューの 1 つです。WebLogic Portal Administration Console で、.portal
ファイルをベースとしてデスクトップを作成すると、デスクトップとそのブックおよびページがデータベースに格納されます。デスクトップ、ブック、およびページは、シェル、メニュー、ルック アンド フィール、およびポートレットを参照します。.portal
ファイル テンプレートに記述されているルック アンド フィールなどの設定は、デスクトップのデフォルトとなります。.portal
テンプレートから新しいデスクトップを作成した場合、そのデスクトップはテンプレートから切り離され、.portal
ファイルへの変更はデスクトップに反映されなくなります (デスクトップへの変更も .portal ファイルに反映されない)。たとえば、WebLogic Portal Administration Console でデスクトップのルック アンド フィールを変更した場合、その変更はデスクトップのみに反映され、元の .portal
ファイルには反映されません。ブラウザでデスクトップを表示した場合は、そのデスクトップは (データベースから) 「ストリーミング モード」で表示されます。この場合はデータベースが使用されるため、デスクトップのカスタマイズを保存し、委託管理ポリシーと資格をポータル リソースに設定することができます。
エクスポートとインポートは、次のレベルにスコープ指定できます。
図 10-3 に示すように、最初の 2 つのレベルは、WebLogic Portal Administration Console のポータル リソース ツリーにあるライブラリ ノードとポータル ノードに相当します。訪問者レベルには、訪問者ツールを使用して個々のデスクトップに対してユーザが加えた変更が含まれます。
ライブラリ、管理、および訪問者ビューの関係は階層を成し、階層の下位のオブジェクトは階層の上位のオブジェクトのプロパティを継承できます。たとえば、ライブラリ要素への変更は、その要素を使用するデスクトップ、およびそれらのデスクトップを使用する訪問者ビューに継承されます。
図 10-4 に、ライブラリ、管理、および訪問者のインスタンスによって構成される階層、変更が継承される方向、およびそれぞれの階層レベルで変更を行うために通常使用されるツールを示します。
ライブラリには、どのデスクトップからも参照されないオブジェクト (ブック、ページ、またはポートレット) を入れておくことができます。デスクトップのコンテキスト外で、開発者や管理者がページまたはブックを作成できるのはライブラリだけです。このページまたはブックは、後でデスクトップに配置できます。ライブラリ内のオブジェクトに加えた変更は、そのオブジェクトを参照するすべてのデスクトップに反映されます。ライブラリの継承の詳細については、「スコープとライブラリの継承」を参照してください。
管理スコープは、「デフォルトのデスクトップ」を表します。このスコープでは管理者が個々のデスクトップを作成および変更します。管理者はライブラリの要素を使用してデスクトップに変更を加えることができますが、デスクトップの変更が上位のライブラリに反映されることはありません。また、個々のデスクトップに加えた変更は、他のデスクトップには反映されません。ただし、デスクトップの変更は、下位の訪問者ビューに影響を与えます。「スコープとライブラリの継承」も参照してください。
訪問者 (デスクトップにアクセスするユーザ) に、デスクトップをカスタマイズする許可を与えることができます。訪問者のデスクトップに対する変更は、その訪問者のビューに限定されます。訪問者が行った変更は、訪問者ビューが参照する管理レベルのデスクトップやライブラリ レベルには反映されません。また、他の訪問者のビューにも反映されません。
カスタマイズとは、API を使用してポータルを変更することです。この API は通常、WebLogic Portal Administration Console や訪問者ツールから呼び出しますが、デスクトップを変更する開発者にも公開されています。この API は、デスクトップとそのすべてのコンポーネント (たとえば、ポートレット、ブック、ページ、およびメニュー) の変更に必要なすべての作成、読み込み、更新、および削除 (CRUD) 操作を提供します。
注意 : | カスタマイズとパーソナライズは、明確に区別される 2 つの機能です。カスタマイズは、デスクトップの構成を意図的に変更することを意味します。パーソナライズでは、ルールに基づいて、ユーザの行動に合わせてデスクトップを変更します。 |
エクスポート/インポート ユーティリティは、単純なコマンド起動型の Java プログラムで構成されています。このプログラムはローカル プロパティ ファイルを読み込みます。そのファイルは、「エクスポート/インポート ユーティリティ プロパティ ファイルのコンフィグレーション」で説明されているように、手動でコンフィグレーションする必要があります。この Java プログラムは、プロパティ ファイルからパラメータを読み込むと、サーバに対して適切なアクションを実行する API を呼び出します。たとえば、ページのインポートで、変更のスコープを管理レベルに設定する場合は、それをプロパティ ファイルで指定する必要があります。
ヒント : | エクスポート/インポート ユーティリティのインストール ディレクトリにある Java プログラムのソース コードを自由に使用できます。このソース コードを使用して、独自のクライアント インタフェースを開発することもできます。 |
前述のように、エクスポート/インポート ユーティリティは、プロパティ ファイルを読み込む Java プログラムです。ユーティリティを使用するには、手動でこのプロパティ ファイルをコンフィグレーションする必要があります。
プロパティ ファイルでは、サーバのコンフィグレーション情報、エクスポートとインポートのコマンド、オブジェクト、スコープ設定ルール、伝播のルールなどを指定できます。デフォルトのプロパティ ファイルは、それを編集するときに役立つように完全にコメント化されています。さらに、「デスクトップのエクスポート」のようにこの章の後半で説明されている例には、特定のプロパティに対する詳しい情報が含まれています。
デフォルトの xip.properties
ファイルからの引用が図 10-5 に示されています。このファイルは BEA_HOME/weblogic92/portal/bin/xip
にあります。
ヒント : | デフォルトの完全なプロパティ ファイルは、「エクスポート/インポート ユーティリティ ファイル」に示されています。 |
デフォルトでは、エクスポート/インポート ユーティリティのコンフィグレーションに使用されるプロパティ ファイルには、xip.properties
という名前が付けられています。このファイルは、エクスポート/インポート ユーティリティのインストール ディレクトリ内 (BEA_HOME/weblogic92/portal/bin/xip
) にあります。別のプロパティ ファイルを指定するには、ユーティリティのインストール ディレクトリにある Ant ビルド ファイル build.xml
を編集します。コード リスト 10-1 に、編集する Ant のターゲット定義を示します。
<target name="run" depends="jar" description="Run the Xip utility">
<java classname="com.bea.wlp.xip.Xip" fork="true" failonerror="true">
<arg value="-verbose"/>
<arg value="-properties=my.properties"/>
<classpath>
<pathelement path="${wls.classpath}"/>
<pathelement path="${wlp.classpath}"/>
<pathelement path="${jarfile}"/>
</classpath>
</java>
</target>
この節では、エクスポート/インポート ユーティリティを使用してデスクトップをエクスポートする方法について説明します。デスクトップのエクスポートとは、データベースからデスクトップの属性を取得し、.portal
ファイル内でそれらを復元することです。エクスポートされた .portal
ファイルは、開発のために Workshop for WebLogic にロードできます。
デスクトップをエクスポートする基本手順には、xip.properties
ファイルの編集と、Ant ビルド スクリプトの実行が含まれます。
既存のデスクトップを .portal
ファイルとしてエクスポートするには、xip.properties
ファイルで属性を指定する必要があります。この節では、必要な変更を示します。
xip.config.application=portalProject
注意 : | エクスポート元となるエンタープライズ アプリケーションの名前を指定する必要があります。次の図に示すように、この値は Workshop for WebLogic でのポータル EAR プロジェクト名に相当します。 |
xip.command=export
注意 : | インポートではなく、エクスポートを指定します。 |
xip.object=desktop
注意 : | エクスポートするオブジェクトを指定します。この例では、デスクトップです。 |
xip.identifier.webapp=PortalWebApp_1
xip.identifier.portal.path=yourPortalPath
xip.identifier.desktop.path=yourDesktopPath
注意 : | これらの行は、エクスポートするオブジェクトを識別します。これらのプロパティの値が不明な場合、これらの値を確認できる場所については、「識別子プロパティの位置確認と指定」を参照してください。 |
注意 : | Web の webapp プロパティは、必ず指定する必要があります。 |
注意 : | エクスポートのスコープを管理レベルまたは訪問者レベルに設定する場合は、portal.path と desktop.path プロパティを指定する必要があります。 |
xip.output.file=myportal.portal
注意 : | 結果 (エクスポートされる .portal ファイル) の保存場所を指定します。この例では、結果ファイルの名前は myportal.portal であり、ユーティリティを実行した場所を基準とした相対位置に保存されます。 |
注意 : | エンコーディングの情報はデータベース内にあるため、指定する必要はありません。 |
xip.export.context.scope=admin
注意 : | エクスポートのスコープを指定します。この例では、admin (管理) スコープを指定します。スコープの詳細については、「エクスポートとインポートのスコープ」を参照してください。 |
xip.export.context.locale.language=en
注意 : | エクスポートするデスクトップのロケールを指定します (この例は英語)。一度にエクスポートまたはインポートできるロケールは 1 つだけです。 |
プロパティの属性を定義したら、コード リスト 10-2 に示すように、Ant ビルド スクリプトを実行できます。ビルド スクリプトのタスクによって、以下のような状態情報がコンソール ウィンドウに表示されます。
C:\dev\xip>ant run
Buildfile: build.xml
init:
compile:
jar:
run:
[java] Using: Properties from file [xip.properties]
[java] Name [xip.config.url] Value [t3://localhost:7003]
[java] Name [xip.config.username] Value [weblogic]
[java] Name [xip.config.password] Value [********]
[java] Name [xip.config.application] Value [portalProject]
[java] Name [xip.command] Value [export]
[java] Name [xip.object] Value [desktop]
[java] Name [xip.identifier.webapp] Value [PortalWebApp_1]
[java] Name [xip.identifier.portal.path] Value [yourPortalPath]
[java] Name [xip.identifier.desktop.path] Value [yourPortalDesktop]
[java] Name [xip.identifier.book.label] Value [mainBook]
[java] Name [xip.identifier.page.label] Value []
[java] Name [xip.input.file] Value [yourPortal.portal]
[java] Name [xip.output.file] Value [myportal.portal]
[java] Name [xip.import.context.deletes] Value [false]
[java] Name [xip.import.context.moves] Value [false]
[java] Name [xip.import.context.outermoves] Value [false]
[java] Name [xip.import.context.updates] Value [true]
[java] Name [xip.import.context.abort.on.collisions] Value [null]
[java] Name [xip.import.context.abort.if.portlets.missing] Value [false]
[java] Name [xip.import.context.scope] Value [admin]
[java] Name [xip.import.context.modify.definitions] Value [false]
[java] Name [xip.import.context.propagate.changes] Value [sync]
[java] Name [xip.import.context.create.portal] Value [true]
[java] Name [xip.import.context.portal.title] Value [My Portal]
[java] Name [xip.import.context.locale.language] Value [en]
[java] Name [xip.import.context.locale.country] Value []
[java] Name [xip.import.context.locale.variant] Value []
[java] Name [xip.export.context.scope] Value [admin]
[java] Name [xip.export.context.locale.language] Value [en]
[java] Name [xip.export.context.locale.country] Value []
[java] Name [xip.export.context.locale.variant] Value []
[java] Executing command: export
[java] Exporting desktop [Webapp: [PortalWebApp_1] PortalPath: [yourPortalPath] DesktopPath: [yourDesktopPath]] to file [myportal.portal]
[java] Connection to host: t3://localhost:7003
[java] Saving changes to: myportal.portal
[java] Done. time taken 6 sec.
BUILD SUCCESSFUL
Total time: 8 seconds
C:\dev\xip>
これで、ファイル myportal.portal
を Workshop for WebLogic に再度ロードするか、別のステージングまたはプロダクション (データベース) 環境にインポートできるようになりました。
この節では、エクスポート/インポート ユーティリティを使用して .portal
ファイルをデスクトップにインポートする方法について説明します。.portal
ファイルをデスクトップにインポートする場合、デスクトップが既にデータベースに存在する場合と存在しない場合の 2 通りのケースが考えられます。データベース内に既存のデスクトップがない場合は、エクスポート/インポート ユーティリティによって自動的に作成されます。ただし、デスクトップがデータベース内にすでに存在する場合は、結合オプションを指定する必要があります。
.portal
ファイルをインポートする基本手順には、xip.properties
ファイルの編集と、Ant ビルド スクリプトの実行が含まれます。
既存の .portal
ファイルをデスクトップにインポートするには、xip.properties
ファイルで属性を指定する必要があります。この節では、必要な変更を示します。
xip.config.application=portalProject
注意 : | インポート先のエンタープライズ アプリケーションの名前を指定する必要があります。次の図に示すように、この値は Workshop for WebLogic でのポータル EAR プロジェクト名に相当します。 |
xip.command=import
注意 : | エクスポートではなく、インポートを指定します。 |
xip.object=desktop
注意 : | インポートするオブジェクトを指定します。この例はデスクトップです。 |
xip.identifier.webapp=PortalWebApp_1
xip.identifier.portal.path=yourPortalPath
xip.identifier.desktop.path=yourDesktopPath
注意 : | これらの行は、エクスポートするオブジェクトを識別します。これらのプロパティの値が不明な場合、これらの値を確認できる場所については、「識別子プロパティの位置確認と指定」を参照してください。 |
注意 : | Web の webapp プロパティは、必ず指定する必要があります。 |
注意 : | エクスポートのスコープを管理レベルまたは訪問者レベルに設定する場合は、portal.path と desktop.path プロパティを指定する必要があります。 |
xip.input.file=myportal.portal
注意 : | インポートする .portal ファイルを指定します。ユーティリティがインストールされた場所を基準とした相対位置でファイルが検索されます。 |
注意 : | .portal ファイル自体にエンコーディングが定義されているため、エンコーディングを指定する必要はありません。 |
xip.import.context.scope=admin
注意 : | インポートのスコープを指定します。この例では、admin (管理) レベルでデスクトップをインポートします。スコープの詳細については、「エクスポートとインポートのスコープ」を参照してください。 |
xip.import.context.deletes=false
注意 : | 削除の処理方法を指定する必要があります。詳細については、「ポータル資産のインポート時の結合方法の管理」を参照してください。 |
xip.import.context.moves=false
xip.import.context.outermoves=true
注意 : | 移動の処理方法を指定する必要があります。詳細については、「ポータル資産のインポート時の移動方法の管理」を参照してください。 |
xip.import.context.updates=true
注意 : | xip.import.context.updates を true に設定すると、デスクトップには存在しないが、.portal に存在する新しいポートレット、ブック、およびページが新しいデスクトップに追加されます。また、インスタンス レベルのリソースも更新されます。 |
xip.import.context.abort.if.portlets.missing=true
注意 : | xip.import.context.abort.if.portlets.missing を true に設定すると、.portal ファイルで参照されているポートレットが Web アプリケーションに存在しない場合、インポートは中止されます。このフラグを false に設定すると、警告がログに書き込まれ、インポート処理は続行されます。 |
xip.import.context.modify.definitions=true
注意 : | xip.import.context.modify.definitions を true に設定すると、ブックやページを更新したときにライブラリ定義も更新されます。ライブラリ定義はマークアップで構成され、バッキング ファイル、アクティブ化、非アクティブ化、ロールオーバ画像などが含まれます。ブックやページのタイトル、説明、および is_hidden フラグもこれらの定義に格納されています。 |
注意 : | ライブラリ定義を変更すると、そのライブラリ定義を共有するデスクトップ インスタンスに影響を与える可能性があります。したがって、スコープを特定のデスクトップに設定し、このプロパティを true に設定すると、予想外の影響を他のデスクトップに与える可能性があります。ライブラリ定義とデスクトップ インスタンスの関係の詳細については、「スコープとライブラリの継承」を参照してください。 |
xip.import.context.propagate.changes=sync
注意 : | xip.import.context.propagate.changes プロパティでは、階層の下位にあるポータル要素に変更を伝播するかどうかを指定できます。このプロパティの有効な値は sync または off です。 |
注意 : | 通常、ポートレット、ページ、またはブックを追加、削除、または移動すると、下位階層に変更が伝播されます。つまり、ライブラリに加えた変更はすべてのデスクトップに反映され、管理ビュー (デフォルトのデスクトップ) に変更を加えるとすべてのユーザに影響を与えます。 |
注意 : | ユーザのデスクトップ ビューは、初期の状態ではデフォルト デスクトップ (管理ビュー) を参照します (プロパティを継承)。デフォルトのデスクトップに変更を加えると、その変更は下位のユーザ ビューに伝播します。 |
注意 : | ユーザがビューをカスタマイズすると、各ユーザのビューは、カスタマイズされた部分のコピーを受け取り、ポータルの残りの部分は、引き続きデフォルト デスクトップ、つまり親デスクトップを参照します。 |
注意 : | このプロパティで、ユーザがポータルをカスタマイズしている場合に下位階層に変更を伝播する方法を制御できます。ユーザまたは管理者のポータルがカスタマイズされていない場合は、このプロパティを off に設定した場合でも、ビューは常に上位階層の変更を継承します。 |
注意 : | ただし、ユーザがポータルの一部をカスタマイズし、上位階層で同じ部分が変更された場合、変更を下位階層に伝播するかどうかを、このプロパティで制御できます。この場合はプロパティを off に設定すると、管理ビューとユーザ ビューは親コンポーネントに対する更新を継承しません。synch に設定すると、ユーザがビューをカスタマイズしている場合でも、下位階層に変更が伝播されます。 |
ヒント : | ユーザや管理者が独自に所有するものとして見なしているページやブックを変更しないようにするには、このプロパティを off に設定します。 |
ヒント : | ポータル全体をユーザが自由に制御できるようにするのではなく、ポータルの特定のセクションだけを変更できるようにし、残りの部分をロックする (たとえば、1 ページだけをユーザが完全に制御できるようにする) ことをお勧めします。こうすると、スケーラビリティが向上し、多数のユーザがカスタマイズを行った場合でもポータルを管理しやすくなります。 |
xip.import.context.create.portal=true
注意 : | xip.import.context.create.portal を true に設定すると、ポータルがデータベースに存在しない場合、ポータルが自動的に作成されます。次のプロパティを使用して、新しいポータルのタイトルを指定する必要があります。 |
xip.import.context.portal.title=My Portal
注意 : | xip.import.context.create.portal (前述) を true に設定した場合は、このプロパティを使用してタイトルを指定する必要があります。 |
xip.import.context.locale.language=en
xip.import.context.locale.country=
xip.import.context.locale.variant=
注意 : | これらのプロパティは、.portal ファイルのタイトルと説明のロケールを定義します。 |
プロパティの属性を定義したら、コード リスト 10-3 に示すように、ビルド スクリプトを実行できます。ビルド スクリプトのタスクによって、以下のような状態情報がコンソール ウィンドウに表示されます。
C:\dev\xip>ant run
[java] Using: Properties from file [xip.properties]
[java] Name [xip.config.url] Value [t3://localhost:7003]
[java] Name [xip.config.username] Value [weblogic]
[java] Name [xip.config.password] Value [weblogic]
[java] Name [xip.config.application] Value [portalProject
]
[java] Name [xip.command] Value [import]
[java] Name [xip.object] Value [desktop]
[java] Name [xip.identifier.webapp] Value [PortalWebApp_1
]
[java] Name [xip.identifier.portal.path] Value [yourPortal]
[java] Name [xip.identifier.desktop.path] Value [yourDesktop]
[java] Name [xip.identifier.book.label] Value []
[java] Name [xip.identifier.page.label] Value []
[java] Name [xip.input.file] Value [myportal.portal]
[java] Name [xip.output.file] Value []
[java] Name [xip.import.context.deletes] Value [false]
[java] Name [xip.import.context.moves] Value [false]
[java] Name [xip.import.context.outermoves] Value [false]
[java] Name [xip.import.context.updates] Value [true]
[java] Name [xip.import.context.abort.on.collisions] Value [null]
[java] Name [xip.import.context.abort.if.portlets.missing] Value [false]
[java] Name [xip.import.context.scope] Value [admin]
[java] Name [xip.import.context.modify.definitions] Value [false]
[java] Name [xip.import.context.propagate.changes] Value [sync]
[java] Name [xip.import.context.create.portal] Value [true]
[java] Name [xip.import.context.portal.title] Value [My Portal]
[java] Name [xip.import.context.locale.language] Value [en]
[java] Name [xip.import.context.locale.country] Value []
[java] Name [xip.import.context.locale.variant] Value []
[java] Name [xip.export.context.scope] Value [admin]
[java] Name [xip.export.context.locale.language] Value [en]
[java] Name [xip.export.context.locale.country] Value []
[java] Name [xip.export.context.locale.variant] Value []
[java] Executing command: import
[java] Importing desktop: Webapp: [PortalWebApp_1
] PortalPath: [yourPortalPath] DesktopPath: [yourDesktopPath]
[java] Connection to host: t3://localhost:7003
[java] Uploading file: myportal.portal
[java] Done. time taken 40 sec.
BUILD SUCCESSFUL
Total time: 52 seconds
デスクトップ全体をエクスポートする必要がない場合は、ユーティリティをコンフィグレーションして 1 ページだけエクスポートできます。
ヒント : | この節では、ページのエクスポートについて明示的に説明していますが、ブックのエクスポートにも基本的に同じ手順が適用されます。 |
この節では、デスクトップからページをエクスポートする方法について説明します。ページのエクスポートも、一般的な使用例の 1 つです。ページまたはブックをエクスポートすると、.pinc
ファイルが出力されます。
注意 : | ページまたはブックをエクスポートすると、そのページまたはブックのすべての子もエクスポートされます。 |
ページをエクスポートする基本手順には、xip.properties
ファイルの編集と、Ant ビルド スクリプトの実行が含まれます。
既存のページを .pinc
ファイルとしてエクスポートするには、xip.properties
ファイルで属性を指定する必要があります。この節では、必要な変更を示します。
xip.config.application=portalProject
注意 : | エクスポート元となるエンタープライズ アプリケーションの名前を指定する必要があります。次の図に示すように、この値は Workshop for WebLogic でのポータル EAR プロジェクト名に相当します。 |
xip.command=export
注意 : | インポートではなく、エクスポートを指定します。 |
xip.object=page
注意 : | エクスポートするオブジェクトを指定します。この例では、ページです。 |
xip.identifier.webapp=PortalWebApp_1
xip.identifier.portal.path=yourPortalPath
xip.identifier.desktop.path=yourDesktopPath
注意 : | これらの行は、エクスポートするオブジェクトを識別します。これらのプロパティの値が不明な場合、これらの値を確認できる場所については、「識別子プロパティの位置確認と指定」を参照してください。 |
注意 : | Web の webapp プロパティは、必ず指定する必要があります。 |
注意 : | エクスポートのスコープを管理レベルまたは訪問者レベルに設定する場合は、portal.path と desktop.path プロパティを指定する必要があります。ブックまたはページをエクスポートする場合は、book.label または page.label プロパティを指定する必要があります。 |
注意 : | エクスポートのスコープをライブラリに設定する場合は、portal.path と desktop.path を指定する必要はありませんが、webapp の名前は指定する必要があります。 |
xip.identifier.book.label=
xip.identifier.page.label=P200134591113965077078
注意 : | エクスポートするページまたはブックを指定する必要があります。そのためには、xip.identifier.page.label プロパティを使用して、ページまたはブックの定義ラベルを指定します。通常、定義ラベルは Workshop for WebLogic で開発者が入力しますが、WebLogic Portal Administration Console によって自動的に生成されることもあります。定義ラベルを確認する方法については、「識別子プロパティの位置確認と指定」を参照してください。 |
xip.output.file=mypage.pinc
注意 : | このプロパティを使用して、結果を保存するファイルを指定します。この例では、ユーティリティを実行したディレクトリにファイル mypage.pinc が保存されます。 |
注意 : | エンコーディングの情報はデータベース内にあるため、指定する必要はありません。 |
xip.export.context.scope=admin
注意 : | エクスポートのスコープを指定します。この例では、デスクトップ内からページをエクスポートします (管理スコープ)。ライブラリからページをエクスポートする場合は、スコープを library に設定します。 |
xip.export.context.locale.language=en
注意 : | エクスポートするページのロケールを指定します。 |
プロパティの属性を定義したら、コード リスト 10-4 に示すように、Ant ビルド スクリプトを実行できます。ビルド スクリプトのタスクによって、以下のような状態情報がコンソール ウィンドウに表示されます。
C:\dev\xip>ant run
Buildfile: build.xml
init:
compile:
jar:
run:
[java] Using: Properties from file [xip.properties]
[java] Name [xip.config.url] Value [t3://localhost:7003]
[java] Name [xip.config.username] Value [weblogic]
[java] Name [xip.config.password] Value [********]
[java] Name [xip.config.application] Value [portalProject]
[java] Name [xip.command] Value [export]
[java] Name [xip.object] Value [page]
[java] Name [xip.identifier.webapp] Value [yourPortal]
[java] Name [xip.identifier.portal.path] Value [yourPortalPath]
[java] Name [xip.identifier.desktop.path] Value [yourDesktopPath]
[java] Name [xip.identifier.book.label] Value []
[java] Name [xip.identifier.page.label] Value [P200134591113965077078]
[java] Name [xip.input.file] Value []
[java] Name [xip.output.file] Value [mypage.pinc]
[java] Name [xip.import.context.deletes] Value [false]
[java] Name [xip.import.context.moves] Value [false]
[java] Name [xip.import.context.outermoves] Value [false]
[java] Name [xip.import.context.updates] Value [true]
[java] Name [xip.import.context.abort.on.collisions] Value [null]
[java] Name [xip.import.context.abort.if.portlets.missing] Value [false]
[java] Name [xip.import.context.scope] Value [admin]
[java] Name [xip.import.context.modify.definitions] Value [false]
[java] Name [xip.import.context.propagate.changes] Value [sync]
[java] Name [xip.import.context.create.portal] Value [true]
[java] Name [xip.import.context.portal.title] Value [My Portal]
[java] Name [xip.import.context.locale.language] Value [en]
[java] Name [xip.import.context.locale.country] Value []
[java] Name [xip.import.context.locale.variant] Value []
[java] Name [xip.export.context.scope] Value [admin]
[java] Name [xip.export.context.locale.language] Value [en]
[java] Name [xip.export.context.locale.country] Value []
[java] Name [xip.export.context.locale.variant] Value []
[java] Executing command: export
[java] Exporting page [mypage] scoped to desktop: Webapp: [PortalWebApp_1
] PortalPath: [yourPortalPath] DesktopPath: [yourDesktopPath]]
[java] Connection to host: t3://localhost:7003
[java] Saving changes to: mypage.pinc
[java] Done. time taken 6 sec.
BUILD SUCCESSFUL
Total time: 8 seconds
この節では、1 つのページをインポートする方法について説明します。
ヒント : | この節では、ページについて明示的に説明していますが、ブックのインポートにも同じ手順が適用されます。 |
インポートするページは、Workshop for WebLogic で作成された可能性もあり、別のステージング環境またはプロダクション環境からエクスポートされた可能性もあります。どちらの場合でも、.pinc
ファイルをデータベースにインポートします。
注意 : | ページまたはブックをインポート/エクスポートすると、それらの子もすべてインポートされます。 |
ページをインポートする基本手順には、xip.properties
ファイルの編集と、Ant ビルド スクリプトの実行が含まれます。
既存の .pinc
ファイルをインポートするには、xip.properties
ファイルで属性を指定する必要があります。この節では、ページをインポートするために必要なプロパティ ファイルへの変更について説明します。
xip.config.application=portalProject
注意 : | インポート先のエンタープライズ アプリケーションの名前を指定する必要があります。次の図に示すように、この値は Workshop for WebLogic でのポータル EAR プロジェクト フォルダに相当します。 |
xip.command=import
注意 : | エクスポートではなく、インポートを指定します。 |
xip.object=page
注意 : | インポートするオブジェクトを指定します。この例では、ページです。 |
xip.identifier.webapp=PortalWebApp_1
xip.identifier.book.label=
xip.identifier.portal.path=yourPortalPath
xip.identifier.desktop.path=yourDesktopPath
xip.identifier.page.label=
注意 : | これらの行は、エクスポートするオブジェクトを識別します。これらのプロパティの値が不明な場合、これらの値を確認できる場所については、「識別子プロパティの位置確認と指定」を参照してください。 |
注意 : | インポートのスコープを管理レベルまたは訪問者レベルに設定する場合は、portal.path と desktop.path プロパティを指定する必要があります。ブックまたはページをインポートする場合は、book.label または page.label プロパティを指定する必要があります。 |
注意 : | Web の webapp プロパティは、必ず指定する必要があります。 |
注意 : | インポートでは page.label プロパティは必要ありません。これは、.pinc ファイルで <netuix:page ... /> 要素の属性としてページ ラベルが定義されているためです。 |
xip.input.file=mypage.pinc
注意 : | インポート元の .pinc ファイルを指定します。デフォルトでは、ユーティリティの実行場所を基準とした相対位置にあるディレクトリ内のファイルが検索されます。 |
xip.import.context.scope=admin
注意 : | インポートのスコープを指定します。この例では、管理レベルでページをインポートします。 |
xip.import.context.deletes=false
注意 : | 削除の処理方法を指定する必要があります。プロパティの詳細については、「ポータル資産のインポート時の結合方法の管理」を参照してください。 |
xip.import.context.moves=false
注意 : | 移動の処理方法を指定する必要があります。プロパティの詳細については、「ポータル資産のインポート時の移動方法の管理」を参照してください。 |
xip.import.context.updates=true
注意 : | xip.import.context.updates を true に設定すると、デスクトップには存在しないが、.portal に存在する新しいポートレット、ブック、およびページが新しいデスクトップに追加されます。また、インスタンス レベルのリソースも更新されます。 |
xip.import.context.abort.if.portlets.missing=true
注意 : | xip.import.context.abort.if.portlets.missing を true に設定すると、.portal ファイルで参照されているポートレットが Web アプリケーションに存在しない場合、ユーティリティはインポートを中止します。このフラグを false に設定すると、警告がログに書き込まれ、インポートが続行されます。 |
xip.import.context.modify.definitions=true
注意 : | xip.import.context.modify.definitions を true に設定すると、ブックやページを更新したときにライブラリ定義も更新されます。ライブラリ定義はマークアップで構成され、バッキング ファイル、アクティブ化、非アクティブ化、ロールオーバ画像などが含まれます。ブックやページのタイトル、説明、および is_hidden フラグもこれらの定義に格納されています。 |
注意 : | ライブラリ定義を変更すると、そのライブラリ定義を共有するデスクトップ インスタンスに影響を与える可能性があります。したがって、スコープを特定のデスクトップに設定し、このプロパティを true に設定すると、予想外の影響を他のデスクトップに与える可能性があります。ライブラリ定義とデスクトップ インスタンスの関係の詳細については、「スコープとライブラリの継承」を参照してください。 |
xip.import.context.propagate.changes=sync
注意 : | xip.import.context.propagate.changes プロパティでは、階層の下位にあるポータル要素に変更を伝播するかどうかを指定できます。このプロパティの有効な値は sync または off です。 |
注意 : | 通常、ポートレット、ページ、またはブックを追加、削除、または移動すると、下位階層に変更が伝播されます。つまり、ライブラリに変更を加えると、その変更がすべてのデスクトップに反映されます。また、管理ビュー (デスクトップ) に変更を加えると、すべてのユーザが影響を受けます。 |
注意 : | ユーザのデスクトップ ビューは、デフォルト デスクトップ (管理ビュー) からプロパティを継承します。デフォルトのデスクトップに変更を加えると、その変更は下位のユーザ ビューに伝播します。ユーザがビューをカスタマイズすると、各ユーザのビューは、カスタマイズされた部分のコピーを受け取り、ポータルの残りの部分は、引き続きデフォルト デスクトップ、つまり親デスクトップを参照します。 |
注意 : | このプロパティで、ユーザがポータルをカスタマイズしている場合に下位階層に変更を伝播する方法を制御できます。ユーザまたは管理者のポータルがカスタマイズされていない場合は、このプロパティを off に設定した場合でも、ビューは常に上位階層の変更を継承します。 |
注意 : | ただし、ユーザがポータルの一部をカスタマイズし、上位階層で同じ部分が変更された場合、変更を下位階層に伝播するかどうかを、このプロパティで制御できます。この場合はプロパティを off に設定すると、管理ビューとユーザ ビューは親コンポーネントに対する更新を継承しません。sync に設定すると、ユーザがビューをカスタマイズしている場合でも、下位階層に変更が伝播されます。 |
ヒント : | ユーザや管理者が独自に所有するものとして見なしているページやブックを変更しないようにするには、このプロパティを off に設定します。 |
ヒント : | ポータル全体をユーザが自由に制御できるようにするのではなく、ポータルの特定のセクションだけを変更できるようにし、残りの部分をロックする (たとえば、1 ページだけをユーザが完全に制御できるようにする) ことをお勧めします。こうすると、スケーラビリティが向上し、多数のユーザがカスタマイズを行った場合でもポータルを管理しやすくなります。 |
xip.import.context.locale.language=en
xip.import.context.locale.country=
xip.import.context.locale.variant=
これらのプロパティは、.pinc
ファイルのタイトルと説明のロケールを定義します。
プロパティの属性を定義したら、コード リスト 10-5 に示すように、ビルド スクリプトを実行できます。ビルド スクリプトのタスクによって、以下のような状態情報がコンソール ウィンドウに表示されます。
C:\dev\xip>ant run
[java] Using: Properties from file [xip.properties]
[java] Name [xip.config.url] Value [t3://localhost:7003]
[java] Name [xip.config.username] Value [weblogic]
[java] Name [xip.config.password] Value [weblogic]
[java] Name [xip.config.application] Value [portalProject]
[java] Name [xip.command] Value [import]
[java] Name [xip.object] Value [page]
[java] Name [xip.identifier.webapp] Value [PortalWebApp_1
]
[java] Name [xip.identifier.portal.path] Value [yourPortalPath]
[java] Name [xip.identifier.desktop.path] Value [yourDesktopPath]
[java] Name [xip.identifier.book.label] Value []
[java] Name [xip.identifier.page.label] Value []
[java] Name [xip.input.file] Value [mypage.pinc]
[java] Name [xip.output.file] Value []
[java] Name [xip.import.context.deletes] Value [false]
[java] Name [xip.import.context.moves] Value [false]
[java] Name [xip.import.context.outermoves] Value [false]
[java] Name [xip.import.context.updates] Value [true]
[java] Name [xip.import.context.abort.on.collisions] Value [null]
[java] Name [xip.import.context.abort.if.portlets.missing] Value [false]
[java] Name [xip.import.context.scope] Value [admin]
[java] Name [xip.import.context.modify.definitions] Value [false]
[java] Name [xip.import.context.propagate.changes] Value [sync]
[java] Name [xip.import.context.create.portal] Value [true]
[java] Name [xip.import.context.portal.title] Value [My Portal]
[java] Name [xip.import.context.locale.language] Value [en]
[java] Name [xip.import.context.locale.country] Value []
[java] Name [xip.import.context.locale.variant] Value []
[java] Name [xip.export.context.scope] Value [admin]
[java] Name [xip.export.context.locale.language] Value [en]
[java] Name [xip.export.context.locale.country] Value []
[java] Name [xip.export.context.locale.variant] Value []
[java] Executing command: import
[java] Importing page scoped to desktop: Webapp: [PortalWebApp_1
] PortalPath: [yourPortalPath] DesktopPath: [yourDesktopPath]
[java] Connection to host: t3://localhost:7003
[java] Uploading file: mypage.pinc
[java] Done. time taken 20 sec.
BUILD SUCCESSFUL
Total time: 25 seconds
xip.import.context.deletes
プロパティを使用して、インポート時のポータル資産の結合方法を制御できます。図 10-10 に示すように、このプロパティを false
に設定すると、インポートされたページのコンテンツが既存ページと結合されます。
注意 : | この例ではポートレットについて説明していますが、ブックのページに対しても同じ結合処理が適用されます。 |
図 10-11 に示すように、このプロパティを true
に設定すると、デスクトップに存在するが、.portal
ファイルに存在しないポートレットはすべて削除されます。
xip.import.context.moves
および xip.import.context.outermoves
プロパティを使用して、ポータル資産をインポートするときの移動の処理方法を指定できます。移動操作について理解するには、内部移動と外部移動の意味を理解する必要があります。これらの用語については、以下の節で説明します。
ポートレットやページなどの資産を単一の親のコンテキスト内で移動する場合、この移動のことを内部移動と呼びます。たとえば、ポートレットを同一ページ内の異なるプレースホルダに移動した場合は、親 (ページ) が変わっていないため、内部移動となります。同様に、ページをブック内の別の位置に移動した場合も、親 (ブック) が変わっていないため、内部移動となります。次の図は、この概念を示しています。
xip.import.context.moves
プロパティを true
に設定すると、内部移動が可能になります。このプロパティを false
に設定すると、資産の位置は変更されません。ただし、コンテンツは適切に更新されます。異なる親の間でブック、ページ、またはポートレットを移動する場合は、次の節で説明する xip.import.context.outermoves
プロパティを使用します。
ポートレットやページなどの資産を別の親に移動する場合、この移動のことを外部移動と呼びます。たとえば、ページを別のブックに移動した場合は、親 (ブック) が異なるため、外部移動となります。次の図は、この概念を示しています。
xip.import.context.outermoves
プロパティを true
に設定すると、外部移動が可能になります。このプロパティを false
に設定すると、移動の要求は、削除と追加の操作として扱われます。
注意 : | 移動操作では、カスタマイズした内容が保持されます。削除と追加の操作を行うと、カスタマイズの一部が失われます。 |
同一の親の内部でブック、ページ、またはポートレットを移動する場合は、前節の xip.import.context.moves
プロパティを使用します。
この節では、xip.properties
ファイルの identifier
プロパティの値を確認する方法について説明します。これらのプロパティは、エクスポートまたはインポートするポータル要素の識別に役立ちます。この節では、次のプロパティについて説明します。
portal.path および desktop.path プロパティ
page.label および book.label プロパティ
Web の xip.identifier.webapp
プロパティは、必ず指定する必要があります。次の図に示すように、Web アプリケーション名は、WebLogic Portal Administration Console で一覧表示されます。
エクスポートのスコープを管理レベルまたは訪問者レベルに設定する場合は、xip.identifier.portal.path
と xip.identifier.desktop.path
プロパティを指定する必要があります。適切な値は、WebLogic Portal Administration Console で確認できます。ポータルのパスはポータルの [詳細] タブ、デスクトップのパスはデスクトップの [詳細] タブで表示されます。次の図に、表示されたポータル パスの例を示します。
ページまたはブックをエクスポートまたはインポートする場合は、xip.identifier.page.label
または xip.identifier.book.label
プロパティを使用して、ページまたはブックの定義ラベルを指定する必要があります。通常、定義ラベルは Workshop for WebLogic で開発者が入力しますが、WebLogic Portal Administration Console で作成される場合もあります。Administration Console を使用してページを作成すると、定義ラベルは自動的に割り当てられます。
注意 : | ブックまたはページをエクスポートする場合は、book.label または page.label プロパティを指定する必要があります。ブックまたはページをインポートする場合は、book.label や page.label のプロパティを指定する必要はありません。これらの値は .pinc ファイルから直接取得されます。 |
Administration Console のページの定義ラベルは、そのページ ウィンドウの [詳細] タブにあります (ライブラリ ツリーのページをクリックして、ページ ウィンドウを表示します)。図 10-16 に、ページの定義ラベルを示します。
ブックの定義ラベルを確認するには、ブックの親ブックの [ブック コンテンツの管理] タブを参照する必要があります。このタブに、すべての子ブックのラベルが表示されます。
キャッシュを適切に管理すると、ポータルのパフォーマンスが大幅に向上します。キャッシュが無効の場合、ポータル API はデータベースから新しいデータを取得する必要があります。変更されていないデータを API が取得するのは非効率的です。エクスポート/インポート ユーティリティでは、変更されたポータル リソースのキャッシュ (具体的には、portalControlTreeCache
) のみが無効になります。次のプロパティを使用して、キャッシュの無効化を管理します。
xip.config.application
xip.identifier.webapp
xip.identifier.portal.path
xip.identifier.desktop.path
xip.import.context.scope
xip.import.context.modify.definitions
これらのプロパティを理解し、キャッシュの無効化に与える影響を把握しておいてください。変更内容を理解し、適切なスコープを設定して、これらのプロパティを適切にチューニングすると、プロダクション システムのパフォーマンスが飛躍的に向上します。
xip.config.application
注意 : | エンタープライズ アプリケーションの名前を指定します。このエンタープライズ アプリケーションのポータルだけが影響を受けます。次の図に示すように、この値は Workshop for WebLogic でのポータル EAR プロジェクト フォルダの名前に相当します。 |
注意 : | Web アプリケーションの名前を指定します。この Web アプリケーションのポータルだけが影響を受けます。「識別子プロパティの位置確認と指定」も参照してください。 |
注意 : | 変更のスコープを指定します。スコープを library に設定すると、Web アプリケーション全体の portalControlTree キャッシュがすべて無効になります。スコープを admin に設定すると、xip.identifier.portal.path と xip.identifier.desktop.path で定義されたデスクトップのキャッシュだけが影響を受け、他のデスクトップのキャッシュはそのまま維持されます。スコープを visitor に設定すると、個々のユーザのビューのキャッシュだけが無効になります。「識別子プロパティの位置確認と指定」も参照してください。 |
xip.import.context.modify.definitions
注意 : | true に設定すると、ライブラリ定義が変更される場合があります。定義はすべてのライブラリ リソースのインスタンスで共有されているため、スコープを admin に設定した場合でも、Web アプリケーションのキャッシュ全体を無効にする必要があります。ページまたはポートレットをブックやページに追加するだけの場合は、ライブラリ定義は更新されません。 |
注意 : | ライブラリ定義はマークアップで構成され、バッキング ファイル、アクティブ化、非アクティブ化、ロールオーバ画像などが含まれます。ブックやページのタイトル、説明、および is_hidden フラグもこれらの定義に格納されています。 |
警告 : | ライブラリ定義を変更すると、そのライブラリ定義を共有するデスクトップ インスタンスに影響を与える可能性があります。したがって、スコープを特定のデスクトップに設定し、このプロパティを true に設定すると、予想外の影響を他のデスクトップに与える可能性があります。ライブラリ定義とデスクトップ インスタンスの関係の詳細については、「スコープとライブラリの継承」を参照してください。 |
![]() ![]() ![]() |