You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by ri...@apache.org on 2014/05/23 18:57:28 UTC
[43/50] [abbrv] git commit: add function for converting to string,
and use that for the "cpu fraction" sensor
add function for converting to string, and use that for the "cpu fraction" sensor
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/17ac8986
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/17ac8986
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/17ac8986
Branch: refs/pull/1414/merge
Commit: 17ac89862c4fd89fb35c35a816b9967ab50b455e
Parents: 37bf67a
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Fri May 23 10:28:04 2014 -0600
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Fri May 23 10:28:04 2014 -0600
----------------------------------------------------------------------
.../java/brooklyn/entity/java/JavaAppUtils.java | 5 ++--
.../java/brooklyn/util/math/MathFunctions.java | 24 +++++++++++++++++++-
.../brooklyn/util/math/MathFunctionsTest.java | 18 +++++++++++++++
3 files changed, 43 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/17ac8986/software/base/src/main/java/brooklyn/entity/java/JavaAppUtils.java
----------------------------------------------------------------------
diff --git a/software/base/src/main/java/brooklyn/entity/java/JavaAppUtils.java b/software/base/src/main/java/brooklyn/entity/java/JavaAppUtils.java
index b5bfb31..eb6d2e5 100644
--- a/software/base/src/main/java/brooklyn/entity/java/JavaAppUtils.java
+++ b/software/base/src/main/java/brooklyn/entity/java/JavaAppUtils.java
@@ -216,7 +216,6 @@ public class JavaAppUtils {
private static final AtomicBoolean initialized = new AtomicBoolean(false);
/** Setup renderer hints for the MXBean attributes. */
- @SuppressWarnings("rawtypes")
public static void init() {
if (initialized.get()) return;
synchronized (initialized) {
@@ -233,8 +232,8 @@ public class JavaAppUtils {
RendererHints.register(UsesJavaMXBeans.START_TIME, RendererHints.displayValue(Time.toDateString()));
RendererHints.register(UsesJavaMXBeans.UP_TIME, RendererHints.displayValue(Duration.millisToStringRounded()));
RendererHints.register(UsesJavaMXBeans.PROCESS_CPU_TIME, RendererHints.displayValue(Duration.millisToStringRounded()));
- RendererHints.register(UsesJavaMXBeans.PROCESS_CPU_TIME_FRACTION_LAST, RendererHints.displayValue(Duration.millisToStringRounded()));
- RendererHints.register(UsesJavaMXBeans.PROCESS_CPU_TIME_FRACTION_IN_WINDOW, RendererHints.displayValue(Duration.millisToStringRounded()));
+ RendererHints.register(UsesJavaMXBeans.PROCESS_CPU_TIME_FRACTION_LAST, RendererHints.displayValue(MathFunctions.percent(4)));
+ RendererHints.register(UsesJavaMXBeans.PROCESS_CPU_TIME_FRACTION_IN_WINDOW, RendererHints.displayValue(MathFunctions.percent(4)));
initialized.set(true);
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/17ac8986/utils/common/src/main/java/brooklyn/util/math/MathFunctions.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/brooklyn/util/math/MathFunctions.java b/utils/common/src/main/java/brooklyn/util/math/MathFunctions.java
index c70cdfc..dbf5604 100644
--- a/utils/common/src/main/java/brooklyn/util/math/MathFunctions.java
+++ b/utils/common/src/main/java/brooklyn/util/math/MathFunctions.java
@@ -2,6 +2,8 @@ package brooklyn.util.math;
import javax.annotation.Nullable;
+import brooklyn.util.text.Strings;
+
import com.google.common.base.Function;
public class MathFunctions {
@@ -61,5 +63,25 @@ public class MathFunctions {
}
};
}
-
+
+ /** returns a string of up to maxLen length (longer in extreme cases) also capped at significantDigits significantDigits */
+ public static Function<Number, String> readableString(final int significantDigits, final int maxLen) {
+ return new Function<Number, String>() {
+ public String apply(@Nullable Number input) {
+ if (input==null) return null;
+ return Strings.makeRealString(input.doubleValue(), maxLen, significantDigits, 0);
+ }
+ };
+ }
+
+ /** returns a string where the input number is expressed as percent, with given number of significant digits */
+ public static Function<Number, String> percent(final int significantDigits) {
+ return new Function<Number, String>() {
+ public String apply(@Nullable Number input) {
+ if (input==null) return null;
+ return readableString(significantDigits, significantDigits+3).apply(input.doubleValue() * 100d)+"%";
+ }
+ };
+ }
+
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/17ac8986/utils/common/src/test/java/brooklyn/util/math/MathFunctionsTest.java
----------------------------------------------------------------------
diff --git a/utils/common/src/test/java/brooklyn/util/math/MathFunctionsTest.java b/utils/common/src/test/java/brooklyn/util/math/MathFunctionsTest.java
new file mode 100644
index 0000000..6f0955d
--- /dev/null
+++ b/utils/common/src/test/java/brooklyn/util/math/MathFunctionsTest.java
@@ -0,0 +1,18 @@
+package brooklyn.util.math;
+
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+public class MathFunctionsTest {
+
+ @Test
+ public void testAdd() {
+ Assert.assertEquals(MathFunctions.plus(3).apply(4), (Integer)7);
+ Assert.assertEquals(MathFunctions.plus(0.3).apply(0.4).doubleValue(), 0.7, 0.00000001);
+ }
+
+ @Test
+ public void testPercent() {
+ Assert.assertEquals(MathFunctions.percent(3).apply(0.0123456), "1.23%");
+ }
+}