<extensionManifest><groupId>org.apache.nifi</groupId><artifactId>nifi-scripting-nar</artifactId><version>2.0.0-M4</version><parentNar><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-shared-nar</artifactId><version>2.0.0-M4</version></parentNar><systemApiVersion>2.0.0-M4</systemApiVersion><buildInfo><tag>nifi-2.0.0-M4-RC1</tag><branch>UNKNOWN</branch><revision>19c5be0</revision></buildInfo><extensions><extension><name>org.apache.nifi.processors.script.ExecuteScript</name><type>PROCESSOR</type><description>Experimental - Executes a script given the flow file and a process session.  The script is responsible for handling the incoming flow file (transfer to SUCCESS or remove, e.g.) as well as any flow files created by the script. If the handling is incomplete or incorrect, the session will be rolled back. Experimental: Impact of sustained usage not yet verified.</description><tags><tag>script</tag><tag>execute</tag><tag>groovy</tag><tag>clojure</tag></tags><properties><property><name>Script Engine</name><displayName>Script Engine</displayName><description>Language Engine for executing scripts</description><defaultValue>Clojure</defaultValue><allowableValues><allowableValue><displayName>Clojure</displayName><value>Clojure</value><description>Clojure 1.8.0 [Clojure UNKNOWN]</description></allowableValue><allowableValue><displayName>Groovy</displayName><value>Groovy</value><description>Groovy 4.0.21 [Groovy Scripting Engine 2.0]</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Script File</name><displayName>Script File</displayName><description>Path to script file to execute. Only one of Script File or Script Body may be used</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>FILE</resourceType></resourceTypes></resourceDefinition></property><property><name>Script Body</name><displayName>Script Body</displayName><description>Body of script to execute. Only one of Script File or Script Body may be used</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Module Directory</name><displayName>Module Directory</displayName><description>Comma-separated list of paths to files and/or directories which contain modules required by the script.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>MULTIPLE</cardinality><resourceTypes><resourceType>FILE</resourceType><resourceType>DIRECTORY</resourceType></resourceTypes></resourceDefinition></property></properties><dynamicProperties><dynamicProperty><name>Script Engine Binding property</name><value>Binding property value passed to Script Runner</value><description>Updates a script engine property specified by the Dynamic Property's key with the value specified by the Dynamic Property's value</description><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope></dynamicProperty></dynamicProperties><supportsSensitiveDynamicProperties>true</supportsSensitiveDynamicProperties><relationships><relationship><name>success</name><description>FlowFiles that were successfully processed</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>FlowFiles that failed to be processed</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes></writesAttributes><stateful><description>Scripts can store and retrieve state using the State Management APIs. Consult the State Manager section of the Developer's Guide for more details.</description><scopes><scope>LOCAL</scope><scope>CLUSTER</scope></scopes></stateful><restricted><restrictions><restriction><requiredPermission>execute code</requiredPermission><explanation>Provides operator the ability to execute arbitrary code assuming all permissions that NiFi has.</explanation></restriction></restrictions></restricted><inputRequirement>INPUT_ALLOWED</inputRequirement><seeAlso><see>org.apache.nifi.processors.script.InvokeScriptedProcessor</see></seeAlso></extension><extension><name>org.apache.nifi.processors.script.InvokeScriptedProcessor</name><type>PROCESSOR</type><description>Experimental - Invokes a script engine for a Processor defined in the given script. The script must define a valid class that implements the Processor interface, and it must set a variable 'processor' to an instance of the class. Processor methods such as onTrigger() will be delegated to the scripted Processor instance. Also any Relationships or PropertyDescriptors defined by the scripted processor will be added to the configuration dialog. The scripted processor can implement public void setLogger(ComponentLog logger) to get access to the parent logger, as well as public void onScheduled(ProcessContext context) and public void onStopped(ProcessContext context) methods to be invoked when the parent InvokeScriptedProcessor is scheduled or stopped, respectively.  NOTE: The script will be loaded when the processor is populated with property values, see the Restrictions section for more security implications.  Experimental: Impact of sustained usage not yet verified.</description><tags><tag>script</tag><tag>invoke</tag><tag>groovy</tag></tags><properties><property><name>Script Engine</name><displayName>Script Engine</displayName><description>Language Engine for executing scripts</description><defaultValue>Groovy</defaultValue><allowableValues><allowableValue><displayName>Groovy</displayName><value>Groovy</value><description>Groovy 4.0.21 [Groovy Scripting Engine 2.0]</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Script File</name><displayName>Script File</displayName><description>Path to script file to execute. Only one of Script File or Script Body may be used</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>FILE</resourceType></resourceTypes></resourceDefinition></property><property><name>Script Body</name><displayName>Script Body</displayName><description>Body of script to execute. Only one of Script File or Script Body may be used</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Module Directory</name><displayName>Module Directory</displayName><description>Comma-separated list of paths to files and/or directories which contain modules required by the script.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>MULTIPLE</cardinality><resourceTypes><resourceType>FILE</resourceType><resourceType>DIRECTORY</resourceType></resourceTypes></resourceDefinition></property></properties><dynamicProperties><dynamicProperty><name>Script Engine Binding property</name><value>Binding property value passed to Script Runner</value><description>Updates a script engine property specified by the Dynamic Property's key with the value specified by the Dynamic Property's value</description><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope></dynamicProperty></dynamicProperties><supportsSensitiveDynamicProperties>true</supportsSensitiveDynamicProperties><writesAttributes></writesAttributes><stateful><description>Scripts can store and retrieve state using the State Management APIs. Consult the State Manager section of the Developer's Guide for more details.</description><scopes><scope>LOCAL</scope><scope>CLUSTER</scope></scopes></stateful><restricted><restrictions><restriction><requiredPermission>execute code</requiredPermission><explanation>Provides operator the ability to execute arbitrary code assuming all permissions that NiFi has.</explanation></restriction></restrictions></restricted><seeAlso><see>org.apache.nifi.processors.script.ExecuteScript</see></seeAlso></extension><extension><name>org.apache.nifi.processors.script.ScriptedFilterRecord</name><type>PROCESSOR</type><description>This processor provides the ability to filter records out from FlowFiles using the user-provided script. Every record will be evaluated by the script which must return with a boolean value. Records with "true" result will be routed to the "matching" relationship in a batch. Other records will be filtered out.</description><tags><tag>record</tag><tag>filter</tag><tag>script</tag><tag>groovy</tag></tags><properties><property><name>Record Reader</name><displayName>Record Reader</displayName><description>The Record Reader to use parsing the incoming FlowFile into Records</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordReaderFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Record Writer</name><displayName>Record Writer</displayName><description>The Record Writer to use for serializing Records after they have been transformed</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordSetWriterFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Script Engine</name><displayName>Script Language</displayName><description>The Language to use for the script</description><defaultValue>Groovy</defaultValue><allowableValues><allowableValue><displayName>Clojure</displayName><value>Clojure</value><description></description></allowableValue><allowableValue><displayName>Groovy</displayName><value>Groovy</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Script Body</name><displayName>Script Body</displayName><description>Body of script to execute. Only one of Script File or Script Body may be used</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Script File</name><displayName>Script File</displayName><description>Path to script file to execute. Only one of Script File or Script Body may be used</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>FILE</resourceType></resourceTypes></resourceDefinition></property><property><name>Module Directory</name><displayName>Module Directory</displayName><description>Comma-separated list of paths to files and/or directories which contain modules required by the script.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>MULTIPLE</cardinality><resourceTypes><resourceType>FILE</resourceType><resourceType>DIRECTORY</resourceType></resourceTypes></resourceDefinition></property></properties><relationships><relationship><name>success</name><description>Matching records of the original FlowFile will be routed to this relationship. If there are no matching records, no FlowFile will be routed here.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>In case of any issue during processing the incoming FlowFile, the incoming FlowFile will be routed to this relationship.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>original</name><description>After successful procession, the incoming FlowFile will be transferred to this relationship. This happens regardless the number of filtered or remaining records.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>mime.type</name><description>Sets the mime.type attribute to the MIME Type specified by the Record Writer</description></writesAttribute><writesAttribute><name>record.count</name><description>The number of records within the flow file.</description></writesAttribute><writesAttribute><name>record.error.message</name><description>This attribute provides on failure the error message encountered by the Reader or Writer.</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><restricted><restrictions><restriction><requiredPermission>execute code</requiredPermission><explanation>Provides operator the ability to execute arbitrary code assuming all permissions that NiFi has.</explanation></restriction></restrictions></restricted><inputRequirement>INPUT_REQUIRED</inputRequirement><seeAlso><see>org.apache.nifi.processors.script.ScriptedTransformRecord</see><see>org.apache.nifi.processors.script.ScriptedValidateRecord</see><see>org.apache.nifi.processors.script.ScriptedPartitionRecord</see></seeAlso></extension><extension><name>org.apache.nifi.processors.script.ScriptedPartitionRecord</name><type>PROCESSOR</type><description>Receives Record-oriented data (i.e., data that can be read by the configured Record Reader) and evaluates the user provided script against each record in the incoming flow file. Each record is then grouped with other records sharing the same partition and a FlowFile is created for each groups of records. Two records shares the same partition if the evaluation of the script results the same return value for both. Those will be considered as part of the same partition.</description><tags><tag>record</tag><tag>partition</tag><tag>script</tag><tag>groovy</tag><tag>segment</tag><tag>split</tag><tag>group</tag><tag>organize</tag></tags><properties><property><name>Record Reader</name><displayName>Record Reader</displayName><description>The Record Reader to use parsing the incoming FlowFile into Records</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordReaderFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Record Writer</name><displayName>Record Writer</displayName><description>The Record Writer to use for serializing Records after they have been transformed</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordSetWriterFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Script Engine</name><displayName>Script Language</displayName><description>The Language to use for the script</description><defaultValue>Groovy</defaultValue><allowableValues><allowableValue><displayName>Clojure</displayName><value>Clojure</value><description></description></allowableValue><allowableValue><displayName>Groovy</displayName><value>Groovy</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Script Body</name><displayName>Script Body</displayName><description>Body of script to execute. Only one of Script File or Script Body may be used</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Script File</name><displayName>Script File</displayName><description>Path to script file to execute. Only one of Script File or Script Body may be used</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>FILE</resourceType></resourceTypes></resourceDefinition></property><property><name>Module Directory</name><displayName>Module Directory</displayName><description>Comma-separated list of paths to files and/or directories which contain modules required by the script.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>MULTIPLE</cardinality><resourceTypes><resourceType>FILE</resourceType><resourceType>DIRECTORY</resourceType></resourceTypes></resourceDefinition></property></properties><relationships><relationship><name>success</name><description>FlowFiles that are successfully partitioned will be routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>If a FlowFile cannot be partitioned from the configured input format to the configured output format, the unchanged FlowFile will be routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>original</name><description>Once all records in an incoming FlowFile have been partitioned, the original FlowFile is routed to this relationship.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>partition</name><description>The partition of the outgoing flow file. If the script indicates that the partition has a null value, the attribute will be set to the literal string "&lt;null partition&gt;" (without quotes). Otherwise, the attribute is set to the String representation of whatever value is returned by the script.</description></writesAttribute><writesAttribute><name>mime.type</name><description>Sets the mime.type attribute to the MIME Type specified by the Record Writer</description></writesAttribute><writesAttribute><name>record.count</name><description>The number of records within the flow file.</description></writesAttribute><writesAttribute><name>record.error.message</name><description>This attribute provides on failure the error message encountered by the Reader or Writer.</description></writesAttribute><writesAttribute><name>fragment.index</name><description>A one-up number that indicates the ordering of the partitioned FlowFiles that were created from a single parent FlowFile</description></writesAttribute><writesAttribute><name>fragment.count</name><description>The number of partitioned FlowFiles generated from the parent FlowFile</description></writesAttribute></writesAttributes><sideEffectFree>true</sideEffectFree><restricted><restrictions><restriction><requiredPermission>execute code</requiredPermission><explanation>Provides operator the ability to execute arbitrary code assuming all permissions that NiFi has.</explanation></restriction></restrictions></restricted><seeAlso><see>org.apache.nifi.processors.script.ScriptedTransformRecord</see><see>org.apache.nifi.processors.script.ScriptedValidateRecord</see><see>org.apache.nifi.processors.script.ScriptedFilterRecord</see></seeAlso></extension><extension><name>org.apache.nifi.processors.script.ScriptedTransformRecord</name><type>PROCESSOR</type><description>Provides the ability to evaluate a simple script against each record in an incoming FlowFile. The script may transform the record in some way, filter the record, or fork additional records. See Processor's Additional Details for more information.</description><tags><tag>record</tag><tag>transform</tag><tag>script</tag><tag>groovy</tag><tag>update</tag><tag>modify</tag><tag>filter</tag></tags><properties><property><name>Record Reader</name><displayName>Record Reader</displayName><description>The Record Reader to use parsing the incoming FlowFile into Records</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordReaderFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Record Writer</name><displayName>Record Writer</displayName><description>The Record Writer to use for serializing Records after they have been transformed</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordSetWriterFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Script Engine</name><displayName>Script Language</displayName><description>The Language to use for the script</description><defaultValue>Groovy</defaultValue><allowableValues><allowableValue><displayName>Clojure</displayName><value>Clojure</value><description></description></allowableValue><allowableValue><displayName>Groovy</displayName><value>Groovy</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Script Body</name><displayName>Script Body</displayName><description>Body of script to execute. Only one of Script File or Script Body may be used</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Script File</name><displayName>Script File</displayName><description>Path to script file to execute. Only one of Script File or Script Body may be used</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>FILE</resourceType></resourceTypes></resourceDefinition></property><property><name>Module Directory</name><displayName>Module Directory</displayName><description>Comma-separated list of paths to files and/or directories which contain modules required by the script.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>MULTIPLE</cardinality><resourceTypes><resourceType>FILE</resourceType><resourceType>DIRECTORY</resourceType></resourceTypes></resourceDefinition></property></properties><relationships><relationship><name>success</name><description>Each FlowFile that were successfully transformed will be routed to this Relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>Any FlowFile that cannot be transformed will be routed to this Relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>mime.type</name><description>Sets the mime.type attribute to the MIME Type specified by the Record Writer</description></writesAttribute><writesAttribute><name>record.count</name><description>The number of records in the FlowFile</description></writesAttribute><writesAttribute><name>record.error.message</name><description>This attribute provides on failure the error message encountered by the Reader or Writer.</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><restricted><restrictions><restriction><requiredPermission>execute code</requiredPermission><explanation>Provides operator the ability to execute arbitrary code assuming all permissions that NiFi has.</explanation></restriction></restrictions></restricted><inputRequirement>INPUT_REQUIRED</inputRequirement><seeAlso><see>org.apache.nifi.processors.script.ExecuteScript</see><see>org.apache.nifi.processors.standard.UpdateRecord</see><see>org.apache.nifi.processors.standard.QueryRecord</see><see>org.apache.nifi.processors.jolt.JoltTransformRecord</see><see>org.apache.nifi.processors.standard.LookupRecord</see></seeAlso></extension><extension><name>org.apache.nifi.processors.script.ScriptedValidateRecord</name><type>PROCESSOR</type><description>This processor provides the ability to validate records in FlowFiles using the user-provided script. The script is expected to have a record as incoming argument and return with a boolean value. Based on this result, the processor categorizes the records as "valid" or "invalid" and routes them to the respective relationship in batch. Additionally the original FlowFile will be routed to the "original" relationship or in case of unsuccessful processing, to the "failed" relationship.</description><tags><tag>record</tag><tag>validate</tag><tag>script</tag><tag>groovy</tag></tags><properties><property><name>Record Reader</name><displayName>Record Reader</displayName><description>The Record Reader to use parsing the incoming FlowFile into Records</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordReaderFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Record Writer</name><displayName>Record Writer</displayName><description>The Record Writer to use for serializing Records after they have been transformed</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordSetWriterFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Script Engine</name><displayName>Script Language</displayName><description>The Language to use for the script</description><defaultValue>Groovy</defaultValue><allowableValues><allowableValue><displayName>Clojure</displayName><value>Clojure</value><description></description></allowableValue><allowableValue><displayName>Groovy</displayName><value>Groovy</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Script Body</name><displayName>Script Body</displayName><description>Body of script to execute. Only one of Script File or Script Body may be used</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Script File</name><displayName>Script File</displayName><description>Path to script file to execute. Only one of Script File or Script Body may be used</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>FILE</resourceType></resourceTypes></resourceDefinition></property><property><name>Module Directory</name><displayName>Module Directory</displayName><description>Comma-separated list of paths to files and/or directories which contain modules required by the script.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>MULTIPLE</cardinality><resourceTypes><resourceType>FILE</resourceType><resourceType>DIRECTORY</resourceType></resourceTypes></resourceDefinition></property></properties><relationships><relationship><name>valid</name><description>FlowFile containing the valid records from the incoming FlowFile will be routed to this relationship. If there are no valid records, no FlowFile will be routed to this Relationship.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>invalid</name><description>FlowFile containing the invalid records from the incoming FlowFile will be routed to this relationship. If there are no invalid records, no FlowFile will be routed to this Relationship.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>In case of any issue during processing the incoming flow file, the incoming FlowFile will be routed to this relationship.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>original</name><description>After successful procession, the incoming FlowFile will be transferred to this relationship. This happens regardless the FlowFiles might routed to "valid" and "invalid" relationships.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>mime.type</name><description>Sets the mime.type attribute to the MIME Type specified by the Record Writer</description></writesAttribute><writesAttribute><name>record.count</name><description>The number of records within the flow file.</description></writesAttribute><writesAttribute><name>record.error.message</name><description>This attribute provides on failure the error message encountered by the Reader or Writer.</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><restricted><restrictions><restriction><requiredPermission>execute code</requiredPermission><explanation>Provides operator the ability to execute arbitrary code assuming all permissions that NiFi has.</explanation></restriction></restrictions></restricted><inputRequirement>INPUT_REQUIRED</inputRequirement><seeAlso><see>org.apache.nifi.processors.script.ScriptedTransformRecord</see><see>org.apache.nifi.processors.script.ScriptedFilterRecord</see><see>org.apache.nifi.processors.script.ScriptedPartitionRecord</see></seeAlso></extension><extension><name>org.apache.nifi.lookup.script.ScriptedLookupService</name><type>CONTROLLER_SERVICE</type><description>Allows the user to provide a scripted LookupService instance in order to enrich records from an incoming flow file.</description><tags><tag>lookup</tag><tag>record</tag><tag>script</tag><tag>invoke</tag><tag>groovy</tag></tags><properties><property><name>Script Engine</name><displayName>Script Engine</displayName><description>Language Engine for executing scripts</description><defaultValue>Groovy</defaultValue><allowableValues><allowableValue><displayName>Groovy</displayName><value>Groovy</value><description>Groovy 4.0.21 [Groovy Scripting Engine 2.0]</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Script File</name><displayName>Script File</displayName><description>Path to script file to execute. Only one of Script File or Script Body may be used</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>FILE</resourceType></resourceTypes></resourceDefinition></property><property><name>Script Body</name><displayName>Script Body</displayName><description>Body of script to execute. Only one of Script File or Script Body may be used</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Module Directory</name><displayName>Module Directory</displayName><description>Comma-separated list of paths to files and/or directories which contain modules required by the script.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>MULTIPLE</cardinality><resourceTypes><resourceType>FILE</resourceType><resourceType>DIRECTORY</resourceType></resourceTypes></resourceDefinition></property></properties><dynamicProperties><dynamicProperty><name>Script Engine Binding property</name><value>Binding property value passed to Script Runner</value><description>Updates a script engine property specified by the Dynamic Property's key with the value specified by the Dynamic Property's value</description><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope></dynamicProperty></dynamicProperties><restricted><restrictions><restriction><requiredPermission>execute code</requiredPermission><explanation>Provides operator the ability to execute arbitrary code assuming all permissions that NiFi has.</explanation></restriction></restrictions></restricted><providedServiceAPIs><providedServiceAPI><className>org.apache.nifi.lookup.LookupService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></providedServiceAPI></providedServiceAPIs></extension><extension><name>org.apache.nifi.lookup.script.SimpleScriptedLookupService</name><type>CONTROLLER_SERVICE</type><description>Allows the user to provide a scripted LookupService instance in order to enrich records from an incoming flow file. The script is expected to return an optional string value rather than an arbitrary object (record, e.g.). Also the scripted lookup service should implement StringLookupService, otherwise the getValueType() method must be implemented even though it will be ignored, as SimpleScriptedLookupService returns String as the value type on the script's behalf.</description><tags><tag>lookup</tag><tag>script</tag><tag>invoke</tag><tag>groovy</tag></tags><properties><property><name>Script Engine</name><displayName>Script Engine</displayName><description>Language Engine for executing scripts</description><defaultValue>Groovy</defaultValue><allowableValues><allowableValue><displayName>Groovy</displayName><value>Groovy</value><description>Groovy 4.0.21 [Groovy Scripting Engine 2.0]</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Script File</name><displayName>Script File</displayName><description>Path to script file to execute. Only one of Script File or Script Body may be used</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>FILE</resourceType></resourceTypes></resourceDefinition></property><property><name>Script Body</name><displayName>Script Body</displayName><description>Body of script to execute. Only one of Script File or Script Body may be used</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Module Directory</name><displayName>Module Directory</displayName><description>Comma-separated list of paths to files and/or directories which contain modules required by the script.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>MULTIPLE</cardinality><resourceTypes><resourceType>FILE</resourceType><resourceType>DIRECTORY</resourceType></resourceTypes></resourceDefinition></property></properties><dynamicProperties><dynamicProperty><name>Script Engine Binding property</name><value>Binding property value passed to Script Runner</value><description>Updates a script engine property specified by the Dynamic Property's key with the value specified by the Dynamic Property's value</description><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope></dynamicProperty></dynamicProperties><restricted><restrictions><restriction><requiredPermission>execute code</requiredPermission><explanation>Provides operator the ability to execute arbitrary code assuming all permissions that NiFi has.</explanation></restriction></restrictions></restricted><providedServiceAPIs><providedServiceAPI><className>org.apache.nifi.lookup.LookupService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></providedServiceAPI><providedServiceAPI><className>org.apache.nifi.lookup.StringLookupService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></providedServiceAPI></providedServiceAPIs></extension><extension><name>org.apache.nifi.record.script.ScriptedReader</name><type>CONTROLLER_SERVICE</type><description>Allows the user to provide a scripted RecordReaderFactory instance in order to read/parse/generate records from an incoming flow file.</description><tags><tag>record</tag><tag>recordFactory</tag><tag>script</tag><tag>invoke</tag><tag>groovy</tag></tags><properties><property><name>Script Engine</name><displayName>Script Engine</displayName><description>Language Engine for executing scripts</description><defaultValue>Groovy</defaultValue><allowableValues><allowableValue><displayName>Groovy</displayName><value>Groovy</value><description>Groovy 4.0.21 [Groovy Scripting Engine 2.0]</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Script File</name><displayName>Script File</displayName><description>Path to script file to execute. Only one of Script File or Script Body may be used</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>FILE</resourceType></resourceTypes></resourceDefinition></property><property><name>Script Body</name><displayName>Script Body</displayName><description>Body of script to execute. Only one of Script File or Script Body may be used</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Module Directory</name><displayName>Module Directory</displayName><description>Comma-separated list of paths to files and/or directories which contain modules required by the script.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>MULTIPLE</cardinality><resourceTypes><resourceType>FILE</resourceType><resourceType>DIRECTORY</resourceType></resourceTypes></resourceDefinition></property></properties><dynamicProperties><dynamicProperty><name>Script Engine Binding property</name><value>Binding property value passed to Script Runner</value><description>Updates a script engine property specified by the Dynamic Property's key with the value specified by the Dynamic Property's value</description><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope></dynamicProperty></dynamicProperties><restricted><restrictions><restriction><requiredPermission>execute code</requiredPermission><explanation>Provides operator the ability to execute arbitrary code assuming all permissions that NiFi has.</explanation></restriction></restrictions></restricted><providedServiceAPIs><providedServiceAPI><className>org.apache.nifi.serialization.RecordReaderFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></providedServiceAPI></providedServiceAPIs></extension><extension><name>org.apache.nifi.record.script.ScriptedRecordSetWriter</name><type>CONTROLLER_SERVICE</type><description>Allows the user to provide a scripted RecordSetWriterFactory instance in order to write records to an outgoing flow file.</description><tags><tag>record</tag><tag>writer</tag><tag>script</tag><tag>invoke</tag><tag>groovy</tag></tags><properties><property><name>Script Engine</name><displayName>Script Engine</displayName><description>Language Engine for executing scripts</description><defaultValue>Groovy</defaultValue><allowableValues><allowableValue><displayName>Groovy</displayName><value>Groovy</value><description>Groovy 4.0.21 [Groovy Scripting Engine 2.0]</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Script File</name><displayName>Script File</displayName><description>Path to script file to execute. Only one of Script File or Script Body may be used</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>FILE</resourceType></resourceTypes></resourceDefinition></property><property><name>Script Body</name><displayName>Script Body</displayName><description>Body of script to execute. Only one of Script File or Script Body may be used</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Module Directory</name><displayName>Module Directory</displayName><description>Comma-separated list of paths to files and/or directories which contain modules required by the script.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>MULTIPLE</cardinality><resourceTypes><resourceType>FILE</resourceType><resourceType>DIRECTORY</resourceType></resourceTypes></resourceDefinition></property></properties><dynamicProperties><dynamicProperty><name>Script Engine Binding property</name><value>Binding property value passed to Script Runner</value><description>Updates a script engine property specified by the Dynamic Property's key with the value specified by the Dynamic Property's value</description><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope></dynamicProperty></dynamicProperties><restricted><restrictions><restriction><requiredPermission>execute code</requiredPermission><explanation>Provides operator the ability to execute arbitrary code assuming all permissions that NiFi has.</explanation></restriction></restrictions></restricted><providedServiceAPIs><providedServiceAPI><className>org.apache.nifi.serialization.RecordSetWriterFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></providedServiceAPI></providedServiceAPIs></extension><extension><name>org.apache.nifi.record.sink.script.ScriptedRecordSink</name><type>CONTROLLER_SERVICE</type><description>Allows the user to provide a scripted RecordSinkService instance in order to transmit records to the desired target. The script must set a variable 'recordSink' to an implementation of RecordSinkService.</description><tags><tag>record</tag><tag>record sink</tag><tag>script</tag><tag>invoke</tag><tag>groovy</tag></tags><properties><property><name>Script Engine</name><displayName>Script Engine</displayName><description>Language Engine for executing scripts</description><defaultValue>Groovy</defaultValue><allowableValues><allowableValue><displayName>Groovy</displayName><value>Groovy</value><description>Groovy 4.0.21 [Groovy Scripting Engine 2.0]</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Script File</name><displayName>Script File</displayName><description>Path to script file to execute. Only one of Script File or Script Body may be used</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>FILE</resourceType></resourceTypes></resourceDefinition></property><property><name>Script Body</name><displayName>Script Body</displayName><description>Body of script to execute. Only one of Script File or Script Body may be used</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Module Directory</name><displayName>Module Directory</displayName><description>Comma-separated list of paths to files and/or directories which contain modules required by the script.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>MULTIPLE</cardinality><resourceTypes><resourceType>FILE</resourceType><resourceType>DIRECTORY</resourceType></resourceTypes></resourceDefinition></property></properties><dynamicProperties><dynamicProperty><name>Script Engine Binding property</name><value>Binding property value passed to Script Runner</value><description>Updates a script engine property specified by the Dynamic Property's key with the value specified by the Dynamic Property's value</description><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope></dynamicProperty></dynamicProperties><restricted><restrictions><restriction><requiredPermission>execute code</requiredPermission><explanation>Provides operator the ability to execute arbitrary code assuming all permissions that NiFi has.</explanation></restriction></restrictions></restricted><providedServiceAPIs><providedServiceAPI><className>org.apache.nifi.record.sink.RecordSinkService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.0.0-M4</version></providedServiceAPI></providedServiceAPIs></extension><extension><name>org.apache.nifi.reporting.script.ScriptedReportingTask</name><type>REPORTING_TASK</type><description>Provides reporting and status information to a script. ReportingContext, ComponentLog, and VirtualMachineMetrics objects are made available as variables (context, log, and vmMetrics, respectively) to the script for further processing. The context makes various information available such as events, provenance, bulletins, controller services, process groups, Java Virtual Machine metrics, etc.</description><tags><tag>reporting</tag><tag>script</tag><tag>execute</tag><tag>groovy</tag></tags><properties><property><name>Script Engine</name><displayName>Script Engine</displayName><description>Language Engine for executing scripts</description><defaultValue>Groovy</defaultValue><allowableValues><allowableValue><displayName>Groovy</displayName><value>Groovy</value><description>Groovy 4.0.21 [Groovy Scripting Engine 2.0]</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Script File</name><displayName>Script File</displayName><description>Path to script file to execute. Only one of Script File or Script Body may be used</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>FILE</resourceType></resourceTypes></resourceDefinition></property><property><name>Script Body</name><displayName>Script Body</displayName><description>Body of script to execute. Only one of Script File or Script Body may be used</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Module Directory</name><displayName>Module Directory</displayName><description>Comma-separated list of paths to files and/or directories which contain modules required by the script.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>MULTIPLE</cardinality><resourceTypes><resourceType>FILE</resourceType><resourceType>DIRECTORY</resourceType></resourceTypes></resourceDefinition></property></properties><dynamicProperties><dynamicProperty><name>A script engine property to update</name><value>The value to set it to</value><description>Updates a script engine property specified by the Dynamic Property's key with the value specified by the Dynamic Property's value</description><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope></dynamicProperty></dynamicProperties><supportsSensitiveDynamicProperties>true</supportsSensitiveDynamicProperties><restricted><restrictions><restriction><requiredPermission>execute code</requiredPermission><explanation>Provides operator the ability to execute arbitrary code assuming all permissions that NiFi has.</explanation></restriction></restrictions></restricted></extension></extensions></extensionManifest>