You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streams.apache.org by re...@apache.org on 2014/10/22 02:03:29 UTC
[07/10] git commit: STREAMS-197 | add util function and refactored
STREAMS-197 | add util function and refactored
Project: http://git-wip-us.apache.org/repos/asf/incubator-streams/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-streams/commit/0006a044
Tree: http://git-wip-us.apache.org/repos/asf/incubator-streams/tree/0006a044
Diff: http://git-wip-us.apache.org/repos/asf/incubator-streams/diff/0006a044
Branch: refs/heads/master
Commit: 0006a044f001a68ba8ceb481ff4fbcb0ba0de270
Parents: f40ce9b
Author: Ryan Ebanks <ry...@gmail.com>
Authored: Tue Oct 21 17:26:35 2014 -0500
Committer: Ryan Ebanks <ry...@gmail.com>
Committed: Tue Oct 21 17:26:35 2014 -0500
----------------------------------------------------------------------
streams-runtimes/streams-runtime-local/pom.xml | 6 +++---
.../local/counters/DatumStatusCounter.java | 15 +++++----------
.../local/counters/StreamsTaskCounter.java | 10 ++--------
.../org/apache/streams/util/ComponentUtils.java | 18 ++++++++++++++++++
4 files changed, 28 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/0006a044/streams-runtimes/streams-runtime-local/pom.xml
----------------------------------------------------------------------
diff --git a/streams-runtimes/streams-runtime-local/pom.xml b/streams-runtimes/streams-runtime-local/pom.xml
index 0d9138d..9ee8d5b 100644
--- a/streams-runtimes/streams-runtime-local/pom.xml
+++ b/streams-runtimes/streams-runtime-local/pom.xml
@@ -46,17 +46,17 @@
<dependency>
<groupId>org.apache.streams</groupId>
<artifactId>streams-core</artifactId>
- <version>0.1-SNAPSHOT</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.streams</groupId>
<artifactId>streams-util</artifactId>
- <version>0.1-SNAPSHOT</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.streams</groupId>
<artifactId>streams-pojo</artifactId>
- <version>0.1-SNAPSHOT</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/0006a044/streams-runtimes/streams-runtime-local/src/main/java/org/apache/streams/local/counters/DatumStatusCounter.java
----------------------------------------------------------------------
diff --git a/streams-runtimes/streams-runtime-local/src/main/java/org/apache/streams/local/counters/DatumStatusCounter.java b/streams-runtimes/streams-runtime-local/src/main/java/org/apache/streams/local/counters/DatumStatusCounter.java
index 88c3a6f..acada71 100644
--- a/streams-runtimes/streams-runtime-local/src/main/java/org/apache/streams/local/counters/DatumStatusCounter.java
+++ b/streams-runtimes/streams-runtime-local/src/main/java/org/apache/streams/local/counters/DatumStatusCounter.java
@@ -18,6 +18,7 @@
package org.apache.streams.local.counters;
import net.jcip.annotations.ThreadSafe;
+import org.apache.streams.util.ComponentUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -40,14 +41,7 @@ public class DatumStatusCounter implements DatumStatusCounterMXBean{
public DatumStatusCounter(String id) {
this.failed = new AtomicLong(0);
this.passed = new AtomicLong(0);
- try {
- ObjectName name = new ObjectName(String.format(NAME_TEMPLATE, id));
- MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
- mbs.registerMBean(this, name);
- } catch (MalformedObjectNameException | InstanceAlreadyExistsException | MBeanRegistrationException | NotCompliantMBeanException e) {
- LOGGER.error("Failed to register MXBean : {}", e);
- throw new RuntimeException(e);
- }
+ ComponentUtils.registerLocalMBean(String.format(NAME_TEMPLATE, id), this);
}
public void incrementFailedCount() {
@@ -70,10 +64,11 @@ public class DatumStatusCounter implements DatumStatusCounterMXBean{
@Override
public double getFailRate() {
double failed = this.failed.get();
- if(failed == 0.0 && this.passed.get() == 0) {
+ double passed = this.passed.get();
+ if(failed == 0.0 && passed == 0) {
return 0.0;
}
- return failed / (this.passed.get() + failed);
+ return failed / (passed + failed);
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/0006a044/streams-runtimes/streams-runtime-local/src/main/java/org/apache/streams/local/counters/StreamsTaskCounter.java
----------------------------------------------------------------------
diff --git a/streams-runtimes/streams-runtime-local/src/main/java/org/apache/streams/local/counters/StreamsTaskCounter.java b/streams-runtimes/streams-runtime-local/src/main/java/org/apache/streams/local/counters/StreamsTaskCounter.java
index 8801df2..68c6364 100644
--- a/streams-runtimes/streams-runtime-local/src/main/java/org/apache/streams/local/counters/StreamsTaskCounter.java
+++ b/streams-runtimes/streams-runtime-local/src/main/java/org/apache/streams/local/counters/StreamsTaskCounter.java
@@ -19,6 +19,7 @@ package org.apache.streams.local.counters;
import net.jcip.annotations.GuardedBy;
import net.jcip.annotations.ThreadSafe;
+import org.apache.streams.util.ComponentUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -52,14 +53,7 @@ public class StreamsTaskCounter implements StreamsTaskCounterMXBean{
this.errors = new AtomicLong(0);
this.totalTime = new AtomicLong(0);
this.maxTime = -1;
- try {
- ObjectName name = new ObjectName(String.format(NAME_TEMPLATE, id));
- MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
- mbs.registerMBean(this, name);
- } catch (MalformedObjectNameException | InstanceAlreadyExistsException | MBeanRegistrationException | NotCompliantMBeanException e) {
- LOGGER.error("Failed to register MXBean : {}", e);
- throw new RuntimeException(e);
- }
+ ComponentUtils.registerLocalMBean(String.format(NAME_TEMPLATE, id), this);
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/0006a044/streams-util/src/main/java/org/apache/streams/util/ComponentUtils.java
----------------------------------------------------------------------
diff --git a/streams-util/src/main/java/org/apache/streams/util/ComponentUtils.java b/streams-util/src/main/java/org/apache/streams/util/ComponentUtils.java
index 9f3c480..bb65c4c 100644
--- a/streams-util/src/main/java/org/apache/streams/util/ComponentUtils.java
+++ b/streams-util/src/main/java/org/apache/streams/util/ComponentUtils.java
@@ -22,6 +22,8 @@ import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import javax.management.*;
+import java.lang.management.ManagementFactory;
import java.util.Queue;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.TimeUnit;
@@ -105,4 +107,20 @@ public class ComponentUtils {
}
}
+ /**
+ * Attempts to register an object with local MBeanServer. Throws runtime exception on errors.
+ * @param name name to register bean with
+ * @param mbean mbean to register
+ */
+ public static <V> void registerLocalMBean(String name, V mbean) {
+ try {
+ ObjectName objectName = new ObjectName(name);
+ MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
+ mbs.registerMBean(mbean, objectName);
+ } catch (MalformedObjectNameException | InstanceAlreadyExistsException | MBeanRegistrationException | NotCompliantMBeanException e) {
+ LOGGER.error("Failed to register MXBean : {}", e);
+ throw new RuntimeException(e);
+ }
+ }
+
}