This is an automated email from the ASF dual-hosted git repository. mattyb149 pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/nifi.git
commit 4b66299cf656e3a835d9926215a847607ec2397e Author: Matthew Burgess <[email protected]> AuthorDate: Mon Apr 25 16:15:23 2022 -0400 NIFI-9944: Fixed issue with using modules in InvokeScriptedProcessor --- .../processors/script/InvokeScriptedProcessor.java | 4 ---- .../org/apache/nifi/script/ScriptRunnerFactory.java | 2 +- .../nifi/processors/script/TestInvokeJavascript.java | 8 ++++---- .../src/test/resources/jar/commons-math3-3.2.jar | Bin 0 -> 1692782 bytes .../src/test/resources/javascript/test_reader.js | 4 +++- 5 files changed, 8 insertions(+), 10 deletions(-) diff --git a/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/processors/script/InvokeScriptedProcessor.java b/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/processors/script/InvokeScriptedProcessor.java index 93a9984c83..8c89233d88 100644 --- a/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/processors/script/InvokeScriptedProcessor.java +++ b/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/processors/script/InvokeScriptedProcessor.java @@ -262,10 +262,6 @@ public class InvokeScriptedProcessor extends AbstractSessionFactoryProcessor { scriptNeedsReload.set(true); scriptRunner = null; //reset engine. This happens only when a processor is stopped, so there won't be any performance impact in run-time. - if (isConfigurationRestored()) { - // Once the configuration has been restored, each call to onPropertyModified() is due to a change made after the processor was loaded, so reload the script - setup(); - } } else if (instance != null) { // If the script provides a Processor, call its onPropertyModified() method try { diff --git a/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/script/ScriptRunnerFactory.java b/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/script/ScriptRunnerFactory.java index 1b90851a67..6bd2fe6aa9 100644 --- a/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/script/ScriptRunnerFactory.java +++ b/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/script/ScriptRunnerFactory.java @@ -79,7 +79,7 @@ public class ScriptRunnerFactory { if (!"Clojure".equals(scriptEngineName) && !"Groovy".equals(scriptEngineName) - && "ECMAScript".equals(scriptEngineName)) { + && !"ECMAScript".equals(scriptEngineName)) { return new URL[0]; } diff --git a/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/test/java/org/apache/nifi/processors/script/TestInvokeJavascript.java b/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/test/java/org/apache/nifi/processors/script/TestInvokeJavascript.java index 8c4eda2cb5..c56612bd2a 100644 --- a/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/test/java/org/apache/nifi/processors/script/TestInvokeJavascript.java +++ b/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/test/java/org/apache/nifi/processors/script/TestInvokeJavascript.java @@ -58,7 +58,7 @@ public class TestInvokeJavascript extends BaseScriptTest { public void testReadFlowFileContentAndStoreInFlowFileAttribute() { runner.setProperty(scriptingComponent.getScriptingComponentHelper().SCRIPT_ENGINE, "ECMAScript"); runner.setProperty(ScriptingComponentUtils.SCRIPT_FILE, "target/test/resources/javascript/test_reader.js"); - runner.setProperty(ScriptingComponentUtils.MODULES, "target/test/resources/javascript"); + runner.setProperty(ScriptingComponentUtils.MODULES, "target/test/resources/jar"); runner.assertValid(); runner.enqueue("test content".getBytes(StandardCharsets.UTF_8)); @@ -86,7 +86,7 @@ public class TestInvokeJavascript extends BaseScriptTest { context.setProperty(scriptingComponent.getScriptingComponentHelper().SCRIPT_ENGINE, "ECMAScript"); context.setProperty(ScriptingComponentUtils.SCRIPT_FILE, "target/test/resources/javascript/test_reader.js"); - context.setProperty(ScriptingComponentUtils.MODULES, "target/test/resources/javascript"); + context.setProperty(ScriptingComponentUtils.MODULES, "target/test/resources/jar"); // State Manger is unused, and a null reference is specified processor.customValidate(new MockValidationContext(context)); processor.setup(context); @@ -112,7 +112,7 @@ public class TestInvokeJavascript extends BaseScriptTest { * @Any error encountered while testing */ @Test - public void testScriptDefinedRelationship() { + public void testScriptDefinedRelationshipWithExternalJar() { InvokeScriptedProcessor processor = new InvokeScriptedProcessor(); MockProcessContext context = new MockProcessContext(processor); MockProcessorInitializationContext initContext = new MockProcessorInitializationContext(processor, context); @@ -121,7 +121,7 @@ public class TestInvokeJavascript extends BaseScriptTest { context.setProperty(scriptingComponent.getScriptingComponentHelper().SCRIPT_ENGINE, "ECMAScript"); context.setProperty(ScriptingComponentUtils.SCRIPT_FILE, "target/test/resources/javascript/test_reader.js"); - context.setProperty(ScriptingComponentUtils.MODULES, "target/test/resources/javascript"); + context.setProperty(ScriptingComponentUtils.MODULES, "target/test/resources/jar"); // State Manger is unused, and a null reference is specified processor.customValidate(new MockValidationContext(context)); diff --git a/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/test/resources/jar/commons-math3-3.2.jar b/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/test/resources/jar/commons-math3-3.2.jar new file mode 100644 index 0000000000..f8b7db295b Binary files /dev/null and b/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/test/resources/jar/commons-math3-3.2.jar differ diff --git a/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/test/resources/javascript/test_reader.js b/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/test/resources/javascript/test_reader.js index 44d9530d31..f82a31a569 100644 --- a/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/test/resources/javascript/test_reader.js +++ b/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/test/resources/javascript/test_reader.js @@ -27,6 +27,7 @@ var Relationship = Java.type("org.apache.nifi.processor.Relationship"); var PropertyDescriptor = Java.type("org.apache.nifi.components.PropertyDescriptor"); var StandardValidators = Java.type("org.apache.nifi.processor.util.StandardValidators"); var StreamUtils = Java.type("org.apache.nifi.stream.io.StreamUtils"); +var Primes = Java.type("org.apache.commons.math3.primes.Primes") var REL_TEST = new Relationship.Builder() .name("test") @@ -72,7 +73,8 @@ var processor = new Object() { this.logger.info("Read content={}", [content]); - flowFile = session.putAttribute(flowFile, "from-content", content) + flowFile = session.putAttribute(flowFile, "from-content", content); + flowFile = session.putAttribute(flowFile, "is3Prime", Primes.isPrime(3)) // transfer session.transfer(flowFile, REL_TEST) session.commitAsync()
