diff --git a/bindings/java/src/org/hyperic/sigar/cmd/Mx.java b/bindings/java/src/org/hyperic/sigar/cmd/Mx.java index 21b9c80a..231bb16c 100644 --- a/bindings/java/src/org/hyperic/sigar/cmd/Mx.java +++ b/bindings/java/src/org/hyperic/sigar/cmd/Mx.java @@ -43,11 +43,17 @@ public class Mx extends SigarCommandBase { return "Register MBeans for use via jconsole, etc."; } - private static MBeanServer getMBeanServer() { + public static MBeanServer getMBeanServer() + throws SigarException { List servers = MBeanServerFactory.findMBeanServer(null); - return (MBeanServer)servers.get(0); + if (servers.size() == 0) { + throw new SigarException("No MBeanServers available"); + } + else { + return (MBeanServer)servers.get(0); + } } private void register(MBeanServer server) throws SigarException { diff --git a/bindings/java/src/org/hyperic/sigar/test/SigarTestRunner.java b/bindings/java/src/org/hyperic/sigar/test/SigarTestRunner.java index 31615f08..ff24be00 100644 --- a/bindings/java/src/org/hyperic/sigar/test/SigarTestRunner.java +++ b/bindings/java/src/org/hyperic/sigar/test/SigarTestRunner.java @@ -44,6 +44,7 @@ public class SigarTestRunner extends SigarCommandBase { private static final Class[] ALL_TESTS = { TestLog.class, TestInvoker.class, + TestMx.class, TestPTQL.class, TestCpu.class, TestCpuInfo.class, diff --git a/bindings/java/src/org/hyperic/sigar/test/TestMx.java b/bindings/java/src/org/hyperic/sigar/test/TestMx.java new file mode 100644 index 00000000..feabd5b0 --- /dev/null +++ b/bindings/java/src/org/hyperic/sigar/test/TestMx.java @@ -0,0 +1,51 @@ +/* + * Copyright (C) [2004, 2005, 2006], 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.test; + +import java.util.Set; + +import javax.management.MBeanServer; +import javax.management.ObjectName; + +import org.hyperic.sigar.SigarException; +import org.hyperic.sigar.cmd.Mx; +import org.hyperic.sigar.jmx.SigarRegistry; + +public class TestMx extends SigarTestCase { + + public TestMx(String name) { + super(name); + } + + public void testRegister() throws Exception { + MBeanServer server; + try { + server = Mx.getMBeanServer(); + } catch (SigarException e) { + traceln(e.getMessage()); + return; + } + + server.registerMBean(new SigarRegistry(), null); + Set beans = + server.queryNames(new ObjectName("sigar:*"), null); + + assertGtZeroTrace("beans.size", beans.size()); + } +}