命名規則と基本となる前提

ソースにおける基本となる前提

  • 特別に定めのない限り、全ての maven のビルドコマンドは (Jetspeed をビルドするときは) Jetspeed ディレクトリで実行されるか、作成しようとしているカスタムのポータル作成用ディレクトリで実行されます。
  • * *nix 環境であっても、Windows 環境であっても、例えば c:/windows や /home のように、ディレクトリのセパレータとしては "/" を使用しなければいけません。

命名規則

この文書で使用する共通の規則を以下に示します。

変数は ${ some_variable } として表します。これは Jetspeed の設定を表すこともできますし、あなたの環境内での設定を表すこともできます。プロパティファイルもその中で変数を記述することができます。

例えば、${org.apache.jetspeed.server.home} はプロパティファイル内で以前に定義されたプロパティを参照したり、ビルドプロセス内のどこかで定義される変数や、Jetspeed 内の他のビルドファイル内で定義された変数を参照するかもしれません。

  • ${USER_HOME} : ユーザのホームディレクトリです。Windows では、一般的に c:\Documents and Settings\${userName}\ になります。ここで ${userName} は Windows にログインするときのログイン名です。
  • ${CATALINA_HOME} : あなたが Tomcat をインストールした場所です。例えば c:/tomcat などです。

Subversion (SVN) でのソース管理

Subversion (SVN) は Jetspeed のソースファイルを管理するために使われます。SVN は CVS にとても似ています。Windows システムでコマンドラインを使用しないユーザは、 TortoiseSVN を使ってみると良いでしょう。このツールは Windows Explorer にプラグインされます。Eclipse IDE を使っているユーザは Subclipse プラグインが SVN アクセスに使用できます。

Maven セットアップ

この文書では、Maven の仕様については述べません。しかし、ここであなたが知っておくべき重要な maven の基本的な専門用語を以下に少しだけ挙げておきます。

あなたは文書内で maven リポジトリについて触れるのを目にすることがあるでしょう。maven をインストールすると、.maven/ ディレクトリが ${USER_HOME} ディレクトリに作成されます。

.maven/ 以下に repository というディレクトリがあるはずです。ここにはビルドを実行するときに maven がダウンロードした jar ファイルが保存されます。ここはあなたのビルドでできた jar ファイルや war ファイルも置かれることがあります。jar ファイルは ${groupId}/${projectId}/jars/${projectId}-{$version}.jar の形式で置かれます。ポータル war ファイルは ${groupId}/${projectId}/wars/${projectId}.war の形式となります。${groupId}、${projectId}、${version} の各変数についてはこの文書の後の方で触れます。jar ファイルと war ファイル>は、あなたのプロジェクトの /target ディレクトリにも作成されます。

2. Jetspeed のビルドと maven プラグインのプロパティ

いくつかプロパティを設定する必要があります。

カスタムのポータルを作るのは Jetspeed 2 が提供する Maven プラグインを使えばとても簡単です。ソースから Jetspeed をビルドするときも同様に Maven プラグインを使います。事実、Jetspeed 2 のビルド手順はちょうどカスタムポータルを設定し、構築する一例のようなものです。

Jetspeed 2 の Maven プラグインは設定可能なほとんどのプロパティにデフォルト値を定義しています。しかし、全てに定義されているわけではありません。Jetspeed 2 のソースツリーをダウンロードしたり、チェックアウトしたとき、これらのプロパティのいくつかを設定したり上書きしたりする project.properties ファイルがルートフォルダにあるのがわかるでしょう。

前述のように、全てのプロパティにデフォルト値が定義されているわけではありません。いくつかのプロパティを指定 しなければなりません。そして、大体の場合はいくつかの値を上書きしたくなるでしょう。

ビルドプロパティもしくは Maven プラグインのプロパティは ${USER_HOME}/build.properties に設定もしくは上書きしてください。

必須のポータル設定プロパティ

