SeamFramework.orgCommunity Documentation

第32章 組み込み Seam コンポーネント

32.1. コンテキストインジェクションのコンポーネント
32.2. JSF 関連のコンポーネント
32.3. ユーティリティコンポーネント
32.4. 国際化とテーマのコンポーネント
32.5. 対話を制御するためのコンポーネント
32.6. jBPM 関連のコンポーネント
32.7. セキュリティ関連のコンポーネント
32.8. JMS 関連のコンポーネント
32.9. メール関連のコンポーネント
32.10. 基盤となるコンポーネント
32.11. その他のコンポーネント
32.12. 特殊なコンポーネント

本章では Seam の組み込みコンポーネント、 その設定プロパティについて説明していきます。 組み込みコンポーネントは components.xml ファイルに記載がなくても作成されますが、 デフォルトのプロパティを上書きするまたは特定タイプの 1 つ以上のコンポーネントを指定する必要がある場合は components.xml を使用します。

@Name を使って独自のクラスで組み込みコンポーネントの名前を指定すると、 組み込みコンポーネントを独自の実装に簡単に置き換えることができます。

最初の組み込みコンポーネントセットは、 単純にさまざまなコンテキスト上のオブジェクトのインジェクトをサポートするために存在しています。 たとえば、 次のコンポーネントインスタンスの変数はインジェクトされた Seam セッションのコンテキストオブジェクトを持つことになります。

@In private Context sessionContext;

これらコンポーネントはすべて常にインストールされます。

次のコンポーネントセットはJSFを補うために提供されます。

org.jboss.seam.faces.dateConverter

java.util.Date 型のプロパティのためのデフォルト JSF コンバータを提供します。

このコンバータは自動的に JSF に登録されます。それにより開発者がインプットフィールドやページパラメータに DateTimeConverter を指定する必要がなくなります。デフォルトではその型は (time や date と timeの組み合わせとは対象的に) date であることが仮定され、ユーザーの Locale に合わせて短い形式のインプットスタイルを使います。Locale.US の場合、インプットパターンは mm/DD/yy です。しかし、2000年問題に対処するため、年は 2桁の数字から4桁の数字へ変更されました (すなわち、 mm/DD/yyyy)。

そのインプットパターンはコンポーネント設定を使ってグローバルに上書きすることが可能です。例を見るにはこのクラスの JavaDoc を調べてください。

org.jboss.seam.faces.facesMessages

ブラウザへのリダイレクトをまたがった後にもfacesが成功メッセージを伝播できるようにします。

org.jboss.seam.faces.redirect

パラメータつきでリダイレクトを行う場合に便利な API です (特にブックマーク可能な検索結果画面などに役立ちます)。

org.jboss.seam.faces.httpError

HTTP エラーを送信する場合に便利な API です。

org.jboss.seam.ui.renderStampStore

レンダースタンプのコレクションを保守する責任があるコンポーネント (デフォルトでセッションスコープ) 。レンダースタンプはどのレンダリングされたフォームがサブミットされたかを示すものです。このストアは JSF のクライアント側のステートを保存するメソッドが使われるときに有用です。なぜなら、それはクライアント側で保持されるコンポーネントツリーではなくサーバー側で制御されるように POST されたフォームがどれかという判定結果を記録します。

セッションとこのチェックを結びつけないためには (セッションを使ってチェックすることは、クライアント側の状態を保存するための主な設計目標の一つではありますが)、レンダースタンプを提供する実装はアプリケーション内(アプリケーションが実行中は有効) またはデータベース内 (サーバー再起動をまたがって有効) に提供されなければなりません。

これらのコンポーネントはクラス javax.faces.context.FacesContext がクラスパス上で利用可能であるときにインストールされます。

これらのコンポーネントが役に立つ機会はあまりありません。

これらコンポーネントはすべて常にインストールされます。

次のコンポーネントグループは Seam を使用した国際化ユーザーインタフェースのビルドを容易にします。

org.jboss.seam.core.locale

Seam ロケールです。

org.jboss.seam.international.timezone

Seam のタイムゾーンです。 タイムゾーンはセッションスコープです。

org.jboss.seam.core.resourceBundle

