Show Table of Contents
29.3.2. コンテナープラグインのフレームワーク
JBoss EJB コンテナーはコンテナー動作の実装をさまざまな側面から変更できるようにするフレームワークパターンを使用しています。コンテナー自体は各種の動作コンポーネント同士を接続する以外は特に重要な動作は行いません。コンテナー設定を変更することで新しい実装をプラグインできるため、動作コンポーネントの実装はプラグインとして参照されます。一般的に変更される可能性のあるプラグイン動作の例としては、永続管理、オブジェクトのプール、オブジェクトのキャッシュ、コンテナー呼び出し、インターセプターなどがあります。
org.jboss.ejb.Container
クラスには 4 つのサブクラスがあり、それぞれ特定の bean タイプを実装しています。
- org.jboss.ejb.EntityContainer:
javax.ejb.EntityBean
タイプを処理します。 - org.jboss.ejb.StatelessSessionContainer: ステートレス
javax.ejb.SessionBean
タイプを処理します。 - org.jboss.ejb.StatefulSessionContainer: ステートフル
javax.ejb.SessionBean
タイプを処理します。 - org.jboss.ejb.MessageDrivenContainer:
javax.ejb.MessageDrivenBean
タイプを処理します。
EJB コンテナーは、コンテナーの動作の多くをコンテナープラグインとして知られるコンポーネントに委譲します。コンテナープラグインポイントを構成するインターフェースは以下のとおりです。
- org.jboss.ejb.ContainerPlugin
- org.jboss.ejb.ContainerInvoker
- org.jboss.ejb.Interceptor
- org.jboss.ejb.InstancePool
- org.jboss.ejb.InstanceCache
- org.jboss.ejb.EntityPersistanceManager
- org.jboss.ejb.EntityPersistanceStore
- org.jboss.ejb.StatefulSessionPersistenceManager
コンテナーの主な役割は、コンテナーのプラグイン群を管理することです。つまり、プラグインがその機能を実装するために必要とするすべての情報を必ず得られるようにします。
29.3.2.1. org.jboss.ejb.ContainerPlugin
ContainerPlugin
インターフェースは全コンテナープラグインインターフェースの親インターフェースになります。これによりコールバックができるようになり、コンテナーが各プラグインに対して、プラグインが代わりに作業を行っているコンテナーへのポインターを提供できるようになります。以下に ContainerPlugin
インターフェースを示します。
例29.4 org.jboss.ejb.ContainerPlugin インターフェース
public interface ContainerPlugin extends Service, AllowedOperationsFlags { /** co * This callback is set by the container so that the plugin * may access its container * * @param con the container which owns the plugin */ public void setContainer(Container con); }