プロパティ説明デフォルト値
org.apache.jetspeed.portal.home (j2:portal.conf.project ゴールで) Maven プラグインがあなたのカスタムポータル用 Maven プロジェクトを(再)構築したり更新したりするフォルダ。この場所はあなたがカスタムポータルの開発を今後全て行う場所になります。 例: /home/myportal デフォルト値なし
org.apache.jetspeed.portal.groupId あなたのポータルプロジェクトグループの (Maven での) 省略名。

この値は (ポータル war ファイルのような) プロジェクトの成果物を保管しておく Maven のリポジトリフォルダに使います。

例: myprojects
デフォルト値なし
org.apache.jetspeed.portal.artifactId あなたのポータルプロジェクトの (Maven での) 省略名。

この値はポータル war ファイルや (ポータル) ウェブアプリケーションのコンテキスト名に使います。

例: myportal
デフォルト値なし
org.apache.jetspeed.portal.name あなたのポータルプロジェクトの (Maven での) フルネーム。

この値は JaveDoc のタイトルを生成するのに Maven が使います。

例: My Test Portal
デフォルト値なし
org.apache.jetspeed.portal.currentVersion あなたのポータルプロジェクトの現在のバージョン。

この値はプロジェクトの成果物の名前の最後に Maven に付け加えられます。

例: 1.0
デフォルト値なし

省略可能なポータル設定プロパティ

このあとに述べるプロパティは全て、上で定義した ${org.apache.jetspeed.portal.home} のサブフォルダを指定します。

プロパティ説明デフォルト値
org.apache.jetspeed.portal.conf.dir Maven プラグインがアプリケーションサーバの設定ファイルを Tomcat のアプリケーションのコンテキスト記述子として生成しコピーするフォルダ。

このフォルダとフォルダ内のコンテンツは j2:portal.conf.tomcat プラグインゴールによって作成されたり更新されたりします。
target/portal-conf
org.apache.jetspeed.portal.sql.dir Maven プラグインがポータルやデータベースサーバの sql DDL と DML スクリプトを生成しコピーするフォルダ。

このフォルダとフォルダ内のコンテンツは常に j2:portal.conf.sql プラグインゴールによって (再) 生成されます。
target/portal-sql
org.apache.jetspeed.portal.db.dir Maven プラグインがビルドインの HSQLDB データベースを作成するフォルダ。

このフォルダとフォルダ内のコンテンツは j2:start.production.server もしくは j2:start.test.server プラグインゴールによって生成されたり更新されたりします。
target/portal-db
org.apache.jetspeed.portal.webapp.dir Maven プラグインが標準の Jetspeed のウェブアプリケーションのリソースをコピーするフォルダ。

このフォルダとフォルダ内のコンテンツは j2:portal.copy.webapp プラグインゴールによって生成されたり更新されたりします。
target/${org.apache.jetspeed.portal.artifactId}
org.apache.jetspeed.portal.target.dir Maven プラグインがランタイムのポータルの設定ファイルを生成したりコピーしたりするフォルダ。

これらの設定ファイルはポータルや OJB のビルド/プラグインプロパティから生成された値を含みます。

このフォルダとフォルダ内のコンテンツは j2:portal.conf.jetspeed もしくは j2:portal.conf.ojb プラグインゴールによって生成されたり更新されたりします。
target/${org.apache.jetspeed.portal.artifactId}

必須のアプリケーションサーバのプロパティ

注意: Mavenプラグインは現時点では Tomcat 5.0.x または 5.5.x のみをサポートします。

プロパティ説明デフォルト値
org.apache.jetspeed.server.home Tomcat をインストールしたルートフォルダ。

例: ${CATALINA_HOME}/
デフォルト値なし
org.apache.jetspeed.server.shared Tomcat の共有の jar の置場。

例: ${org.apache.jetspeed.server.home}/shared/lib/
デフォルト値なし
org.apache.jetspeed.deploy.war.dir Tomcat のウェブアプリケーションの場所。

例: ${org.apache.jetspeed.server.home}/webapps/
デフォルト値なし
org.apache.jetspeed.services.autodeployment.user manager ロールに属する Tomcat のユーザ。

