diff --git a/bindings/java/src/org/hyperic/sigar/jmx/SigarCpu.java b/bindings/java/src/org/hyperic/sigar/jmx/SigarCpu.java
index f1f6453a..14ae253a 100644
--- a/bindings/java/src/org/hyperic/sigar/jmx/SigarCpu.java
+++ b/bindings/java/src/org/hyperic/sigar/jmx/SigarCpu.java
@@ -1,334 +1,334 @@
-/*
- * Copyright (C) [2004, 2005, 2006, 2007], 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;
-
-import javax.management.Attribute;
-import javax.management.AttributeNotFoundException;
-import javax.management.MBeanAttributeInfo;
-import javax.management.MBeanConstructorInfo;
-import javax.management.MBeanInfo;
-import javax.management.MBeanParameterInfo;
-import javax.management.ReflectionException;
-
-import org.hyperic.sigar.Sigar;
-import org.hyperic.sigar.SigarException;
-
-/**
- * Sigar JMX MBean implementation for the Cpu
information
- * package. Provides an OpenMBean conform implementation.
- *
- * @author Bjoern Martin
- * @since 1.5
- */
-public class SigarCpu extends AbstractMBean {
-
- private static final String MBEAN_TYPE = "CpuList";
-
- private static final MBeanInfo MBEAN_INFO;
-
- private static final MBeanAttributeInfo MBEAN_ATTR_CPUINDEX;
-
- private static final MBeanAttributeInfo MBEAN_ATTR_IDLE;
-
- private static final MBeanAttributeInfo MBEAN_ATTR_NICE;
-
- private static final MBeanAttributeInfo MBEAN_ATTR_SYS;
-
- private static final MBeanAttributeInfo MBEAN_ATTR_TOTAL;
-
- private static final MBeanAttributeInfo MBEAN_ATTR_USER;
-
- private static final MBeanAttributeInfo MBEAN_ATTR_WAIT;
-
- private static final MBeanConstructorInfo MBEAN_CONSTR_CPUINDEX;
-
- private static final MBeanConstructorInfo MBEAN_CONSTR_CPUINDEX_SIGAR;
-
- private static MBeanParameterInfo MBEAN_PARAM_CPUINDEX;
-
- private static MBeanParameterInfo MBEAN_PARAM_SIGAR;
-
- static {
- MBEAN_ATTR_CPUINDEX = new MBeanAttributeInfo("CpuIndex", "int",
- "The index of the CPU, typically starting at 0", true, false,
- false);
- MBEAN_ATTR_IDLE = new MBeanAttributeInfo("Idle", "long",
- "The idle time of the CPU, in [ms]", true, false, false);
- MBEAN_ATTR_NICE = new MBeanAttributeInfo("Nice", "long",
- "The time of the CPU spent on nice priority, in [ms]", true,
- false, false);
- MBEAN_ATTR_SYS = new MBeanAttributeInfo("Sys", "long",
- "The time of the CPU used by the system, in [ms]", true, false,
- false);
- MBEAN_ATTR_TOTAL = new MBeanAttributeInfo("Total", "long",
- "The total time of the CPU, in [ms]", true, false, false);
- MBEAN_ATTR_USER = new MBeanAttributeInfo("User", "long",
- "The time of the CPU used by user processes, in [ms]", true,
- false, false);
- MBEAN_ATTR_WAIT = new MBeanAttributeInfo("Wait", "long",
- "The time the CPU had to wait for data to be loaded, in [ms]",
- true, false, false);
- MBEAN_PARAM_CPUINDEX = new MBeanParameterInfo("cpuIndex", "int",
- "The index of the CPU to read data for. Must be >= 0 "
- + "and not exceed the CPU count of the system");
- MBEAN_PARAM_SIGAR = new MBeanParameterInfo("sigar", Sigar.class
- .getName(), "The Sigar instance to use to fetch data from");
- MBEAN_CONSTR_CPUINDEX = new MBeanConstructorInfo(SigarCpu.class
- .getName(),
- "Creates a new instance for the CPU index specified, "
- + "using a new Sigar instance to fetch the data. "
- + "Fails if the CPU index is out of range.",
- new MBeanParameterInfo[] { MBEAN_PARAM_CPUINDEX });
- MBEAN_CONSTR_CPUINDEX_SIGAR = new MBeanConstructorInfo(
- SigarCpu.class.getName(),
- "Creates a new instance for the CPU index specified, "
- + "using the Sigar instance specified to fetch the data. "
- + "Fails if the CPU index is out of range.",
- new MBeanParameterInfo[] { MBEAN_PARAM_SIGAR,
- MBEAN_PARAM_CPUINDEX });
- MBEAN_INFO = new MBeanInfo(
- SigarCpu.class.getName(),
- "Sigar CPU MBean. Provides raw timing data for a single "
- + "CPU. The data is cached for 500ms, meaning each request "
- + "(and as a result each block request to all parameters) "
- + "within half a second is satisfied from the same dataset.",
- new MBeanAttributeInfo[] { MBEAN_ATTR_CPUINDEX,
- MBEAN_ATTR_IDLE, MBEAN_ATTR_NICE, MBEAN_ATTR_SYS,
- MBEAN_ATTR_TOTAL, MBEAN_ATTR_USER, MBEAN_ATTR_WAIT },
- new MBeanConstructorInfo[] { MBEAN_CONSTR_CPUINDEX,
- MBEAN_CONSTR_CPUINDEX_SIGAR }, null, null);
-
- }
-
- /**
- * Index of the CPU processed by the instance.
- */
- private final int cpuIndex;
-
- /**
- * Object name this instance will give itself when being registered to an
- * MBeanServer.
- */
- private final String objectName;
-
- /**
- * Creates a new instance for the CPU index specified, using a new Sigar
- * instance to fetch the data. Fails if the CPU index is out of range.
- *
- * @param cpuIndex
- * The index of the CPU to read data for. Must be >= 0
- * and not exceed the CPU count of the system.
- *
- * @throws IllegalArgumentException
- * If the CPU index is out of range or an unexpected Sigar error
- * occurs.
- */
- public SigarCpu(int cpuIndex) throws IllegalArgumentException {
- this(new Sigar(), cpuIndex);
- }
-
- /**
- * Creates a new instance for the CPU index specified, using the Sigar
- * instance specified to fetch the data. Fails if the CPU index is out of
- * range.
- *
- * @param sigar
- * The Sigar instance to use to fetch data from
- * @param cpuIndex
- * The index of the CPU to read data for. Must be
- * >= 0
and not exceed the CPU count of the
- * system.
- *
- * @throws IllegalArgumentException
- * If the CPU index is out of range or an unexpected Sigar error
- * occurs
- */
- public SigarCpu(Sigar sigar, int cpuIndex) throws IllegalArgumentException {
- super(sigar, CACHED_500MS);
-
- // check index
- if (cpuIndex < 0)
- throw new IllegalArgumentException(
- "CPU index has to be non-negative: " + cpuIndex);
- try {
- int cpuCount;
- if ((cpuCount = sigar.getCpuList().length) < cpuIndex)
- throw new IllegalArgumentException(
- "CPU index out of range (found " + cpuCount
- + " CPU(s)): " + cpuIndex);
-
- } catch (SigarException e) {
- throw unexpectedError(MBEAN_TYPE, e);
- }
-
- // all fine
- this.cpuIndex = cpuIndex;
- this.objectName = SigarInvokerJMX.DOMAIN_NAME + ":" + MBEAN_ATTR_TYPE
- + "=Cpu,"
- + MBEAN_ATTR_CPUINDEX.getName().substring(0, 1).toLowerCase()
- + MBEAN_ATTR_CPUINDEX.getName().substring(1) + "=" + cpuIndex;
- }
-
- /**
- * Object name this instance will give itself when being registered to an
- * MBeanServer.
- */
- public String getObjectName() {
- return this.objectName;
- }
-
- /**
- * @return The index of the CPU, typically starting at 0
- */
- public int getCpuIndex() {
- return this.cpuIndex;
- }
-
- /**
- * @return The idle time of the CPU, in [ms]
- */
- public long getIdle() {
- try {
- return sigar.getCpuList()[this.cpuIndex].getIdle();
- } catch (SigarException e) {
- throw unexpectedError(MBEAN_TYPE, e);
- }
- }
-
- /**
- * @return The time of the CPU spent on nice priority, in [ms]
- */
- public long getNice() {
- try {
- return sigar.getCpuList()[this.cpuIndex].getNice();
- } catch (SigarException e) {
- throw unexpectedError(MBEAN_TYPE, e);
- }
- }
-
- /**
- * @return The time of the CPU used by the system, in [ms]
- */
- public long getSys() {
- try {
- return sigar.getCpuList()[this.cpuIndex].getSys();
- } catch (SigarException e) {
- throw unexpectedError(MBEAN_TYPE, e);
- }
- }
-
- /**
- * @return The total time of the CPU, in [ms]
- */
- public long getTotal() {
- try {
- return sigar.getCpuList()[this.cpuIndex].getTotal();
- } catch (SigarException e) {
- throw unexpectedError(MBEAN_TYPE, e);
- }
- }
-
- /**
- * @return The time of the CPU used by user processes, in [ms]
- */
- public long getUser() {
- try {
- return sigar.getCpuList()[this.cpuIndex].getUser();
- } catch (SigarException e) {
- throw unexpectedError(MBEAN_TYPE, e);
- }
- }
-
- /**
- * @return The time the CPU had to wait for data to be loaded, in [ms]
- */
- public long getWait() {
- try {
- return sigar.getCpuList()[this.cpuIndex].getWait();
- } catch (SigarException e) {
- throw unexpectedError(MBEAN_TYPE, e);
- }
- }
-
- // -------
- // Implementation of the DynamicMBean interface
- // -------
-
- /*
- * (non-Javadoc)
- *
- * @see DynamicMBean#getAttribute(String)
- */
- public Object getAttribute(String attr) throws AttributeNotFoundException {
-
- if (MBEAN_ATTR_CPUINDEX.getName().equals(attr)) {
- return new Integer(getCpuIndex());
-
- } else if (MBEAN_ATTR_IDLE.getName().equals(attr)) {
- return new Long(getIdle());
-
- } else if (MBEAN_ATTR_NICE.getName().equals(attr)) {
- return new Long(getNice());
-
- } else if (MBEAN_ATTR_SYS.getName().equals(attr)) {
- return new Long(getSys());
-
- } else if (MBEAN_ATTR_TOTAL.getName().equals(attr)) {
- return new Long(getTotal());
-
- } else if (MBEAN_ATTR_USER.getName().equals(attr)) {
- return new Long(getUser());
-
- } else if (MBEAN_ATTR_WAIT.getName().equals(attr)) {
- return new Long(getWait());
-
- } else {
- throw new AttributeNotFoundException(attr);
- }
- }
-
- /*
- * (non-Javadoc)
- *
- * @see DynamicMBean#setAttribute(Attribute)
- */
- public void setAttribute(Attribute attr) throws AttributeNotFoundException {
- throw new AttributeNotFoundException(attr.getName());
- }
-
- /*
- * (non-Javadoc)
- *
- * @see DynamicMBean#invoke(String, Object[], String[])
- */
- public Object invoke(String actionName, Object[] params, String[] signature)
- throws ReflectionException {
- throw new ReflectionException(new NoSuchMethodException(actionName),
- actionName);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see DynamicMBean#getMBeanInfo()
- */
- public MBeanInfo getMBeanInfo() {
- return MBEAN_INFO;
- }
-}
+/*
+ * Copyright (C) [2004, 2005, 2006, 2007], 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;
+
+import javax.management.Attribute;
+import javax.management.AttributeNotFoundException;
+import javax.management.MBeanAttributeInfo;
+import javax.management.MBeanConstructorInfo;
+import javax.management.MBeanInfo;
+import javax.management.MBeanParameterInfo;
+import javax.management.ReflectionException;
+
+import org.hyperic.sigar.Sigar;
+import org.hyperic.sigar.SigarException;
+
+/**
+ * Sigar JMX MBean implementation for the Cpu
information
+ * package. Provides an OpenMBean conform implementation.
+ *
+ * @author Bjoern Martin
+ * @since 1.5
+ */
+public class SigarCpu extends AbstractMBean {
+
+ private static final String MBEAN_TYPE = "CpuList";
+
+ private static final MBeanInfo MBEAN_INFO;
+
+ private static final MBeanAttributeInfo MBEAN_ATTR_CPUINDEX;
+
+ private static final MBeanAttributeInfo MBEAN_ATTR_IDLE;
+
+ private static final MBeanAttributeInfo MBEAN_ATTR_NICE;
+
+ private static final MBeanAttributeInfo MBEAN_ATTR_SYS;
+
+ private static final MBeanAttributeInfo MBEAN_ATTR_TOTAL;
+
+ private static final MBeanAttributeInfo MBEAN_ATTR_USER;
+
+ private static final MBeanAttributeInfo MBEAN_ATTR_WAIT;
+
+ private static final MBeanConstructorInfo MBEAN_CONSTR_CPUINDEX;
+
+ private static final MBeanConstructorInfo MBEAN_CONSTR_CPUINDEX_SIGAR;
+
+ private static MBeanParameterInfo MBEAN_PARAM_CPUINDEX;
+
+ private static MBeanParameterInfo MBEAN_PARAM_SIGAR;
+
+ static {
+ MBEAN_ATTR_CPUINDEX = new MBeanAttributeInfo("CpuIndex", "int",
+ "The index of the CPU, typically starting at 0", true, false,
+ false);
+ MBEAN_ATTR_IDLE = new MBeanAttributeInfo("Idle", "long",
+ "The idle time of the CPU, in [ms]", true, false, false);
+ MBEAN_ATTR_NICE = new MBeanAttributeInfo("Nice", "long",
+ "The time of the CPU spent on nice priority, in [ms]", true,
+ false, false);
+ MBEAN_ATTR_SYS = new MBeanAttributeInfo("Sys", "long",
+ "The time of the CPU used by the system, in [ms]", true, false,
+ false);
+ MBEAN_ATTR_TOTAL = new MBeanAttributeInfo("Total", "long",
+ "The total time of the CPU, in [ms]", true, false, false);
+ MBEAN_ATTR_USER = new MBeanAttributeInfo("User", "long",
+ "The time of the CPU used by user processes, in [ms]", true,
+ false, false);
+ MBEAN_ATTR_WAIT = new MBeanAttributeInfo("Wait", "long",
+ "The time the CPU had to wait for data to be loaded, in [ms]",
+ true, false, false);
+ MBEAN_PARAM_CPUINDEX = new MBeanParameterInfo("cpuIndex", "int",
+ "The index of the CPU to read data for. Must be >= 0 "
+ + "and not exceed the CPU count of the system");
+ MBEAN_PARAM_SIGAR = new MBeanParameterInfo("sigar", Sigar.class
+ .getName(), "The Sigar instance to use to fetch data from");
+ MBEAN_CONSTR_CPUINDEX = new MBeanConstructorInfo(SigarCpu.class
+ .getName(),
+ "Creates a new instance for the CPU index specified, "
+ + "using a new Sigar instance to fetch the data. "
+ + "Fails if the CPU index is out of range.",
+ new MBeanParameterInfo[] { MBEAN_PARAM_CPUINDEX });
+ MBEAN_CONSTR_CPUINDEX_SIGAR = new MBeanConstructorInfo(
+ SigarCpu.class.getName(),
+ "Creates a new instance for the CPU index specified, "
+ + "using the Sigar instance specified to fetch the data. "
+ + "Fails if the CPU index is out of range.",
+ new MBeanParameterInfo[] { MBEAN_PARAM_SIGAR,
+ MBEAN_PARAM_CPUINDEX });
+ MBEAN_INFO = new MBeanInfo(
+ SigarCpu.class.getName(),
+ "Sigar CPU MBean. Provides raw timing data for a single "
+ + "CPU. The data is cached for 500ms, meaning each request "
+ + "(and as a result each block request to all parameters) "
+ + "within half a second is satisfied from the same dataset.",
+ new MBeanAttributeInfo[] { MBEAN_ATTR_CPUINDEX,
+ MBEAN_ATTR_IDLE, MBEAN_ATTR_NICE, MBEAN_ATTR_SYS,
+ MBEAN_ATTR_TOTAL, MBEAN_ATTR_USER, MBEAN_ATTR_WAIT },
+ new MBeanConstructorInfo[] { MBEAN_CONSTR_CPUINDEX,
+ MBEAN_CONSTR_CPUINDEX_SIGAR }, null, null);
+
+ }
+
+ /**
+ * Index of the CPU processed by the instance.
+ */
+ private final int cpuIndex;
+
+ /**
+ * Object name this instance will give itself when being registered to an
+ * MBeanServer.
+ */
+ private final String objectName;
+
+ /**
+ * Creates a new instance for the CPU index specified, using a new Sigar
+ * instance to fetch the data. Fails if the CPU index is out of range.
+ *
+ * @param cpuIndex
+ * The index of the CPU to read data for. Must be >= 0
+ * and not exceed the CPU count of the system.
+ *
+ * @throws IllegalArgumentException
+ * If the CPU index is out of range or an unexpected Sigar error
+ * occurs.
+ */
+ public SigarCpu(int cpuIndex) throws IllegalArgumentException {
+ this(new Sigar(), cpuIndex);
+ }
+
+ /**
+ * Creates a new instance for the CPU index specified, using the Sigar
+ * instance specified to fetch the data. Fails if the CPU index is out of
+ * range.
+ *
+ * @param sigar
+ * The Sigar instance to use to fetch data from
+ * @param cpuIndex
+ * The index of the CPU to read data for. Must be
+ * >= 0
and not exceed the CPU count of the
+ * system.
+ *
+ * @throws IllegalArgumentException
+ * If the CPU index is out of range or an unexpected Sigar error
+ * occurs
+ */
+ public SigarCpu(Sigar sigar, int cpuIndex) throws IllegalArgumentException {
+ super(sigar, CACHED_500MS);
+
+ // check index
+ if (cpuIndex < 0)
+ throw new IllegalArgumentException(
+ "CPU index has to be non-negative: " + cpuIndex);
+ try {
+ int cpuCount;
+ if ((cpuCount = sigar.getCpuList().length) < cpuIndex)
+ throw new IllegalArgumentException(
+ "CPU index out of range (found " + cpuCount
+ + " CPU(s)): " + cpuIndex);
+
+ } catch (SigarException e) {
+ throw unexpectedError(MBEAN_TYPE, e);
+ }
+
+ // all fine
+ this.cpuIndex = cpuIndex;
+ this.objectName = SigarInvokerJMX.DOMAIN_NAME + ":" + MBEAN_ATTR_TYPE
+ + "=Cpu,"
+ + MBEAN_ATTR_CPUINDEX.getName().substring(0, 1).toLowerCase()
+ + MBEAN_ATTR_CPUINDEX.getName().substring(1) + "=" + cpuIndex;
+ }
+
+ /**
+ * Object name this instance will give itself when being registered to an
+ * MBeanServer.
+ */
+ public String getObjectName() {
+ return this.objectName;
+ }
+
+ /**
+ * @return The index of the CPU, typically starting at 0
+ */
+ public int getCpuIndex() {
+ return this.cpuIndex;
+ }
+
+ /**
+ * @return The idle time of the CPU, in [ms]
+ */
+ public long getIdle() {
+ try {
+ return sigar.getCpuList()[this.cpuIndex].getIdle();
+ } catch (SigarException e) {
+ throw unexpectedError(MBEAN_TYPE, e);
+ }
+ }
+
+ /**
+ * @return The time of the CPU spent on nice priority, in [ms]
+ */
+ public long getNice() {
+ try {
+ return sigar.getCpuList()[this.cpuIndex].getNice();
+ } catch (SigarException e) {
+ throw unexpectedError(MBEAN_TYPE, e);
+ }
+ }
+
+ /**
+ * @return The time of the CPU used by the system, in [ms]
+ */
+ public long getSys() {
+ try {
+ return sigar.getCpuList()[this.cpuIndex].getSys();
+ } catch (SigarException e) {
+ throw unexpectedError(MBEAN_TYPE, e);
+ }
+ }
+
+ /**
+ * @return The total time of the CPU, in [ms]
+ */
+ public long getTotal() {
+ try {
+ return sigar.getCpuList()[this.cpuIndex].getTotal();
+ } catch (SigarException e) {
+ throw unexpectedError(MBEAN_TYPE, e);
+ }
+ }
+
+ /**
+ * @return The time of the CPU used by user processes, in [ms]
+ */
+ public long getUser() {
+ try {
+ return sigar.getCpuList()[this.cpuIndex].getUser();
+ } catch (SigarException e) {
+ throw unexpectedError(MBEAN_TYPE, e);
+ }
+ }
+
+ /**
+ * @return The time the CPU had to wait for data to be loaded, in [ms]
+ */
+ public long getWait() {
+ try {
+ return sigar.getCpuList()[this.cpuIndex].getWait();
+ } catch (SigarException e) {
+ throw unexpectedError(MBEAN_TYPE, e);
+ }
+ }
+
+ // -------
+ // Implementation of the DynamicMBean interface
+ // -------
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see DynamicMBean#getAttribute(String)
+ */
+ public Object getAttribute(String attr) throws AttributeNotFoundException {
+
+ if (MBEAN_ATTR_CPUINDEX.getName().equals(attr)) {
+ return new Integer(getCpuIndex());
+
+ } else if (MBEAN_ATTR_IDLE.getName().equals(attr)) {
+ return new Long(getIdle());
+
+ } else if (MBEAN_ATTR_NICE.getName().equals(attr)) {
+ return new Long(getNice());
+
+ } else if (MBEAN_ATTR_SYS.getName().equals(attr)) {
+ return new Long(getSys());
+
+ } else if (MBEAN_ATTR_TOTAL.getName().equals(attr)) {
+ return new Long(getTotal());
+
+ } else if (MBEAN_ATTR_USER.getName().equals(attr)) {
+ return new Long(getUser());
+
+ } else if (MBEAN_ATTR_WAIT.getName().equals(attr)) {
+ return new Long(getWait());
+
+ } else {
+ throw new AttributeNotFoundException(attr);
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see DynamicMBean#setAttribute(Attribute)
+ */
+ public void setAttribute(Attribute attr) throws AttributeNotFoundException {
+ throw new AttributeNotFoundException(attr.getName());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see DynamicMBean#invoke(String, Object[], String[])
+ */
+ public Object invoke(String actionName, Object[] params, String[] signature)
+ throws ReflectionException {
+ throw new ReflectionException(new NoSuchMethodException(actionName),
+ actionName);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see DynamicMBean#getMBeanInfo()
+ */
+ public MBeanInfo getMBeanInfo() {
+ return MBEAN_INFO;
+ }
+}
diff --git a/bindings/java/src/org/hyperic/sigar/jmx/SigarCpuInfo.java b/bindings/java/src/org/hyperic/sigar/jmx/SigarCpuInfo.java
index 500ebed1..eb17fea9 100644
--- a/bindings/java/src/org/hyperic/sigar/jmx/SigarCpuInfo.java
+++ b/bindings/java/src/org/hyperic/sigar/jmx/SigarCpuInfo.java
@@ -1,286 +1,286 @@
-/*
- * Copyright (C) [2004, 2005, 2006, 2007], 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;
-
-import javax.management.Attribute;
-import javax.management.AttributeNotFoundException;
-import javax.management.MBeanAttributeInfo;
-import javax.management.MBeanConstructorInfo;
-import javax.management.MBeanInfo;
-import javax.management.MBeanParameterInfo;
-import javax.management.ReflectionException;
-
-import org.hyperic.sigar.Sigar;
-import org.hyperic.sigar.SigarException;
-
-/**
- * Sigar JMX MBean implementation for the CpuInfo
information
- * package. Provides an OpenMBean conform implementation.
- *
- * @author Bjoern Martin
- * @since 1.5
- */
-public class SigarCpuInfo extends AbstractMBean {
-
- private static final String MBEAN_TYPE = "CpuInfoList";
-
- private static final MBeanInfo MBEAN_INFO;
-
- private static final MBeanAttributeInfo MBEAN_ATTR_CPUINDEX;
-
- private static final MBeanAttributeInfo MBEAN_ATTR_CACHESIZE;
-
- private static final MBeanAttributeInfo MBEAN_ATTR_MHZ;
-
- private static final MBeanAttributeInfo MBEAN_ATTR_MODEL;
-
- private static final MBeanAttributeInfo MBEAN_ATTR_VENDOR;
-
- private static final MBeanConstructorInfo MBEAN_CONSTR_CPUINDEX;
-
- private static final MBeanConstructorInfo MBEAN_CONSTR_CPUINDEX_SIGAR;
-
- private static final MBeanParameterInfo MBEAN_PARAM_CPUINDEX;
-
- private static final MBeanParameterInfo MBEAN_PARAM_SIGAR;
-
- static {
- MBEAN_ATTR_CPUINDEX = new MBeanAttributeInfo("CpuIndex", "int",
- "The index of the CPU, typically starting at 0", true, false,
- false);
- MBEAN_ATTR_CACHESIZE = new MBeanAttributeInfo("CacheSize", "long",
- "The cache size of the CPU, in [byte]", true, false, false);
- MBEAN_ATTR_MHZ = new MBeanAttributeInfo("Mhz", "int",
- "The clock speed of the CPU, in [MHz]", true, false, false);
- MBEAN_ATTR_MODEL = new MBeanAttributeInfo("Model", "java.lang.String",
- "The CPU model reported", true, false, false);
- MBEAN_ATTR_VENDOR = new MBeanAttributeInfo("Vendor",
- "java.lang.String", "The CPU vendor reported", true, false,
- false);
- MBEAN_PARAM_CPUINDEX = new MBeanParameterInfo("cpuIndex", "int",
- "The index of the CPU to read data for. Must be >= 0 "
- + "and not exceed the CPU count of the system");
- MBEAN_PARAM_SIGAR = new MBeanParameterInfo("sigar", Sigar.class
- .getName(), "The Sigar instance to use to fetch data from");
- MBEAN_CONSTR_CPUINDEX = new MBeanConstructorInfo(SigarCpuInfo.class
- .getName(),
- "Creates a new instance for the CPU index specified, "
- + "using a new Sigar instance to fetch the data. "
- + "Fails if the CPU index is out of range.",
- new MBeanParameterInfo[] { MBEAN_PARAM_CPUINDEX });
- MBEAN_CONSTR_CPUINDEX_SIGAR = new MBeanConstructorInfo(
- SigarCpuInfo.class.getName(),
- "Creates a new instance for the CPU index specified, "
- + "using the Sigar instance specified to fetch the data. "
- + "Fails if the CPU index is out of range.",
- new MBeanParameterInfo[] { MBEAN_PARAM_SIGAR,
- MBEAN_PARAM_CPUINDEX });
- MBEAN_INFO = new MBeanInfo(
- SigarCpuInfo.class.getName(),
- "Sigar CPU Info MBean, provides overall information for a "
- + "single CPU. This information only changes if, for example, "
- + "a CPU is reducing its clock frequency or shutting down "
- + "part of its cache. Subsequent requests are satisfied from "
- + "within a cache that invalidates after 30 seconds.",
- new MBeanAttributeInfo[] { MBEAN_ATTR_CPUINDEX,
- MBEAN_ATTR_CACHESIZE, MBEAN_ATTR_MHZ, MBEAN_ATTR_MODEL,
- MBEAN_ATTR_VENDOR }, new MBeanConstructorInfo[] {
- MBEAN_CONSTR_CPUINDEX, MBEAN_CONSTR_CPUINDEX_SIGAR },
- null, null);
-
- }
-
- /**
- * Index of the CPU processed by the instance.
- */
- private int cpuIndex;
-
- /**
- * Object name this instance will give itself when being registered to an
- * MBeanServer.
- */
- private String objectName;
-
- /**
- * Creates a new instance for the CPU index specified, using a new Sigar
- * instance to fetch the data. Fails if the CPU index is out of range.
- *
- * @param cpuIndex The index of the CPU to read data for. Must be
- * >= 0
and not exceed the CPU count of the system.
- *
- * @throws IllegalArgumentException If the CPU index is out of range or
- * an unexpected Sigar error occurs
- */
- public SigarCpuInfo(int index) throws IllegalArgumentException {
- this(new Sigar(), index);
- }
-
- /**
- * Creates a new instance for the CPU index specified, using the Sigar
- * instance specified to fetch the data. Fails if the CPU index is out
- * of range.
- *
- * @param sigar The Sigar instance to use to fetch data from
- * @param cpuIndex The index of the CPU to read data for. Must be
- * >= 0
and not exceed the CPU count of the system.
- *
- * @throws IllegalArgumentException If the CPU index is out of range or
- * an unexpected Sigar error occurs
- */
- public SigarCpuInfo(Sigar sigar, int index) {
- super(sigar, DEFAULT);
-
- // check index
- if (index < 0)
- throw new IllegalArgumentException(
- "CPU index has to be non-negative: " + index);
- try {
- int cpuCount;
- if ((cpuCount = sigar.getCpuInfoList().length) < index)
- throw new IllegalArgumentException(
- "CPU index out of range (found " + cpuCount
- + " CPU(s)): " + index);
-
- } catch (SigarException e) {
- throw unexpectedError(MBEAN_TYPE, e);
- }
-
- // all fine
- this.cpuIndex = index;
- this.objectName = SigarInvokerJMX.DOMAIN_NAME + ":" + MBEAN_ATTR_TYPE
- + "=CpuInfo,"
- + MBEAN_ATTR_CPUINDEX.getName().substring(0, 1).toLowerCase()
- + MBEAN_ATTR_CPUINDEX.getName().substring(1) + "=" + cpuIndex;
- }
-
- /**
- * Object name this instance will give itself when being registered to an
- * MBeanServer.
- */
- public String getObjectName() {
- return this.objectName;
- }
-
- /**
- * @return The index of the CPU, typically starting at 0
- */
- public int getCpuIndex() {
- return this.cpuIndex;
- }
-
- /**
- * @return The cache size of the CPU, in [byte]
- */
- public long getCacheSize() {
- try {
- return sigar.getCpuInfoList()[this.cpuIndex].getCacheSize();
- } catch (SigarException e) {
- throw unexpectedError(MBEAN_TYPE, e);
- }
- }
-
- /**
- * @return The clock speed of the CPU, in [MHz]
- */
- public int getMhz() {
- try {
- return sigar.getCpuInfoList()[this.cpuIndex].getMhz();
- } catch (SigarException e) {
- throw unexpectedError(MBEAN_TYPE, e);
- }
- }
-
- /**
- * @return The CPU model reported
- */
- public String getModel() {
- try {
- return sigar.getCpuInfoList()[this.cpuIndex].getModel();
- } catch (SigarException e) {
- throw unexpectedError(MBEAN_TYPE, e);
- }
- }
-
- /**
- * @return The CPU vendor reported
- */
- public String getVendor() {
- try {
- return sigar.getCpuInfoList()[this.cpuIndex].getVendor();
- } catch (SigarException e) {
- throw unexpectedError(MBEAN_TYPE, e);
- }
- }
-
- // -------
- // Implementation of the DynamicMBean interface
- // -------
-
- /*
- * (non-Javadoc)
- * @see DynamicMBean#getAttribute(String)
- */
- public Object getAttribute(String attr) throws AttributeNotFoundException {
-
- if (MBEAN_ATTR_CACHESIZE.getName().equals(attr)) {
- return new Long(getCacheSize());
-
- } else if (MBEAN_ATTR_CPUINDEX.getName().equals(attr)) {
- return new Integer(getCpuIndex());
-
- } else if (MBEAN_ATTR_MHZ.getName().equals(attr)) {
- return new Integer(getMhz());
-
- } else if (MBEAN_ATTR_MODEL.getName().equals(attr)) {
- return getModel();
-
- } else if (MBEAN_ATTR_VENDOR.getName().equals(attr)) {
- return getVendor();
-
- } else {
- throw new AttributeNotFoundException(attr);
- }
- }
-
- /*
- * (non-Javadoc)
- * @see DynamicMBean#setAttribute(Attribute)
- */
- public void setAttribute(Attribute attr) throws AttributeNotFoundException {
- throw new AttributeNotFoundException(attr.getName());
- }
-
- /*
- * (non-Javadoc)
- * @see DynamicMBean#invoke(String, Object[], String[])
- */
- public Object invoke(String actionName, Object[] params, String[] signature)
- throws ReflectionException {
- throw new ReflectionException(new NoSuchMethodException(actionName),
- actionName);
- }
-
- /*
- * (non-Javadoc)
- * @see DynamicMBean#getMBeanInfo()
- */
- public MBeanInfo getMBeanInfo() {
- return MBEAN_INFO;
- }
-}
+/*
+ * Copyright (C) [2004, 2005, 2006, 2007], 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;
+
+import javax.management.Attribute;
+import javax.management.AttributeNotFoundException;
+import javax.management.MBeanAttributeInfo;
+import javax.management.MBeanConstructorInfo;
+import javax.management.MBeanInfo;
+import javax.management.MBeanParameterInfo;
+import javax.management.ReflectionException;
+
+import org.hyperic.sigar.Sigar;
+import org.hyperic.sigar.SigarException;
+
+/**
+ * Sigar JMX MBean implementation for the CpuInfo
information
+ * package. Provides an OpenMBean conform implementation.
+ *
+ * @author Bjoern Martin
+ * @since 1.5
+ */
+public class SigarCpuInfo extends AbstractMBean {
+
+ private static final String MBEAN_TYPE = "CpuInfoList";
+
+ private static final MBeanInfo MBEAN_INFO;
+
+ private static final MBeanAttributeInfo MBEAN_ATTR_CPUINDEX;
+
+ private static final MBeanAttributeInfo MBEAN_ATTR_CACHESIZE;
+
+ private static final MBeanAttributeInfo MBEAN_ATTR_MHZ;
+
+ private static final MBeanAttributeInfo MBEAN_ATTR_MODEL;
+
+ private static final MBeanAttributeInfo MBEAN_ATTR_VENDOR;
+
+ private static final MBeanConstructorInfo MBEAN_CONSTR_CPUINDEX;
+
+ private static final MBeanConstructorInfo MBEAN_CONSTR_CPUINDEX_SIGAR;
+
+ private static final MBeanParameterInfo MBEAN_PARAM_CPUINDEX;
+
+ private static final MBeanParameterInfo MBEAN_PARAM_SIGAR;
+
+ static {
+ MBEAN_ATTR_CPUINDEX = new MBeanAttributeInfo("CpuIndex", "int",
+ "The index of the CPU, typically starting at 0", true, false,
+ false);
+ MBEAN_ATTR_CACHESIZE = new MBeanAttributeInfo("CacheSize", "long",
+ "The cache size of the CPU, in [byte]", true, false, false);
+ MBEAN_ATTR_MHZ = new MBeanAttributeInfo("Mhz", "int",
+ "The clock speed of the CPU, in [MHz]", true, false, false);
+ MBEAN_ATTR_MODEL = new MBeanAttributeInfo("Model", "java.lang.String",
+ "The CPU model reported", true, false, false);
+ MBEAN_ATTR_VENDOR = new MBeanAttributeInfo("Vendor",
+ "java.lang.String", "The CPU vendor reported", true, false,
+ false);
+ MBEAN_PARAM_CPUINDEX = new MBeanParameterInfo("cpuIndex", "int",
+ "The index of the CPU to read data for. Must be >= 0 "
+ + "and not exceed the CPU count of the system");
+ MBEAN_PARAM_SIGAR = new MBeanParameterInfo("sigar", Sigar.class
+ .getName(), "The Sigar instance to use to fetch data from");
+ MBEAN_CONSTR_CPUINDEX = new MBeanConstructorInfo(SigarCpuInfo.class
+ .getName(),
+ "Creates a new instance for the CPU index specified, "
+ + "using a new Sigar instance to fetch the data. "
+ + "Fails if the CPU index is out of range.",
+ new MBeanParameterInfo[] { MBEAN_PARAM_CPUINDEX });
+ MBEAN_CONSTR_CPUINDEX_SIGAR = new MBeanConstructorInfo(
+ SigarCpuInfo.class.getName(),
+ "Creates a new instance for the CPU index specified, "
+ + "using the Sigar instance specified to fetch the data. "
+ + "Fails if the CPU index is out of range.",
+ new MBeanParameterInfo[] { MBEAN_PARAM_SIGAR,
+ MBEAN_PARAM_CPUINDEX });
+ MBEAN_INFO = new MBeanInfo(
+ SigarCpuInfo.class.getName(),
+ "Sigar CPU Info MBean, provides overall information for a "
+ + "single CPU. This information only changes if, for example, "
+ + "a CPU is reducing its clock frequency or shutting down "
+ + "part of its cache. Subsequent requests are satisfied from "
+ + "within a cache that invalidates after 30 seconds.",
+ new MBeanAttributeInfo[] { MBEAN_ATTR_CPUINDEX,
+ MBEAN_ATTR_CACHESIZE, MBEAN_ATTR_MHZ, MBEAN_ATTR_MODEL,
+ MBEAN_ATTR_VENDOR }, new MBeanConstructorInfo[] {
+ MBEAN_CONSTR_CPUINDEX, MBEAN_CONSTR_CPUINDEX_SIGAR },
+ null, null);
+
+ }
+
+ /**
+ * Index of the CPU processed by the instance.
+ */
+ private int cpuIndex;
+
+ /**
+ * Object name this instance will give itself when being registered to an
+ * MBeanServer.
+ */
+ private String objectName;
+
+ /**
+ * Creates a new instance for the CPU index specified, using a new Sigar
+ * instance to fetch the data. Fails if the CPU index is out of range.
+ *
+ * @param cpuIndex The index of the CPU to read data for. Must be
+ * >= 0
and not exceed the CPU count of the system.
+ *
+ * @throws IllegalArgumentException If the CPU index is out of range or
+ * an unexpected Sigar error occurs
+ */
+ public SigarCpuInfo(int index) throws IllegalArgumentException {
+ this(new Sigar(), index);
+ }
+
+ /**
+ * Creates a new instance for the CPU index specified, using the Sigar
+ * instance specified to fetch the data. Fails if the CPU index is out
+ * of range.
+ *
+ * @param sigar The Sigar instance to use to fetch data from
+ * @param cpuIndex The index of the CPU to read data for. Must be
+ * >= 0
and not exceed the CPU count of the system.
+ *
+ * @throws IllegalArgumentException If the CPU index is out of range or
+ * an unexpected Sigar error occurs
+ */
+ public SigarCpuInfo(Sigar sigar, int index) {
+ super(sigar, DEFAULT);
+
+ // check index
+ if (index < 0)
+ throw new IllegalArgumentException(
+ "CPU index has to be non-negative: " + index);
+ try {
+ int cpuCount;
+ if ((cpuCount = sigar.getCpuInfoList().length) < index)
+ throw new IllegalArgumentException(
+ "CPU index out of range (found " + cpuCount
+ + " CPU(s)): " + index);
+
+ } catch (SigarException e) {
+ throw unexpectedError(MBEAN_TYPE, e);
+ }
+
+ // all fine
+ this.cpuIndex = index;
+ this.objectName = SigarInvokerJMX.DOMAIN_NAME + ":" + MBEAN_ATTR_TYPE
+ + "=CpuInfo,"
+ + MBEAN_ATTR_CPUINDEX.getName().substring(0, 1).toLowerCase()
+ + MBEAN_ATTR_CPUINDEX.getName().substring(1) + "=" + cpuIndex;
+ }
+
+ /**
+ * Object name this instance will give itself when being registered to an
+ * MBeanServer.
+ */
+ public String getObjectName() {
+ return this.objectName;
+ }
+
+ /**
+ * @return The index of the CPU, typically starting at 0
+ */
+ public int getCpuIndex() {
+ return this.cpuIndex;
+ }
+
+ /**
+ * @return The cache size of the CPU, in [byte]
+ */
+ public long getCacheSize() {
+ try {
+ return sigar.getCpuInfoList()[this.cpuIndex].getCacheSize();
+ } catch (SigarException e) {
+ throw unexpectedError(MBEAN_TYPE, e);
+ }
+ }
+
+ /**
+ * @return The clock speed of the CPU, in [MHz]
+ */
+ public int getMhz() {
+ try {
+ return sigar.getCpuInfoList()[this.cpuIndex].getMhz();
+ } catch (SigarException e) {
+ throw unexpectedError(MBEAN_TYPE, e);
+ }
+ }
+
+ /**
+ * @return The CPU model reported
+ */
+ public String getModel() {
+ try {
+ return sigar.getCpuInfoList()[this.cpuIndex].getModel();
+ } catch (SigarException e) {
+ throw unexpectedError(MBEAN_TYPE, e);
+ }
+ }
+
+ /**
+ * @return The CPU vendor reported
+ */
+ public String getVendor() {
+ try {
+ return sigar.getCpuInfoList()[this.cpuIndex].getVendor();
+ } catch (SigarException e) {
+ throw unexpectedError(MBEAN_TYPE, e);
+ }
+ }
+
+ // -------
+ // Implementation of the DynamicMBean interface
+ // -------
+
+ /*
+ * (non-Javadoc)
+ * @see DynamicMBean#getAttribute(String)
+ */
+ public Object getAttribute(String attr) throws AttributeNotFoundException {
+
+ if (MBEAN_ATTR_CACHESIZE.getName().equals(attr)) {
+ return new Long(getCacheSize());
+
+ } else if (MBEAN_ATTR_CPUINDEX.getName().equals(attr)) {
+ return new Integer(getCpuIndex());
+
+ } else if (MBEAN_ATTR_MHZ.getName().equals(attr)) {
+ return new Integer(getMhz());
+
+ } else if (MBEAN_ATTR_MODEL.getName().equals(attr)) {
+ return getModel();
+
+ } else if (MBEAN_ATTR_VENDOR.getName().equals(attr)) {
+ return getVendor();
+
+ } else {
+ throw new AttributeNotFoundException(attr);
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see DynamicMBean#setAttribute(Attribute)
+ */
+ public void setAttribute(Attribute attr) throws AttributeNotFoundException {
+ throw new AttributeNotFoundException(attr.getName());
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see DynamicMBean#invoke(String, Object[], String[])
+ */
+ public Object invoke(String actionName, Object[] params, String[] signature)
+ throws ReflectionException {
+ throw new ReflectionException(new NoSuchMethodException(actionName),
+ actionName);
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see DynamicMBean#getMBeanInfo()
+ */
+ public MBeanInfo getMBeanInfo() {
+ return MBEAN_INFO;
+ }
+}
diff --git a/bindings/java/src/org/hyperic/sigar/jmx/SigarCpuPerc.java b/bindings/java/src/org/hyperic/sigar/jmx/SigarCpuPerc.java
index f53682b2..e4b03cc1 100644
--- a/bindings/java/src/org/hyperic/sigar/jmx/SigarCpuPerc.java
+++ b/bindings/java/src/org/hyperic/sigar/jmx/SigarCpuPerc.java
@@ -1,333 +1,333 @@
-/*
- * Copyright (C) [2004, 2005, 2006, 2007], 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;
-
-import javax.management.Attribute;
-import javax.management.AttributeNotFoundException;
-import javax.management.MBeanAttributeInfo;
-import javax.management.MBeanConstructorInfo;
-import javax.management.MBeanInfo;
-import javax.management.MBeanParameterInfo;
-import javax.management.ReflectionException;
-
-import org.hyperic.sigar.Sigar;
-import org.hyperic.sigar.SigarException;
-
-/**
- *
Sigar JMX MBean implementation for the CpuPerc
information
- * package. Provides an OpenMBean conform implementation.
>= 0
and not exceed the CPU count of the system.
- *
- * @throws IllegalArgumentException If the CPU index is out of range or
- * an unexpected Sigar error occurs
- */
- public SigarCpuPerc(int index) {
- this(new Sigar(), index);
- }
-
- /**
- * Creates a new instance for the CPU index specified, using the Sigar
- * instance specified to fetch the data. Fails if the CPU index is out
- * of range.
- *
- * @param sigar The Sigar instance to use to fetch data from
- * @param cpuIndex The index of the CPU to read data for. Must be
- * >= 0
and not exceed the CPU count of the system.
- *
- * @throws IllegalArgumentException If the CPU index is out of range or
- * an unexpected Sigar error occurs
- */
- public SigarCpuPerc(Sigar sigar, int index) {
- super(sigar, CACHED_5SEC);
-
- // check index
- if (index < 0)
- throw new IllegalArgumentException(
- "CPU index has to be non-negative: " + index);
- try {
- int cpuCount;
- if ((cpuCount = sigar.getCpuPercList().length) < index)
- throw new IllegalArgumentException(
- "CPU index out of range (found " + cpuCount
- + " CPU(s)): " + index);
-
- } catch (SigarException e) {
- throw unexpectedError(MBEAN_TYPE, e);
- }
-
- // all fine
- this.cpuIndex = index;
- this.objectName = SigarInvokerJMX.DOMAIN_NAME + ":" + MBEAN_ATTR_TYPE
- + "=CpuPerc,"
- + MBEAN_ATTR_CPUINDEX.getName().substring(0, 1).toLowerCase()
- + MBEAN_ATTR_CPUINDEX.getName().substring(1) + "=" + cpuIndex;
- }
-
- /**
- * Object name this instance will give itself when being registered to an
- * MBeanServer.
- */
- public String getObjectName() {
- return this.objectName;
- }
-
- /**
- * @return The index of the CPU, typically starting at 0
- */
- public int getCpuIndex() {
- return this.cpuIndex;
- }
-
- /**
- * @return The total time of the CPU, as a fraction of 1
- */
- public double getCombined() {
- try {
- return sigar.getCpuPercList()[this.cpuIndex].getCombined();
- } catch (SigarException e) {
- throw unexpectedError(MBEAN_TYPE, e);
- }
- }
-
- /**
- * @return The idle time of the CPU, as a fraction of 1
- */
- public double getIdle() {
- try {
- return sigar.getCpuPercList()[this.cpuIndex].getIdle();
- } catch (SigarException e) {
- throw unexpectedError(MBEAN_TYPE, e);
- }
- }
-
- /**
- * @return The time of the CPU spent on nice priority, as a fraction of 1
- */
- public double getNice() {
- try {
- return sigar.getCpuPercList()[this.cpuIndex].getNice();
- } catch (SigarException e) {
- throw unexpectedError(MBEAN_TYPE, e);
- }
- }
-
- /**
- * @return The time of the CPU used by the system, as a fraction of 1
- */
- public double getSys() {
- try {
- return sigar.getCpuPercList()[this.cpuIndex].getSys();
- } catch (SigarException e) {
- throw unexpectedError(MBEAN_TYPE, e);
- }
- }
-
- /**
- * @return The time of the CPU used by user processes, as a fraction of 1
- */
- public double getUser() {
- try {
- return sigar.getCpuPercList()[this.cpuIndex].getUser();
- } catch (SigarException e) {
- throw unexpectedError(MBEAN_TYPE, e);
- }
- }
-
- /**
- * @return The time the CPU had to wait for data to be loaded, as a fraction of 1
- */
- public double getWait() {
- try {
- return sigar.getCpuPercList()[this.cpuIndex].getWait();
- } catch (SigarException e) {
- throw unexpectedError(MBEAN_TYPE, e);
- }
- }
-
- // -------
- // Implementation of the DynamicMBean interface
- // -------
-
- /*
- * (non-Javadoc)
- * @see DynamicMBean#getAttribute(String)
- */
- public Object getAttribute(String attr) throws AttributeNotFoundException {
-
- if (MBEAN_ATTR_COMBINED.getName().equals(attr)) {
- return new Double(getCombined());
-
- } else if (MBEAN_ATTR_CPUINDEX.getName().equals(attr)) {
- return new Integer(getCpuIndex());
-
- } else if (MBEAN_ATTR_IDLE.getName().equals(attr)) {
- return new Double(getIdle());
-
- } else if (MBEAN_ATTR_NICE.getName().equals(attr)) {
- return new Double(getNice());
-
- } else if (MBEAN_ATTR_SYS.getName().equals(attr)) {
- return new Double(getSys());
-
- } else if (MBEAN_ATTR_USER.getName().equals(attr)) {
- return new Double(getUser());
-
- } else if (MBEAN_ATTR_WAIT.getName().equals(attr)) {
- return new Double(getWait());
-
- } else {
- throw new AttributeNotFoundException(attr);
- }
- }
-
- /*
- * (non-Javadoc)
- * @see DynamicMBean#setAttribute(Attribute)
- */
- public void setAttribute(Attribute attr) throws AttributeNotFoundException {
- throw new AttributeNotFoundException(attr.getName());
- }
-
- /*
- * (non-Javadoc)
- * @see DynamicMBean#invoke(String, Object[], String[])
- */
- public Object invoke(String actionName, Object[] params, String[] signature)
- throws ReflectionException {
- throw new ReflectionException(new NoSuchMethodException(actionName),
- actionName);
- }
-
- /*
- * (non-Javadoc)
- * @see DynamicMBean#getMBeanInfo()
- */
- public MBeanInfo getMBeanInfo() {
- return MBEAN_INFO;
- }
-}
+/*
+ * Copyright (C) [2004, 2005, 2006, 2007], 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;
+
+import javax.management.Attribute;
+import javax.management.AttributeNotFoundException;
+import javax.management.MBeanAttributeInfo;
+import javax.management.MBeanConstructorInfo;
+import javax.management.MBeanInfo;
+import javax.management.MBeanParameterInfo;
+import javax.management.ReflectionException;
+
+import org.hyperic.sigar.Sigar;
+import org.hyperic.sigar.SigarException;
+
+/**
+ * Sigar JMX MBean implementation for the CpuPerc
information
+ * package. Provides an OpenMBean conform implementation.
>= 0
and not exceed the CPU count of the system.
+ *
+ * @throws IllegalArgumentException If the CPU index is out of range or
+ * an unexpected Sigar error occurs
+ */
+ public SigarCpuPerc(int index) {
+ this(new Sigar(), index);
+ }
+
+ /**
+ * Creates a new instance for the CPU index specified, using the Sigar
+ * instance specified to fetch the data. Fails if the CPU index is out
+ * of range.
+ *
+ * @param sigar The Sigar instance to use to fetch data from
+ * @param cpuIndex The index of the CPU to read data for. Must be
+ * >= 0
and not exceed the CPU count of the system.
+ *
+ * @throws IllegalArgumentException If the CPU index is out of range or
+ * an unexpected Sigar error occurs
+ */
+ public SigarCpuPerc(Sigar sigar, int index) {
+ super(sigar, CACHED_5SEC);
+
+ // check index
+ if (index < 0)
+ throw new IllegalArgumentException(
+ "CPU index has to be non-negative: " + index);
+ try {
+ int cpuCount;
+ if ((cpuCount = sigar.getCpuPercList().length) < index)
+ throw new IllegalArgumentException(
+ "CPU index out of range (found " + cpuCount
+ + " CPU(s)): " + index);
+
+ } catch (SigarException e) {
+ throw unexpectedError(MBEAN_TYPE, e);
+ }
+
+ // all fine
+ this.cpuIndex = index;
+ this.objectName = SigarInvokerJMX.DOMAIN_NAME + ":" + MBEAN_ATTR_TYPE
+ + "=CpuPerc,"
+ + MBEAN_ATTR_CPUINDEX.getName().substring(0, 1).toLowerCase()
+ + MBEAN_ATTR_CPUINDEX.getName().substring(1) + "=" + cpuIndex;
+ }
+
+ /**
+ * Object name this instance will give itself when being registered to an
+ * MBeanServer.
+ */
+ public String getObjectName() {
+ return this.objectName;
+ }
+
+ /**
+ * @return The index of the CPU, typically starting at 0
+ */
+ public int getCpuIndex() {
+ return this.cpuIndex;
+ }
+
+ /**
+ * @return The total time of the CPU, as a fraction of 1
+ */
+ public double getCombined() {
+ try {
+ return sigar.getCpuPercList()[this.cpuIndex].getCombined();
+ } catch (SigarException e) {
+ throw unexpectedError(MBEAN_TYPE, e);
+ }
+ }
+
+ /**
+ * @return The idle time of the CPU, as a fraction of 1
+ */
+ public double getIdle() {
+ try {
+ return sigar.getCpuPercList()[this.cpuIndex].getIdle();
+ } catch (SigarException e) {
+ throw unexpectedError(MBEAN_TYPE, e);
+ }
+ }
+
+ /**
+ * @return The time of the CPU spent on nice priority, as a fraction of 1
+ */
+ public double getNice() {
+ try {
+ return sigar.getCpuPercList()[this.cpuIndex].getNice();
+ } catch (SigarException e) {
+ throw unexpectedError(MBEAN_TYPE, e);
+ }
+ }
+
+ /**
+ * @return The time of the CPU used by the system, as a fraction of 1
+ */
+ public double getSys() {
+ try {
+ return sigar.getCpuPercList()[this.cpuIndex].getSys();
+ } catch (SigarException e) {
+ throw unexpectedError(MBEAN_TYPE, e);
+ }
+ }
+
+ /**
+ * @return The time of the CPU used by user processes, as a fraction of 1
+ */
+ public double getUser() {
+ try {
+ return sigar.getCpuPercList()[this.cpuIndex].getUser();
+ } catch (SigarException e) {
+ throw unexpectedError(MBEAN_TYPE, e);
+ }
+ }
+
+ /**
+ * @return The time the CPU had to wait for data to be loaded, as a fraction of 1
+ */
+ public double getWait() {
+ try {
+ return sigar.getCpuPercList()[this.cpuIndex].getWait();
+ } catch (SigarException e) {
+ throw unexpectedError(MBEAN_TYPE, e);
+ }
+ }
+
+ // -------
+ // Implementation of the DynamicMBean interface
+ // -------
+
+ /*
+ * (non-Javadoc)
+ * @see DynamicMBean#getAttribute(String)
+ */
+ public Object getAttribute(String attr) throws AttributeNotFoundException {
+
+ if (MBEAN_ATTR_COMBINED.getName().equals(attr)) {
+ return new Double(getCombined());
+
+ } else if (MBEAN_ATTR_CPUINDEX.getName().equals(attr)) {
+ return new Integer(getCpuIndex());
+
+ } else if (MBEAN_ATTR_IDLE.getName().equals(attr)) {
+ return new Double(getIdle());
+
+ } else if (MBEAN_ATTR_NICE.getName().equals(attr)) {
+ return new Double(getNice());
+
+ } else if (MBEAN_ATTR_SYS.getName().equals(attr)) {
+ return new Double(getSys());
+
+ } else if (MBEAN_ATTR_USER.getName().equals(attr)) {
+ return new Double(getUser());
+
+ } else if (MBEAN_ATTR_WAIT.getName().equals(attr)) {
+ return new Double(getWait());
+
+ } else {
+ throw new AttributeNotFoundException(attr);
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see DynamicMBean#setAttribute(Attribute)
+ */
+ public void setAttribute(Attribute attr) throws AttributeNotFoundException {
+ throw new AttributeNotFoundException(attr.getName());
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see DynamicMBean#invoke(String, Object[], String[])
+ */
+ public Object invoke(String actionName, Object[] params, String[] signature)
+ throws ReflectionException {
+ throw new ReflectionException(new NoSuchMethodException(actionName),
+ actionName);
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see DynamicMBean#getMBeanInfo()
+ */
+ public MBeanInfo getMBeanInfo() {
+ return MBEAN_INFO;
+ }
+}
diff --git a/bindings/java/src/org/hyperic/sigar/jmx/SigarMem.java b/bindings/java/src/org/hyperic/sigar/jmx/SigarMem.java
index bf7c1ea3..8e19932e 100644
--- a/bindings/java/src/org/hyperic/sigar/jmx/SigarMem.java
+++ b/bindings/java/src/org/hyperic/sigar/jmx/SigarMem.java
@@ -1,251 +1,251 @@
-/*
- * Copyright (C) [2004, 2005, 2006, 2007], 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;
-
-import javax.management.Attribute;
-import javax.management.AttributeNotFoundException;
-import javax.management.MBeanAttributeInfo;
-import javax.management.MBeanConstructorInfo;
-import javax.management.MBeanException;
-import javax.management.MBeanInfo;
-import javax.management.MBeanParameterInfo;
-import javax.management.ReflectionException;
-
-import org.hyperic.sigar.Sigar;
-import org.hyperic.sigar.SigarException;
-
-/**
- * Sigar JMX MBean implementation for the Mem
information
- * package. Provides an OpenMBean conform implementation.
- *
- * @author Bjoern Martin
- * @since 1.5
- */
-public class SigarMem extends AbstractMBean {
-
- private static final String MBEAN_TYPE = "Mem";
-
- private static final MBeanInfo MBEAN_INFO;
-
- private static final MBeanAttributeInfo MBEAN_ATTR_ACTUAL_FREE;
-
- private static final MBeanAttributeInfo MBEAN_ATTR_ACTUAL_USED;
-
- private static final MBeanAttributeInfo MBEAN_ATTR_FREE;
-
- private static final MBeanAttributeInfo MBEAN_ATTR_RAM;
-
- private static final MBeanAttributeInfo MBEAN_ATTR_TOTAL;
-
- private static final MBeanAttributeInfo MBEAN_ATTR_USED;
-
- private static final MBeanConstructorInfo MBEAN_CONSTR_SIGAR;
-
- private static MBeanParameterInfo MBEAN_PARAM_SIGAR;
-
- static {
- MBEAN_ATTR_ACTUAL_FREE = new MBeanAttributeInfo("ActualFree", "long",
- "TODO add proper description here", true, false, false);
- MBEAN_ATTR_ACTUAL_USED = new MBeanAttributeInfo("ActualUsed", "long",
- "TODO add proper description here", true, false, false);
- MBEAN_ATTR_FREE = new MBeanAttributeInfo("Free", "long",
- "TODO add proper description here", true, false, false);
- MBEAN_ATTR_RAM = new MBeanAttributeInfo("Ram", "long",
- "TODO add proper description here", true, false, false);
- MBEAN_ATTR_TOTAL = new MBeanAttributeInfo("Total", "long",
- "TODO add proper description here", true, false, false);
- MBEAN_ATTR_USED = new MBeanAttributeInfo("Used", "long",
- "TODO add proper description here", true, false, false);
- MBEAN_PARAM_SIGAR = new MBeanParameterInfo("sigar", Sigar.class
- .getName(), "The Sigar instance to use to fetch data from");
- MBEAN_CONSTR_SIGAR = new MBeanConstructorInfo(SigarMem.class.getName(),
- "Creates a new instance, using the Sigar instance "
- + "specified to fetch the data.",
- new MBeanParameterInfo[] { MBEAN_PARAM_SIGAR });
- MBEAN_INFO = new MBeanInfo(
- SigarMem.class.getName(),
- "Sigar Memory MBean, provides raw data for the physical "
- + "memory installed on the system. Uses an internal cache "
- + "that invalidates within 500ms, allowing for bulk request "
- + "being satisfied with a single dataset fetch.",
- new MBeanAttributeInfo[] { MBEAN_ATTR_ACTUAL_FREE,
- MBEAN_ATTR_ACTUAL_USED, MBEAN_ATTR_FREE,
- MBEAN_ATTR_RAM, MBEAN_ATTR_TOTAL, MBEAN_ATTR_USED },
- new MBeanConstructorInfo[] { MBEAN_CONSTR_SIGAR }, null, null);
-
- }
-
- /**
- * Object name this instance will give itself when being registered to an
- * MBeanServer.
- */
- private final String objectName;
-
- /**
- * Creates a new instance, using the Sigar instance specified to fetch the
- * data.
- *
- * @param sigar
- * The Sigar instance to use to fetch data from
- *
- * @throws IllegalArgumentException
- * If an unexpected Sigar error occurs
- */
- public SigarMem(Sigar sigar) throws IllegalArgumentException {
- super(sigar, CACHED_500MS);
-
- this.objectName = SigarInvokerJMX.DOMAIN_NAME + ":" + MBEAN_ATTR_TYPE
- + "=Memory";
- }
-
- /**
- * Object name this instance will give itself when being registered to an
- * MBeanServer.
- */
- public String getObjectName() {
- return this.objectName;
- }
-
- /**
- * @return The actual amount of free physical memory, in [bytes]
- */
- public long getActualFree() {
- try {
- return sigar.getMem().getActualFree();
- } catch (SigarException e) {
- throw unexpectedError(MBEAN_TYPE, e);
- }
- }
-
- /**
- * @return The actual amount of physical memory used, in [bytes]
- */
- public long getActualUsed() {
- try {
- return sigar.getMem().getActualUsed();
- } catch (SigarException e) {
- throw unexpectedError(MBEAN_TYPE, e);
- }
- }
-
- /**
- * @return The amount of free physical memory, in [bytes]
- */
- public long getFree() {
- try {
- return sigar.getMem().getFree();
- } catch (SigarException e) {
- throw unexpectedError(MBEAN_TYPE, e);
- }
- }
-
- /**
- * @return The amount of physical memory, in [bytes]
- */
- public long getRam() {
- try {
- return sigar.getMem().getRam();
- } catch (SigarException e) {
- throw unexpectedError(MBEAN_TYPE, e);
- }
- }
-
- /**
- * @return The total amount of physical memory, in [bytes]
- */
- public long getTotal() {
- try {
- return sigar.getMem().getTotal();
- } catch (SigarException e) {
- throw unexpectedError(MBEAN_TYPE, e);
- }
- }
-
- /**
- * @return The amount of physical memory in use, in [bytes]
- */
- public long getUsed() {
- try {
- return sigar.getMem().getUsed();
- } catch (SigarException e) {
- throw unexpectedError(MBEAN_TYPE, e);
- }
- }
-
- // -------
- // Implementation of the DynamicMBean interface
- // -------
-
- /*
- * (non-Javadoc)
- *
- * @see javax.management.DynamicMBean#getAttribute(java.lang.String)
- */
- public Object getAttribute(String attr) throws AttributeNotFoundException,
- MBeanException, ReflectionException {
- if (MBEAN_ATTR_ACTUAL_FREE.getName().equals(attr)) {
- return new Long(getActualFree());
-
- } else if (MBEAN_ATTR_ACTUAL_USED.getName().equals(attr)) {
- return new Long(getActualUsed());
-
- } else if (MBEAN_ATTR_FREE.getName().equals(attr)) {
- return new Long(getFree());
-
- } else if (MBEAN_ATTR_RAM.getName().equals(attr)) {
- return new Long(getRam());
-
- } else if (MBEAN_ATTR_TOTAL.getName().equals(attr)) {
- return new Long(getTotal());
-
- } else if (MBEAN_ATTR_USED.getName().equals(attr)) {
- return new Long(getUsed());
-
- } else {
- throw new AttributeNotFoundException(attr);
- }
- }
-
- /*
- * (non-Javadoc)
- * @see javax.management.DynamicMBean#setAttribute(javax.management.Attribute)
- */
- public void setAttribute(Attribute attr) throws AttributeNotFoundException {
- throw new AttributeNotFoundException(attr.getName());
- }
-
- /*
- * (non-Javadoc)
- * @see javax.management.DynamicMBean#invoke(java.lang.String,
- * java.lang.Object[], java.lang.String[])
- */
- public Object invoke(String actionName, Object[] params, String[] signature)
- throws ReflectionException {
- throw new ReflectionException(new NoSuchMethodException(actionName),
- actionName);
- }
-
- /*
- * (non-Javadoc)
- * @see javax.management.DynamicMBean#getMBeanInfo()
- */
- public MBeanInfo getMBeanInfo() {
- return MBEAN_INFO;
- }
-}
+/*
+ * Copyright (C) [2004, 2005, 2006, 2007], 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;
+
+import javax.management.Attribute;
+import javax.management.AttributeNotFoundException;
+import javax.management.MBeanAttributeInfo;
+import javax.management.MBeanConstructorInfo;
+import javax.management.MBeanException;
+import javax.management.MBeanInfo;
+import javax.management.MBeanParameterInfo;
+import javax.management.ReflectionException;
+
+import org.hyperic.sigar.Sigar;
+import org.hyperic.sigar.SigarException;
+
+/**
+ * Sigar JMX MBean implementation for the Mem
information
+ * package. Provides an OpenMBean conform implementation.
+ *
+ * @author Bjoern Martin
+ * @since 1.5
+ */
+public class SigarMem extends AbstractMBean {
+
+ private static final String MBEAN_TYPE = "Mem";
+
+ private static final MBeanInfo MBEAN_INFO;
+
+ private static final MBeanAttributeInfo MBEAN_ATTR_ACTUAL_FREE;
+
+ private static final MBeanAttributeInfo MBEAN_ATTR_ACTUAL_USED;
+
+ private static final MBeanAttributeInfo MBEAN_ATTR_FREE;
+
+ private static final MBeanAttributeInfo MBEAN_ATTR_RAM;
+
+ private static final MBeanAttributeInfo MBEAN_ATTR_TOTAL;
+
+ private static final MBeanAttributeInfo MBEAN_ATTR_USED;
+
+ private static final MBeanConstructorInfo MBEAN_CONSTR_SIGAR;
+
+ private static MBeanParameterInfo MBEAN_PARAM_SIGAR;
+
+ static {
+ MBEAN_ATTR_ACTUAL_FREE = new MBeanAttributeInfo("ActualFree", "long",
+ "TODO add proper description here", true, false, false);
+ MBEAN_ATTR_ACTUAL_USED = new MBeanAttributeInfo("ActualUsed", "long",
+ "TODO add proper description here", true, false, false);
+ MBEAN_ATTR_FREE = new MBeanAttributeInfo("Free", "long",
+ "TODO add proper description here", true, false, false);
+ MBEAN_ATTR_RAM = new MBeanAttributeInfo("Ram", "long",
+ "TODO add proper description here", true, false, false);
+ MBEAN_ATTR_TOTAL = new MBeanAttributeInfo("Total", "long",
+ "TODO add proper description here", true, false, false);
+ MBEAN_ATTR_USED = new MBeanAttributeInfo("Used", "long",
+ "TODO add proper description here", true, false, false);
+ MBEAN_PARAM_SIGAR = new MBeanParameterInfo("sigar", Sigar.class
+ .getName(), "The Sigar instance to use to fetch data from");
+ MBEAN_CONSTR_SIGAR = new MBeanConstructorInfo(SigarMem.class.getName(),
+ "Creates a new instance, using the Sigar instance "
+ + "specified to fetch the data.",
+ new MBeanParameterInfo[] { MBEAN_PARAM_SIGAR });
+ MBEAN_INFO = new MBeanInfo(
+ SigarMem.class.getName(),
+ "Sigar Memory MBean, provides raw data for the physical "
+ + "memory installed on the system. Uses an internal cache "
+ + "that invalidates within 500ms, allowing for bulk request "
+ + "being satisfied with a single dataset fetch.",
+ new MBeanAttributeInfo[] { MBEAN_ATTR_ACTUAL_FREE,
+ MBEAN_ATTR_ACTUAL_USED, MBEAN_ATTR_FREE,
+ MBEAN_ATTR_RAM, MBEAN_ATTR_TOTAL, MBEAN_ATTR_USED },
+ new MBeanConstructorInfo[] { MBEAN_CONSTR_SIGAR }, null, null);
+
+ }
+
+ /**
+ * Object name this instance will give itself when being registered to an
+ * MBeanServer.
+ */
+ private final String objectName;
+
+ /**
+ * Creates a new instance, using the Sigar instance specified to fetch the
+ * data.
+ *
+ * @param sigar
+ * The Sigar instance to use to fetch data from
+ *
+ * @throws IllegalArgumentException
+ * If an unexpected Sigar error occurs
+ */
+ public SigarMem(Sigar sigar) throws IllegalArgumentException {
+ super(sigar, CACHED_500MS);
+
+ this.objectName = SigarInvokerJMX.DOMAIN_NAME + ":" + MBEAN_ATTR_TYPE
+ + "=Memory";
+ }
+
+ /**
+ * Object name this instance will give itself when being registered to an
+ * MBeanServer.
+ */
+ public String getObjectName() {
+ return this.objectName;
+ }
+
+ /**
+ * @return The actual amount of free physical memory, in [bytes]
+ */
+ public long getActualFree() {
+ try {
+ return sigar.getMem().getActualFree();
+ } catch (SigarException e) {
+ throw unexpectedError(MBEAN_TYPE, e);
+ }
+ }
+
+ /**
+ * @return The actual amount of physical memory used, in [bytes]
+ */
+ public long getActualUsed() {
+ try {
+ return sigar.getMem().getActualUsed();
+ } catch (SigarException e) {
+ throw unexpectedError(MBEAN_TYPE, e);
+ }
+ }
+
+ /**
+ * @return The amount of free physical memory, in [bytes]
+ */
+ public long getFree() {
+ try {
+ return sigar.getMem().getFree();
+ } catch (SigarException e) {
+ throw unexpectedError(MBEAN_TYPE, e);
+ }
+ }
+
+ /**
+ * @return The amount of physical memory, in [bytes]
+ */
+ public long getRam() {
+ try {
+ return sigar.getMem().getRam();
+ } catch (SigarException e) {
+ throw unexpectedError(MBEAN_TYPE, e);
+ }
+ }
+
+ /**
+ * @return The total amount of physical memory, in [bytes]
+ */
+ public long getTotal() {
+ try {
+ return sigar.getMem().getTotal();
+ } catch (SigarException e) {
+ throw unexpectedError(MBEAN_TYPE, e);
+ }
+ }
+
+ /**
+ * @return The amount of physical memory in use, in [bytes]
+ */
+ public long getUsed() {
+ try {
+ return sigar.getMem().getUsed();
+ } catch (SigarException e) {
+ throw unexpectedError(MBEAN_TYPE, e);
+ }
+ }
+
+ // -------
+ // Implementation of the DynamicMBean interface
+ // -------
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.management.DynamicMBean#getAttribute(java.lang.String)
+ */
+ public Object getAttribute(String attr) throws AttributeNotFoundException,
+ MBeanException, ReflectionException {
+ if (MBEAN_ATTR_ACTUAL_FREE.getName().equals(attr)) {
+ return new Long(getActualFree());
+
+ } else if (MBEAN_ATTR_ACTUAL_USED.getName().equals(attr)) {
+ return new Long(getActualUsed());
+
+ } else if (MBEAN_ATTR_FREE.getName().equals(attr)) {
+ return new Long(getFree());
+
+ } else if (MBEAN_ATTR_RAM.getName().equals(attr)) {
+ return new Long(getRam());
+
+ } else if (MBEAN_ATTR_TOTAL.getName().equals(attr)) {
+ return new Long(getTotal());
+
+ } else if (MBEAN_ATTR_USED.getName().equals(attr)) {
+ return new Long(getUsed());
+
+ } else {
+ throw new AttributeNotFoundException(attr);
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see javax.management.DynamicMBean#setAttribute(javax.management.Attribute)
+ */
+ public void setAttribute(Attribute attr) throws AttributeNotFoundException {
+ throw new AttributeNotFoundException(attr.getName());
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see javax.management.DynamicMBean#invoke(java.lang.String,
+ * java.lang.Object[], java.lang.String[])
+ */
+ public Object invoke(String actionName, Object[] params, String[] signature)
+ throws ReflectionException {
+ throw new ReflectionException(new NoSuchMethodException(actionName),
+ actionName);
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see javax.management.DynamicMBean#getMBeanInfo()
+ */
+ public MBeanInfo getMBeanInfo() {
+ return MBEAN_INFO;
+ }
+}
diff --git a/bindings/java/src/org/hyperic/sigar/jmx/SigarSwap.java b/bindings/java/src/org/hyperic/sigar/jmx/SigarSwap.java
index c209d32f..76d73779 100644
--- a/bindings/java/src/org/hyperic/sigar/jmx/SigarSwap.java
+++ b/bindings/java/src/org/hyperic/sigar/jmx/SigarSwap.java
@@ -1,199 +1,199 @@
-/*
- * Copyright (C) [2004, 2005, 2006, 2007], 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;
-
-import javax.management.Attribute;
-import javax.management.AttributeNotFoundException;
-import javax.management.MBeanAttributeInfo;
-import javax.management.MBeanConstructorInfo;
-import javax.management.MBeanException;
-import javax.management.MBeanInfo;
-import javax.management.MBeanParameterInfo;
-import javax.management.ReflectionException;
-
-import org.hyperic.sigar.Sigar;
-import org.hyperic.sigar.SigarException;
-
-/**
- * Sigar JMX MBean implementation for the Swap
information
- * package. Provides an OpenMBean conform implementation.
- *
- * @author Bjoern Martin
- * @since 1.5
- */
-public class SigarSwap extends AbstractMBean {
-
- private static final String MBEAN_TYPE = "Swap";
-
- private static final MBeanInfo MBEAN_INFO;
-
- private static final MBeanAttributeInfo MBEAN_ATTR_FREE;
-
- private static final MBeanAttributeInfo MBEAN_ATTR_TOTAL;
-
- private static final MBeanAttributeInfo MBEAN_ATTR_USED;
-
- private static final MBeanConstructorInfo MBEAN_CONSTR_SIGAR;
-
- private static MBeanParameterInfo MBEAN_PARAM_SIGAR;
-
- static {
- MBEAN_ATTR_FREE = new MBeanAttributeInfo("Free", "long",
- "The amount of free swap memory, in [bytes]", true, false,
- false);
- MBEAN_ATTR_TOTAL = new MBeanAttributeInfo("Total", "long",
- "The total amount of swap memory, in [bytes]", true, false,
- false);
- MBEAN_ATTR_USED = new MBeanAttributeInfo("Used", "long",
- "The amount of swap memory in use, in [bytes]", true, false,
- false);
- MBEAN_PARAM_SIGAR = new MBeanParameterInfo("sigar", Sigar.class
- .getName(), "The Sigar instance to use to fetch data from");
- MBEAN_CONSTR_SIGAR = new MBeanConstructorInfo(
- SigarSwap.class.getName(),
- "Creates a new instance, using the Sigar instance "
- + "specified to fetch the data.",
- new MBeanParameterInfo[] { MBEAN_PARAM_SIGAR });
- MBEAN_INFO = new MBeanInfo(
- SigarSwap.class.getName(),
- "Sigar Swap MBean, provides raw data for the swap memory "
- + "configured on the system. Uses an internal cache that "
- + "invalidates within 5 seconds.",
- new MBeanAttributeInfo[] { MBEAN_ATTR_FREE, MBEAN_ATTR_TOTAL,
- MBEAN_ATTR_USED },
- new MBeanConstructorInfo[] { MBEAN_CONSTR_SIGAR }, null, null);
-
- }
-
- /**
- * Object name this instance will give itself when being registered to an
- * MBeanServer.
- */
- private final String objectName;
-
- /**
- * Creates a new instance, using the Sigar instance specified to fetch the
- * data.
- *
- * @param sigar
- * The Sigar instance to use to fetch data from
- *
- * @throws IllegalArgumentException
- * If an unexpected Sigar error occurs
- */
- public SigarSwap(Sigar sigar) throws IllegalArgumentException {
- super(sigar, CACHED_5SEC);
-
- this.objectName = SigarInvokerJMX.DOMAIN_NAME + ":" + MBEAN_ATTR_TYPE
- + "=Swap";
- }
-
- /**
- * Object name this instance will give itself when being registered to an
- * MBeanServer.
- */
- public String getObjectName() {
- return this.objectName;
- }
-
- /**
- * @return The amount of free swap memory, in [bytes]
- */
- public long getFree() {
- try {
- return sigar.getSwap().getFree();
- } catch (SigarException e) {
- throw unexpectedError(MBEAN_TYPE, e);
- }
- }
-
- /**
- * @return The total amount of swap memory, in [bytes]
- */
- public long getTotal() {
- try {
- return sigar.getSwap().getTotal();
- } catch (SigarException e) {
- throw unexpectedError(MBEAN_TYPE, e);
- }
- }
-
- /**
- * @return The amount of swap memory in use, in [bytes]
- */
- public long getUsed() {
- try {
- return sigar.getSwap().getUsed();
- } catch (SigarException e) {
- throw unexpectedError(MBEAN_TYPE, e);
- }
- }
-
- // -------
- // Implementation of the DynamicMBean interface
- // -------
-
- /*
- * (non-Javadoc)
- *
- * @see javax.management.DynamicMBean#getAttribute(java.lang.String)
- */
- public Object getAttribute(String attr) throws AttributeNotFoundException,
- MBeanException, ReflectionException {
- if (MBEAN_ATTR_FREE.getName().equals(attr)) {
- return new Long(getFree());
-
- } else if (MBEAN_ATTR_TOTAL.getName().equals(attr)) {
- return new Long(getTotal());
-
- } else if (MBEAN_ATTR_USED.getName().equals(attr)) {
- return new Long(getUsed());
-
- } else {
- throw new AttributeNotFoundException(attr);
- }
- }
-
- /*
- * (non-Javadoc)
- * @see javax.management.DynamicMBean#setAttribute(javax.management.Attribute)
- */
- public void setAttribute(Attribute attr) throws AttributeNotFoundException {
- throw new AttributeNotFoundException(attr.getName());
- }
-
- /*
- * (non-Javadoc)
- * @see javax.management.DynamicMBean#invoke(java.lang.String,
- * java.lang.Object[], java.lang.String[])
- */
- public Object invoke(String actionName, Object[] params, String[] signature)
- throws ReflectionException {
- throw new ReflectionException(new NoSuchMethodException(actionName),
- actionName);
- }
-
- /*
- * (non-Javadoc)
- * @see javax.management.DynamicMBean#getMBeanInfo()
- */
- public MBeanInfo getMBeanInfo() {
- return MBEAN_INFO;
- }
-}
+/*
+ * Copyright (C) [2004, 2005, 2006, 2007], 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;
+
+import javax.management.Attribute;
+import javax.management.AttributeNotFoundException;
+import javax.management.MBeanAttributeInfo;
+import javax.management.MBeanConstructorInfo;
+import javax.management.MBeanException;
+import javax.management.MBeanInfo;
+import javax.management.MBeanParameterInfo;
+import javax.management.ReflectionException;
+
+import org.hyperic.sigar.Sigar;
+import org.hyperic.sigar.SigarException;
+
+/**
+ * Sigar JMX MBean implementation for the Swap
information
+ * package. Provides an OpenMBean conform implementation.
+ *
+ * @author Bjoern Martin
+ * @since 1.5
+ */
+public class SigarSwap extends AbstractMBean {
+
+ private static final String MBEAN_TYPE = "Swap";
+
+ private static final MBeanInfo MBEAN_INFO;
+
+ private static final MBeanAttributeInfo MBEAN_ATTR_FREE;
+
+ private static final MBeanAttributeInfo MBEAN_ATTR_TOTAL;
+
+ private static final MBeanAttributeInfo MBEAN_ATTR_USED;
+
+ private static final MBeanConstructorInfo MBEAN_CONSTR_SIGAR;
+
+ private static MBeanParameterInfo MBEAN_PARAM_SIGAR;
+
+ static {
+ MBEAN_ATTR_FREE = new MBeanAttributeInfo("Free", "long",
+ "The amount of free swap memory, in [bytes]", true, false,
+ false);
+ MBEAN_ATTR_TOTAL = new MBeanAttributeInfo("Total", "long",
+ "The total amount of swap memory, in [bytes]", true, false,
+ false);
+ MBEAN_ATTR_USED = new MBeanAttributeInfo("Used", "long",
+ "The amount of swap memory in use, in [bytes]", true, false,
+ false);
+ MBEAN_PARAM_SIGAR = new MBeanParameterInfo("sigar", Sigar.class
+ .getName(), "The Sigar instance to use to fetch data from");
+ MBEAN_CONSTR_SIGAR = new MBeanConstructorInfo(
+ SigarSwap.class.getName(),
+ "Creates a new instance, using the Sigar instance "
+ + "specified to fetch the data.",
+ new MBeanParameterInfo[] { MBEAN_PARAM_SIGAR });
+ MBEAN_INFO = new MBeanInfo(
+ SigarSwap.class.getName(),
+ "Sigar Swap MBean, provides raw data for the swap memory "
+ + "configured on the system. Uses an internal cache that "
+ + "invalidates within 5 seconds.",
+ new MBeanAttributeInfo[] { MBEAN_ATTR_FREE, MBEAN_ATTR_TOTAL,
+ MBEAN_ATTR_USED },
+ new MBeanConstructorInfo[] { MBEAN_CONSTR_SIGAR }, null, null);
+
+ }
+
+ /**
+ * Object name this instance will give itself when being registered to an
+ * MBeanServer.
+ */
+ private final String objectName;
+
+ /**
+ * Creates a new instance, using the Sigar instance specified to fetch the
+ * data.
+ *
+ * @param sigar
+ * The Sigar instance to use to fetch data from
+ *
+ * @throws IllegalArgumentException
+ * If an unexpected Sigar error occurs
+ */
+ public SigarSwap(Sigar sigar) throws IllegalArgumentException {
+ super(sigar, CACHED_5SEC);
+
+ this.objectName = SigarInvokerJMX.DOMAIN_NAME + ":" + MBEAN_ATTR_TYPE
+ + "=Swap";
+ }
+
+ /**
+ * Object name this instance will give itself when being registered to an
+ * MBeanServer.
+ */
+ public String getObjectName() {
+ return this.objectName;
+ }
+
+ /**
+ * @return The amount of free swap memory, in [bytes]
+ */
+ public long getFree() {
+ try {
+ return sigar.getSwap().getFree();
+ } catch (SigarException e) {
+ throw unexpectedError(MBEAN_TYPE, e);
+ }
+ }
+
+ /**
+ * @return The total amount of swap memory, in [bytes]
+ */
+ public long getTotal() {
+ try {
+ return sigar.getSwap().getTotal();
+ } catch (SigarException e) {
+ throw unexpectedError(MBEAN_TYPE, e);
+ }
+ }
+
+ /**
+ * @return The amount of swap memory in use, in [bytes]
+ */
+ public long getUsed() {
+ try {
+ return sigar.getSwap().getUsed();
+ } catch (SigarException e) {
+ throw unexpectedError(MBEAN_TYPE, e);
+ }
+ }
+
+ // -------
+ // Implementation of the DynamicMBean interface
+ // -------
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.management.DynamicMBean#getAttribute(java.lang.String)
+ */
+ public Object getAttribute(String attr) throws AttributeNotFoundException,
+ MBeanException, ReflectionException {
+ if (MBEAN_ATTR_FREE.getName().equals(attr)) {
+ return new Long(getFree());
+
+ } else if (MBEAN_ATTR_TOTAL.getName().equals(attr)) {
+ return new Long(getTotal());
+
+ } else if (MBEAN_ATTR_USED.getName().equals(attr)) {
+ return new Long(getUsed());
+
+ } else {
+ throw new AttributeNotFoundException(attr);
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see javax.management.DynamicMBean#setAttribute(javax.management.Attribute)
+ */
+ public void setAttribute(Attribute attr) throws AttributeNotFoundException {
+ throw new AttributeNotFoundException(attr.getName());
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see javax.management.DynamicMBean#invoke(java.lang.String,
+ * java.lang.Object[], java.lang.String[])
+ */
+ public Object invoke(String actionName, Object[] params, String[] signature)
+ throws ReflectionException {
+ throw new ReflectionException(new NoSuchMethodException(actionName),
+ actionName);
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see javax.management.DynamicMBean#getMBeanInfo()
+ */
+ public MBeanInfo getMBeanInfo() {
+ return MBEAN_INFO;
+ }
+}