* @throws MonitoringRegistrationException
*/
public void registerJVMGarbageCollectorStats(StatsHolder rootNode) throws
MonitoringRegistrationException {
StatsHolder jvmNode = rootNode.getChild(MonitoredObjectType.JVM.getTypeName());
assert(jvmNode != null):"jvm node is null";
// setup the parent node for all garbage collectors
StatsHolder gcsNode = jvmNode.addChild(MonitoredObjectType.JVM_GCS.getTypeName(),
MonitoredObjectType.JVM_GCS);
gcsNode.setDottedName(DottedNameFactory.getJVMGCSDottedName());
gcsNode.setObjectName(MonitoringObjectNames.getJVMGCSSObjectName());
gcsNode.registerMBean();
// now register stats for each garbage colelctor
List beanList = ManagementFactory.getGarbageCollectorMXBeans();
Iterator iter = beanList.iterator();
while(iter.hasNext()) {
GarbageCollectorMXBean bean = (GarbageCollectorMXBean) iter.next();
StatsHolder gcNode = gcsNode.addChild(bean.getName(), MonitoredObjectType.JVM_GC);
gcNode.setStats(new JVMGarbageCollectorStatsImpl(bean));
gcNode.setStatsClass(com.sun.enterprise.admin.monitor.stats.JVMGarbageCollectorStats.class);
gcNode.setDottedName(DottedNameFactory.getJVMGCDottedName(bean.getName()));
gcNode.setObjectName(MonitoringObjectNames.getJVMGCObjectName(bean.getName()));
gcNode.registerMBean();
}
}