後で説明するように、ポータル内から Tomcat Manager アプリケーションへアクセスするのに使います。
デフォルト値なし
org.apache.jetspeed.services.autodeployment.password 前述の Tomcat ユーザのパスワード。

後で説明するように、ポータル内から Tomcat Manager アプリケーションへアクセスするのに使います。
デフォルト値なし
org.apache.jetspeed.catalina.version.major 使用する Tomcat のメジャーバージョン。5 もしくは 5.5 が使えます。

例: 5.5
デフォルト値なし

省略可能なデータベースサーバのプロパティ

Jetspeed 2 と Jetspeed 2 の Maven プラグインはデフォルトでは提供される HSQLDB のデータベースを使用します。

もし異なるデータベースを使用するのであれば、以下のプロパティを上書きする必要があります。

プロパティ説明デフォルト値
org.apache.jetspeed.production.database.default.name あなたが使用するデータベースの種類。Torque が生成する SQL スクリプトのために使用します。

現時点でサポートするデータベースは以下の通りです。(Torque の対象のデータベース名と一致します。)
  • hsql (hypersonic)
  • oracle (oracle)
  • mysql (mysql)
  • postgres (postresql)
  • mssql (mssql)
hsql
org.apache.jetspeed.production.database.url JDBC の接続 URLjdbc:hsqldb:hsql://127.0.0.1:9001
org.apache.jetspeed.production.database.user データベースに接続する際のユーザ名。sa
org.apache.jetspeed.production.database.password データベースに接続するユーザのパスワード。
org.apache.jetspeed.production.database.driver JDBC ドライバのクラス名org.hsqldb.jdbcDriver
org.apache.jetspeed.production.jdbc.drivers.path データベース接続に必要な JDBC ドライバクラスや jar への Java クラスパススタイルのパス。

例: /lib/ojdbc14.jar;/lib/nls_charset12.jar

例: 最小限のカスタムポータルの設定

少なくとも前述の必須のプロパティは ${USER_HOME}/build.properties で定義する必要があることに注意してください。HSQLDB を使った最低限のカスタムポータルの設定は以下のようになります。

						
# 必須のポータルの設定プロパティ
org.apache.jetspeed.portal.home           = /home/myportal/
org.apache.jetspeed.portal.groupId        = myprojects
org.apache.jetspeed.portal.artifactId     = myportal
org.apache.jetspeed.portal.name           = My Test Portal
org.apache.jetspeed.portal.currentVersion = 1.0

# 必須のアプリケーションサーバのプロパティ
org.apache.jetspeed.server.home                      = ${CATALINA_HOME}/
org.apache.jetspeed.server.shared                    = ${org.apache.jetspeed.server.home}/shared/lib/
org.apache.jetspeed.deploy.war.dir                   = ${org.apache.jetspeed.server.home}/webapps/
org.apache.jetspeed.services.autodeployment.user     = j2deployer
org.apache.jetspeed.services.autodeployment.password = xxxxx
org.apache.jetspeed.catalina.version.major           = 5.5
					
注意: もしデフォルトの Jetspeed 2 ポータルをソースから直接ビルドするつもりなのであれば、必須のポータルの設定プロパティのうち、 org.apache.jetspeed.portal.home だけが必要になります。

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

さて、ここでは Jetspeed 2 の Maven プラグインを使って、新しいカスタムポータルアプリケーションを設定し、セットアップし、ビルドします。

4.1 Maven のリモートリポジトリを見付けるための設定

Jetspeed 2 ベースのポータルの設定ができるためには、Maven のリモートリポジトリの場所を ${USER_HOME}/build.properties に以下のように設定する必要があります。

						
maven.repo.remote = http://www.bluesunrise.com/maven/, http://www.ibiblio.org/maven/, \
                    http://dist.codehaus.org/, http://cvs.apache.org/repository
					
注意: これらのリポジトリの順番も同じように指定しなければいけません。

4.2 Jetspeed 2 の Maven プラグインのインストール

