プラグインの概要

Maven への機能の追加は、Maven プラグイン機構を通して、行われます。Maven は多数のプラグインとともに配布され、カスタムプラグインを記述するための拡張可能なフレームワークを提供しています。 カスタム Maven プラグインの詳細については、Maven のウェブサイトの プラグインの記述 (Writing a Plugin) で見つけることができます。

Jetspeed 2 は、Jetspeed 2 ベースのポータルアプリケーションを構築するために必要な、多くで共通の構築ゴールをまとめた、カスタム Maven プラグインを開発しました。 これは、次の多くの利点があります。

  • 共通の構築ゴールのより良い再利用性。新たなポータルアプリケーションを作成する開発者は共通の構築操作に関する Jetspeed 2 Maven プラグインを活用することができます。
  • すばやくポータルアプリケーションを始める機能。j2:portal.genapp を用いて、 新しいポータルアプリケーションを作成できます。新しいアプリケーションの開発者は、quickStart、ポートレットの配備など、共通ののビルド操作用 Jetspeed 2 Maven プラグインのゴールを再利用できます。
  • Maven 2 (M2) への将来的な移行の準備。M2 を利用して、カスタムゴールはプラグイン内にカプセル化され、maven.xml は廃止されます。 Jetspeed 2 Maven プラグインへの多くの Jetspeed 2 構築ゴールを集中することで、M2 への移行は非常に簡単になります。

ポータルアプリケーションの作成と設定のゴール

新しいポータルアプリケーションの作成

ゴール説明
j2:portal.genapp カスタムポータルアプリケーションの生成または更新。 このゴールの基本利用方法に関して、導入 ドキュメントを確認してください。

