ACCUMULO-3167 Wire up monitor to Mini cluster control for ReadWriteIT
Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/5187012e Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/5187012e Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/5187012e Branch: refs/heads/metrics2 Commit: 5187012e24512f9b4d2bc8c2ba75ee33386e92d8 Parents: 9bf41fd Author: Josh Elser <els...@apache.org> Authored: Sat Nov 22 12:49:46 2014 -0500 Committer: Josh Elser <els...@apache.org> Committed: Mon Nov 24 18:08:51 2014 -0500 ---------------------------------------------------------------------- minicluster/pom.xml | 4 ++++ .../impl/MiniAccumuloClusterControl.java | 22 +++++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/accumulo/blob/5187012e/minicluster/pom.xml ---------------------------------------------------------------------- diff --git a/minicluster/pom.xml b/minicluster/pom.xml index 5ad531f..b7bc889 100644 --- a/minicluster/pom.xml +++ b/minicluster/pom.xml @@ -60,6 +60,10 @@ </dependency> <dependency> <groupId>org.apache.accumulo</groupId> + <artifactId>accumulo-monitor</artifactId> + </dependency> + <dependency> + <groupId>org.apache.accumulo</groupId> <artifactId>accumulo-server-base</artifactId> </dependency> <dependency> http://git-wip-us.apache.org/repos/asf/accumulo/blob/5187012e/minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloClusterControl.java ---------------------------------------------------------------------- diff --git a/minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloClusterControl.java b/minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloClusterControl.java index cd1a923..6e7d073 100644 --- a/minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloClusterControl.java +++ b/minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloClusterControl.java @@ -28,6 +28,7 @@ import org.apache.accumulo.cluster.ClusterControl; import org.apache.accumulo.gc.SimpleGarbageCollector; import org.apache.accumulo.master.Master; import org.apache.accumulo.minicluster.ServerType; +import org.apache.accumulo.monitor.Monitor; import org.apache.accumulo.server.util.Admin; import org.apache.accumulo.tserver.TabletServer; import org.apache.log4j.Logger; @@ -46,6 +47,7 @@ public class MiniAccumuloClusterControl implements ClusterControl { Process zooKeeperProcess = null; Process masterProcess = null; Process gcProcess = null; + Process monitor = null; List<Process> tabletServerProcesses = Collections.synchronizedList(new ArrayList<Process>()); public MiniAccumuloClusterControl(MiniAccumuloClusterImpl cluster) { @@ -115,6 +117,10 @@ public class MiniAccumuloClusterControl implements ClusterControl { gcProcess = cluster._exec(SimpleGarbageCollector.class, server); } break; + case MONITOR: + if (null == monitor) { + monitor = cluster._exec(Monitor.class, server); + } // TODO Enabled Monitor and Tracer for proper mini-ness default: throw new UnsupportedOperationException("Cannot start process for " + server); @@ -197,7 +203,21 @@ public class MiniAccumuloClusterControl implements ClusterControl { tabletServerProcesses.clear(); } } - + } + break; + case MONITOR: + if (monitor != null) { + try { + cluster.stopProcessWithTimeout(monitor, 30, TimeUnit.SECONDS); + } catch (ExecutionException e) { + log.warn("Monitor did not fully stop after 30 seconds", e); + } catch (TimeoutException e) { + log.warn("Monitor did not fully stop after 30 seconds", e); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } finally { + monitor = null; + } } break; default: