1 package jcaps_jmx;
2
3 import java.io.PrintStream;
4 import java.util.Hashtable;
5 import java.util.Iterator;
6 import java.util.Set;
7 import javax.management.MBeanAttributeInfo;
8 import javax.management.MBeanInfo;
9 import javax.management.MBeanServerConnection;
10 import javax.management.remote.JMXConnector;
11 import javax.management.remote.JMXConnectorFactory;
12 import javax.management.remote.JMXServiceURL;
13
14
15 public class Main {
16
17 public static void main(String[] args) throws Exception {
18 PrintStream out = System.out;
19 JMXConnector c;
20 MBeanServerConnection cnx;
21 String host = "localhost";
22 int port = 9877;
23 String rmiURL = "service:jmx:rmi:///jndi/rmi://" + host + ":" + port + "/jmxrmi";
24 JMXServiceURL u = new JMXServiceURL(rmiURL);
25 c = JMXConnectorFactory.connect(u);
26 cnx = c.getMBeanServerConnection();
27 Set instances = cnx.queryMBeans(null, null);
28 for (Iterator i = instances.iterator(); i.hasNext();) {
29 javax.management.ObjectInstance o = (javax.management.ObjectInstance) i.next();
30 out.println(o.getObjectName().getDomain() + ":" + o.getClassName());
31 out.println(" KEY PROPERTY LIST:");
32 Hashtable l = o.getObjectName().getKeyPropertyList();
33 for (Iterator j = l.keySet().iterator(); j.hasNext();) {
34 String key = (String) j.next();
35 Object v = l.get(key);
36 out.println(" " + key + "=" + v + " (" + v.getClass() + ")");
37 }
38 MBeanInfo info = cnx.getMBeanInfo(o.getObjectName());
39 MBeanAttributeInfo[] ainfo = info.getAttributes();
40 out.println(" ATTRIBUTES:");
41 for (int k = 0; k < ainfo.length; k++) {
42 out.print(" " + ainfo[k].getName() + " (" + ainfo[k].getType() + ")");
43 try {
44 if (ainfo[k].getType().equals("java.lang.String")) {
45 out.print("=" + cnx.getAttribute(o.getObjectName(), ainfo[k].getName()));
46 }
47 if (ainfo[k].getType().equals("java.lang.Boolean")) {
48 out.print("=" + cnx.getAttribute(o.getObjectName(), ainfo[k].getName()));
49 }
50 if (ainfo[k].getType().equals("java.lang.Integer")) {
51 out.print("=" + cnx.getAttribute(o.getObjectName(), ainfo[k].getName()));
52 }
53 if (ainfo[k].getType().equals("javax.management.ObjectName")) {
54 out.print("=" + cnx.getAttribute(o.getObjectName(), ainfo[k].getName()));
55 }
56 } catch (Exception e) {
57
58 }
59 out.println();
60 }
61 }
62 }
63 }
64
65