public class org.apache.nifi.processors.standard.ExecuteProcess extends org.apache.nifi.processor.AbstractProcessor
{
static final java.lang.String ATTRIBUTE_COMMAND;
static final java.lang.String ATTRIBUTE_COMMAND_ARGS;
public static final org.apache.nifi.components.PropertyDescriptor COMMAND;
public static final org.apache.nifi.components.PropertyDescriptor COMMAND_ARGUMENTS;
public static final org.apache.nifi.components.PropertyDescriptor WORKING_DIR;
public static final org.apache.nifi.components.PropertyDescriptor BATCH_DURATION;
public static final org.apache.nifi.components.PropertyDescriptor REDIRECT_ERROR_STREAM;
private static final org.apache.nifi.components.Validator characterValidator;
static final org.apache.nifi.components.PropertyDescriptor ARG_DELIMITER;
public static final org.apache.nifi.processor.Relationship REL_SUCCESS;
private volatile java.lang.Process externalProcess;
private volatile java.util.concurrent.ExecutorService executor;
private java.util.concurrent.Future longRunningProcess;
private java.util.concurrent.atomic.AtomicBoolean failure;
private volatile org.apache.nifi.processors.standard.ExecuteProcess$ProxyOutputStream proxyOut;
public void <init>()
{
java.util.concurrent.atomic.AtomicBoolean v;
org.apache.nifi.processors.standard.ExecuteProcess v;
v := @this: org.apache.nifi.processors.standard.ExecuteProcess;
specialinvoke v.<org.apache.nifi.processor.AbstractProcessor: void <init>()>();
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>(boolean)>(0);
v.<org.apache.nifi.processors.standard.ExecuteProcess: java.util.concurrent.atomic.AtomicBoolean failure> = v;
return;
}
public java.util.Set getRelationships()
{
java.util.Set v;
org.apache.nifi.processors.standard.ExecuteProcess v;
org.apache.nifi.processor.Relationship v;
v := @this: org.apache.nifi.processors.standard.ExecuteProcess;
v = <org.apache.nifi.processors.standard.ExecuteProcess: org.apache.nifi.processor.Relationship REL_SUCCESS>;
v = staticinvoke <java.util.Collections: java.util.Set singleton(java.lang.Object)>(v);
return v;
}
protected java.util.List getSupportedPropertyDescriptors()
{
org.apache.nifi.processors.standard.ExecuteProcess v;
org.apache.nifi.components.PropertyDescriptor v, v, v, v, v, v;
java.util.ArrayList v;
v := @this: org.apache.nifi.processors.standard.ExecuteProcess;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = <org.apache.nifi.processors.standard.ExecuteProcess: org.apache.nifi.components.PropertyDescriptor COMMAND>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = <org.apache.nifi.processors.standard.ExecuteProcess: org.apache.nifi.components.PropertyDescriptor COMMAND_ARGUMENTS>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = <org.apache.nifi.processors.standard.ExecuteProcess: org.apache.nifi.components.PropertyDescriptor BATCH_DURATION>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = <org.apache.nifi.processors.standard.ExecuteProcess: org.apache.nifi.components.PropertyDescriptor REDIRECT_ERROR_STREAM>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = <org.apache.nifi.processors.standard.ExecuteProcess: org.apache.nifi.components.PropertyDescriptor WORKING_DIR>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = <org.apache.nifi.processors.standard.ExecuteProcess: org.apache.nifi.components.PropertyDescriptor ARG_DELIMITER>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
return v;
}
protected org.apache.nifi.components.PropertyDescriptor getSupportedDynamicPropertyDescriptor(java.lang.String)
{
org.apache.nifi.components.Validator v;
org.apache.nifi.processors.standard.ExecuteProcess v;
org.apache.nifi.components.PropertyDescriptor v;
org.apache.nifi.components.PropertyDescriptor$Builder v, v, v, v, v;
java.lang.String v, v;
v := @this: org.apache.nifi.processors.standard.ExecuteProcess;
v := @parameter: java.lang.String;
v = new org.apache.nifi.components.PropertyDescriptor$Builder;
specialinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: void <init>()>();
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder name(java.lang.String)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Sets the environment variable \'\u0001\' for the process\' environment");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder description(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder dynamic(boolean)>(1);
v = <org.apache.nifi.processor.util.StandardValidators: org.apache.nifi.components.Validator NON_EMPTY_VALIDATOR>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder addValidator(org.apache.nifi.components.Validator)>(v);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor build()>();
return v;
}
public void setupExecutor(org.apache.nifi.processor.ProcessContext)
{
int v, v;
org.apache.nifi.processor.ProcessContext v;
org.apache.nifi.processors.standard.ExecuteProcess v;
java.util.concurrent.ExecutorService v;
org.apache.nifi.processors.standard.ExecuteProcess$1 v;
v := @this: org.apache.nifi.processors.standard.ExecuteProcess;
v := @parameter: org.apache.nifi.processor.ProcessContext;
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessContext: int getMaxConcurrentTasks()>();
v = v * 2;
v = new org.apache.nifi.processors.standard.ExecuteProcess$1;
specialinvoke v.<org.apache.nifi.processors.standard.ExecuteProcess$1: void <init>(org.apache.nifi.processors.standard.ExecuteProcess)>(v);
v = staticinvoke <java.util.concurrent.Executors: java.util.concurrent.ExecutorService newFixedThreadPool(int,java.util.concurrent.ThreadFactory)>(v, v);
v.<org.apache.nifi.processors.standard.ExecuteProcess: java.util.concurrent.ExecutorService executor> = v;
return;
}
public void shutdownExecutor()
{
java.lang.Throwable v;
java.lang.Process v, v, v, v, v, v;
org.apache.nifi.processors.standard.ExecuteProcess v;
org.apache.nifi.logging.ComponentLog v, v;
java.util.concurrent.ExecutorService v;
boolean v, v;
v := @this: org.apache.nifi.processors.standard.ExecuteProcess;
label:
v = v.<org.apache.nifi.processors.standard.ExecuteProcess: java.util.concurrent.ExecutorService executor>;
interfaceinvoke v.<java.util.concurrent.ExecutorService: void shutdown()>();
label:
v = v.<org.apache.nifi.processors.standard.ExecuteProcess: java.lang.Process externalProcess>;
if v == null goto label;
v = v.<org.apache.nifi.processors.standard.ExecuteProcess: java.lang.Process externalProcess>;
v = virtualinvoke v.<java.lang.Process: boolean isAlive()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.nifi.processors.standard.ExecuteProcess: org.apache.nifi.logging.ComponentLog getLogger()>();
interfaceinvoke v.<org.apache.nifi.logging.ComponentLog: void info(java.lang.String)>("Process hasn\'t terminated, forcing the interrupt");
v = v.<org.apache.nifi.processors.standard.ExecuteProcess: java.lang.Process externalProcess>;
virtualinvoke v.<java.lang.Process: java.lang.Process destroyForcibly()>();
goto label;
label:
v := @caughtexception;
v = v.<org.apache.nifi.processors.standard.ExecuteProcess: java.lang.Process externalProcess>;
if v == null goto label;
v = v.<org.apache.nifi.processors.standard.ExecuteProcess: java.lang.Process externalProcess>;
v = virtualinvoke v.<java.lang.Process: boolean isAlive()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.nifi.processors.standard.ExecuteProcess: org.apache.nifi.logging.ComponentLog getLogger()>();
interfaceinvoke v.<org.apache.nifi.logging.ComponentLog: void info(java.lang.String)>("Process hasn\'t terminated, forcing the interrupt");
v = v.<org.apache.nifi.processors.standard.ExecuteProcess: java.lang.Process externalProcess>;
virtualinvoke v.<java.lang.Process: java.lang.Process destroyForcibly()>();
label:
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void onTrigger(org.apache.nifi.processor.ProcessContext, org.apache.nifi.processor.ProcessSession) throws org.apache.nifi.processor.exception.ProcessException
{
org.apache.nifi.processors.standard.ExecuteProcess$2 v;
org.apache.nifi.components.PropertyDescriptor v, v, v, v;
org.apache.nifi.components.PropertyValue v, v, v, v, v, v;
java.util.concurrent.Future v, v, v, v;
byte v;
java.lang.Long v;
boolean v, v, v, v;
org.apache.nifi.processors.standard.ExecuteProcess$ProxyOutputStream v, v, v;
org.apache.nifi.flowfile.FlowFile v, v, v;
java.util.List v;
java.lang.Object[] v, v;
java.util.concurrent.atomic.AtomicBoolean v;
long v;
org.apache.nifi.processors.standard.ExecuteProcess v;
org.apache.nifi.logging.ComponentLog v, v, v, v, v, v;
org.apache.nifi.provenance.ProvenanceReporter v;
org.apache.nifi.processor.Relationship v;
java.lang.String v, v, v, v, v;
org.apache.nifi.processor.ProcessContext v;
java.io.IOException v;
org.apache.nifi.processor.ProcessSession v;
java.util.concurrent.TimeUnit v;
v := @this: org.apache.nifi.processors.standard.ExecuteProcess;
v := @parameter: org.apache.nifi.processor.ProcessContext;
v := @parameter: org.apache.nifi.processor.ProcessSession;
v = v.<org.apache.nifi.processors.standard.ExecuteProcess: org.apache.nifi.processors.standard.ExecuteProcess$ProxyOutputStream proxyOut>;
if v != null goto label;
v = new org.apache.nifi.processors.standard.ExecuteProcess$ProxyOutputStream;
v = virtualinvoke v.<org.apache.nifi.processors.standard.ExecuteProcess: org.apache.nifi.logging.ComponentLog getLogger()>();
specialinvoke v.<org.apache.nifi.processors.standard.ExecuteProcess$ProxyOutputStream: void <init>(org.apache.nifi.logging.ComponentLog)>(v);
v.<org.apache.nifi.processors.standard.ExecuteProcess: org.apache.nifi.processors.standard.ExecuteProcess$ProxyOutputStream proxyOut> = v;
label:
v = <org.apache.nifi.processors.standard.ExecuteProcess: org.apache.nifi.components.PropertyDescriptor BATCH_DURATION>;
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessContext: org.apache.nifi.components.PropertyValue getProperty(org.apache.nifi.components.PropertyDescriptor)>(v);
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit NANOSECONDS>;
v = interfaceinvoke v.<org.apache.nifi.components.PropertyValue: java.lang.Long asTimePeriod(java.util.concurrent.TimeUnit)>(v);
v = <org.apache.nifi.processors.standard.ExecuteProcess: org.apache.nifi.components.PropertyDescriptor COMMAND>;
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessContext: org.apache.nifi.components.PropertyValue getProperty(org.apache.nifi.components.PropertyDescriptor)>(v);
v = interfaceinvoke v.<org.apache.nifi.components.PropertyValue: org.apache.nifi.components.PropertyValue evaluateAttributeExpressions()>();
v = interfaceinvoke v.<org.apache.nifi.components.PropertyValue: java.lang.String getValue()>();
v = <org.apache.nifi.processors.standard.ExecuteProcess: org.apache.nifi.components.PropertyDescriptor COMMAND_ARGUMENTS>;
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessContext: org.apache.nifi.components.PropertyValue getProperty(org.apache.nifi.components.PropertyDescriptor)>(v);
v = interfaceinvoke v.<org.apache.nifi.components.PropertyValue: boolean isSet()>();
if v == 0 goto label;
v = <org.apache.nifi.processors.standard.ExecuteProcess: org.apache.nifi.components.PropertyDescriptor COMMAND_ARGUMENTS>;
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessContext: org.apache.nifi.components.PropertyValue getProperty(org.apache.nifi.components.PropertyDescriptor)>(v);
v = interfaceinvoke v.<org.apache.nifi.components.PropertyValue: org.apache.nifi.components.PropertyValue evaluateAttributeExpressions()>();
v = interfaceinvoke v.<org.apache.nifi.components.PropertyValue: java.lang.String getValue()>();
goto label;
label:
v = null;
label:
v = v;
v = virtualinvoke v.<org.apache.nifi.processors.standard.ExecuteProcess: java.util.List createCommandStrings(org.apache.nifi.processor.ProcessContext,java.lang.String,java.lang.String)>(v, v, v);
v = staticinvoke <org.apache.commons.lang.StringUtils: java.lang.String join(java.lang.Iterable,java.lang.String)>(v, " ");
v = v.<org.apache.nifi.processors.standard.ExecuteProcess: java.util.concurrent.Future longRunningProcess>;
if v == null goto label;
v = v.<org.apache.nifi.processors.standard.ExecuteProcess: java.util.concurrent.Future longRunningProcess>;
v = interfaceinvoke v.<java.util.concurrent.Future: boolean isDone()>();
if v == 0 goto label;
label:
v = v.<org.apache.nifi.processors.standard.ExecuteProcess: org.apache.nifi.processors.standard.ExecuteProcess$ProxyOutputStream proxyOut>;
v = virtualinvoke v.<org.apache.nifi.processors.standard.ExecuteProcess: java.util.concurrent.Future launchProcess(org.apache.nifi.processor.ProcessContext,java.util.List,java.lang.Long,org.apache.nifi.processors.standard.ExecuteProcess$ProxyOutputStream)>(v, v, v, v);
v.<org.apache.nifi.processors.standard.ExecuteProcess: java.util.concurrent.Future longRunningProcess> = v;
label:
goto label;
label:
v := @caughtexception;
v = virtualinvoke v.<org.apache.nifi.processors.standard.ExecuteProcess: org.apache.nifi.logging.ComponentLog getLogger()>();
v = newarray (java.lang.Object)[1];
v[0] = v;
interfaceinvoke v.<org.apache.nifi.logging.ComponentLog: void error(java.lang.String,java.lang.Object[])>("Failed to create process due to {}", v);
interfaceinvoke v.<org.apache.nifi.processor.ProcessContext: void yield()>();
return;
label:
v = virtualinvoke v.<org.apache.nifi.processors.standard.ExecuteProcess: org.apache.nifi.logging.ComponentLog getLogger()>();
interfaceinvoke v.<org.apache.nifi.logging.ComponentLog: void info(java.lang.String)>("Read from long running process");
label:
v = virtualinvoke v.<org.apache.nifi.processors.standard.ExecuteProcess: boolean isScheduled()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.nifi.processors.standard.ExecuteProcess: org.apache.nifi.logging.ComponentLog getLogger()>();
interfaceinvoke v.<org.apache.nifi.logging.ComponentLog: void info(java.lang.String)>("User stopped processor; will terminate process immediately");
v = v.<org.apache.nifi.processors.standard.ExecuteProcess: java.util.concurrent.Future longRunningProcess>;
interfaceinvoke v.<java.util.concurrent.Future: boolean cancel(boolean)>(1);
return;
label:
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessSession: org.apache.nifi.flowfile.FlowFile create()>();
v = new org.apache.nifi.processors.standard.ExecuteProcess$2;
specialinvoke v.<org.apache.nifi.processors.standard.ExecuteProcess$2: void <init>(org.apache.nifi.processors.standard.ExecuteProcess,java.lang.Long)>(v, v);
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessSession: org.apache.nifi.flowfile.FlowFile write(org.apache.nifi.flowfile.FlowFile,org.apache.nifi.processor.io.OutputStreamCallback)>(v, v);
v = interfaceinvoke v.<org.apache.nifi.flowfile.FlowFile: long getSize()>();
v = v cmp 0L;
if v != 0 goto label;
interfaceinvoke v.<org.apache.nifi.processor.ProcessSession: void remove(org.apache.nifi.flowfile.FlowFile)>(v);
goto label;
label:
v = v.<org.apache.nifi.processors.standard.ExecuteProcess: java.util.concurrent.atomic.AtomicBoolean failure>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v == 0 goto label;
interfaceinvoke v.<org.apache.nifi.processor.ProcessSession: void remove(org.apache.nifi.flowfile.FlowFile)>(v);
v = virtualinvoke v.<org.apache.nifi.processors.standard.ExecuteProcess: org.apache.nifi.logging.ComponentLog getLogger()>();
interfaceinvoke v.<org.apache.nifi.logging.ComponentLog: void error(java.lang.String)>("Failed to read data from Process, so will not generate FlowFile");
goto label;
label:
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessSession: org.apache.nifi.flowfile.FlowFile putAttribute(org.apache.nifi.flowfile.FlowFile,java.lang.String,java.lang.String)>(v, "command", v);
if v == null goto label;
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessSession: org.apache.nifi.flowfile.FlowFile putAttribute(org.apache.nifi.flowfile.FlowFile,java.lang.String,java.lang.String)>(v, "command.arguments", v);
label:
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessSession: org.apache.nifi.provenance.ProvenanceReporter getProvenanceReporter()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Created from command: \u0001");
interfaceinvoke v.<org.apache.nifi.provenance.ProvenanceReporter: void create(org.apache.nifi.flowfile.FlowFile,java.lang.String)>(v, v);
v = virtualinvoke v.<org.apache.nifi.processors.standard.ExecuteProcess: org.apache.nifi.logging.ComponentLog getLogger()>();
v = newarray (java.lang.Object)[1];
v[0] = v;
interfaceinvoke v.<org.apache.nifi.logging.ComponentLog: void info(java.lang.String,java.lang.Object[])>("Created {} and routed to success", v);
v = <org.apache.nifi.processors.standard.ExecuteProcess: org.apache.nifi.processor.Relationship REL_SUCCESS>;
interfaceinvoke v.<org.apache.nifi.processor.ProcessSession: void transfer(org.apache.nifi.flowfile.FlowFile,org.apache.nifi.processor.Relationship)>(v, v);
label:
return;
catch java.io.IOException from label to label with label;
}
protected java.util.List createCommandStrings(org.apache.nifi.processor.ProcessContext, java.lang.String, java.lang.String)
{
org.apache.nifi.processor.ProcessContext v;
char v;
org.apache.nifi.processors.standard.ExecuteProcess v;
org.apache.nifi.components.PropertyDescriptor v;
java.util.ArrayList v;
org.apache.nifi.components.PropertyValue v;
java.util.List v;
int v, v;
java.lang.String v, v, v;
v := @this: org.apache.nifi.processors.standard.ExecuteProcess;
v := @parameter: org.apache.nifi.processor.ProcessContext;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = <org.apache.nifi.processors.standard.ExecuteProcess: org.apache.nifi.components.PropertyDescriptor ARG_DELIMITER>;
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessContext: org.apache.nifi.components.PropertyValue getProperty(org.apache.nifi.components.PropertyDescriptor)>(v);
v = interfaceinvoke v.<org.apache.nifi.components.PropertyValue: java.lang.String getValue()>();
v = virtualinvoke v.<java.lang.String: char charAt(int)>(0);
v = staticinvoke <org.apache.nifi.processors.standard.util.ArgumentUtils: java.util.List splitArgs(java.lang.String,char)>(v, v);
v = new java.util.ArrayList;
v = interfaceinvoke v.<java.util.List: int size()>();
v = v + 1;
specialinvoke v.<java.util.ArrayList: void <init>(int)>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
interfaceinvoke v.<java.util.List: boolean addAll(java.util.Collection)>(v);
return v;
}
protected java.util.concurrent.Future launchProcess(org.apache.nifi.processor.ProcessContext, java.util.List, java.lang.Long, org.apache.nifi.processors.standard.ExecuteProcess$ProxyOutputStream) throws java.io.IOException
{
org.apache.nifi.processors.standard.ExecuteProcess$4 v;
org.apache.nifi.processors.standard.ExecuteProcess$3 v;
org.apache.nifi.components.PropertyDescriptor v, v;
org.apache.nifi.components.PropertyValue v, v, v;
java.util.concurrent.Future v;
java.lang.Long v;
java.util.Map v, v;
boolean v, v, v, v, v;
org.apache.nifi.processors.standard.ExecuteProcess$ProxyOutputStream v;
java.lang.Process v;
java.util.Set v;
java.util.List v;
java.lang.Object[] v;
java.util.concurrent.atomic.AtomicBoolean v;
java.util.HashMap v;
org.apache.nifi.processors.standard.ExecuteProcess v;
org.apache.nifi.logging.ComponentLog v;
java.lang.Boolean v;
java.lang.ProcessBuilder v, v;
java.lang.String v, v;
java.util.concurrent.ExecutorService v, v;
java.util.Iterator v;
org.apache.nifi.processor.ProcessContext v;
java.io.File v;
java.lang.Object v, v, v, v;
v := @this: org.apache.nifi.processors.standard.ExecuteProcess;
v := @parameter: org.apache.nifi.processor.ProcessContext;
v := @parameter: java.util.List;
v := @parameter: java.lang.Long;
v := @parameter: org.apache.nifi.processors.standard.ExecuteProcess$ProxyOutputStream;
v = <org.apache.nifi.processors.standard.ExecuteProcess: org.apache.nifi.components.PropertyDescriptor REDIRECT_ERROR_STREAM>;
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessContext: org.apache.nifi.components.PropertyValue getProperty(org.apache.nifi.components.PropertyDescriptor)>(v);
v = interfaceinvoke v.<org.apache.nifi.components.PropertyValue: java.lang.Boolean asBoolean()>();
v = new java.lang.ProcessBuilder;
specialinvoke v.<java.lang.ProcessBuilder: void <init>(java.util.List)>(v);
v = <org.apache.nifi.processors.standard.ExecuteProcess: org.apache.nifi.components.PropertyDescriptor WORKING_DIR>;
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessContext: org.apache.nifi.components.PropertyValue getProperty(org.apache.nifi.components.PropertyDescriptor)>(v);
v = interfaceinvoke v.<org.apache.nifi.components.PropertyValue: org.apache.nifi.components.PropertyValue evaluateAttributeExpressions()>();
v = interfaceinvoke v.<org.apache.nifi.components.PropertyValue: java.lang.String getValue()>();
if v == null goto label;
v = new java.io.File;
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
virtualinvoke v.<java.lang.ProcessBuilder: java.lang.ProcessBuilder directory(java.io.File)>(v);
label:
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessContext: java.util.Map getProperties()>();
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor: boolean isDynamic()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor: java.lang.String getName()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = interfaceinvoke v.<java.util.Map: boolean isEmpty()>();
if v != 0 goto label;
v = virtualinvoke v.<java.lang.ProcessBuilder: java.util.Map environment()>();
interfaceinvoke v.<java.util.Map: void putAll(java.util.Map)>(v);
label:
v = virtualinvoke v.<org.apache.nifi.processors.standard.ExecuteProcess: org.apache.nifi.logging.ComponentLog getLogger()>();
v = newarray (java.lang.Object)[1];
v[0] = v;
interfaceinvoke v.<org.apache.nifi.logging.ComponentLog: void info(java.lang.String,java.lang.Object[])>("Start creating new Process > {} ", v);
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
v = virtualinvoke v.<java.lang.ProcessBuilder: java.lang.ProcessBuilder redirectErrorStream(boolean)>(v);
v = virtualinvoke v.<java.lang.ProcessBuilder: java.lang.Process start()>();
v.<org.apache.nifi.processors.standard.ExecuteProcess: java.lang.Process externalProcess> = v;
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
if v != 0 goto label;
v = v.<org.apache.nifi.processors.standard.ExecuteProcess: java.util.concurrent.ExecutorService executor>;
v = new org.apache.nifi.processors.standard.ExecuteProcess$3;
specialinvoke v.<org.apache.nifi.processors.standard.ExecuteProcess$3: void <init>(org.apache.nifi.processors.standard.ExecuteProcess)>(v);
interfaceinvoke v.<java.util.concurrent.ExecutorService: java.util.concurrent.Future submit(java.lang.Runnable)>(v);
label:
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>(boolean)>(0);
v.<org.apache.nifi.processors.standard.ExecuteProcess: java.util.concurrent.atomic.AtomicBoolean failure> = v;
v = v.<org.apache.nifi.processors.standard.ExecuteProcess: java.util.concurrent.ExecutorService executor>;
v = new org.apache.nifi.processors.standard.ExecuteProcess$4;
specialinvoke v.<org.apache.nifi.processors.standard.ExecuteProcess$4: void <init>(org.apache.nifi.processors.standard.ExecuteProcess,java.lang.Long,org.apache.nifi.processors.standard.ExecuteProcess$ProxyOutputStream)>(v, v, v);
v = interfaceinvoke v.<java.util.concurrent.ExecutorService: java.util.concurrent.Future submit(java.util.concurrent.Callable)>(v);
return v;
}
static void <clinit>()
{
org.apache.nifi.components.PropertyDescriptor v, v, v, v, v, v;
org.apache.nifi.components.PropertyDescriptor$Builder v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.nifi.processor.util.StandardValidators$StringLengthValidator v;
org.apache.nifi.expression.ExpressionLanguageScope v, v, v, v, v;
java.lang.String[] v;
org.apache.nifi.processor.Relationship v;
org.apache.nifi.components.Validator v, v, v, v, v, v, v;
org.apache.nifi.processor.Relationship$Builder v, v, v;
v = new org.apache.nifi.components.PropertyDescriptor$Builder;
specialinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: void <init>()>();
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder name(java.lang.String)>("Command");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder description(java.lang.String)>("Specifies the command to be executed; if just the name of an executable is provided, it must be in the user\'s environment PATH.");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder required(boolean)>(1);
v = <org.apache.nifi.expression.ExpressionLanguageScope: org.apache.nifi.expression.ExpressionLanguageScope VARIABLE_REGISTRY>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder expressionLanguageSupported(org.apache.nifi.expression.ExpressionLanguageScope)>(v);
v = <org.apache.nifi.processor.util.StandardValidators: org.apache.nifi.components.Validator NON_EMPTY_VALIDATOR>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder addValidator(org.apache.nifi.components.Validator)>(v);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor build()>();
<org.apache.nifi.processors.standard.ExecuteProcess: org.apache.nifi.components.PropertyDescriptor COMMAND> = v;
v = new org.apache.nifi.components.PropertyDescriptor$Builder;
specialinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: void <init>()>();
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder name(java.lang.String)>("Command Arguments");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder description(java.lang.String)>("The arguments to supply to the executable delimited by white space. White space can be escaped by enclosing it in double-quotes.");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder required(boolean)>(0);
v = <org.apache.nifi.expression.ExpressionLanguageScope: org.apache.nifi.expression.ExpressionLanguageScope VARIABLE_REGISTRY>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder expressionLanguageSupported(org.apache.nifi.expression.ExpressionLanguageScope)>(v);
v = <org.apache.nifi.processor.util.StandardValidators: org.apache.nifi.components.Validator NON_EMPTY_VALIDATOR>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder addValidator(org.apache.nifi.components.Validator)>(v);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor build()>();
<org.apache.nifi.processors.standard.ExecuteProcess: org.apache.nifi.components.PropertyDescriptor COMMAND_ARGUMENTS> = v;
v = new org.apache.nifi.components.PropertyDescriptor$Builder;
specialinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: void <init>()>();
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder name(java.lang.String)>("Working Directory");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder description(java.lang.String)>("The directory to use as the current working directory when executing the command");
v = <org.apache.nifi.expression.ExpressionLanguageScope: org.apache.nifi.expression.ExpressionLanguageScope VARIABLE_REGISTRY>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder expressionLanguageSupported(org.apache.nifi.expression.ExpressionLanguageScope)>(v);
v = staticinvoke <org.apache.nifi.processor.util.StandardValidators: org.apache.nifi.components.Validator createDirectoryExistsValidator(boolean,boolean)>(0, 1);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder addValidator(org.apache.nifi.components.Validator)>(v);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder required(boolean)>(0);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor build()>();
<org.apache.nifi.processors.standard.ExecuteProcess: org.apache.nifi.components.PropertyDescriptor WORKING_DIR> = v;
v = new org.apache.nifi.components.PropertyDescriptor$Builder;
specialinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: void <init>()>();
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder name(java.lang.String)>("Batch Duration");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder description(java.lang.String)>("If the process is expected to be long-running and produce textual output, a batch duration can be specified so that the output will be captured for this amount of time and a FlowFile will then be sent out with the results and a new FlowFile will be started, rather than waiting for the process to finish before sending out the results");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder required(boolean)>(0);
v = <org.apache.nifi.expression.ExpressionLanguageScope: org.apache.nifi.expression.ExpressionLanguageScope NONE>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder expressionLanguageSupported(org.apache.nifi.expression.ExpressionLanguageScope)>(v);
v = <org.apache.nifi.processor.util.StandardValidators: org.apache.nifi.components.Validator TIME_PERIOD_VALIDATOR>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder addValidator(org.apache.nifi.components.Validator)>(v);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor build()>();
<org.apache.nifi.processors.standard.ExecuteProcess: org.apache.nifi.components.PropertyDescriptor BATCH_DURATION> = v;
v = new org.apache.nifi.components.PropertyDescriptor$Builder;
specialinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: void <init>()>();
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder name(java.lang.String)>("Redirect Error Stream");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder description(java.lang.String)>("If true will redirect any error stream output of the process to the output stream. This is particularly helpful for processes which write extensively to the error stream or for troubleshooting.");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder required(boolean)>(0);
v = newarray (java.lang.String)[2];
v[0] = "true";
v[1] = "false";
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder allowableValues(java.lang.String[])>(v);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder defaultValue(java.lang.String)>("false");
v = <org.apache.nifi.expression.ExpressionLanguageScope: org.apache.nifi.expression.ExpressionLanguageScope NONE>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder expressionLanguageSupported(org.apache.nifi.expression.ExpressionLanguageScope)>(v);
v = <org.apache.nifi.processor.util.StandardValidators: org.apache.nifi.components.Validator BOOLEAN_VALIDATOR>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder addValidator(org.apache.nifi.components.Validator)>(v);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor build()>();
<org.apache.nifi.processors.standard.ExecuteProcess: org.apache.nifi.components.PropertyDescriptor REDIRECT_ERROR_STREAM> = v;
v = new org.apache.nifi.processor.util.StandardValidators$StringLengthValidator;
specialinvoke v.<org.apache.nifi.processor.util.StandardValidators$StringLengthValidator: void <init>(int,int)>(1, 1);
<org.apache.nifi.processors.standard.ExecuteProcess: org.apache.nifi.components.Validator characterValidator> = v;
v = new org.apache.nifi.components.PropertyDescriptor$Builder;
specialinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: void <init>()>();
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder name(java.lang.String)>("Argument Delimiter");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder description(java.lang.String)>("Delimiter to use to separate arguments for a command [default: space]. Must be a single character.");
v = <org.apache.nifi.components.Validator: org.apache.nifi.components.Validator VALID>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder addValidator(org.apache.nifi.components.Validator)>(v);
v = <org.apache.nifi.processors.standard.ExecuteProcess: org.apache.nifi.components.Validator characterValidator>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder addValidator(org.apache.nifi.components.Validator)>(v);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder required(boolean)>(1);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder defaultValue(java.lang.String)>(" ");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor build()>();
<org.apache.nifi.processors.standard.ExecuteProcess: org.apache.nifi.components.PropertyDescriptor ARG_DELIMITER> = v;
v = new org.apache.nifi.processor.Relationship$Builder;
specialinvoke v.<org.apache.nifi.processor.Relationship$Builder: void <init>()>();
v = virtualinvoke v.<org.apache.nifi.processor.Relationship$Builder: org.apache.nifi.processor.Relationship$Builder name(java.lang.String)>("success");
v = virtualinvoke v.<org.apache.nifi.processor.Relationship$Builder: org.apache.nifi.processor.Relationship$Builder description(java.lang.String)>("All created FlowFiles are routed to this relationship");
v = virtualinvoke v.<org.apache.nifi.processor.Relationship$Builder: org.apache.nifi.processor.Relationship build()>();
<org.apache.nifi.processors.standard.ExecuteProcess: org.apache.nifi.processor.Relationship REL_SUCCESS> = v;
return;
}
}