|
From: <rm...@hy...> - 2007-03-27 02:41:46
|
Author: rmorgan Date: 2007-03-26 18:41:31 -0800 (Mon, 26 Mar 2007) New Revision: 3916 URL: http://svn.hyperic.org/?view=rev&root=Hyperic+HQ&revision=3916 Modified: trunk/src/org/hyperic/hq/product/jmx/MxLiveDataPlugin.java Log: Return Map's if the return data is CompositeData. Modified: trunk/src/org/hyperic/hq/product/jmx/MxLiveDataPlugin.java =================================================================== --- trunk/src/org/hyperic/hq/product/jmx/MxLiveDataPlugin.java 2007-03-27 01:24:14 UTC (rev 3915) +++ trunk/src/org/hyperic/hq/product/jmx/MxLiveDataPlugin.java 2007-03-27 02:41:31 UTC (rev 3916) @@ -35,7 +35,11 @@ import javax.management.MBeanServerConnection; import javax.management.ObjectName; +import javax.management.openmbean.CompositeData; import java.util.Properties; +import java.util.Map; +import java.util.Iterator; +import java.util.HashMap; public class MxLiveDataPlugin extends LiveDataPlugin { @@ -81,6 +85,21 @@ throw new PluginException("Unkown command " + command); } + // if CompositeData, return Map for simplicity. + if (res instanceof CompositeData) { + return convertCompositeData((CompositeData)res); + } + + // Same goes for CompositeData[] + if (res instanceof CompositeData[]) { + CompositeData[] o = (CompositeData[])res; + Map[] ret = new Map[o.length]; + for (int i = 0; i < o.length; i++) { + ret[i] = convertCompositeData(o[i]); + } + return ret; + } + return res; } catch (Exception e) { @@ -88,6 +107,17 @@ } } + private Map convertCompositeData(CompositeData data) { + Map retval = new HashMap(); + for (Iterator i = data.getCompositeType().keySet().iterator(); + i.hasNext(); ) { + String key = (String)i.next(); + Object val = data.get(key); + retval.put(key, val); + } + return retval; + } + public String[] getCommands() { return _COMMANDS; } |