From 6022373914ee05ca7b97709fcd51f9b233541958 Mon Sep 17 00:00:00 2001 From: Pierre Villard Date: Thu, 25 Jan 2018 16:29:10 +0100 Subject: [PATCH] NIFI-4815 - Add EL support to ExecuteProcess --- .../apache/nifi/processors/standard/ExecuteProcess.java | 8 ++++---- .../nifi/processors/standard/TestExecuteProcess.java | 7 ++++++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExecuteProcess.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExecuteProcess.java index a7c41fed751e..c1ab946e8b89 100644 --- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExecuteProcess.java +++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExecuteProcess.java @@ -85,7 +85,7 @@ public class ExecuteProcess extends AbstractProcessor { .name("Command") .description("Specifies the command to be executed; if just the name of an executable is provided, it must be in the user's environment PATH.") .required(true) - .expressionLanguageSupported(false) + .expressionLanguageSupported(true) .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) .build(); @@ -100,7 +100,7 @@ public class ExecuteProcess extends AbstractProcessor { public static final PropertyDescriptor WORKING_DIR = new PropertyDescriptor.Builder() .name("Working Directory") .description("The directory to use as the current working directory when executing the command") - .expressionLanguageSupported(false) + .expressionLanguageSupported(true) .addValidator(StandardValidators.createDirectoryExistsValidator(false, true)) .required(false) .build(); @@ -213,7 +213,7 @@ public void onTrigger(final ProcessContext context, final ProcessSession session final Long batchNanos = context.getProperty(BATCH_DURATION).asTimePeriod(TimeUnit.NANOSECONDS); - final String command = context.getProperty(COMMAND).getValue(); + final String command = context.getProperty(COMMAND).evaluateAttributeExpressions().getValue(); final String arguments = context.getProperty(COMMAND_ARGUMENTS).isSet() ? context.getProperty(COMMAND_ARGUMENTS).evaluateAttributeExpressions().getValue() : null; @@ -311,7 +311,7 @@ protected Future launchProcess(final ProcessContext context, final List flowFiles = runner.getFlowFilesForRelationship(ExecuteProcess.REL_SUCCESS); + if(!flowFiles.isEmpty()) { + assertTrue(flowFiles.get(0).getAttribute("command").equals("ping")); + } } // @Test