Seam リソースバンドルです。 リソースバンドルはステートレスになります。 Seam リソースバンドルは Java リソースバンドルの一覧内のキーの深さ優先検索を行います。

org.jboss.seam.core.resourceLoader

リソースローダーはアプリケーションリソースおよびリソースバンドルへのアクセスを提供します。

org.jboss.seam.international.localeSelector

設定しているときか、あるいは実行時にユーザーによってかのいずれかで、ロケール選択をサポートします。

org.jboss.seam.international.timezoneSelector

設定しているときか、あるいは実行時にユーザーによってかのいずれかで、タイムゾーン選択をサポートします。

org.jboss.seam.international.messages

Seam リソースバンドル内で定義されるメッセージテンプレートからレンダリングされる国際化メッセージを含んでいるマップです。

org.jboss.seam.theme.themeSelector

設定しているときか、あるいは実行時にユーザーによってかのいずれかで、テーマ選択をサポートします。

org.jboss.seam.theme.theme

テーマエントリを含んでいるマップです。

これらコンポーネントはすべて常にインストールされます。

次のコンポーネントグループを使うとアプリケーションまたはユーザーインタフェースにより対話の制御を行うことができるようになります。

org.jboss.seam.core.conversation

現在の Seam 対話の属性をアプリケーション制御するための API です。

org.jboss.seam.core.conversationList

対話一覧の管理コンポーネントです。

org.jboss.seam.core.conversationStack

対話スタックの管理コンポーネントです (パンくず)。

org.jboss.seam.faces.switcher

conversation switcher です。

これらコンポーネントはすべて常にインストールされます。

jBPM と併用するコンポーネントになります。

org.jboss.seam.pageflow.pageflow

Seam ページフローの API 制御です。

org.jboss.seam.bpm.actor

現在のセッションに関する jBPM actor の属性をアプリケーション制御するための API です。

org.jboss.seam.bpm.transition

現在のタスクに対する jBPM 移行のアプリケーション制御を目的とする API です。

org.jboss.seam.bpm.businessProcess

対話とビジネスプロセス間の関連性をプログラム制御するための API です。

org.jboss.seam.bpm.taskInstance

jBPM TaskInstance の管理コンポーネントです。

org.jboss.seam.bpm.processInstance

jBPM ProcessInstance の管理コンポーネントです。

org.jboss.seam.bpm.jbpmContext

イベントスコープ JbpmContext の管理コンポーネントです。

org.jboss.seam.bpm.taskInstanceList

jBPM task list の管理コンポーネントです。

org.jboss.seam.bpm.pooledTaskInstanceList

jBPM pooled task list の管理コンポーネントです。

org.jboss.seam.bpm.taskInstanceListForType

jBPM タスクリスト集の管理コンポーネントです。

org.jboss.seam.bpm.pooledTask

pooled task 割り当てのアクションハンドラです。

org.jboss.seam.bpm.processInstanceFinder

プロセスインスタンスタスク一覧の管理機能です。

org.jboss.seam.bpm.processInstanceList

プロセスインスタンスのタスク一覧です。

org.jboss.seam.bpm.jbpm コンポーネントがインストールされるとこれらの全コンポーネントが常にインストールされます。

これらのコンポーネントはウェブ層のセキュリティに関連しています。

これらのコンポーネントは管理対象の TopicPublisher および QueueSender との併用を目的としています (下記参照)。

Seam Email サポートと併用するコンポーネントになります。

これらのコンポーネントは非常に重要なプラットフォームの基盤を提供します。 デフォルトではインストールされないコンポーネントは components.xml 内のそのコンポーネントで install="true" を設定するとインストールすることができます。

org.jboss.seam.core.init

Seam の初期化設定です。 常にインストールされます。

org.jboss.seam.core.manager

Seam ページおよび対話コンテキスト管理用の内部コンポーネントです。 常にインストールされます。

org.jboss.seam.navigation.pages

Seam ワークスペースの管理用の内部コンポーネントです。 常にインストールされます。

org.jboss.seam.bpm.jbpm

JbpmConfiguration をブートストラップします。 クラス org.jboss.seam.bpm.Jbpm としてインストールします。

