1 5 package net.sf.panoptes.component.jndi; 6 7 import java.util.ArrayList ; 8 import java.util.Hashtable ; 9 import java.util.List ; 10 11 import javax.naming.Context ; 12 import javax.naming.InitialContext ; 13 import javax.naming.NameClassPair ; 14 import javax.naming.NamingEnumeration ; 15 import javax.naming.NamingException ; 16 import javax.naming.NotContextException ; 17 18 import org.apache.commons.logging.impl.NoOpLog; 19 20 import net.sf.panoptes.model.node.Leaf; 21 import net.sf.panoptes.model.node.Node; 22 import net.sf.panoptes.model.node.NodeDescriptor; 23 import net.sf.panoptes.model.node.NodeSupport; 24 25 29 public class JNDIRootNode extends NodeSupport { 30 31 private javax.naming.Context jndiContext; 32 private String contextFactoryName = "com.sun.jndi.rmi.registry.RegistryContextFactory"; 33 private String providerURL = "rmi://localhost:1099"; 34 private String root = ""; 35 36 public JNDIRootNode(Node parent) { 37 super(parent); 38 } 39 40 public void connect() throws NamingException { 41 Hashtable env = new Hashtable (); 42 env.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY, contextFactoryName); 43 env.put(javax.naming.Context.PROVIDER_URL, providerURL); 44 jndiContext = new InitialContext (env); 45 } 46 47 private void setContext(javax.naming.Context context) { 48 this.jndiContext = context; 49 } 50 51 private void setRootContext(String name) { 52 this.root = name; 53 } 54 55 public List getChildren() { 56 ArrayList children = new ArrayList (); 57 try { 58 for (NamingEnumeration e = jndiContext.list(root); e.hasMoreElements();) { 59 final NameClassPair name = (NameClassPair ) e.next(); 60 JNDIRootNode child = new JNDIRootNode(this); 61 child.setContext(jndiContext); 62 child.setConfigDescriptor( 63 new NodeDescriptor(name.getName(), name.getName(), Node.ICON_DOMAIN)); 64 child.setRootContext(root + "/" + name.getName()); 65 children.add(child); 66 } 67 } catch (NotContextException e) { 68 69 } catch (NamingException e) { 70 e.printStackTrace(); 71 } 72 return children; 73 } 74 75 public void refresh() { 76 } 77 78 public boolean mightHaveChildren() { 79 return true; 80 } 81 82 public Object getBean() { 83 try { 84 return jndiContext.lookup(root); 85 } catch (NamingException e) { 86 return this; 87 } 88 } 89 90 public String getContextFactoryName() { 91 return contextFactoryName; 92 } 93 94 public void setContextFactoryName(String contextFactoryName) { 95 this.contextFactoryName = contextFactoryName; 96 } 97 98 public String getProviderURL() { 99 return providerURL; 100 } 101 102 public void setProviderURL(String providerURL) { 103 this.providerURL = providerURL; 104 } 105 106 } 107 | Popular Tags |