X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=test%2Fenterprise%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fsupport%2Fjndi%2FStubInitialContextFactory.java;h=158bd6d8b8d8048ff8928e6c844681c0e6fac262;hb=bd197313c85d3ee6336e7e7cbf7ff706247df9b4;hp=c7e4e2fde323bd3c390cebcf8b59dde3adf24b73;hpb=2207a1e695ce23e79678c232cff2ceb84ebaa801;p=utils diff --git a/test/enterprise/src/main/java/org/wamblee/support/jndi/StubInitialContextFactory.java b/test/enterprise/src/main/java/org/wamblee/support/jndi/StubInitialContextFactory.java index c7e4e2fd..158bd6d8 100644 --- a/test/enterprise/src/main/java/org/wamblee/support/jndi/StubInitialContextFactory.java +++ b/test/enterprise/src/main/java/org/wamblee/support/jndi/StubInitialContextFactory.java @@ -1,11 +1,23 @@ +/* + * Copyright 2005-2010 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.wamblee.support.jndi; -import java.util.HashMap; import java.util.Hashtable; -import java.util.Map; import javax.naming.Context; -import javax.naming.InitialContext; import javax.naming.NamingException; import javax.naming.spi.InitialContextFactory; @@ -15,49 +27,55 @@ import javax.naming.spi.InitialContextFactory; * * See {@link #bind(String, Object)} to resp. register the initial context. * - * To bind objects in the JNDI tree simply use the standard JNDI api: + * To start mocking the JNDI tree, call {@link #register()}. + * + * To bind objects in the JNDI tree simply use the standard JNDI api: + *
  *   InitialContext context = new InitialContext();
  *   MyClass myObj = ...; 
  *   context.bind("a/b", myObj); 
- * 
+ * 
+ * + * When finished with a test case, call {@link #unregister()} to unregister the + * JNDI tree again. */ public class StubInitialContextFactory implements InitialContextFactory { - private static Context context; - - private static void initialize() { - try { - context = new StubInitialContext(); - } catch (NamingException e) { // can't happen. - throw new RuntimeException(e); - } - } - - /** - * This method must be called to register this initial context factory as - * the default implementation for JNDI. - * - * @throws Exception - */ - public static void register() { - // sets up the InitialContextFactoryForTest as default factory. - System.setProperty(Context.INITIAL_CONTEXT_FACTORY, - StubInitialContextFactory.class.getName()); - if (context == null) { - initialize(); - } - } - - /** - * Unregisters the initial context factory - */ - public static void unregister() { - System.setProperty(Context.INITIAL_CONTEXT_FACTORY, ""); - context = null; - } - - public Context getInitialContext(Hashtable environment) - throws NamingException { - return context; - } + private static Context CONTEXT; + + private static void initialize() { + try { + CONTEXT = new StubInitialContext(); + } catch (NamingException e) { // can't happen. + throw new RuntimeException(e); + } + } + + /** + * This method must be called to register this initial context factory as + * the default implementation for JNDI. + * + * @throws Exception + */ + public static void register() { + // sets up the InitialContextFactoryForTest as default factory. + System.setProperty(Context.INITIAL_CONTEXT_FACTORY, + StubInitialContextFactory.class.getName()); + if (CONTEXT == null) { + initialize(); + } + } + + /** + * Unregisters the initial context factory + */ + public static void unregister() { + System.setProperty(Context.INITIAL_CONTEXT_FACTORY, ""); + CONTEXT = null; + } + + public Context getInitialContext(Hashtable aEnvironment) + throws NamingException { + return CONTEXT; + } }