You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by ma...@apache.org on 2022/04/27 13:53:43 UTC
[nifi] 01/02: NIFI-9944: Fixed issue with using modules in InvokeScriptedProcessor
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 <ma...@apache.org>
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()