1 package net.sf.panoptes.component.jmx.model; 2 3 import java.util.ArrayList ; 4 import java.util.Collection ; 5 import java.util.HashMap ; 6 import java.util.Iterator ; 7 import java.util.List ; 8 9 import javax.management.ObjectName ; 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 26 public class DomainNode extends NodeSupport { 27 28 31 String domainName; 32 private MBeanServerNode serverComponent; 33 private Log log = LogFactory.getLog(getClass()); 34 private HashMap mbeans = null; 35 36 39 public DomainNode(NodeSupport parent, String domainName, MBeanServerNode serverComponent) 40 throws Exception { 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 getDomainName() { 59 return domainName; 60 } 61 62 public List getChildren() { 63 ArrayList l = new ArrayList (); 64 l.addAll(getMbeans().values()); 65 return l; 66 } 67 68 public void refresh() { 69 mbeans = null; 70 } 71 72 protected HashMap getMbeans() { 73 mbeans = new HashMap (); 75 try { 76 Collection serverMBeans = 77 serverComponent.queryMBeans( 78 new ObjectName (domainName + ":*"), 79 null, 80 this, 81 new DefaultSymLinkFactory()); 82 for (Iterator i = serverMBeans.iterator(); i.hasNext();) { 83 MBeanLinkNode n = (MBeanLinkNode) i.next(); 84 mbeans.put(n.getObjectName(), n); 85 } 86 } catch (Exception e) { 87 log.error("Unable to refresh mbeans", e); 88 } 89 return mbeans; 91 } 92 93 public boolean mightHaveChildren() { 94 return true; 95 } 96 97 100 public Object getBean() { 101 return this; 102 } 103 104 } 105 | Popular Tags |