KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > sf > panoptes > component > jmx > model > DomainNode


1 package net.sf.panoptes.component.jmx.model;
2
3 import java.util.ArrayList JavaDoc;
4 import java.util.Collection JavaDoc;
5 import java.util.HashMap JavaDoc;
6 import java.util.Iterator JavaDoc;
7 import java.util.List JavaDoc;
8
9 import javax.management.ObjectName JavaDoc;
10
11 import net.sf.panoptes.model.node.Node;
12 import net.sf.panoptes.model.node.NodeDescriptor;
13 import net.sf.panoptes.model.node.NodeSupport;
14
15 import org.apache.commons.logging.Log;
16 import org.apache.commons.logging.LogFactory;
17
18 /**
19  * DomainNode.java
20  *
21  * NodeSupport representing a JMX domain.
22  *
23  * @author Dag Liodden
24  * @version 0.1
25  */

26 public class DomainNode extends NodeSupport {
27
28     /**
29      * The domain name
30      */

31     String JavaDoc domainName;
32     private MBeanServerNode serverComponent;
33     private Log log = LogFactory.getLog(getClass());
34     private HashMap JavaDoc mbeans = null;
35
36     /**
37      * Constructor for DomainNode.
38      */

39     public DomainNode(NodeSupport parent, String JavaDoc domainName, MBeanServerNode serverComponent)
40         throws Exception JavaDoc {
41         super(parent);
42         this.serverComponent = serverComponent;
43         this.domainName = domainName;
44         getConfigDescriptor().setIconName(Node.ICON_DOMAIN);
45     }
46
47     public NodeDescriptor getConfigDescriptor() {
48         return new NodeDescriptor(
49             "Domain " + domainName,
50             "JMX Domain " + domainName,
51             Node.ICON_DOMAIN);
52     }
53
54     public boolean acceptsChildren() {
55         return false;
56     }
57
58     public String JavaDoc getDomainName() {
59         return domainName;
60     }
61
62     public List JavaDoc getChildren() {
63         ArrayList JavaDoc l = new ArrayList JavaDoc();
64         l.addAll(getMbeans().values());
65         return l;
66     }
67
68     public void refresh() {
69         mbeans = null;
70     }
71
72     protected HashMap JavaDoc getMbeans() {
73         //if (mbeans == null) {
74
mbeans = new HashMap JavaDoc();
75             try {
76                 Collection JavaDoc serverMBeans =
77                     serverComponent.queryMBeans(
78                         new ObjectName JavaDoc(domainName + ":*"),
79                         null,
80                         this,
81                         new DefaultSymLinkFactory());
82                 for (Iterator JavaDoc i = serverMBeans.iterator(); i.hasNext();) {
83                     MBeanLinkNode n = (MBeanLinkNode) i.next();
84                     mbeans.put(n.getObjectName(), n);
85                 }
86             } catch (Exception JavaDoc e) {
87                 log.error("Unable to refresh mbeans", e);
88             }
89         //}
90
return mbeans;
91     }
92
93     public boolean mightHaveChildren() {
94         return true;
95     }
96
97     /* (non-Javadoc)
98      * @see net.sf.panoptes.model.node.Node#getBean()
99      */

100     public Object JavaDoc getBean() {
101         return this;
102     }
103
104 }
105
Popular Tags