@DeprecatedSE public class SimpleNamingContextBuilder extends ObjectSE implements InitialContextFactoryBuilderSE
new InitialContext()
が必要なオブジェクトを公開するように、各テストケースが JNDI を適切に構成できるテスト環境を主に対象としています。スタンドアロンアプリケーションにも使用できます。JDBC DataSource を既知の JNDI ロケーションにバインドして、Java EE コンテナーの外部で従来の Java EE データアクセスコードを使用できるようにします。
DataSource 実装にはさまざまな選択肢があります。
SingleConnectionDataSource
(すべての getConnection 呼び出しに同じ接続を使用する)DriverManagerDataSource
(各 getConnection 呼び出しで新しい接続を作成する)org.apache.commons.dbcp.BasicDataSource
を提供します (実際のプール)ブートストラップコードの典型的な使用箇所:
SimpleNamingContextBuilder builder = new SimpleNamingContextBuilder(); DataSource ds = new DriverManagerDataSource(...); builder.bind("java:comp/env/jdbc/myds", ds); builder.activate();JNDI の制限により、同じ JVM 内で複数の Builder をアクティブにすることはできないことに注意してください。新しいビルダーを繰り返し構成するには、次のコードを使用して、すでにアクティブ化されているビルダーまたは新しくアクティブ化されたビルダーへの参照を取得します。
SimpleNamingContextBuilder builder = SimpleNamingContextBuilder.emptyActivatedContextBuilder(); DataSource ds = new DriverManagerDataSource(...); builder.bind("java:comp/env/jdbc/myds", ds);このファクトリメソッドからビルダーで
activate()
を呼び出すべきではないことに注意してください。いずれにしても、すでにアクティブ化されているものがあるからです。このクラスのインスタンスは、セットアップ時にのみ必要です。アプリケーションは、アクティベーション後に参照を保持する必要はありません。
emptyActivatedContextBuilder()
, bind(String, Object)
, activate()
, SimpleNamingContext
, SingleConnectionDataSource
, DriverManagerDataSource
コンストラクターと説明 |
---|
SimpleNamingContextBuilder() 使用すべきではありません。 |
修飾子と型 | メソッドと説明 |
---|---|
void | activate() 使用すべきではありません。 JNDI NamingManager に登録して、コンテキストビルダーを登録します。 |
void | bind(StringSE name, ObjectSE obj) 使用すべきではありません。 このコンテキストビルダーが生成するすべてのネーミングコンテキストについて、指定されたオブジェクトを指定された名前でバインドします。 |
void | clear() 使用すべきではありません。 アクティブにしたまま、このコンテキストビルダーのすべてのバインディングをクリアします。 |
InitialContextFactorySE | createInitialContextFactory(HashtableSE<?,?> environment) 使用すべきではありません。 新しい SimpleNamingContext インスタンスを作成する、シンプルな InitialContextFactoryBuilder 実装。 |
void | deactivate() 使用すべきではありません。 このコンテキストビルダーを一時的に無効にします。 |
static SimpleNamingContextBuilder | emptyActivatedContextBuilder() 使用すべきではありません。 すでに SimpleNamingContextBuilder が JNDI を構成していない場合は、作成してアクティブ化します。 |
static SimpleNamingContextBuilder | getCurrentContextBuilder() 使用すべきではありません。 SimpleNamingContextBuilder がアクティブかどうかを確認します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
@Nullable public static SimpleNamingContextBuilder getCurrentContextBuilder()
null
public static SimpleNamingContextBuilder emptyActivatedContextBuilder() throws NamingExceptionSE
これは主に、JNDI バインディングをゼロから繰り返し再初期化するテストスイートを対象としています。
NamingExceptionSE
public void activate() throws IllegalStateExceptionSE, NamingExceptionSE
new InitialContext()
は常にこのファクトリからコンテキストを返すことに注意してください。emptyActivatedContextBuilder()
静的メソッドを使用して、空のコンテキストを取得します(たとえば、テストメソッドで)。IllegalStateExceptionSE
- JNDI NamingManager に登録されているネーミングコンテキストビルダーがすでにある場合 NamingExceptionSE
public void deactivate()
このコンテキストビルダーのバインドされたオブジェクトを再度公開するには、activate()
を再度呼び出します。このようなアクティブ化 / 非アクティブ化シーケンスは、何度でも適用できます(たとえば、同じ VM で実行されるより大きな統合テストスイート内)。
activate()
public void clear()
public void bind(StringSE name, ObjectSE obj)
name
- オブジェクトの JNDI 名 (たとえば "java:comp/env/jdbc/myds" )obj
- バインドするオブジェクト (たとえば DataSource 実装)public InitialContextFactorySE createInitialContextFactory(@Nullable HashtableSE<?,?> environment)
InitialContextFactoryBuilderSE
の createInitialContextFactorySE
SimpleNamingContext