org.jboss.seam.core.conversationEntries

要求間のアクティブな長期の対話を記録するセッションスコープの内部コンポーネントです。

org.jboss.seam.faces.facesPage

ページに関連付けられる対話コンテキストを記録するページスコープの内部コンポーネントです。

org.jboss.seam.persistence.persistenceContexts

現在の対話に使用された永続コンテキストを記録する内部コンポーネントです。

org.jboss.seam.jms.queueConnection

JMS QueueConnection を管理します。 管理された QueueSender がインストールされると必ずインストールされます。

org.jboss.seam.jms.topicConnection

JMS TopicConnection を管理します。 管理された TopicPublisher がインストールされると必ずインストールされます。

org.jboss.seam.persistence.persistenceProvider

JPA プロバイダの標準化されていない機能に対する抽出層です。

org.jboss.seam.core.validators

Hibernate Validator ClassValidator のインスタンスをキャッシュします。

org.jboss.seam.faces.validation

検証が失敗したのか成功だったのかアプリケーションが判断できるようになります。

org.jboss.seam.debug.introspector

Seam Debug Page のサポートです。

org.jboss.seam.debug.contexts

Seam Debug Page のサポートです。

org.jboss.seam.exception.exceptions

例外処理用の内部コンポーネントです。

org.jboss.seam.transaction.transaction

トランザクションを制御し JTA 互換のインタフェースの背後にある基礎となるトランザクション管理の実装を抽出するための API です。

org.jboss.seam.faces.safeActions

要求のあった URL 内のアクション式が安全かどうかを決定します。 アクション式がビュー内に存在することを確認することでこれを行います。

特定の特殊な Seam コンポーネントクラスは Seam 設定内で指定される name の配下で複数回のインストールが可能です。 例えば、 components.xml 内の次の行は Seam コンポーネントを 2 つインストールして設定します。


<component name="bookingDatabase"
          class="org.jboss.seam.persistence.ManagedPersistenceContext">
    <property name="persistenceUnitJndiName"
>java:/comp/emf/bookingPersistence</property>
</component>

<component name="userDatabase"
          class="org.jboss.seam.persistence.ManagedPersistenceContext">
    <property name="persistenceUnitJndiName"
>java:/comp/emf/userPersistence</property>
</component
>

Seam コンポーネント名は bookingDatabaseuserDatabase です。

<entityManager>, org.jboss.seam.persistence.ManagedPersistenceContext

拡張永続コンテキストを持つ対話スコープで管理対象の EntityManager の管理コンポーネントです。

<entityManagerFactory>, org.jboss.seam.persistence.EntityManagerFactory

JPA EntityManagerFactory を管理します。 EJB 3.0 サポート環境以外で JPA を使用する場合に最適となります。

設定プロパティの詳細については API JavaDoc をご覧ください。

<session>, org.jboss.seam.persistence.ManagedSession

対話スコープで管理対象の Hibernate Session の管理コンポーネントです。

<sessionFactory>, org.jboss.seam.persistence.HibernateSessionFactory

Hibernate SessionFactory を管理します。

設定プロパティの詳細については API JavaDoc をご覧ください。

<managedQueueSender>, org.jboss.seam.jms.ManagedQueueSender

イベントスコープで管理対象の JMS QueueSender の管理コンポーネントです。

<managedTopicPublisher>, org.jboss.seam.jms.ManagedTopicPublisher

イベントスコープで管理対象の JMS TopicPublisher の管理コンポーネントです。

<managedWorkingMemory>, org.jboss.seam.drools.ManagedWorkingMemory

対話スコープで管理対象の Drools WorkingMemory の管理コンポーネントです。

<ruleBase>, org.jboss.seam.drools.RuleBase

アプリケーションスコープの Drools RuleBase の管理コンポーネントです。 新しいルールの動的なインストールには対応しないため、 実稼働での使用は目的としていないので注意してください。

<entityHome>, org.jboss.seam.framework.EntityHome

<hibernateEntityHome>, org.jboss.seam.framework.HibernateEntityHome

<entityQuery>, org.jboss.seam.framework.EntityQuery

<hibernateEntityQuery>, org.jboss.seam.framework.HibernateEntityQuery