1 17 18 package org.apache.geronimo.jmxdebug.web.beanlib; 19 20 import java.util.ArrayList ; 21 import java.util.Arrays ; 22 import java.util.HashMap ; 23 import java.util.Hashtable ; 24 import java.util.Iterator ; 25 import java.util.List ; 26 import java.util.Map ; 27 import java.util.Set ; 28 import java.util.SortedMap ; 29 import java.util.TreeMap ; 30 import javax.management.ObjectName ; 31 32 import org.apache.geronimo.gbean.GBeanData; 33 import org.apache.geronimo.kernel.Kernel; 34 import org.apache.geronimo.kernel.management.State; 35 36 43 public class GBeanInfoHelper { 44 private final ObjectName objectName; 45 private final GBeanData info; 46 private final Kernel kernel; 47 48 public GBeanInfoHelper(KernelHelper kernelHelper, String name) throws Exception { 49 kernel = kernelHelper.getKernel(); 50 if (kernel != null) { 51 objectName = new ObjectName (name); 52 info = kernel.getGBeanData(objectName); 53 } else { 54 objectName = null; 55 info = null; 56 } 57 58 } 59 60 public String getCanonicalName() { 61 return objectName.getCanonicalName(); 62 } 63 64 public String getDomain() { 65 return objectName.getDomain(); 66 } 67 68 public String getState() { 69 try { 70 return State.toString(kernel.getGBeanState(objectName)); 71 } catch (Exception e) { 72 return ("Could not get state: " + e.getMessage()); 73 } 74 } 75 76 85 public List getKeyProperties() { 86 Hashtable h = objectName.getKeyPropertyList(); 87 88 Iterator it = h.keySet().iterator(); 89 90 List l = new ArrayList (); 91 92 while (it.hasNext()) { 93 String key = (String ) it.next(); 94 95 Map m = new HashMap (); 96 97 m.put("key", key); 98 m.put("value", h.get(key)); 99 100 l.add(m); 101 } 102 103 return l; 104 } 105 106 public String getClassName() { 107 return info.getGBeanInfo().getClassName(); 108 } 109 110 public SortedMap getAttributes() { 111 TreeMap attributes = new TreeMap (info.getAttributes()); 112 for (Iterator iterator = attributes.entrySet().iterator(); iterator.hasNext();) { 113 Map.Entry entry = (Map.Entry ) iterator.next(); 114 if (entry.getValue() == null) { 115 entry.setValue("(null)"); 116 } 117 if (entry.getValue() instanceof Object []) { 118 entry .setValue(Arrays.asList((Object [])entry.getValue())); 119 } 120 } 121 122 return attributes; 123 } 124 125 public Set getOperationInfo() { 126 return info.getGBeanInfo().getOperations(); 127 } 128 } 129 | Popular Tags |