第27章 Seam ツール

27.1. jBPM デザイナ と ビュアー

jBPM デザイナとビュアーは、 ビジネスプロセスとページフローというすてきな方法で、 設計と照会を可能にします。 この便利なツールはJBoss Eclipse IDEの一部で、詳細は jBPM ドキュメントで参照できます。 (http://docs.jboss.com/jbpm/v3/gpd/)

27.1.1. ビジネスプロセスデザイナ

このツールでグラフィカルな方法でビジネスプロセスを設計することが可能です。

27.1.2. ページフロービュアー

このツールでページフローを拡張する部分を設計することや、 それらのグラフィカルなビューを作成することができます。 その結果、どのように設計されたかを共有したり比較したりが可能です。

27.2. CRUD アプリケーションジェネレータ

この章では、Hibernate ツールで利用可能な Seam のサポートの簡単な概要を説明します。 Hibernate ツールは、Hibernate と連携するためのツールと JBoss Seam や EJB3 などの関連技術のツール一式です。 このツールは Eclipse プラグイン や Ant タスクと組み合わせて使用可能です。 JBoss Eclipse IDE あるいは、Hibernate ツール のWEBサイトからダウンロードすることが可能です。

現在使用可能な Seam 特有のサポートとは、完全に機能するSeam ベースのCRUDアプリケーションを生成することです。 CRUD アプリケーションは、 既存の Hibernate マッピングファイルに基づいて生成されるか、 EJB3 をアノテーション付き POJO のマッピングに基づいて生成されるか、 あるいは既存のデータベーススキーマからリバースエンジニアリングすることで生成が可能です。

以下のセクションは、 Seam の使用を理解するために必要な特徴にフォーカスしています。 内容は Hibernate ツールのリファレンスドキュメントに依拠しています。 従って、より詳細な情報が必要であれば、Hibernateツールドキュメンテーションを参照してください。

27.2.1. Hibernate 設定ファイルの作成

リバースエンジニアリングやコード生成のためには、 hibernate.properties あるいは、hibernate.cfg.xml が必要です。 すでにそのようなファイルがないときのために、 Hibernate ツールは hibernate.cfg.xml を生成するためにウィザードを提供します。

"New Wizard" (Ctrl+N) をクリックしてウィザードを開始し、 Hibernate/Hibernate Configuration file (cfg.xml) ウィザードを選択し、 "Next" を押します。 hibernate.cfg.xml ファイルの指定するロケーションを選択した後に、 次のページが見えるでしょう。

Tip: ダイアレクト (Dialect) や選択した実際のドライバによって、 JDBC ドライバクラスと JDBC URL のためのコンボボックスの中の内容は自動的に変わります。

このダイアログに構成情報を入力します。 設定オプションについての詳細は、 Hibernate リファレンスドキュメンテーションで参照できます。

設定ファイルを作成するために "Finish" を押してください。 オプションでコンソール設定を作成した後に、 hibernate.cfg.xmlはエディタで自動的に開かれます。 最後のオプション"Create Console Configuration" は、デフォルトで有効になっています。 有効の場合、"Console Configuration (コンソール設定) " の基礎情報のための hibernate.cfg.xml を 自動的に使用します。

27.2.2. Hibernate コンソール設定の作成

コンソール設定は、Hibernate プラグインに、 POJO や JDBC ドライバをロードするためにどのクラスパスが必要かなどを含む、 どの設定ファイルが Hibernate を設定するために使用されるべきかを記述します。 それは、 クエリープロトタイピング、リバースエンジニアリング、 そしてコードジェネレーションを使用するために必要です。 複数の名前付きコンソール設定を持つこともできます。 通常、プロジェクトに 1 つだけ必要ですが、それ以上 (あるいは以下) も可能です。

以下のスクリーンショットが示すように、 コンソール設定ウィザードを実行してコンソール設定を作成します。 もし、hibernate.cfg.xmlウィザードから起動し、 そして、"Create Console Configuration"を有効にしていれば、 同じウィザードが使用されます。

以下のテーブルは関連する設定を記述しています。 もし、 選択されたプロジェクトの関連する Java でにウィザードを開始すれば、 これら大部分においてウィザードは自動的にデフォルト値を検出します。

表 27.1. Hibernate コンソール設定パラメータ

パラメータ

説明

自動検出される値

Name

設定におけるユニークな名前

選択されたプロジェクトの名前

Property file

hibernate.properties ファイルのパス

選択されたプロジェクトで最初に見つけた hibernate.properties ファイル

Configuration file

hibernate.cfg.xml ファイルのパス

選択されたプロジェクトで最初に見つけた hibernate.cfg.xml ファイル

Enable Hibernate ejb3/annotations

このオプションを選択するとアノテーション付きクラスが有効になります。 hbm.xml ファイルももちろん使用可能です。 この機能はEclipse IDE が JDK 5 ランタイムで実行される必要があります。 そうでなければ、classloading または version errors が発生します。

無効

Mapping files

ロードされなければならない追加マッピングファイルのリスト 注記: hibernate.cfg.xml もマッピングを含むことができます。 従って、これらが重複すれば、コンソール設定を使うときに、 "Duplicate mapping" errors が発生します。

hibernate.cfg.xml ファイルが見つからなければ、 選択されたプロジェクトにあるすべての hbm.xml ファイル

Classpath

POJO や JDBC ドライバをロードするためのクラスパス。 Hibernate core libraries あるいは、dependencies を追加しないでください。 それらは既に含まれています。 もし、ClassNotFound errors が発生したら、不足あるいは重複の可能性のある ディレクトリ / Jar をこのリストでチェックしてください。

デフォルトのビルド出力ディレクトリ、 そして選択されたプロジェクトで java.sql.Driver を実装したクラスを持つJARs

"Finish"をクリックして設定を作成してください、"Hibernate Configurations" ビューでそれを見ることができます。

27.2.3. リバースエンジニアリング と コードジェネレーション

とても簡単な "click-and-generate" リバースエンジニアリングと、 コードジェネレーションの機能が利用できます。 この機能で Seam CRUD アプリケーション全体のスケルトンの生成が可能です。

このプロセス作業を開始するために、"Hibernate Code Generation"を開始しましょう。 これは、Hibernateアイコンのツールバーからでも、"Run/Hibernate Code Generation"のメニュからも利用できます。

27.2.3.1. コードジェネレーションのランチャー

"Hibernate Code Generation" をクリックしたとき、 標準の Eclipse ランチャーダイアログが現れます。 このダイアログで、指定された Hibernate code generation "launchers" を 作成、編集、削除することが可能です。

このダイアログには、標準タブの "Refresh" と "Common" があります。 これらは、たとえば、チーム内のランチャーを共有するためにプロジェクトで保存される設定のような、 どのディレクトリを自動的に更新すべきかの設定、 そして、一般的なランチャーの設定に使用することが可能です。

初めて、コードジェネレーションランチャーを作成するとき、 意味のある名前をつけなければなりません。そうでなければデフォルトの接頭語として "New_Generation" が使用されます。

注記: "At least one exporter option must be selected" は、 単に、作業するこのスタートのために、 エキスポートタブの上のエキスポートするものを選ぶ必要があることを述べている警告です。 エキスポートするものが選択されれば、 警告は消えます。

"Main" タブで設定する項目:

表 27.2. Code generation "Main" タブのフィールド

フィールド

説明

Console Configuration

コード生成されるときに、使用されるコンソール設定の名前

Output directory

デフォルトで書き込まれるすべての出力のディレクトリーパスの場所。 既存のファイルが上書きされることに注意してください、 正しくディレクトリが指定される必要があります。

Reverse engineer from JDBC Connection

有効化されていれば、 ツールは、 選択された Hibernate コンソール設定中の コネクション情報を経由して、 データベースのリバースエンジニアリングを可能にし、 そして、 データベーススキーマをベースとして コードを生成します。 もし、有効化されていなければ、 コードジェネレーションは単に Hibernate コンソール設定で指定する マッピングに基づくでしょう。

Package

ここでのパッケージ名は、 リバースエンジニアリングする時に見つけられたエンティティに対して使用される、 デフォルトのパッケージ名です。

reveng.xml

reveng.xml ファイルへのパス。 reveng.xml ファイルは、 特定のリバースエンジニアリングの、 アスペクトの制御を可能にします。 例えば、どのように JDBC タイプが Hibernate タイプにマッピングされるかや、 特に重要なものとして、 どのテーブルがこのプロセスに包含するか / 排除されるかです。 "setup" のクリックは既存の reveng.xml の選択や、 新しい reveng.xml の作成を可能にます。

reveng. strategy

もし、reveng.xml でのカスタマイズが不十分であれば、 ReverseEngineeringStrategy を実装した独自のものを設定することも可能です。 このクラスはコンソール設定のクラスパスにある必要があります、 そうでない場合、class notfound exceptions が発生します。

Generate basic typed composite ids

Sesam CRUD アプリケーションを生成する場合には、 このフィールドはいつも有効にしておく必要があります。 複数カラムの主キーを持つテーブル <composite-id> マッピングはいつも生成されます。 このオプションが有効で、かつマッチする外部キーがあるならば、 それぞれのキーカラムはエンティティへの参照の代わりに、 基本的なスカラー (string、 long、 など) と考えられます。 もしこのオプション <key-many-to-one> を反対に無効とした場合、 <many-to-one> プロパティはやはり作成されますが、 単に non-updatable や non-insertable とマークされますますのでご注意ください。

Use custom templates

有効であれば、velocity テンプレートを探すときに、 テンプレートディレクトリーが最初に検索され、 どのように個別のテンプレートが Hibernate マッピングモデルで処理されるかを 再定義することを可能にします。

Template directory

カスタム Velocity テンプレートのディレクトリーパス

27.2.3.2. エクスポート

エクスポートタブは生成するコードのタイプをを指定するために使用されます。 それぞれの選択はコード (つまり、名前) の生成を担当する "Exporter" を表します。

以下のテーブルは単にさまざまな exporters を説明しています。 Seam について最も関連あることはもちろん "JBoss Seam Skeleton app" です。

表 27.3. Code generation "Exporter" タブフィールド

フィールド

説明

Generate domain code

所与の Hibernate 設定にあるコンポーネントと 永続クラスのための POJO を生成します。

JDK 1.5 constructs

有効であれば、POJO's は JDK 1.5 constructs を使用します。

EJB3/JSR-220 annotations

有効であれば、POJO's は EJB3/JSR-220 永続性仕様書にしたがってアノテーションが付けられます。

Generate DAO code

見つけたそれぞれのエンティティの DAO 一式を生成します。

Generate Mappings

それぞれのエンティティのためにマッピングファイル (hbm.xml) を生成します。

Generate hibernate configuration file

hibernate.cfg.xml ファイルを生成します。 新しく見つかったマッピングファイルを hibernate.cfg.xml と最新状態に保つために使用されます。

Generate schema html-documentation

データベーススキーマといくつかのマッピングを記述した HTML ページ一式を生成します。

Generate JBoss Seam skeleton app (beta)

JBoss Seam スケルトンアプリケーション一式を生成します。 ジェネレーションはアノテーション付き POJO、 Seam コントローラ Beans、 そして、プレゼンテーション層用のJSPを含みます。 使用方法は生成された readme.txt を参照してください。

注記: このエキスポータは、 build.xmlを含む アプリケーション一式を生成します。 従って、 プロジェクトのルートに出力ディレクトリを使用すると、 最もよい結果が得られるでしょう。

27.2.3.3. コードの生成と利用

設定を記入し終わったら、コード生成を起動するために単に "Run" を押してください。 データベースからリバースエンジニアリングするならば、少し時間がかかるかもしれません。

生成が終わったら、出力ディレクトリの中にスケルトンの Seam application 一式があります。 出力ディレクトリ中に、 サンプルをデプロイ、実行に必要なステップを記述した readme.txt ファイルがあります。

もし、スケルトンコードの再生成/更新が必要であれば、 ツールバーの "Hibernate Code Generation" あるいはメニューから"Run"を選択して、 単にコードジェネレーションを実行してください。 楽しんでくださいね。