KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > sf > panoptes > component > jndi > JNDIRootNode


1 /*
2  * Created on Feb 13, 2004
3  *
4  */

5 package net.sf.panoptes.component.jndi;
6
7 import java.util.ArrayList JavaDoc;
8 import java.util.Hashtable JavaDoc;
9 import java.util.List JavaDoc;
10
11 import javax.naming.Context JavaDoc;
12 import javax.naming.InitialContext JavaDoc;
13 import javax.naming.NameClassPair JavaDoc;
14 import javax.naming.NamingEnumeration JavaDoc;
15 import javax.naming.NamingException JavaDoc;
16 import javax.naming.NotContextException JavaDoc;
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 /**
26  * @author Dag Liodden
27  * @version 0.1
28  */

29 public class JNDIRootNode extends NodeSupport {
30
31     private javax.naming.Context JavaDoc jndiContext;
32     private String JavaDoc contextFactoryName = "com.sun.jndi.rmi.registry.RegistryContextFactory";
33     private String JavaDoc providerURL = "rmi://localhost:1099";
34     private String JavaDoc root = "";
35
36     public JNDIRootNode(Node parent) {
37         super(parent);
38     }
39
40     public void connect() throws NamingException JavaDoc {
41         Hashtable JavaDoc env = new Hashtable JavaDoc();
42         env.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY, contextFactoryName);
43         env.put(javax.naming.Context.PROVIDER_URL, providerURL);
44         jndiContext = new InitialContext JavaDoc(env);
45     }
46
47     private void setContext(javax.naming.Context JavaDoc context) {
48         this.jndiContext = context;
49     }
50
51     private void setRootContext(String JavaDoc name) {
52         this.root = name;
53     }
54
55     public List JavaDoc getChildren() {
56         ArrayList JavaDoc children = new ArrayList JavaDoc();
57         try {
58             for (NamingEnumeration JavaDoc e = jndiContext.list(root); e.hasMoreElements();) {
59                 final NameClassPair JavaDoc name = (NameClassPair JavaDoc) 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 JavaDoc e) {
68
69         } catch (NamingException JavaDoc 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 JavaDoc getBean() {
83         try {
84             return jndiContext.lookup(root);
85         } catch (NamingException JavaDoc e) {
86             return this;
87         }
88     }
89
90     public String JavaDoc getContextFactoryName() {
91         return contextFactoryName;
92     }
93
94     public void setContextFactoryName(String JavaDoc contextFactoryName) {
95         this.contextFactoryName = contextFactoryName;
96     }
97
98     public String JavaDoc getProviderURL() {
99         return providerURL;
100     }
101
102     public void setProviderURL(String JavaDoc providerURL) {
103         this.providerURL = providerURL;
104     }
105
106 }
107
Popular Tags