simplify MBean registration
This commit is contained in:
parent
e6bb9c7f7e
commit
857e4f0450
@ -186,6 +186,21 @@ public class SigarRegistry extends AbstractMBean {
|
|||||||
return MBEAN_INFO;
|
return MBEAN_INFO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void registerMBean(AbstractMBean mbean) {
|
||||||
|
try {
|
||||||
|
ObjectName name =
|
||||||
|
new ObjectName(mbean.getObjectName());
|
||||||
|
if (mbeanServer.isRegistered(name)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
ObjectInstance instance =
|
||||||
|
this.mbeanServer.registerMBean(mbean, name);
|
||||||
|
this.managedBeans.add(instance.getObjectName());
|
||||||
|
} catch (Exception e) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// -------
|
// -------
|
||||||
// Implementation of the MBeanRegistration interface
|
// Implementation of the MBeanRegistration interface
|
||||||
// -------
|
// -------
|
||||||
@ -203,132 +218,24 @@ public class SigarRegistry extends AbstractMBean {
|
|||||||
if (!success.booleanValue())
|
if (!success.booleanValue())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// get CPUs
|
//CPU beans
|
||||||
registerCpuBeans();
|
|
||||||
|
|
||||||
// get memory
|
|
||||||
registerMemoryBeans();
|
|
||||||
|
|
||||||
// get system
|
|
||||||
registerSystemBeans();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Registers MBeans for the Sigar types <code>Cpu</code>, <code>CpuPerc</code>
|
|
||||||
* and <code>CpuInfo</code>. One instance will be registered for each CPU
|
|
||||||
* (core?) found.
|
|
||||||
*/
|
|
||||||
private void registerCpuBeans() {
|
|
||||||
ObjectInstance nextRegistered = null;
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
final int cpuCount = sigar.getCpuInfoList().length;
|
final int cpuCount = sigar.getCpuInfoList().length;
|
||||||
for (int i = 0; i < cpuCount; i++) {
|
for (int i = 0; i < cpuCount; i++) {
|
||||||
// add CPU bean
|
registerMBean(new SigarCpu(sigarImpl, i));
|
||||||
SigarCpu nextCpu = new SigarCpu(sigarImpl, i);
|
registerMBean(new SigarCpuPerc(sigarImpl, i));
|
||||||
try {
|
registerMBean(new SigarCpuInfo(sigarImpl, i));
|
||||||
if (!mbeanServer.isRegistered(new ObjectName(nextCpu
|
|
||||||
.getObjectName())))
|
|
||||||
nextRegistered = mbeanServer.registerMBean(nextCpu,
|
|
||||||
null);
|
|
||||||
} catch (Exception e) { // ignore
|
|
||||||
}
|
|
||||||
// add MBean to set of managed beans
|
|
||||||
if (nextRegistered != null)
|
|
||||||
managedBeans.add(nextRegistered.getObjectName());
|
|
||||||
nextRegistered = null;
|
|
||||||
|
|
||||||
// add CPU percentage bean
|
|
||||||
SigarCpuPerc nextCpuPerc = new SigarCpuPerc(sigarImpl, i);
|
|
||||||
try {
|
|
||||||
if (!mbeanServer.isRegistered(new ObjectName(nextCpuPerc
|
|
||||||
.getObjectName())))
|
|
||||||
nextRegistered = mbeanServer.registerMBean(nextCpuPerc,
|
|
||||||
null);
|
|
||||||
} catch (Exception e) { // ignore
|
|
||||||
}
|
|
||||||
// add MBean to set of managed beans
|
|
||||||
if (nextRegistered != null)
|
|
||||||
managedBeans.add(nextRegistered.getObjectName());
|
|
||||||
nextRegistered = null;
|
|
||||||
|
|
||||||
// add CPU info bean
|
|
||||||
SigarCpuInfo nextCpuInfo = new SigarCpuInfo(sigarImpl, i);
|
|
||||||
try {
|
|
||||||
if (!mbeanServer.isRegistered(new ObjectName(nextCpuInfo
|
|
||||||
.getObjectName())))
|
|
||||||
nextRegistered = mbeanServer.registerMBean(nextCpuInfo,
|
|
||||||
null);
|
|
||||||
} catch (Exception e) { // ignore
|
|
||||||
}
|
|
||||||
// add MBean to set of managed beans
|
|
||||||
if (nextRegistered != null)
|
|
||||||
managedBeans.add(nextRegistered.getObjectName());
|
|
||||||
nextRegistered = null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (SigarException e) {
|
} catch (SigarException e) {
|
||||||
throw unexpectedError("CpuInfoList", e);
|
throw unexpectedError("CpuInfoList", e);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
//physical memory bean
|
||||||
* Registers MBeans for the Sigar types <code>Mem</code> and <code>Swap</code>.
|
registerMBean(new SigarMem(sigarImpl));
|
||||||
*/
|
//swap memory bean
|
||||||
private void registerMemoryBeans() {
|
registerMBean(new SigarSwap(sigarImpl));
|
||||||
|
//load average bean
|
||||||
ObjectInstance nextRegistered = null;
|
registerMBean(new SigarLoadAverage(sigarImpl));
|
||||||
|
|
||||||
// add physical memory bean
|
|
||||||
SigarMem mem = new SigarMem(sigarImpl);
|
|
||||||
|
|
||||||
try {
|
|
||||||
if (!mbeanServer.isRegistered(new ObjectName(mem.getObjectName())))
|
|
||||||
nextRegistered = mbeanServer.registerMBean(mem, null);
|
|
||||||
} catch (Exception e) { // ignore
|
|
||||||
}
|
|
||||||
|
|
||||||
// add MBean to set of managed beans
|
|
||||||
if (nextRegistered != null)
|
|
||||||
managedBeans.add(nextRegistered.getObjectName());
|
|
||||||
nextRegistered = null;
|
|
||||||
|
|
||||||
// add swap memory bean
|
|
||||||
SigarSwap swap = new SigarSwap(sigarImpl);
|
|
||||||
try {
|
|
||||||
if (!mbeanServer.isRegistered(new ObjectName(swap.getObjectName())))
|
|
||||||
nextRegistered = mbeanServer.registerMBean(swap, null);
|
|
||||||
} catch (Exception e) { // ignore
|
|
||||||
nextRegistered = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
// add MBean to set of managed beans
|
|
||||||
if (nextRegistered != null)
|
|
||||||
managedBeans.add(nextRegistered.getObjectName());
|
|
||||||
nextRegistered = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Registers MBeans for the Sigar types <code>LoadAverage</code>...
|
|
||||||
*/
|
|
||||||
private void registerSystemBeans() {
|
|
||||||
|
|
||||||
ObjectInstance nextRegistered = null;
|
|
||||||
|
|
||||||
// add load average bean
|
|
||||||
SigarLoadAverage loadAvg = new SigarLoadAverage(sigarImpl);
|
|
||||||
|
|
||||||
try {
|
|
||||||
if (!mbeanServer.isRegistered(new ObjectName(loadAvg
|
|
||||||
.getObjectName())))
|
|
||||||
nextRegistered = mbeanServer.registerMBean(loadAvg, null);
|
|
||||||
} catch (Exception e) { // ignore
|
|
||||||
}
|
|
||||||
|
|
||||||
// add MBean to set of managed beans
|
|
||||||
if (nextRegistered != null)
|
|
||||||
managedBeans.add(nextRegistered.getObjectName());
|
|
||||||
nextRegistered = null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user