最初に、そしてより新しいバージョンの Jetspeed 2 にアップグレードしたくなったときは、Maven プラグインを以下のようにしてインストールする必要があります。

						
maven -DartifactId=maven-jetspeed2-plugin -DgroupId=org.apache.portals.jetspeed-2 -Dversion=2.0-M4-SNAPSHOT plugin:download
					
注意: インストールしたいバージョンを指定するためにバージョンフラグを設定することができます。ここでの例では 2.0-M4-SNAPSHOT を指定しています。

4.3 新しいポータルプロジェクトの生成

Maven プラグインをインストールし、必要なプロパティを設定したら、以下のようにしてプラグインを使ってデフォルトのポータル設定を生成してください。

						
maven j2:portal.genapp
					
この Maven のゴールは実際は Maven プラグインの資料 に記述されるようないくつかのサブゴールを実行します。

4.4 ポータルの追加のカスタマイズ

このセクションでは特別何かを行うという指示はありません。ポータルプロジェクトが生成されたら、自身の設定や拡張機能を上書きしたりマージしたりして、あなたが好みに合わせてカスタマイズを行ってください。

前のセクションで説明したように j2:portal.genapp ゴールを使うか、このゴール内で実行されるサブゴールを直接使うなりして、ポータルプロジェクト (の一部) を再生成したり更新したりしてください。

4.5 ポータルのビルド

ポータルの設定とセットアップの準備ができたら、以下の Maven 標準のゴールをカスタムポータルプロジェクトのディレクトリ (${org.apache.jetspeed.portal.home} 内) で実行することにより、ローカルの Maven リポジトリ (配備に必要です) でポータルアプリケーションをビルドし、インストールすることができます。

さあ、これで新しいポータルアプリケーションの配備の準備ができました。新しいポータルアプリケーションの配備をするには、次の Jetspeed 2 のソースからのビルドのセクションを飛ばし、 配備 を続いて読んでください。

5. ソースからの Jetspeed 2 のビルド

ソースから直接 Jetspeed 2 ポータルをビルドするのは、幾分簡単です。しかし、これはあなたが新しいカスタマイズされたポータルを作りたくない場合のみそうすべきです。

5.1 Jetspeed 2 のソースとビルドプロパティのセットアップ

Jetspeed 2 のソースには project.properties ファイルが含まれています。これは、 必須のポータル設定プロパティ に述べたようなポータルの設定に必須の全てのプロパティが提供されています。

あなたの ${USER_HOME}/build.properties ファイル中にはこれらのプロパティを一切含んではいけません。

代わりに、 org.apache.jetspeed.project.home プロパティを設定しなければいけません。このプロパティは、以下のように、ダウンロードしたソースが展開されたか、subversion からソースをチェックアウトした場所を表します。

						
# 必要な、ソースからビルドするための Jetspeed 2 ポータル設定のプロパティ
org.apache.jetspeed.project.home = /home/apache/jetspeed-2/
					
注意: 必須のアプリケーションサーバのプロパティ で述べたプロパティについては、指定する必要があります。

Jetspeed 2 の project.properties ファイルは必須の org.apache.portal.home を定義するために、以下のようなプロパティを使います。

						
org.apache.jetspeed.portal.home = ${org.apache.jetspeed.project.home}
					
Jetspeed 2 ポータルをソースからビルドする場合と同じです。

後に述べるようにポータルを配備したいときは、 org.apache.jetspeed.portal.home を参照します。これはあなたの Jetspeed 2 のソースのルートフォルダと読み替えることもできます。

もし、Jetspeed 2 のソースをビルドしていて、デフォルトの HSQL テストデータベースを使わないときにテストケースを走らせたい場合は、 省略可能なデータベースサーバのプロパティ で述べた本稼働用のデータベースのプロパティと同じように、デフォルトのテストのデータベースプロパティを修正する必要があります。

  • org.apache.jetspeed.test.database.default.name
  • org.apache.jetspeed.test.database.url
  • org.apache.jetspeed.test.database.user
  • org.apache.jetspeed.test.database.password
  • org.apache.jetspeed.test.database.driver
  • org.apache.jetspeed.test.database.drivers.path
