OSGiモジュールのJSPは、モジュールフラグメントを使用してカスタマイズできます。 モジュールフラグメントはホストモジュールに接続して、JSPを変更します。 OSGiランタイムにとって、フラグメントはホストモジュールの一部です。 OSGi Alliance’s core specification documentのセクション3.14で、モジュールフラグメントの詳細について説明しています。 このチュートリアルでは、アプリケーションJSPフックをLiferay DXP 7.1にアップグレードする方法を示します。
Liferay Upgrade Plannerのアップグレードの問題の修復ステップは、アプリケーションJSPフックプラグインからモジュールフラグメントを生成します。 このツールは、フックがプラグインSDKにある場合はプラグインSDKルートと同じフォルダに、またはフックがLiferay Workspaceにある場合は[liferay_workspace]/ modules
フォルダにモジュールフラグメントを作成します。
モジュールフラグメントは、このJAに従います。:[plugin_name]-[app]-fragment
たとえば、プラグインの名前がapp-jsp-hook
で、それがブログアプリケーションのJSPを変更する場合、Upgrade Plannerはapp-jsp-hook-blogs-fragment
という名前のモジュールフラグメントを生成します。
アプリケーションJSPフックプラグインをアップグレードする手順は次のとおりです。
フラグメントホストの宣言
モジュールフラグメントのbnd.bnd
ファイルは、ホストモジュール名とバージョンに設定されたOSGiヘッダーFragment-Host
を指定する必要があります。
ホストモジュールがLiferay DXPのアプリ・スイートのいずれかに属している場合、Code Upgrade Toolは、適切なFragment-Host
ヘッダーを自動的に指定するbnd.bnd
ファイルを生成します。
例として、Blogs Webモジュールにモジュールフラグメントを接続するFragment-Host
を次に示します。
Fragment-Host: com.liferay.blogs.web;bundle-version="1.1.9"
JSPのアップデートも同様に簡単に行えます。
JSPをアップデートする
Upgrade Plannerは、カスタムアプリケーションJSPのアップグレードバージョンを含むモジュールフラグメントを作成します。
次の表は、古いJSPパスと新しいJSPパスを示しています。
Liferay Portalバージョン | JSPファイルのパス |
---|---|
6.2 | docroot/META-INF/custom_jsps/html/portlet/[jsp_file_path] |
7.1 | src/main/resources/META-INF/resources/[jsp_file_path] |
たとえば、Upgrade Plannerは、ブログアプリケーションのinit-ext.jsp
ファイルのカスタマイズバージョンを次のように生成します。
src/main/resources/META-INF/resources/blogs/init-ext.jsp
ツールのアップグレードの問題の修復ステップでは、カスタムJSPと元のJSPを比較できます。
- カスタム6.2 JSPを元の6.2 JSPと比較します。
- カスタム7.1 JSPとカスタム6.2 JSPを比較します。
7.1カスタムJSPで必要な追加の変更を加えます。 次に、モジュールフラグメントをデプロイします。 これにより、ホストモジュールの一時的停止、フラグメントのホストへの接続、ホストモジュールの再起動が行われます。 コンソール出力はこのプロセスを反映しています。
以下は、ブログWebモジュールに接続するモジュールフラグメントのデプロイからの出力です。
19:23:11,740 INFO [Refresh Thread: Equinox Container: 00ce6547-2355-0017-1884-846599e789c4][BundleStartStopLogger:38] STOPPED com.liferay.blogs.web_1.1.9 [535]
19:23:12,910 INFO [Refresh Thread: Equinox Container: 00ce6547-2355-0017-1884-846599e789c4][BundleStartStopLogger:35] STARTED com.liferay.blogs.web_1.1.9 [535]
これでカスタムJSPは本番環境になりました。