1 /*
2 * Created on 21.mar.2003
3 *
4 */
5 package net.sf.panoptes.model.component;
6
7 import java.util.Hashtable;
8
9 import javax.management.ObjectName;
10
11 import net.sf.panoptes.module.jmx.DomainComponent;
12 import net.sf.panoptes.module.jmx.MBeanServerComponent;
13 import net.sf.panoptes.module.log4j.LoggerComponent;
14 import net.sf.panoptes.model.component.registry.ComponentName;
15 import net.sf.panoptes.model.component.registry.MalformedComponentNameException;
16
17 /***
18 * @author Dag Liodden
19 *
20 */
21 public class ComponentUtil {
22
23 public static ComponentName createQueryName(ComponentQuery query)
24 throws MalformedComponentNameException {
25 // The JBoss implementation didn't have ObjectName.quote(), so neither do we at the moment
26 Hashtable props = new Hashtable();
27 props.put("id", String.valueOf(query.getId()));
28 props.put("query", ComponentName.quote(query.getQuery().toString()));
29 return new ComponentName(ComponentName.DOMAIN_COMPONENT_QUERY, props);
30 }
31
32 public static ComponentName createLoggerName(String host, String prefix)
33 throws MalformedComponentNameException {
34 Hashtable props = new Hashtable();
35 if ((host != null) && (host.length() > 0))
36 props.put("host", host);
37 if ((prefix != null) && (prefix.length() > 0))
38 props.put("prefix", prefix);
39 return new ComponentName(ComponentName.DOMAIN_LOGGER, props);
40 }
41
42 public static ComponentName createName(LoggerComponent logger)
43 throws MalformedComponentNameException {
44 return createLoggerName(logger.getFilter().getHost(), logger.getFilter().getPrefix());
45 }
46
47 /***
48 * Creates a name for a <code>MBeanServerComponent</code>
49 *
50 * @param server
51 *
52 * @return
53 * @throws MalformedComponentNameException
54 */
55 public static ComponentName createMBeanServerName(String host, String name)
56 throws MalformedComponentNameException {
57 Hashtable props = new Hashtable();
58 props.put("host", host);
59 props.put("mbeanservername", name);
60 return new ComponentName(ComponentName.DOMAIN_MBEAN_SERVER, props);
61 }
62
63 public static ComponentName createMBeanServerName(MBeanServerComponent server)
64 throws MalformedComponentNameException {
65 return createMBeanServerName(server.getHostName(), server.getName());
66 }
67
68 /***
69 * Creates a name for a <code>DomainComponent</code>
70 *
71 * @param server
72 * @param domainName
73 * @return
74 * @throws MalformedComponentNameException
75 */
76 public static ComponentName createDomainName(MBeanServerComponent server, String domainName)
77 throws MalformedComponentNameException {
78 Hashtable props = createMBeanServerName(server).getKeyPropertyList();
79 props.put("host", server.getHostName());
80 props.put("mbeanservername", server.getName());
81 props.put("domain", domainName);
82 return new ComponentName(ComponentName.DOMAIN_MBEAN_DOMAIN, props);
83
84 }
85
86 /***
87 * Creates a query that lists <code>DomainComponent</code>s in an <code>MBeanServerComponent</code>
88 *
89 * @param host host of the sever
90 * @param port port of the server
91 * @return the query
92 * @throws MalformedComponentNameException
93 */
94 public static ComponentName createMBeanServerDomainQuery(String hostName, String name)
95 throws MalformedComponentNameException {
96 Hashtable props;
97 props = createMBeanServerName(hostName, name).getKeyPropertyList();
98 props.put("*", "*");
99 return new ComponentName(ComponentName.DOMAIN_MBEAN_DOMAIN, props);
100
101 }
102
103 /***
104 * Creates a query that lists <code>MBeanComponent</code>s in a domain.
105 *
106 * @param server the <code>MBeanServerComponent</code>
107 * @param domainName the domain name
108 * @return the query
109 * @throws MalformedComponentNameException
110 */
111 public static ComponentName createDomainMBeanQuery(
112 MBeanServerComponent server,
113 String domainName)
114 throws MalformedComponentNameException {
115 Hashtable props;
116 props = createDomainName(server, domainName).getKeyPropertyList();
117 props.put("*", "*");
118 return new ComponentName(ComponentName.DOMAIN_MBEAN, props);
119
120 }
121
122 /***
123 * Creates the name of an <code>MBeanComponent</code>
124 *
125 * @param server the <code>MBeanServerComponent</code>
126 * @param domain the <code>DomainComponent</code>
127 * @param objectName the JMX <code>ObjectName</code> of the MBean
128 * @return the name
129 * @throws MalformedComponentNameException
130 * @see ObjectName
131 */
132 public static ComponentName createMBeanName(
133 MBeanServerComponent server,
134 DomainComponent domain,
135 ObjectName objectName)
136 throws MalformedComponentNameException {
137 Hashtable props = objectName.getKeyPropertyList();
138 props.putAll(createDomainName(server, domain.getDomainName()).getKeyPropertyList());
139
140 return new ComponentName(ComponentName.DOMAIN_MBEAN, props);
141 }
142 }
This page was automatically generated by Maven