This is an automated email from the ASF dual-hosted git repository.

mattyb149 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nifi.git


The following commit(s) were added to refs/heads/master by this push:
     new fef41b3  NIFI-5995 Updated ScriptedLookupService documentation to warn 
about Jython and removed Jython from the list of supported script engines for 
it because it's broken now.
fef41b3 is described below

commit fef41b302216934886817fd9335ea4b5d62c4c1e
Author: Mike Thomsen <[email protected]>
AuthorDate: Fri Feb 1 10:53:30 2019 -0500

    NIFI-5995 Updated ScriptedLookupService documentation to warn about Jython 
and removed Jython from the list of supported script engines for it because 
it's broken now.
    
    Signed-off-by: Matthew Burgess <[email protected]>
    
    This closes #3287
---
 .../nifi/lookup/script/ScriptedLookupService.java    | 20 ++++++++++++++++++--
 .../apache/nifi/script/ScriptingComponentHelper.java |  6 ++++++
 2 files changed, 24 insertions(+), 2 deletions(-)

diff --git 
a/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/lookup/script/ScriptedLookupService.java
 
b/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/lookup/script/ScriptedLookupService.java
index 25ac39a..956a9ce 100644
--- 
a/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/lookup/script/ScriptedLookupService.java
+++ 
b/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/lookup/script/ScriptedLookupService.java
@@ -22,6 +22,7 @@ import 
org.apache.nifi.annotation.documentation.CapabilityDescription;
 import org.apache.nifi.annotation.documentation.Tags;
 import org.apache.nifi.annotation.lifecycle.OnDisabled;
 import org.apache.nifi.annotation.lifecycle.OnEnabled;
+import org.apache.nifi.components.AllowableValue;
 import org.apache.nifi.components.ConfigurableComponent;
 import org.apache.nifi.components.PropertyDescriptor;
 import org.apache.nifi.components.RequiredPermission;
@@ -53,12 +54,15 @@ import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicReference;
+import java.util.stream.Collectors;
 
 /**
  * A Controller service that allows the user to script the lookup operation to 
be performed (by LookupRecord, e.g.)
  */
 @Tags({"lookup", "record", "script", "invoke", "groovy", "python", "jython", 
"jruby", "ruby", "javascript", "js", "lua", "luaj"})
-@CapabilityDescription("Allows the user to provide a scripted LookupService 
instance in order to enrich records from an incoming flow file.")
+@CapabilityDescription("Allows the user to provide a scripted LookupService 
instance in order to enrich records from " +
+        "an incoming flow file. Please note, that due to a bug in Jython that 
remains unresolved, it is not possible to use " +
+        "Jython to write a script for this service in Python.")
 @Restricted(
         restrictions = {
                 @Restriction(
@@ -116,7 +120,19 @@ public class ScriptedLookupService extends 
AbstractScriptedControllerService imp
             }
         }
         List<PropertyDescriptor> supportedPropertyDescriptors = new 
ArrayList<>();
-        
supportedPropertyDescriptors.addAll(scriptingComponentHelper.getDescriptors());
+        List<PropertyDescriptor> _temp = new ArrayList<>();
+        _temp.addAll(scriptingComponentHelper.getDescriptors());
+        _temp.remove(scriptingComponentHelper.SCRIPT_ENGINE);
+
+        PropertyDescriptor.Builder jythonLessEngineProp = new 
PropertyDescriptor
+            
.Builder().fromPropertyDescriptor(scriptingComponentHelper.SCRIPT_ENGINE);
+        List<AllowableValue> filtered = 
scriptingComponentHelper.getScriptEngineAllowableValues()
+            .stream().filter(allowableValue -> 
!allowableValue.getValue().contains("ython"))
+            .collect(Collectors.toList());
+        jythonLessEngineProp.allowableValues(filtered.toArray(new 
AllowableValue[filtered.size()]));
+
+        supportedPropertyDescriptors.add(jythonLessEngineProp.build());
+        supportedPropertyDescriptors.addAll(_temp);
 
         final ConfigurableComponent instance = lookupService.get();
         if (instance != null) {
diff --git 
a/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/script/ScriptingComponentHelper.java
 
b/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/script/ScriptingComponentHelper.java
index 831d305..dc9255e 100644
--- 
a/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/script/ScriptingComponentHelper.java
+++ 
b/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/script/ScriptingComponentHelper.java
@@ -70,6 +70,7 @@ public class ScriptingComponentHelper {
     private String scriptBody;
     private String[] modules;
     private List<PropertyDescriptor> descriptors;
+    private List<AllowableValue> engineAllowableValues;
 
     public BlockingQueue<ScriptEngine> engineQ = null;
 
@@ -109,6 +110,10 @@ public class ScriptingComponentHelper {
         return descriptors;
     }
 
+    public List<AllowableValue> getScriptEngineAllowableValues() {
+        return engineAllowableValues;
+    }
+
     public void setDescriptors(List<PropertyDescriptor> descriptors) {
         this.descriptors = descriptors;
     }
@@ -167,6 +172,7 @@ public class ScriptingComponentHelper {
                 return o1.getValue().compareTo(o2.getValue());
             });
 
+            engineAllowableValues = engineList;
             AllowableValue[] engines = engineList.toArray(new 
AllowableValue[engineList.size()]);
 
             SCRIPT_ENGINE = new PropertyDescriptor.Builder()

Reply via email to