diff --git a/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/pom.xml b/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/pom.xml index 1808a39b6e..6cf490f7db 100644 --- a/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/pom.xml +++ b/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/pom.xml @@ -163,6 +163,32 @@ + + org.apache.maven.plugins + maven-dependency-plugin + 3.3.0 + + + copy + process-test-resources + + copy + + + + + org.apache.commons + commons-math3 + 3.6.1 + jar + true + ${project.build.testOutputDirectory}/jar + + + + + + 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 c56612bd2a..6955c57349 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 @@ -20,9 +20,6 @@ import org.apache.nifi.components.PropertyDescriptor; import org.apache.nifi.processor.Relationship; import org.apache.nifi.script.ScriptingComponentUtils; import org.apache.nifi.util.MockFlowFile; -import org.apache.nifi.util.MockProcessContext; -import org.apache.nifi.util.MockProcessorInitializationContext; -import org.apache.nifi.util.MockValidationContext; import org.apache.nifi.util.TestRunner; import org.apache.nifi.util.TestRunners; import org.junit.jupiter.api.BeforeEach; @@ -30,8 +27,13 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.DisabledForJreRange; import org.junit.jupiter.api.condition.JRE; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; import java.nio.charset.StandardCharsets; +import java.nio.file.Paths; import java.util.List; +import java.util.Objects; import java.util.Set; import static org.junit.jupiter.api.Assertions.assertFalse; @@ -56,9 +58,7 @@ public class TestInvokeJavascript extends BaseScriptTest { */ @Test 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/jar"); + setScriptProperties(); runner.assertValid(); runner.enqueue("test content".getBytes(StandardCharsets.UTF_8)); @@ -78,20 +78,10 @@ public class TestInvokeJavascript extends BaseScriptTest { */ @Test public void testScriptDefinedAttribute() { - InvokeScriptedProcessor processor = new InvokeScriptedProcessor(); - MockProcessContext context = new MockProcessContext(processor); - MockProcessorInitializationContext initContext = new MockProcessorInitializationContext(processor, context); + setScriptProperties(); + runner.assertValid(); - processor.initialize(initContext); - - 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/jar"); - // State Manger is unused, and a null reference is specified - processor.customValidate(new MockValidationContext(context)); - processor.setup(context); - - List descriptors = processor.getSupportedPropertyDescriptors(); + List descriptors = runner.getProcessor().getPropertyDescriptors(); assertNotNull(descriptors); assertTrue(descriptors.size() > 0); boolean found = false; @@ -113,21 +103,10 @@ public class TestInvokeJavascript extends BaseScriptTest { */ @Test public void testScriptDefinedRelationshipWithExternalJar() { - InvokeScriptedProcessor processor = new InvokeScriptedProcessor(); - MockProcessContext context = new MockProcessContext(processor); - MockProcessorInitializationContext initContext = new MockProcessorInitializationContext(processor, context); + setScriptProperties(); + runner.assertValid(); - processor.initialize(initContext); - - 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/jar"); - - // State Manger is unused, and a null reference is specified - processor.customValidate(new MockValidationContext(context)); - processor.setup(context); - - Set relationships = processor.getRelationships(); + Set relationships = runner.getProcessor().getRelationships(); assertNotNull(relationships); assertTrue(relationships.size() > 0); boolean found = false; @@ -188,4 +167,21 @@ public class TestInvokeJavascript extends BaseScriptTest { runner.setProperty(ScriptingComponentUtils.SCRIPT_BODY, ""); runner.assertNotValid(); } + + private void setScriptProperties() { + runner.setProperty(scriptingComponent.getScriptingComponentHelper().SCRIPT_ENGINE, "ECMAScript"); + runner.setProperty(ScriptingComponentUtils.SCRIPT_FILE, getResource("/javascript/test_reader.js")); + runner.setProperty(ScriptingComponentUtils.MODULES, getResource("/jar")); + } + + private String getResource(final String resourcePath) { + final URL resourceUrl = Objects.requireNonNull(TestInvokeJavascript.class.getResource(resourcePath), resourcePath); + final URI resourceUri; + try { + resourceUri = resourceUrl.toURI(); + } catch (final URISyntaxException e) { + throw new RuntimeException(e); + } + return Paths.get(resourceUri).toString(); + } } 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 deleted file mode 100644 index f8b7db295b..0000000000 Binary files a/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/test/resources/jar/commons-math3-3.2.jar and /dev/null differ