Michael Wagner created NIFI-6543:
------------------------------------

             Summary: Add onUnscheduled support for ExecuteJavaProcessor
                 Key: NIFI-6543
                 URL: https://issues.apache.org/jira/browse/NIFI-6543
             Project: Apache NiFi
          Issue Type: Improvement
          Components: Extensions
            Reporter: Michael Wagner


The ExecuteGroovyScript processor is great, and it is great to have the support 
for onStart and onStop methods.  However, I often find myself wishing there 
were also a way to take some action when the processor is _unscheduled_.  That 
would let the groovy code to make decisions about whether or not to get() 
another flowfile.  

 

I think it should be as easy as 
{code:java}
diff --git 
a/nifi-nar-bundles/nifi-groovyx-bundle/nifi-groovyx-processors/src/main/java/org/apache/nifi/processors/groovyx/ExecuteGroovyScript.java
 
b/nifi-nar-bundles/nifi-groovyx-bundle/nifi-groovyx-processors/src/main/java/org/apache/nifi/processors/groovyx/ExecuteGroovyScript.java
index c35ab392d..eead4bc07 100644
--- 
a/nifi-nar-bundles/nifi-groovyx-bundle/nifi-groovyx-processors/src/main/java/org/apache/nifi/processors/groovyx/ExecuteGroovyScript.java
+++ 
b/nifi-nar-bundles/nifi-groovyx-bundle/nifi-groovyx-processors/src/main/java/org/apache/nifi/processors/groovyx/ExecuteGroovyScript.java
@@ -27,6 +27,7 @@ import 
org.apache.nifi.annotation.documentation.CapabilityDescription;
 import org.apache.nifi.annotation.documentation.SeeAlso;
 import org.apache.nifi.annotation.documentation.Tags;
 import org.apache.nifi.annotation.lifecycle.OnScheduled;
+import org.apache.nifi.annotation.lifecycle.OnUnscheduled;
 import org.apache.nifi.annotation.lifecycle.OnStopped;
 import org.apache.nifi.components.PropertyDescriptor;
 import org.apache.nifi.components.RequiredPermission;
@@ -264,6 +265,14 @@ public class ExecuteGroovyScript extends AbstractProcessor 
{
             throw new ProcessException("onStart failed: " + t, t);
         }
     }
+    @OnUnscheduled
+    public void onUnscheduled(final ProcessContext context) {
+        try {
+            callScriptStatic("onUnscheduled", context);
+        } catch (Throwable t) {
+            throw new ProcessException("onUnscheduled failed: " + t, t);
+        }
+    }
 
     @OnStopped
     public void onStopped(final ProcessContext context) {
 {code}
But this is my first attempt to change Nifi; I defer to others.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

Reply via email to