public void walkTree(MBeanServerConnection connection, Server server) throws Exception { // key here is null, null returns everything! Set<ObjectName> mbeans = connection.queryNames(null, null); Map<String, String> output = newHashMap(); for (ObjectName name : mbeans) { MBeanInfo info = connection.getMBeanInfo(name); MBeanAttributeInfo[] attrs = info.getAttributes(); Query.Builder queryBuilder = Query.builder().setObj(name.getCanonicalName()); ResultCapture resultCapture = new ResultCapture(); queryBuilder.addOutputWriter(resultCapture); for (MBeanAttributeInfo attrInfo : attrs) { queryBuilder.addAttr(attrInfo.getName()); } Query query = queryBuilder.build(); try { Iterable<Result> results = server.execute(query); query.runOutputWritersForQuery(server, results); } catch (AttributeNotFoundException anfe) { log.error("Error", anfe); } for (Result result : resultCapture.results) { output.put(result.getTypeName(), query.getAttr().toString()); } } for (Entry<String, String> entry : output.entrySet()) { log.debug(entry.getKey()); log.debug(entry.getValue()); log.debug("-----------------------------------------"); } }