注意: 未解決の JS2-320 の問題のため、現時点ではテストデータベースのプロパティはハードコードされた値を使わなければいけません

Maven プラグインの初期化

Jetspeed 2 の Maven プラグインをダウンロードし、インストールする代わりに、ソースから直接ビルドして生成します。この作業は Jetspeed 2 の新しいバージョンに更新したときやプロジェクトの設定を変えたとき、プラグイン自身を変えたとき、プラグインが使うリソースを変えたときに毎回実行繰り返す必要があります。

Jetspeed 2 ソースのルートディレクトリで以下のようにして Maven プラグインのビルドとインストールをします。

						
cd ${org.apache.jetspeed.project.home}
maven initMavenPlugin
					

省略可: HSQLDB テストデータベースの起動

テストケースを走らせ、デフォルトの HSQLDB データベースの設定を使うのなら、Jetspeed 2 をビルドする前にテスト用のデータベースを別のコンソールで開始しておく必要があります。

						
cd ${org.apache.jetspeed.project.home}
maven j2:start.test.server
					

ビルドが終わった後で、 Ctrl-C を押して、データベースをを止め、コンソールを閉じます。

Jetspeed 2 ポータルとデモポートレットアプリケーションのビルド

ローカルの Maven リポジトリにポータルとデモポートレットを全てビルドしインストールするには、

						
cd ${org.apache.jetspeed.project.home}
maven allClean allBuild
					
を実行します。

しかし、もしビルドの間にテストケースを実行したいのなら、代わりに以下のようなコマンドを実行します。

						
cd ${org.apache.jetspeed.project.home}
maven -Dmaven.test.skip=false allClean allBuild
					

さあ、これで Jetspeed 2 ポータルを配備する準備ができました。

配備と実行

省略可能: HSQLDB プロダクションデータベースの開始

もしデフォルトの HSQLDB データベースを使うのであれば、ポータルを配備する前にデータベースを開始する必要があります。

HSQLDB の本稼働用データベースを実行するには、以下のようなコマンドを別のコンソールで実行します。

						
cd ${org.apache.jetspeed.portal.home}
maven j2:start.production.server
					

配備の間とアプリケーションサーバが実行中の間はデータベースを実行したままにしておく必要があります。終了後は Ctrl-C を押してデータベースを停止し、コンソールを閉じます。

注意: これは後で述べる j2:quickStart ゴールを使うときに必要です。Jetspeed 2 の Maven プラグインには本稼働用データベースの (再) 作成なしに、そして/またはデフォルトのポータル設定データを挿入することなく使える、他の (サブ) ゴールがあります。利用可能なゴールのさらなる情報は プラグイン資料 を見てください。

配備

現時点では Tomcat 5 か 5.5 への配備のみカバーしています。

他のアプリケーションサーバへの配備についての情報は Jetspeed 2 Wiki で見付かるでしょう。

デモポートレットアプリケーションを含む、デフォルトの Jetspeed 2 ポータルを配備するために、以下のようなコマンドを別のコンソールで実行します。

						
cd ${org.apache.jetspeed.portal.home}
maven j2:quickStart
					
注意: Maven プラグイン資料 にあなた好みの配備にカスタマイズするのに使える他のゴールに関する記述があります。

実行

最後の手順は Tomcat サーバを起動することです。すると、ポータルは自動的に配備すべきポートレットアプリケーションを自動的にインストールするでしょう。

その後で、ブラウザでポータルに以下か

もしくは、この URL の "jetspeed" をあなたのポータルアプリケーションの名前 ( ${org.apache.jetspeed.portal.artifactId} ) に置き換えることで、ポータルにアクセスできます。

デフォルトでインストールされているユーザアカウント

デフォルトの Jetspeed 2 のポータルの配備では、いくつかのサンプルユーザのアカウントがポータルデータベースに登録されています。それを使って、ポータルへのログオンが可能です。

ユーザ名パスワードロール
admin admin admin, manager, user
manager manager manager, user
jetspeed jetspeed manager
user user user
tomcat tomcat