<extensionManifest><groupId>org.apache.nifi</groupId><artifactId>nifi-update-attribute-nar</artifactId><version>2.0.0-M4</version><parentNar><groupId>org.apache.nifi</groupId><artifactId>nifi-jetty-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.attributes.UpdateAttribute</name><type>PROCESSOR</type><description>Updates the Attributes for a FlowFile by using the Attribute Expression Language and/or deletes the attributes based on a regular expression</description><tags><tag>attributes</tag><tag>modification</tag><tag>update</tag><tag>delete</tag><tag>Attribute Expression Language</tag><tag>state</tag></tags><properties><property><name>Delete Attributes Expression</name><displayName>Delete Attributes Expression</displayName><description>Regular expression for attributes to be deleted from FlowFiles.  Existing attributes that match will be deleted regardless of whether they are updated by this processor.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Store State</name><displayName>Store State</displayName><description>Select whether or not state will be stored. Selecting 'Stateless' will offer the default functionality of purely updating the attributes on a FlowFile in a stateless manner. Selecting a stateful option will not only store the attributes on the FlowFile but also in the Processors state. See the 'Stateful Usage' topic of the 'Additional Details' section of this processor's documentation for more information</description><defaultValue>Do not store state</defaultValue><allowableValues><allowableValue><displayName>Do not store state</displayName><value>Do not store state</value><description></description></allowableValue><allowableValue><displayName>Store state locally</displayName><value>Store state locally</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>Stateful Variables Initial Value</name><displayName>Stateful Variables Initial Value</displayName><description>If using state to set/reference variables then this value is used to set the initial value of the stateful variable. This will only be used in the @OnScheduled method when state does not contain a value for the variable. This is required if running statefully but can be empty if needed.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>canonical-value-lookup-cache-size</name><displayName>Cache Value Lookup Cache Size</displayName><description>Specifies how many canonical lookup values should be stored in the cache</description><defaultValue>100</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><dynamicProperties><dynamicProperty><name>A FlowFile attribute to update</name><value>The value to set it to</value><description>Updates a FlowFile attribute specified by the Dynamic Property's key with the value specified by the Dynamic Property's value</description><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope></dynamicProperty></dynamicProperties><relationships><relationship><name>success</name><description>All successful FlowFiles are routed to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>See additional details</name><description>This processor may write or remove zero or more attributes as described in additional details</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><stateful><description>Gives the option to store values not only on the FlowFile but as stateful variables to be referenced in a recursive manner.</description><scopes><scope>LOCAL</scope></scopes></stateful><inputRequirement>INPUT_REQUIRED</inputRequirement><useCases><useCase><description>Add a new FlowFile attribute</description><notes></notes><keywords></keywords><inputRequirement>INPUT_ALLOWED</inputRequirement><configuration>Leave "Delete Attributes Expression" and "Stateful Variables Initial Value" unset.
Set "Store State" to "Do not store state".

Add a new property. The name of the property will become the name of the newly added attribute.
The value of the property will become the value of the newly added attribute. The value may use the NiFi Expression Language in order to reference other
attributes or call Expression Language functions.
</configuration></useCase><useCase><description>Overwrite a FlowFile attribute with a new value</description><notes></notes><keywords></keywords><inputRequirement>INPUT_ALLOWED</inputRequirement><configuration>Leave "Delete Attributes Expression" and "Stateful Variables Initial Value" unset.
Set "Store State" to "Do not store state".

Add a new property. The name of the property will become the name of the attribute whose value will be overwritten.
The value of the property will become the new value of the attribute. The value may use the NiFi Expression Language in order to reference other
attributes or call Expression Language functions.

For example, to change the `txId` attribute to the uppercase version of its current value, add a property named `txId` with a value of `${txId:toUpper()}`
</configuration></useCase><useCase><description>Rename a file</description><notes></notes><keywords></keywords><inputRequirement>INPUT_ALLOWED</inputRequirement><configuration>Leave "Delete Attributes Expression" and "Stateful Variables Initial Value" unset.
Set "Store State" to "Do not store state".

Add a new property whose name is `filename` and whose value is the desired filename.

For example, to set the filename to `abc.txt`, add a property named `filename` with a value of `abc.txt`.
To add the `txId` attribute as a prefix to the filename, add a property named `filename` with a value of `${txId}${filename}`.
Or, to make the filename more readable, separate the txId from the rest of the filename with a hyphen by using a value of `${txId}-${filename}`.
</configuration></useCase></useCases></extension></extensions></extensionManifest>