Repository: nifi-minifi Updated Branches: refs/heads/master 35dfa690c -> 4cf2cea3e
MINIFI-170 - Changing FlowStatus report to be JSON based This closes #65. Signed-off-by: Aldrin Piri <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/nifi-minifi/repo Commit: http://git-wip-us.apache.org/repos/asf/nifi-minifi/commit/4cf2cea3 Tree: http://git-wip-us.apache.org/repos/asf/nifi-minifi/tree/4cf2cea3 Diff: http://git-wip-us.apache.org/repos/asf/nifi-minifi/diff/4cf2cea3 Branch: refs/heads/master Commit: 4cf2cea3e201b136fdf7fd83c453b4401d20cb99 Parents: 35dfa69 Author: Andrew Psaltis <[email protected]> Authored: Tue Dec 13 12:15:40 2016 -0500 Committer: Aldrin Piri <[email protected]> Committed: Fri Dec 16 16:23:41 2016 -0500 ---------------------------------------------------------------------- minifi-commons/minifi-utils/pom.xml | 7 +++++- .../minifi/commons/status/FlowStatusReport.java | 26 +++++++++++++++++++- .../src/main/markdown/System_Admin_Guide.md | 3 +-- 3 files changed, 32 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/4cf2cea3/minifi-commons/minifi-utils/pom.xml ---------------------------------------------------------------------- diff --git a/minifi-commons/minifi-utils/pom.xml b/minifi-commons/minifi-utils/pom.xml index a266a3e..b846a7e 100644 --- a/minifi-commons/minifi-utils/pom.xml +++ b/minifi-commons/minifi-utils/pom.xml @@ -23,6 +23,11 @@ <artifactId>minifi-utils</artifactId> <packaging>jar</packaging> - + <dependencies> + <dependency> + <groupId>com.fasterxml.jackson.core</groupId> + <artifactId>jackson-databind</artifactId> + </dependency> + </dependencies> </project> http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/4cf2cea3/minifi-commons/minifi-utils/src/main/java/org/apache/nifi/minifi/commons/status/FlowStatusReport.java ---------------------------------------------------------------------- diff --git a/minifi-commons/minifi-utils/src/main/java/org/apache/nifi/minifi/commons/status/FlowStatusReport.java b/minifi-commons/minifi-utils/src/main/java/org/apache/nifi/minifi/commons/status/FlowStatusReport.java index d2b6851..fa123fb 100644 --- a/minifi-commons/minifi-utils/src/main/java/org/apache/nifi/minifi/commons/status/FlowStatusReport.java +++ b/minifi-commons/minifi-utils/src/main/java/org/apache/nifi/minifi/commons/status/FlowStatusReport.java @@ -17,6 +17,8 @@ package org.apache.nifi.minifi.commons.status; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.nifi.minifi.commons.status.connection.ConnectionStatusBean; import org.apache.nifi.minifi.commons.status.controllerservice.ControllerServiceStatus; import org.apache.nifi.minifi.commons.status.instance.InstanceStatus; @@ -25,6 +27,8 @@ import org.apache.nifi.minifi.commons.status.reportingTask.ReportingTaskStatus; import org.apache.nifi.minifi.commons.status.rpg.RemoteProcessGroupStatusBean; import org.apache.nifi.minifi.commons.status.system.SystemDiagnosticsStatus; +import java.io.IOException; +import java.io.StringWriter; import java.util.List; public class FlowStatusReport implements java.io.Serializable { @@ -36,6 +40,7 @@ public class FlowStatusReport implements java.io.Serializable { private SystemDiagnosticsStatus systemDiagnosticsStatus; private List<ReportingTaskStatus> reportingTaskStatusList; private List<String> errorsGeneratingReport; + private static final ObjectMapper objectMapper = new ObjectMapper(); public FlowStatusReport() { } @@ -138,7 +143,24 @@ public class FlowStatusReport implements java.io.Serializable { @Override public String toString() { - return "FlowStatusReport{" + + + StringWriter jsonString = new StringWriter(); + try(JsonGenerator generator = objectMapper.getFactory().createGenerator(jsonString)){ + generator.writeStartObject(); + generator.writeObjectField("controllerServiceStatusList", controllerServiceStatusList); + generator.writeObjectField("processorStatusList", processorStatusList); + generator.writeObjectField("connectionStatusList", connectionStatusList); + generator.writeObjectField("remoteProcessGroupStatusList", remoteProcessGroupStatusList); + generator.writeObjectField("instanceStatus", instanceStatus); + generator.writeObjectField("systemDiagnosticsStatus", systemDiagnosticsStatus); + generator.writeObjectField("reportingTaskStatusList", reportingTaskStatusList); + generator.writeObjectField("errorsGeneratingReport", errorsGeneratingReport); + generator.writeEndObject(); + generator.close(); + } catch (IOException e) { + //this should not occur since we are using a StringWriter, however, in the event it does. Generate + //the old style report + return "FlowStatusReport{" + "controllerServiceStatusList=" + controllerServiceStatusList + ", processorStatusList=" + processorStatusList + ", connectionStatusList=" + connectionStatusList + @@ -148,5 +170,7 @@ public class FlowStatusReport implements java.io.Serializable { ", reportingTaskStatusList=" + reportingTaskStatusList + ", errorsGeneratingReport=" + errorsGeneratingReport + '}'; + } + return jsonString.toString(); } } http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/4cf2cea3/minifi-docs/src/main/markdown/System_Admin_Guide.md ---------------------------------------------------------------------- diff --git a/minifi-docs/src/main/markdown/System_Admin_Guide.md b/minifi-docs/src/main/markdown/System_Admin_Guide.md index a4e0f31..efc23b4 100644 --- a/minifi-docs/src/main/markdown/System_Admin_Guide.md +++ b/minifi-docs/src/main/markdown/System_Admin_Guide.md @@ -314,8 +314,7 @@ MiNiFi home: /Users/user/projects/nifi-minifi/minifi-assembly/target/minifi-0.0. Bootstrap Config File: /Users/user/projects/nifi-minifi/minifi-assembly/target/minifi-0.0.1-SNAPSHOT-bin/minifi-0.0.1-SNAPSHOT/conf/bootstrap.conf -FlowStatusReport{controllerServiceStatusList=null, processorStatusList=[{name='TailFile', processorHealth={runStatus='Running', hasBulletins=false, validationErrorList=[]}, processorStats=null, -bulletinList=null}], connectionStatusList=null, remoteProcessGroupStatusList=null, instanceStatus=null, systemDiagnosticsStatus=null, reportingTaskStatusList=null, errorsGeneratingReport=[]} +{"controllerServiceStatusList":null,"processorStatusList":[{"name":"Connection Diagnostics","processorHealth":{"runStatus":"Running","hasBulletins":false,"validationErrorList":[]},"processorStats":null,"bulletinList":null},{"name":"UpdateAttribute","processorHealth":{"runStatus":"Running","hasBulletins":false,"validationErrorList":[]},"processorStats":null,"bulletinList":null},{"name":"Processor Diagnostics","processorHealth":{"runStatus":"Running","hasBulletins":false,"validationErrorList":[]},"processorStats":null,"bulletinList":null},{"name":"System Diagnostics","processorHealth":{"runStatus":"Running","hasBulletins":false,"validationErrorList":[]},"processorStats":null,"bulletinList":null},{"name":"GenerateFlowFile","processorHealth":{"runStatus":"Running","hasBulletins":false,"validationErrorList":[]},"processorStats":null,"bulletinList":null}],"connectionStatusList":null,"remoteProcessGroupStatusList":null,"instanceStatus":null,"systemDiagnosticsStatus":null,"reportingTaskStat usList":null,"errorsGeneratingReport":[]} ``` # Periodic Status Reporters
