|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.mock.jndi.SimpleNamingContextBuilder
public class SimpleNamingContextBuilder
Simple implementation of a JNDI naming context builder.
Mainly targeted at test environments, where each test case can
configure JNDI appropriately, so that new InitialContext()
will expose the required objects. Also usable for standalone applications,
e.g. for binding a JDBC DataSource to a well-known JNDI location, to be
able to use traditional J2EE data access code outside of a J2EE container.
There are various choices for DataSource implementations:
Typical usage in bootstrap code:
SimpleNamingContextBuilder builder = new SimpleNamingContextBuilder(); DataSource ds = new DriverManagerDataSource(...); builder.bind("java:comp/env/jdbc/myds", ds); builder.activate();Note that it's impossible to activate multiple builders within the same JVM, due to JNDI restrictions. Thus to configure a fresh builder repeatedly, use the following code to get a reference to either an already activated builder or a newly activated one:
SimpleNamingContextBuilder builder = SimpleNamingContextBuilder.emptyActivatedContextBuilder(); DataSource ds = new DriverManagerDataSource(...); builder.bind("java:comp/env/jdbc/myds", ds);Note that you should not call activate() on a builder from this factory method, as there will already be an activated one in any case.
An instance of this class is only necessary at setup time. An application does not need to keep a reference to it after activation.
emptyActivatedContextBuilder()
,
bind(String, Object)
,
activate()
,
SimpleNamingContext
,
SingleConnectionDataSource
,
DriverManagerDataSource
,
BasicDataSource
Constructor Summary | |
---|---|
SimpleNamingContextBuilder()
|
Method Summary | |
---|---|
void |
activate()
Register the context builder by registering it with the JNDI NamingManager. |
void |
bind(String name,
Object obj)
Bind the given object under the given name, for all naming contexts that this context builder will generate. |
void |
clear()
Clear all bindings in this context builder. |
InitialContextFactory |
createInitialContextFactory(Hashtable environment)
Simple InitialContextFactoryBuilder implementation, creating a new SimpleNamingContext instance. |
static SimpleNamingContextBuilder |
emptyActivatedContextBuilder()
If no SimpleNamingContextBuilder is already configuring JNDI, create and activate one. |
static SimpleNamingContextBuilder |
getCurrentContextBuilder()
Checks if a SimpleNamingContextBuilder is active. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public SimpleNamingContextBuilder()
Method Detail |
---|
public static SimpleNamingContextBuilder getCurrentContextBuilder()
null
if nonepublic static SimpleNamingContextBuilder emptyActivatedContextBuilder() throws NamingException
This is mainly intended for test suites that want to reinitialize JNDI bindings from scratch repeatedly.
NamingException
public void activate() throws IllegalStateException, NamingException
new InitialContext()
will always
return a context from this factory. Use the emptyActivatedContextBuilder()
static method to get an empty context (for example, in test methods).
IllegalStateException
- if there's already a naming context builder
registered with the JNDI NamingManager
NamingException
public void clear()
public void bind(String name, Object obj)
name
- the JNDI name of the object (e.g. "java:comp/env/jdbc/myds")obj
- the object to bind (e.g. a DataSource implementation)public InitialContextFactory createInitialContextFactory(Hashtable environment)
createInitialContextFactory
in interface InitialContextFactoryBuilder
SimpleNamingContext
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |