NIFI-4: Updates to provide proper lifecycle support via annotations for controller services and reporting tasks
Project: http://git-wip-us.apache.org/repos/asf/incubator-nifi/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-nifi/commit/850396cc Tree: http://git-wip-us.apache.org/repos/asf/incubator-nifi/tree/850396cc Diff: http://git-wip-us.apache.org/repos/asf/incubator-nifi/diff/850396cc Branch: refs/heads/annotations Commit: 850396cc979173e2f20ab08004f1983024d66b00 Parents: d8e1f57 Author: Mark Payne <marka...@hotmail.com> Authored: Sun Jan 18 20:25:32 2015 -0500 Committer: Mark Payne <marka...@hotmail.com> Committed: Sun Jan 18 20:25:32 2015 -0500 ---------------------------------------------------------------------- .../org/apache/nifi/controller/ReportingTaskNode.java | 4 ++++ .../nifi/controller/service/ControllerServiceNode.java | 2 ++ .../java/org/apache/nifi/controller/FlowController.java | 12 ++++++++++++ .../controller/reporting/AbstractReportingTaskNode.java | 1 + .../service/StandardControllerServiceProvider.java | 1 - 5 files changed, 19 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/850396cc/nifi/nar-bundles/framework-bundle/framework/core-api/src/main/java/org/apache/nifi/controller/ReportingTaskNode.java ---------------------------------------------------------------------- diff --git a/nifi/nar-bundles/framework-bundle/framework/core-api/src/main/java/org/apache/nifi/controller/ReportingTaskNode.java b/nifi/nar-bundles/framework-bundle/framework/core-api/src/main/java/org/apache/nifi/controller/ReportingTaskNode.java index f456ddd..0db49bd 100644 --- a/nifi/nar-bundles/framework-bundle/framework/core-api/src/main/java/org/apache/nifi/controller/ReportingTaskNode.java +++ b/nifi/nar-bundles/framework-bundle/framework/core-api/src/main/java/org/apache/nifi/controller/ReportingTaskNode.java @@ -68,5 +68,9 @@ public interface ReportingTaskNode extends ConfiguredComponent { void setScheduledState(ScheduledState state); + void verifyCanStart(); + void verifyCanStop(); + void verifyCanDisable(); + void verifyCanEnable(); void verifyCanDelete(); } http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/850396cc/nifi/nar-bundles/framework-bundle/framework/core-api/src/main/java/org/apache/nifi/controller/service/ControllerServiceNode.java ---------------------------------------------------------------------- diff --git a/nifi/nar-bundles/framework-bundle/framework/core-api/src/main/java/org/apache/nifi/controller/service/ControllerServiceNode.java b/nifi/nar-bundles/framework-bundle/framework/core-api/src/main/java/org/apache/nifi/controller/service/ControllerServiceNode.java index dd4b49a..357d4de 100644 --- a/nifi/nar-bundles/framework-bundle/framework/core-api/src/main/java/org/apache/nifi/controller/service/ControllerServiceNode.java +++ b/nifi/nar-bundles/framework-bundle/framework/core-api/src/main/java/org/apache/nifi/controller/service/ControllerServiceNode.java @@ -40,5 +40,7 @@ public interface ControllerServiceNode extends ConfiguredComponent { void removeReference(ConfiguredComponent referringComponent); + void verifyCanEnable(); + void verifyCanDisable(); void verifyCanDelete(); } http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/850396cc/nifi/nar-bundles/framework-bundle/framework/core/src/main/java/org/apache/nifi/controller/FlowController.java ---------------------------------------------------------------------- diff --git a/nifi/nar-bundles/framework-bundle/framework/core/src/main/java/org/apache/nifi/controller/FlowController.java b/nifi/nar-bundles/framework-bundle/framework/core/src/main/java/org/apache/nifi/controller/FlowController.java index 1d90a3a..1b7a3c0 100644 --- a/nifi/nar-bundles/framework-bundle/framework/core/src/main/java/org/apache/nifi/controller/FlowController.java +++ b/nifi/nar-bundles/framework-bundle/framework/core/src/main/java/org/apache/nifi/controller/FlowController.java @@ -2522,6 +2522,8 @@ public class FlowController implements EventAccess, ControllerServiceProvider, H throw new IllegalStateException("Cannot start reporting task " + reportingTaskNode + " because the controller is terminated"); } + reportingTaskNode.verifyCanStart(); + processScheduler.schedule(reportingTaskNode); } @@ -2530,6 +2532,8 @@ public class FlowController implements EventAccess, ControllerServiceProvider, H return; } + reportingTaskNode.verifyCanStop(); + processScheduler.unschedule(reportingTaskNode); } @@ -2554,18 +2558,26 @@ public class FlowController implements EventAccess, ControllerServiceProvider, H public void enableReportingTask(final ReportingTaskNode reportingTaskNode) { + reportingTaskNode.verifyCanEnable(); + processScheduler.enableReportingTask(reportingTaskNode); } public void disableReportingTask(final ReportingTaskNode reportingTaskNode) { + reportingTaskNode.verifyCanDisable(); + processScheduler.disableReportingTask(reportingTaskNode); } public void enableControllerService(final ControllerServiceNode serviceNode) { + serviceNode.verifyCanEnable(); + processScheduler.enableControllerService(serviceNode); } public void disableControllerService(final ControllerServiceNode serviceNode) { + serviceNode.verifyCanDisable(); + processScheduler.disableControllerService(serviceNode); } http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/850396cc/nifi/nar-bundles/framework-bundle/framework/core/src/main/java/org/apache/nifi/controller/reporting/AbstractReportingTaskNode.java ---------------------------------------------------------------------- diff --git a/nifi/nar-bundles/framework-bundle/framework/core/src/main/java/org/apache/nifi/controller/reporting/AbstractReportingTaskNode.java b/nifi/nar-bundles/framework-bundle/framework/core/src/main/java/org/apache/nifi/controller/reporting/AbstractReportingTaskNode.java index 8b10a84..f299781 100644 --- a/nifi/nar-bundles/framework-bundle/framework/core/src/main/java/org/apache/nifi/controller/reporting/AbstractReportingTaskNode.java +++ b/nifi/nar-bundles/framework-bundle/framework/core/src/main/java/org/apache/nifi/controller/reporting/AbstractReportingTaskNode.java @@ -159,4 +159,5 @@ public abstract class AbstractReportingTaskNode extends AbstractConfiguredCompon throw new IllegalStateException(this + " is running"); } } + } http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/850396cc/nifi/nar-bundles/framework-bundle/framework/core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceProvider.java ---------------------------------------------------------------------- diff --git a/nifi/nar-bundles/framework-bundle/framework/core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceProvider.java b/nifi/nar-bundles/framework-bundle/framework/core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceProvider.java index bf0039a..1deed59 100644 --- a/nifi/nar-bundles/framework-bundle/framework/core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceProvider.java +++ b/nifi/nar-bundles/framework-bundle/framework/core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceProvider.java @@ -34,7 +34,6 @@ import org.apache.nifi.annotation.lifecycle.OnAdded; import org.apache.nifi.annotation.lifecycle.OnRemoved; import org.apache.nifi.controller.ConfigurationContext; import org.apache.nifi.controller.ControllerService; -import org.apache.nifi.controller.ReportingTaskNode; import org.apache.nifi.controller.ValidationContextFactory; import org.apache.nifi.controller.exception.ControllerServiceAlreadyExistsException; import org.apache.nifi.controller.exception.ControllerServiceNotFoundException;