SeamFramework.orgCommunity Documentation
本章では Seam の組み込みコンポーネント、 その設定プロパティについて説明していきます。 組み込みコンポーネントは components.xml
ファイルに記載がなくても作成されますが、 デフォルトのプロパティを上書きするまたは特定タイプの 1 つ以上のコンポーネントを指定する必要がある場合は components.xml
を使用します。
@Name
を使って独自のクラスで組み込みコンポーネントの名前を指定すると、 組み込みコンポーネントを独自の実装に簡単に置き換えることができます。
最初の組み込みコンポーネントセットは、 単純にさまざまな文脈上のオブジェクトのインジェクトをサポートするために存在しています。 たとえば、 次のコンポーネントインスタンスの変数はインジェクトされた Seam セッションのコンテキストオブジェクトを持つことになります。
@In private Context sessionContext;
org.jboss.seam.core.contexts
Seam コンテキストのオブジェクトへのアクセスを提供します。 たとえば、 org.jboss.seam.core.contexts.sessionContext['user']
など。
org.jboss.seam.faces.facesContext
FacesContext
コンテキストオブジェクト (正確には Seam コンテキストではない) の管理コンポーネント
これらコンポーネントはすべて常にインストールされます。
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 が正しくメッセージングできるようにします。
add(FacesMessage facesMessage)
— faces メッセージを追加します。 現在の対話内で発生する次の応答のレンダリングフェーズで表示されます。
add(String messageTemplate)
— faces メッセージを追加します。 EL 式を含むことができる特定のメッセージテンプレートからレンダリングされます。
add(Severity severity, String messageTemplate)
— faces メッセージを追加します。 EL 式を含むことができる特定のメッセージテンプレートからレンダリングされます。
addFromResourceBundle(String key)
— faces メッセージを追加します。 EL 式を含むことができる Seam リソースバンドルで定義されたメッセージテンプレートからレンダリングされます。
addFromResourceBundle(Severity severity, String key)
— faces メッセージを追加します。 EL 式を含むことができる Seam リソースバンドルで定義されたメッセージテンプレートからレンダリングされます。
clear()
— 全メッセージを消去します。
org.jboss.seam.faces.redirect
パラメータつきでリダイレクトを行う場合に便利な API です (特にブックマーク可能な検索結果画面などに役立ちます)。
redirect.viewId
— リダイレクト先となる JSF ビュー ID です。
redirect.conversationPropagationEnabled
— 対話をリダイレクト全体に伝播させるかどうか決定します。
redirect.parameters
— 要求パラメータ名と値のマップです。 リダイレクト要求に渡されます。
execute()
— リダイレクトを直ちに実行します。
captureCurrentRequest()
— 現在の GET 要求 (対話コンテキスト内) の要求パラメータとビュー ID を格納します。 execute()
の呼び出しで使用されます。
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).
maxSize
— The maximum number of stamps to be kept in the store. Default: 100
These components are installed when the class javax.faces.context.FacesContext
is available on the classpath.
これらのコンポーネントが役に立つ機会はあまりありません。
org.jboss.seam.core.events
@Observer
のメソッドまたは components.xml
内のメソッドバインディング経由で監視できるイベントを引き起こす API です。
raiseEvent(String type)
— 特定タイプのイベントを発生させてすべての監視者に配信します。
raiseAsynchronousEvent(String type)
— EJB3 タイマーサービスで非同期に処理されるイベントを発生させます。
raiseTimedEvent(String type, ....)
— EJB3 タイマーサービスで非同期に処理されるイベントをスケジュールします。
addListener(String type, String methodBinding)
— 特定イベントタイプの監視者を追加します。
org.jboss.seam.core.interpolator
Strings に JFS EL 表現の値を補完するための API です。
interpolate(String template)
— #{...}
形式の JSF EL 式のテンプレートをスキャンしてその評価値に置換します。
org.jboss.seam.core.expressions
値とメソッドバインティングを作成するための API です。
createValueBinding(String expression)
— 値バインディングオブジェクトを作成します。
createMethodBinding(String expression)
— メソッドバインディングオブジェクトを作成します。
org.jboss.seam.core.pojoCache
JBoss Cache PojoCache
インスタンスの管理コンポーネントです。
pojoCache.cfgResourceName
— 設定ファイル名です。 デフォルトでは treecache.xml
に設定されます。
これらコンポーネントはすべて常にインストールされます。
次のコンポーネントグループは 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
リソースローダーはアプリケーションリソースおよびリソースバンドルへのアクセスを提供します。
resourceLoader.bundleNames
— Seam リソースバンドルを使用する場合に検索する Java リソースバンドル名です。 デフォルトは messages
になります。
org.jboss.seam.international.localeSelector
設定時間またはランタイム時のユーザーのいずれかでロケール選択をサポートします。
select()
— 指定されたロケールを選択します。
localeSelector.locale
— 実際の java.util.Locale
です。
localeSelector.localeString
— ロケールの文字列表現です。
localeSelector.language
— 指定されたロケールの言語です。
localeSelector.country
— 指定されたロケールの国です。
localeSelector.variant
— 指定されたロケールのバリアントです。
localeSelector.supportedLocales
— jsf-config.xml
に記載のサポートロケールを表している SelectItem
一覧です。
localeSelector.cookieEnabled
— ロケール選択がクッキーで永続化されることを指定します。
org.jboss.seam.international.timezoneSelector
設定時間またはランタイム時のユーザーのいずれかでタイムゾーン選択をサポートします。
select()
— 指定されたロケールを選択します。
timezoneSelector.timezone
— 実際の java.util.TimeZone
です。
timezoneSelector.timeZoneId
— タイムゾーンの文字列表現です。
timezoneSelector.cookieEnabled
— タイムゾーン選択がクッキーによって永続化されることを指定します。
org.jboss.seam.international.messages
Seam リソースバンドル内で定義されるメッセージテンプレートからレンダリングされる国際化メッセージを含んでいるマップです。
org.jboss.seam.theme.themeSelector
設定時間またはランタイム時のユーザーのいずれかでテーマ選択をサポートします。
select()
— 指定されたテーマを選択します。
theme.availableThemes
— 定義されたテーマの一覧です。
themeSelector.theme
— 選択されたテーマです。
themeSelector.themes
— 定義されたテーマを表している SelectItem
の一覧です。
themeSelector.cookieEnabled
— テーマ選択がクッキーで永続化されることを指定します。
org.jboss.seam.theme.theme
テーマエントリを含んでいるマップです。
これらコンポーネントはすべて常にインストールされます。
次のコンポーネントグループを使うとアプリケーションまたはユーザーインタフェースにより対話の制御を行うことができるようになります。
org.jboss.seam.core.conversation
現在の Seam 対話の属性をアプリケーション制御するための API です。
getId()
— 現在の対話 ID を返します。
isNested()
— 現在の対話はネストされている対話ですか?
isLongRunning()
— 現在の対話は長期実行の対話ですか?
getId()
— 現在の対話 ID を返します。
getParentId()
— 親対話の ID を返します。
getRootId()
— ルート対話の ID を返します。
setTimeout(int timeout)
— 現在の対話のタイムアウトをセットします。
setViewId(String outcome)
— 対話スイッチャー、 対話リストまたはブレッドクラムから現在の対話に切り替えて戻した場合に使用する ビュー ID をセットします。
setDescription(String description)
— 対話スイッチャー、 対話リストまたはブレッドクラムで表示される現在の対話の詳細をセットします。
redirect()
— この対話用に明確に定義された最後のビュー ID にリダイレクトします (ログインのチャレンジ後に便利)。
leave()
— 実際には対話を終了せずにこの対話のスコープを終了します。
begin()
— 長期実行の対話を開始します (@Begin
と同等)。
beginPageflow(String pageflowName)
— ページフローを付けて長期実行の対話を開始します (@Begin(pageflow="...")
と同等)。
end()
— 長期実行の対話を終了します (@End
と同等)。
pop()
— 対話スタックをポップして親対話に戻ります。
root()
— 対話スタックのルート対話に戻ります。
changeFlushMode(FlushModeType flushMode)
— 対話のフラッシュモードを変更します。
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 制御です。
isInProcess()
— 現在プロセス中のページフローがある場合に true
を返します。
getProcessInstance()
— 現在のページフローの jBPM ProcessInstance
を返します。
begin(String pageflowName)
— 現在の対話のコンテキスト内でページフローを開始します。
reposition(String nodeName)
— 現在のページフローを特定ノードに才配置します。
org.jboss.seam.bpm.actor
現在のセッションに関する jBPM actor の属性をアプリケーション制御するための API です。
setId(String actorId)
— 現在のユーザーの jBPM アクター ID をセットします。
getGroupActorIds()
— 現在のユーザーグループ群用の jBPM アクター ID が追加可能なものに Set
を返します。
org.jboss.seam.bpm.transition
現在のタスクに対する jBPM 移行のアプリケーション制御を目的とする API です。
setName(String transitionName)
— 現在のタスクが @EndTask
で終了される場合に使用する jBPM 遷移名をセットします。
org.jboss.seam.bpm.businessProcess
対話とビジネスプロセス間の関連性をプログラム制御するための API です。
businessProcess.taskId
— 現在の対話に関連づけられたタスクの ID です。
businessProcess.processId
— 現在の対話に関連づけられたプロセスの ID です。
businessProcess.hasCurrentTask()
— 現在の対話に関連づけられたタスクインスタンスですか?
businessProcess.hasCurrentProcess()
— 現在の対話に関連づけられたプロセスインスタンスです。
createProcess(String name)
— 指定プロセス定義のインスタンスを作成し現在の対話に関連付けます。
startTask()
— 現在の対話に関連づけられたタスクを開始します。
endTask(String transitionName)
— 現在の対話に関連づけられたタスクを終了します。
resumeTask(Long id)
— 特定の ID を持つタスクを現在の対話に関連付けます。
resumeProcess(Long id)
— 特定の ID を持つプロセスを現在の対話に関連付けます。
transition(String transitionName)
— 遷移を引き起こします。
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
コンポーネントがインストールされるとこれらの全コンポーネントが常にインストールされます。
これらのコンポーネントはウェブ層のセキュリティに関連しています。
org.jboss.seam.web.userPrincipal
現在のユーザー Principal
の管理コンポーネントです。
org.jboss.seam.web.isUserInRole
現在のプリンシパルに使用可能なロールに応じて JSF ページがコントロールのレンダリングを選択できるようにします。 <h:commandButton value="edit" rendered="#{isUserInRole['admin']}"/>
これらのコンポーネントは管理対象の TopicPublisher
および QueueSender
との併用を目的としています (下記参照)。
org.jboss.seam.jms.queueSession
JMS QueueSession
の管理コンポーネントです。
org.jboss.seam.jms.topicSession
JMS TopicSession
の管理コンポーネントです。
Seam Email サポートと併用するコンポーネントになります。
org.jboss.seam.mail.mailSession
JavaMail Session
の管理コンポーネントです。 セッションを JNDI コンテキスト内で検索させるか (sessionJndiName
プロパティを設定)、設定オプションから作成することができます。 後者の場合、 host
は必須となります。
org.jboss.seam.mail.mailSession.host
— 使用する SMTP サーバーのホスト名です。
org.jboss.seam.mail.mailSession.port
— 使用する SMTP サーバーのポートです。
org.jboss.seam.mail.mailSession.username
— SMTP サーバーの接続に使用するユーザー−名です。
org.jboss.seam.mail.mailSession.password
— SMTP サーバーの接続に使用するパスワードです。
org.jboss.seam.mail.mailSession.debug
— JavaMail のデバッグ機能を有効にします (かなり冗長)。
org.jboss.seam.mail.mailSession.ssl
— SMTP への SSL 接続を有効にします (デフォルトはポート465)。
org.jboss.seam.mail.mailSession.tls
— デフォルトでは true です。 メールセッションで TLS サポートを有効にします。
org.jboss.seam.mail.mailSession.sessionJndiName
— JNDI にバインドされる javax.mail.Session と同じ名前です。 これを与えると他のプロパティはすべて無視されます。
これらのコンポーネントは非常に重要なプラットフォームの基盤を提供します。 デフォルトではインストールされないコンポーネントは components.xml
内のそのコンポーネントで install="true"
を設定するとインストールすることができます。
org.jboss.seam.core.init
Seam の初期化設定です。 常にインストールされます。
org.jboss.seam.core.init.jndiPattern
— セッション Bean のルックアップに使用される JNDI パターンです。
org.jboss.seam.core.init.debug
— Seam デバッグモードを有効にします。 実稼働では false にセットしてください。 デバッグが有効になっている状態でシステムになんらかの負荷がかかるとエラーが表示される場合があります。
org.jboss.seam.core.init.clientSideConversations
— true
にセットすると Seam は対話コンテキストの変数を HttpSession
内ではなくクライアント内に保存するようになります。
org.jboss.seam.core.manager
Seam ページおよび対話コンテキスト管理用の内部コンポーネントです。 常にインストールされます。
org.jboss.seam.core.manager.conversationTimeout
— ミリ秒単位で対話コンテキストのタイムアウトを設定します。
org.jboss.seam.core.manager.concurrentRequestTimeout
— 長期実行対話コンテキストでロックの取得を試行しているスレッドの最大待機時間です。
org.jboss.seam.core.manager.conversationIdParameter
— 対話 ID の電波に使用する要求パラメータです。 デフォルトは conversationId
です。
org.jboss.seam.core.manager.conversationIsLongRunningParameter
— 対話が長期実行であるかどうかについての情報伝播に使用する要求パラメータです。 デフォルトは conversationIsLongRunning
です。
org.jboss.seam.core.manager.defaultFlushMode
— すべての Seam 管理永続コンテキストにデフォルトでセットされるフラッシュモードを設定します。 デフォルトは AUTO
です。
org.jboss.seam.navigation.pages
Seam ワークスペースの管理用の内部コンポーネントです。 常にインストールされます。
org.jboss.seam.navigation.pages.noConversationViewId
— 対話エントリがサーバー側に見つからない場合のビュー ID リダイレクト先のグローバル設定です。
org.jboss.seam.navigation.pages.loginViewId
— 未承認ユーザーが保護されたビューにアクセスしようとしている場合のビュー ID リダイレクト先のグローバル設定です。
org.jboss.seam.navigation.pages.httpPort
— http スキームが要求された場合に使用するポートのグローバル設定です。
org.jboss.seam.navigation.pages.httpsPort
— https スキームが要求された場合に使用するポートのグローバル設定です。
org.jboss.seam.navigation.pages.resources
— pages.xml
スタイルのリソースを検索するリソース一覧です。 デフォルトは WEB-INF/pages.xml
です。
org.jboss.seam.bpm.jbpm
JbpmConfiguration
をブートストラップします。 クラス org.jboss.seam.bpm.Jbpm
としてインストールします。
org.jboss.seam.bpm.jbpm.processDefinitions
— ビジネスプロセスの編成に使用する jPDL ファイルのリソース名一覧です。
org.jboss.seam.bpm.jbpm.pageflowDefinitions
— 対話ページフローの編成に使用する jPDL ファイルのリソース名一覧です。
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.queueConnection.queueConnectionFactoryJndiName
— JMS QueueConnectionFactory
の JNDI 名です。 デフォルトは UIL2ConnectionFactory
です。
org.jboss.seam.jms.topicConnection
Manages a JMS TopicConnection
. Installed whenever managed TopicPublisher
is installed.
org.jboss.seam.jms.topicConnection.topicConnectionFactoryJndiName
— JMS TopicConnectionFactory
の JNDI 名です。 デフォルトは UIL2ConnectionFactory
です。
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 内のアクション式が安全かどうかを決定します。 アクション式がビュー内に存在することを確認することでこれを行います。
org.jboss.seam.async.dispatcher
非同期メソッド用のディスパッチャステートレスセッション Bean
org.jboss.seam.core.image
イメージ操作および問い合わせ
org.jboss.seam.core.pojoCache
PojoCache インスタンスの管理コンポーネント
org.jboss.seam.core.uiComponent
コンポーネント ID によって与えられる UIComponents のマップを管理します。
特定の特殊な 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 コンポーネント名は bookingDatabase
と userDatabase
です。
org.jboss.seam.persistence.ManagedPersistenceContext
拡張永続コンテキストを持つ対話スコープで管理対象の EntityManager
の管理コンポーネントです。
<entityManager>.entityManagerFactory — EntityManagerFactory
のインスタンスに評価を行う値バインディング式です。
<entityManager>.persistenceUnitJndiName — エンティティマネージャファクトリの JNDI 名です。 デフォルトは java:/<managedPersistenceContext> です。
org.jboss.seam.persistence.EntityManagerFactory
JPA EntityManagerFactory
を管理します。 EJB 3.0 サポート環境以外で JPA を使用する場合に最適となります。
entityManagerFactory.persistenceUnitName
— 永続ユニット名です。
設定プロパティの詳細については API JavaDoc をご覧ください。
org.jboss.seam.persistence.ManagedSession
対話スコープで管理対象の Hibernate Session
の管理コンポーネントです。
<session>.sessionFactory — SessionFactory
のインスタンスに対して評価する値バインディング式です。
<session>.sessionFactoryJndiName — セッションファクトリの JNDI 名です。 デフォルトは java:/<managedSession> です。
org.jboss.seam.persistence.HibernateSessionFactory
Hibernate SessionFactory
を管理します。
<sessionFactory>.cfgResourceName
— 設定ファイルへのパスです。デフォルトは hibernate.cfg.xml
です。
設定プロパティの詳細については API JavaDoc をご覧ください。
org.jboss.seam.jms.ManagedQueueSender
イベントスコープで管理対象の JMS QueueSender
の管理コンポーネントです。
<managedQueueSender>.queueJndiName — JMS キューの JNDI 名です。
org.jboss.seam.jms.ManagedTopicPublisher
イベントスコープで管理対象の JMS TopicPublisher
の管理コンポーネントです。
<managedTopicPublisher>.topicJndiName — JMS トピックの JMDI 名です。
org.jboss.seam.drools.ManagedWorkingMemory
対話スコープで管理対象の Drools WorkingMemory
の管理コンポーネントです。
<managedWorkingMemory>.ruleBase — RuleBase
のインスタンスに対して評価する値式です。
org.jboss.seam.drools.RuleBase
アプリケーションスコープの Drools RuleBase
の管理コンポーネントです。 新しいルールの動的なインストールには対応しないため、 実稼働での使用は目的としていないので注意してください。
<ruleBase>.ruleFiles — Drools ルールを含むファイルの一覧です。
<ruleBase>.dslFile — Drools DSL 定義です。
org.jboss.seam.framework.EntityHome
org.jboss.seam.framework.HibernateEntityHome
org.jboss.seam.framework.EntityQuery
org.jboss.seam.framework.HibernateEntityQuery