switch from Dynamic to Standard MBean

This commit is contained in:
Doug MacEachern 2009-04-29 17:41:46 -07:00
parent 7157234182
commit 074d20d7b6
2 changed files with 33 additions and 32 deletions

View File

@ -20,8 +20,6 @@ package org.hyperic.sigar.jmx;
import java.util.ArrayList;
import javax.management.AttributeNotFoundException;
import javax.management.MBeanInfo;
import javax.management.MBeanRegistration;
import javax.management.MBeanServer;
import javax.management.ObjectInstance;
@ -58,34 +56,22 @@ import org.hyperic.sigar.SigarProxy;
* @author Bjoern Martin
* @since 1.5
*/
public class SigarRegistry extends AbstractMBean implements MBeanRegistration {
public class SigarRegistry implements MBeanRegistration, SigarRegistryMBean {
public static final String MBEAN_DOMAIN = SigarInvokerJMX.DOMAIN_NAME;
public static final String MBEAN_ATTR_TYPE = SigarInvokerJMX.PROP_TYPE;
private static final String MBEAN_TYPE = "SigarRegistry";
private static final MBeanInfo MBEAN_INFO;
static {
MBEAN_INFO = new MBeanInfo(
SigarRegistry.class.getName(),
"Sigar MBean registry. Provides a central point for creation "
+ "and destruction of Sigar MBeans. Any Sigar MBean created via "
+ "this instance will automatically be cleaned up when this "
+ "instance is deregistered from the MBean server.",
null /*new MBeanAttributeInfo[0] */,
null /*new MBeanConstructorInfo[0]*/,
null /*new MBeanOperationInfo[0] */,
null /*new MBeanNotificationInfo[0]*/);
}
private SigarProxy sigar;
private final String objectName;
private final ArrayList managedBeans;
private MBeanServer mbeanServer;
public SigarRegistry(SigarProxy sigar) {
super(sigar);
this.objectName = MBEAN_DOMAIN + ":" + MBEAN_ATTR_TYPE
+ "=" + MBEAN_TYPE;
this.sigar = sigar;
this.objectName =
MBEAN_DOMAIN + ":" + MBEAN_ATTR_TYPE + "=" + MBEAN_TYPE;
this.managedBeans = new ArrayList();
}
@ -93,14 +79,6 @@ public class SigarRegistry extends AbstractMBean implements MBeanRegistration {
return this.objectName;
}
public Object getAttribute(String attr) throws AttributeNotFoundException {
throw new AttributeNotFoundException(attr);
}
public MBeanInfo getMBeanInfo() {
return MBEAN_INFO;
}
private void registerMBean(AbstractMBean mbean) {
try {
ObjectName name =
@ -142,7 +120,7 @@ public class SigarRegistry extends AbstractMBean implements MBeanRegistration {
try {
info = sigar.getCpuInfoList();
} catch (SigarException e) {
throw unexpectedError("CpuInfoList", e);
info = new CpuInfo[0]; //XXX log
}
for (int i=0; i<info.length; i++) {
@ -181,7 +159,7 @@ public class SigarRegistry extends AbstractMBean implements MBeanRegistration {
registerMBean(mbean);
}
} catch (SigarException e) {
throw unexpectedError("FileSystemList", e);
//XXX log
}
//NetInterface beans
@ -203,7 +181,7 @@ public class SigarRegistry extends AbstractMBean implements MBeanRegistration {
registerMBean(mbean);
}
} catch (SigarException e) {
throw unexpectedError("NetInterfaceList", e);
//XXX log
}
//network info bean

View File

@ -0,0 +1,23 @@
/*
* Copyright (C) [2004-2009], Hyperic, Inc.
* This file is part of SIGAR.
*
* SIGAR is free software; you can redistribute it and/or modify
* it under the terms version 2 of the GNU General Public License as
* published by the Free Software Foundation. This program is distributed
* in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
* even the implied warranty of MERCHANTABILITY or FITNESS FOR A
* PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA.
*/
package org.hyperic.sigar.jmx;
public interface SigarRegistryMBean {
}