/*
* Created on Oct 4, 2004
*/
package cyrille.jndi;
import java.io.PrintWriter;
import java.util.Properties;
import javax.naming.Binding;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import junit.framework.TestCase;
/**
* @author <a href="mailto:cleclerc@pobox.com">Cyrille Le Clerc </a>
*/
public class JndiTest extends TestCase {
private int MAX_DEPTH = 8;
public static void main(String[] args) {
junit.textui.TestRunner.run(JndiTest.class);
}
public void testConnect() throws Exception {
String providerUrl = "iiop://127.0.0.1:2809/"; // "iiop://10.173.35.106:900"; //
String initialContextFactory = "com.sun.jndi.cosnaming.CNCtxFactory";
Properties env = new Properties();
env.put(Context.PROVIDER_URL, providerUrl);
env.put(Context.INITIAL_CONTEXT_FACTORY, initialContextFactory);
// env.put(Context.SECURITY_PRINCIPAL, "websphere");
// env.put(Context.SECURITY_CREDENTIALS, "mot1de1passe");
InitialContext context = new InitialContext(env);
PrintWriter out = new PrintWriter(System.out, true);
dumpContext(context, "", 1, out);
}
private void dumpContext(Context cx, String indent, int depth, PrintWriter out) throws NamingException {
NamingEnumeration enu = cx.listBindings("");
while (enu.hasMoreElements()) {
Binding binding = (Binding) enu.nextElement();
if (binding != null) {
Object o = binding.getObject();
if (o instanceof Context) {
if (depth > this.MAX_DEPTH && !("jdbc".equals(binding.getName()))) {
// Websphere recursive context work around
out.println(indent + "+- " + binding.getName() + "- recursive context");
} else {
out.println(indent + "+- " + binding.getName());
dumpContext((Context) o, indent + "| ", depth + 1, out);
}
} else {
out.println(indent + "+- " + binding.getName() + "=" + (o == null ? "null" : o.getClass().getName()) + "\t" + o);
}
} else {
out.println(indent + "+- #null binding#");
}
}
}
}