SeamFramework.orgCommunity Documentation

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

32.1. コンテキストインジェクションのコンポーネント
32.2. JSF-related components
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;

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

The following set of components are provided to supplement JSF.

org.jboss.seam.faces.dateConverter

Provides a default JSF converter for properties of type java.util.Date.

This converter is automatically registered with JSF. It is provided to save a developer from having to specify a DateTimeConverter on an input field or page parameter. By default, it assumes the type to be a date (as opposed to a time or date plus time) and uses the short input style adjusted to the Locale of the user. For Locale.US, the input pattern is mm/DD/yy. However, to comply with Y2K, the year is changed from two digits to four (e.g., mm/DD/yyyy).

It's possible to override the input pattern globally using component configuration. Consult the JavaDoc for this class to see examples.

org.jboss.seam.faces.facesMessages

ブラウザリダイレクト全体に伝播するよう faces が正しくメッセージングできるようにします。

org.jboss.seam.faces.redirect

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

org.jboss.seam.faces.httpError

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

org.jboss.seam.ui.renderStampStore

A component (session-scoped by default) responsible for maintaining a collection of render stamps. A render stamp is an indicator as to whether a form which was rendered has been submitted. This store is useful when the client-side state saving method of JSF is being used because it puts the determination of whether a form has been posted in the control of the server rather than in the component tree which is maintained on the client.

To unbind this check from the session (which is one of the main design goals of client-side state saving) an implementation must be provided that stores the render stamps in the application (valid as long as the application is running) or the database (valid across server restarts).

These components are installed when the class javax.faces.context.FacesContext is available on the classpath.

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

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

次のコンポーネントグループは 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

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

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

Manages a JMS QueueConnection. Installed whenever managed QueueSender is installed.

org.jboss.seam.jms.topicConnection

Manages a JMS TopicConnection. Installed whenever managed TopicPublisher is installed.

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