/******************************************************************************* * Copyright (c) 2006 Jeff Mesnil * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html *******************************************************************************/ package net.jmesnil.jmx.resources; import java.util.Iterator; import java.util.Set; import javax.management.MBeanInfo; import javax.management.MBeanServerConnection; import javax.management.MalformedObjectNameException; import javax.management.ObjectName; import org.eclipse.core.runtime.Assert; public class DomainWrapper { private final String name; private final MBeanServerConnection mbsc; public DomainWrapper(String name, MBeanServerConnection mbsc) { Assert.isNotNull(name); Assert.isNotNull(mbsc); this.name = name; this.mbsc = mbsc; } private ObjectName getPattern() throws MalformedObjectNameException { return new ObjectName(name + ":*"); //$NON-NLS-1$ } public String getName() { return name; } public MBeanInfoWrapper[] getMBeanInfos() { try { Set set = mbsc.queryNames(getPattern(), null); MBeanInfoWrapper[] instances = new MBeanInfoWrapper[set.size()]; int i = 0; for (Iterator iter = set.iterator(); iter.hasNext();) { ObjectName on = (ObjectName) iter.next(); MBeanInfo info = mbsc.getMBeanInfo(on); instances[i] = new MBeanInfoWrapper(on, info, mbsc); i++; } return instances; } catch (Exception e) { e.printStackTrace(); return new MBeanInfoWrapper[0]; } } }