KickJava   Java API By Example, From Geeks To Geeks.

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


1 /*
2  * Created on 23.jul.2003
3  *
4  */

5 package net.sf.panoptes.component.jmx.model;
6
7 import java.io.IOException JavaDoc;
8 import java.util.Collection JavaDoc;
9 import java.util.HashMap JavaDoc;
10 import java.util.HashSet JavaDoc;
11 import java.util.Iterator JavaDoc;
12 import java.util.Set JavaDoc;
13
14 import javax.management.InstanceNotFoundException JavaDoc;
15 import javax.management.IntrospectionException JavaDoc;
16 import javax.management.ObjectName JavaDoc;
17 import javax.management.QueryExp JavaDoc;
18 import javax.management.ReflectionException JavaDoc;
19
20 import org.apache.commons.logging.Log;
21 import org.apache.commons.logging.LogFactory;
22
23 import net.sf.panoptes.controller.MainController;
24 import net.sf.panoptes.model.node.Node;
25 import net.sf.panoptes.model.node.NodeDescriptor;
26
27 /**
28  *
29  *
30  * @author Dag Liodden
31  * @version 0.1
32  */

33 public class ServerRegistry {
34
35
36     private static ServerRegistry singleton = null;
37     private Log log = LogFactory.getLog(getClass());
38
39     private HashMap JavaDoc servers = new HashMap JavaDoc();
40
41     /* (non-Javadoc)
42      * @see net.sf.panoptes.model.node.NodeSupport#getConfigDescriptor()
43      */

44     public NodeDescriptor getConfigDescriptor() {
45         return new NodeDescriptor("MBean Servers", "", Node.ICON_FOLDER);
46     }
47
48     public static ServerRegistry getInstance() {
49         if (singleton == null)
50             singleton = new ServerRegistry();
51         return singleton;
52     }
53
54     public void addServer(String JavaDoc identity, MBeanServerNode server) {
55         servers.put(identity, server);
56     }
57     
58     public MBeanServerNode getServer(String JavaDoc identity) {
59         return (MBeanServerNode) servers.get(identity);
60     }
61
62     public void removeServerComponent(String JavaDoc identity) {
63         servers.remove(identity);
64     }
65     
66     public MBeanServerNode[] listServers() {
67         return (MBeanServerNode[]) servers.values().toArray(new MBeanServerNode[servers.size()]);
68     }
69     
70     public Iterator JavaDoc getServers() {
71         return servers.values().iterator();
72     }
73
74
75     /**
76      * @param query
77      * @param object
78      * @return
79      */

80     public Collection JavaDoc queryMBeans(ObjectName JavaDoc name, QueryExp JavaDoc query) throws InstanceNotFoundException JavaDoc, IntrospectionException JavaDoc, ReflectionException JavaDoc, IOException JavaDoc {
81         Set JavaDoc all = new HashSet JavaDoc();
82         for (Iterator JavaDoc i = servers.values().iterator(); i.hasNext();) {
83             MBeanServerNode sc = (MBeanServerNode) i.next();
84             all.addAll(sc.queryMBeans(name, query));
85         }
86         return all;
87     }
88
89     public Collection JavaDoc queryMBeans(ObjectName JavaDoc name, QueryExp JavaDoc query, Node parent, NodeFactory factory) throws InstanceNotFoundException JavaDoc, IntrospectionException JavaDoc, ReflectionException JavaDoc, IOException JavaDoc {
90         Set JavaDoc all = new HashSet JavaDoc();
91         for (Iterator JavaDoc i = servers.values().iterator(); i.hasNext();) {
92             MBeanServerNode sc = (MBeanServerNode) i.next();
93             all.addAll(sc.queryMBeans(name, query, parent, factory));
94         }
95         return all;
96     }
97
98     /**
99      * @return
100      */

101     public Collection JavaDoc queryDomains() throws IOException JavaDoc {
102         Set JavaDoc all = new HashSet JavaDoc();
103         for (Iterator JavaDoc i = servers.values().iterator(); i.hasNext();) {
104             MBeanServerNode sc = (MBeanServerNode) i.next();
105                         
106             all.addAll(sc.getDomains());
107         }
108         return all;
109         
110     }
111 }
112
Popular Tags