j2:portal.genapp.minimal j2:portal.genapp と同様に動作します。しかし、WEB-INF/pages から 以下のディレクトリとファイルだけをコピーします。
  • /WEB-INF/pages/Administrative/** (all contents)
  • /WEB-INF/pages/page.security

ポータルアプリケーションの設定と更新

上の j2:portal.genapp ゴールは、実際には、以下のようなポータルアプリケーションを個々に更新や設定するために使用することができるいくつかのゴールに関するラッパーでしかありません。

ゴール説明
j2:portal.copy.webapp プラグインから ${org.apache.jetspeed.portal.webapp.dir} フォルダへ (静的な) Jetspeed 2 ポータルウェブリソースをコピーします。



このゴールの再実行は、前回のリソースを削除しませんが、既存のリソースは上書きされます



Jetspeed 2 ポータルの新しいバージョンへアップグレードする必要がある場合は、まず、これらのリソースを削除しなければなりません。 デフォルトでは、対象フォルダが Maven デフォルトの対象フォルダ内で構成され、clear ゴールの実行でそれが実行されます。
j2:portal.copy.webapp.minimal j2:portal.copy.webapp と同様。しかし、WEB-INF/pages から以下のディレクトリとファイルをコピーするだけです。
  • /WEB-INF/pages/Administrative/** (すべてのコンテンツ)
  • /WEB-INF/pages/page.security
j2:portal.conf.project 新規に Maven プロジェクトを作成、または、${org.apache.jetspeed.portal.home.dir} フォルダ内の既存のポータルプロジェクト設定を更新します。

次の 5 つの Maven プロジェクトファイルの階層が作成されます。
  • project-info.xml
  • core-build.xml は project-info.xml を extend します
  • jetspeed-components.xml は core-build.xml を extend します
  • full-portal.xml は jetspeed-components.xml を extend します
  • project.xml は full-portal.xml を extend します
上のファイルで、始めと最後のもの (project-info.xml と project.xml) は、追加的なプロジェクト情報や設定を提供するために修正されるかもしれません。そして、それらはこのゴールによって再度更新されません。他の 3 つのファイルだけは、このゴールによって書き換えられます。 Jetspeed 2 の最新バージョンにアップグレードする必要がある場合は、独自にカスタマイズしたものを保存しておきます。



追加的に、ポータルをさらにカスタマイズするために独自の maven.xmlを追加したり、project.properties または build.properties を追加できます。 このゴールを再度実行するときには、これらを保存しておきます。
j2:portal.conf.sql ${org.apache.jetspeed.portal.sql.dir} 以下に、設定されたデータベース用にポータル SQL スキーマ DDL を生成します。 静的に定義された共通および選択されたデータベース固有の SQL の DML および DDL (生成された DDL が優先可能なら) も同様にコピーします。



このゴールが実行されると、SQL 対象フォルダの内容は、はじめに削除されます。
j2:portal.conf.ojb 現在選択されている、本稼働用のデータベース向けのフィルタがされている OJB 設定を、${org.apache.jetspeed.portal.target.dir} へコピーします。



標準では、上記の対象フォルダは標準の Maven WAR 対象フォルダ以下に構成されます。 Maven clear ゴールは、このフィルタされた OJB 設定を削除します。
j2:portal.conf.ldap ${org.apache.jetspeed.portal.target.dir} フォルダへ LDAP 設定をコピーします。
j2:portal.conf.jetspeed ${org.apache.jetspeed.portal.target.dir} フォルダへフィルタされた jetspeed.properties ポータル設定をコピーします。



デフォルトで、上記の対象フォルダは標準の Maven の WAR 対象フォルダ以下に構成されます。 Maven clear ゴールは、このフィルタされた jetspeed.properties ファイルも削除します。
j2:portal.conf.tomcat ${org.apache.jetspeed.portal.conf.dir} フォルダへの現在のデータベース接続設定を含めた、フィルタされた Tomcat コンテキスト記述子をコピーします。



${org.apache.jetspeed.catalina.major.version} 設定に基づき、Tomcat 5.0.x または 5.5.x タイプのテンプレートコンテキスト記述子が使用されます。



フィルタされた Tomcat コンテキスト記述子は、j2:portal.deploy ゴールによって、Tomcat サーバへコピーされます。



Tomcat のメジャーバージョンおよびデータベース接続設定を変更したい場合、ポータルを (再) 配備する前に再度、このゴールを実行する必要があります。



デフォルトでは、上記の対象フォルダは、標準の Maven 対象フォルダ以下に構成されます。 Maven clear ゴールは、このフィルタされたコンテキスト記述子ファイルを削除します。

ポータルアプケーション配備ゴール

クイックスタート用の配備ゴール

あらかじめ定義されたポートレットアプリケーションの組を、ポータルアプリケーションと同時に配備し、必要に応じてポータル用のデータベースを生成するために、いくつかのゴールを使用することが可能です。

ゴール説明
j2:doStart ポータルアプリケーションを配備して、設定された Tomcat サーバ (共有ライブラリ、ポータルアプリケーションのコンテキストなど) 用の、必要な依存関係を設定するための汎用的なゴールです。



このゴールは、設定するために deployType プラグインプロパティが必要です。デフォルト値は "j2:fullDeploy" です (以下参照)。



recreateDB プラグインプロパティが設定されている場合、j2:db.recreate ゴールが呼び出されます。

すべての既存の Jetspeed 2 標準およびデモポートレットアプリケーションは、j2:remove.wars ゴールを通して、削除されます。

共有の依存関係は、j2:copy.shared.deps を用いて、Tomcat サーバへコピーされます。

そして、最後に、設定された deployType プラグインプロパティの値は、指定された配備ゴールを実行するために使用されます。
j2:quickStart deployType="j2:fullDeploy" および recreateDB=true を用いて、j2:doStart を呼び出します。
j2:nodbQuickStart deployType="j2:nodbfullDeploy" および recreateDB=false を用いて、j2:doStart を呼び出します。
j2:basicStart deployType="j2:basicDeploy" および recreateDB=true を用いて、j2:doStart を呼び出します。
j2:nodbBasicStart deployType="j2:nodbBasicDeploy" および recreateDB=false を用いて、j2:doStart を呼び出します。
j2:minStart deployType="j2:minDeploy" および recreateDB=true を用いて、j2:doStart を呼び出します。
j2:nodbMinStart deployType="j2:nodbMinDeploy" および recreateDB=false を用いて、j2:doStart を呼び出します。

配備をサポートしているゴール

ゴール説明
j2:remove.wars Tomcat サーバから、ポータル、すべての標準およびデモポートレットアプリケーション (以下の j2:fullDeploy を参照) と (存在すれば) それらのコンテンツ記述子を削除します。
j2:catalina.base.shared 共通のポートレットコンテナ用に必要なすべての基本 JAR ファイルをコピーします。
j2:catalina.shared共通コンテナ用に必要なすべての JAR ファイルをコピーします。
j2:copy.shared.deps j2:catalina.base.shared および j2:catalina.shared を呼び出すラッパーゴール。
j2:portal.deploy Tomcat サーバへポータルアプリケーションおよびそれに依存するものだけを配備します。



はじめに、j2:remove.wars ゴールで現在のインストールされたポータルを削除します。

次に、ローカル Maven リポジトリからアプリケーションサーバへ構築されたポータル WAR をコピーして展開します。

そして、ポータル用に Tomcat コンテンツ記述子をコピーします。(j2:portal.conf.tomcat ゴールも参照してください)

最後に、j2:copy.shared.deps ゴールで共有される依存するものをインストールします。

標準およびデモポートレットアプリケーション配備ゴール

ゴール説明
j2:deploy ${maven.war.final.name} プロパティによって特定されたポートレットアプリケーションを配備するための標準ゴール。



ローカルの Maven リポジトリの Jetspeed 2 グループ内で、ポートレットアプリケーションを検索します。 リポジトリ内でポートレットを検索するときに、このゴールは、プラグイン内で設定された Jetspeed 2 のバージョン番号で与えられたポートレットアプリケーションを検索します。 ${maven.war.final.name}-${jetspeed.version}.war の書式に従ったリポジトリ内で検索されたファイル名で、${maven.war.final.name}.war として配備されます。
j2:pam.layoutdeployJetspeed ローカルレイアウトポートレットアプリケーションを配備します。
j2:pam.admindeployJetspeed 管理ポートレットアプリケーションを配備します。
j2:pam.tsdeployPluto テストスイートポートレットアプリケーションを配備します。
j2:pam.strutsdeployStruts メールリーダーデモポートレットアプリケーションを配備します。
j2:pam.jpetstoredeployiBatis Jpetstore ベースのデモポートレットアプリケーションを配備します。
j2:pam.jsfdeployJetspeed で汎用的な JSF ポートレットブリッジを使用した JSF デモポートレットアプリケーションを配備します。
j2:pam.jsfmyfacesdeployMyFaces に含まれる JSF ポートレットブリッジを使用した JSF デモポートレットアプリケーションを配備します。
j2:pam.phpdeployJetspeed PHP ブリッジデモポートレットアプリケーションを配備します。
j2:pam.perldeployJetspeed Perl ブリッジデモポートレットアプリケーションを配備します。
j2:pam.rssdeployRSS フィードデモポートレットアプリケーションを配備します。
j2:nodbMinDeploy j2:portal.deploy ゴールを使用したポータルを配備し、j2:pam.layoutdeployj2:pam.admindeploy を使用して、レイアウトポートレットと管理ポートレットだけを配備します。
j2:minDeploy j2:nodbMinDeploy と同様な機能に加えて、j2:db.entities ゴールを使用して、ポータルデータベースを作成します。
j2:nodbfullDeploy j2:nodbMinDeploy と同様な機能ですが、追加で、他のすべてのデモポートレットアプリケーション (上のすべてのリストを参照) を配備します。
j2:fullDeploy j2:nodbFullDeploy と同様な機能に加えて、j2:db.entities ゴールを使用して、ポータルデータベー>スを作成します。

データベース管理ゴール

ゴール説明
j2:start.production.serverポータルによって使用される標準の HSQLDB 本稼働用データベースを起動します。
j2:start.test.server Jetspeed 2 のビルド中にテスト用で使用するために、標準の HSQLDB テスト用データベースを起動します。
j2:db.create.test テスト用データベースのテーブルを作成します。もし、標準の HSQLDB を利用する場合、j2:start.test.server ゴール内で先に起動されていなければなりません。

既存のポータルのテーブルは始めに削除されます。初めて実行する場合は、「table does not exist」エラーメッセージが表示されますが、それらは無視することができます。
j2:db.create.production 本稼働用のデータベースのテーブルを作成します。もし、標準の HSQLDB を利用する場合、j2:start.production.server ゴール内で先に起動されていなければなりません。

既存のポータルのテーブルは始めに削除されます。初めて実行する場合は、「table does not exist」エラーメッセージが表示されますが、それらは無視することができます。
j2:db.recreate j2:db.create.production ゴールを利用して、本稼働用データベースを再作成しますが、まず、j2:portal.conf.sql 使用して、SQL スクリプトを (再) 生成します。
j2:db.drop.testテスト用データベースのポータルに関するテーブルを削除します。
j2:db.drop.production本稼働用データベースのポータルに関するテーブルを削除します。
j2:db.entities Jetspeed 2 で構成された標準の PSML 構成用のユーザ情報を投入します。

LDAP 管理ゴール

ゴール説明
j2:start.ldap.server標準の Apache Directory Server を起動し、標準の apacheds-server.xml 設定を読み込みます。

補助的な Jetspeed コンポーネント配備ゴール

特定の Jetspeed コンポーネントを再配備するための一般的なゴール群です。

ゴール説明
j2:jar.deploy ローカル Maven リポジトリから配備ディレクトリへ Jetspeed コアコンポーネントを配備します。
j2:jar.deploy.shared ローカル Maven リポジトリから Tomcat の共有ライブラリディレクトリへ Jetspeed コアコンポーネントを配備します。
j2:deployDecorations WEB-INF/decorations ディレクトリから配備されたポータルへすべてのデコレーションを配備します。
j2:deployTemplates WEB-INF/templates ディレクトリから配備されたポータルへすべてのテンプレートを配備します。