<extensionManifest><groupId>org.apache.nifi</groupId><artifactId>nifi-jolt-record-nar</artifactId><version>1.27.0</version><parentNar><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-shared-nar</artifactId><version>1.27.0</version></parentNar><systemApiVersion>1.27.0</systemApiVersion><buildInfo><tag>nifi-1.27.0-RC2</tag><branch>UNKNOWN</branch><revision>e0c4461</revision></buildInfo><extensions><extension><name>org.apache.nifi.processors.jolt.record.JoltTransformRecord</name><type>PROCESSOR</type><description>Applies a JOLT specification to each record in the FlowFile payload. A new FlowFile is created with transformed content and is routed to the 'success' relationship. If the transform fails, the original FlowFile is routed to the 'failure' relationship.</description><tags><tag>record</tag><tag>jolt</tag><tag>transform</tag><tag>shiftr</tag><tag>chainr</tag><tag>defaultr</tag><tag>removr</tag><tag>cardinality</tag><tag>sort</tag></tags><properties><property><name>jolt-record-record-reader</name><displayName>Record Reader</displayName><description>Specifies the Controller Service to use for parsing incoming data and determining the data's schema.</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordReaderFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>1.27.0</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>jolt-record-record-writer</name><displayName>Record Writer</displayName><description>Specifies the Controller Service to use for writing out the records</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordSetWriterFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>1.27.0</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>jolt-record-transform</name><displayName>Jolt Transformation DSL</displayName><description>Specifies the Jolt Transformation that should be used with the provided specification.</description><defaultValue>jolt-transform-chain</defaultValue><allowableValues><allowableValue><displayName>Cardinality</displayName><value>jolt-transform-card</value><description>Change the cardinality of input elements to create the output.</description></allowableValue><allowableValue><displayName>Chain</displayName><value>jolt-transform-chain</value><description>Execute list of Jolt transformations.</description></allowableValue><allowableValue><displayName>Default</displayName><value>jolt-transform-default</value><description> Apply default values to the output.</description></allowableValue><allowableValue><displayName>Modify - Default</displayName><value>jolt-transform-modify-default</value><description>Writes when field name is missing or value is null</description></allowableValue><allowableValue><displayName>Modify - Define</displayName><value>jolt-transform-modify-define</value><description>Writes when key is missing</description></allowableValue><allowableValue><displayName>Modify - Overwrite</displayName><value>jolt-transform-modify-overwrite</value><description> Always overwrite value</description></allowableValue><allowableValue><displayName>Remove</displayName><value>jolt-transform-remove</value><description> Remove values from input data to create the output.</description></allowableValue><allowableValue><displayName>Shift</displayName><value>jolt-transform-shift</value><description>Shift input data to create the output.</description></allowableValue><allowableValue><displayName>Sort</displayName><value>jolt-transform-sort</value><description>Sort input field name values alphabetically. Any specification set is ignored.</description></allowableValue><allowableValue><displayName>Custom</displayName><value>jolt-transform-custom</value><description>Custom Transformation. Requires Custom Transformation Class Name</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>jolt-record-custom-class</name><displayName>Custom Transformation Class Name</displayName><description>Fully Qualified Class Name for Custom Transformation</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>jolt-record-transform</propertyName><propertyDisplayName>Jolt Transformation DSL</propertyDisplayName><dependentValues><dependentValue>jolt-transform-custom</dependentValue></dependentValues></dependency></dependencies></property><property><name>jolt-record-custom-modules</name><displayName>Custom Module Directory</displayName><description>Comma-separated list of paths to files and/or directories which contain modules containing custom transformations (that are not included on NiFi's classpath).</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>true</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>MULTIPLE</cardinality><resourceTypes><resourceType>DIRECTORY</resourceType><resourceType>FILE</resourceType></resourceTypes></resourceDefinition><dependencies><dependency><propertyName>jolt-record-transform</propertyName><propertyDisplayName>Jolt Transformation DSL</propertyDisplayName><dependentValues><dependentValue>jolt-transform-custom</dependentValue></dependentValues></dependency></dependencies></property><property><name>jolt-record-spec</name><displayName>Jolt Specification</displayName><description>Jolt Specification for transform of record data. The value for this property may be the text of a JOLT specification or the path to a file containing a JOLT specification. This value is ignored if the Jolt Sort Transformation is selected.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>FILE</resourceType><resourceType>TEXT</resourceType></resourceTypes></resourceDefinition></property><property><name>jolt-record-transform-cache-size</name><displayName>Transform Cache Size</displayName><description>Compiling a Jolt Transform can be fairly expensive. Ideally, this will be done only once. However, if the Expression Language is used in the transform, we may need a new Transform for each FlowFile. This value controls how many of those Transforms we cache in memory in order to avoid having to compile the Transform each time.</description><defaultValue>1</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>The FlowFile with transformed content will be routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>If a FlowFile fails processing for any reason (for example, the FlowFile records cannot be parsed), it will be routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>original</name><description>The original FlowFile that was transformed. If the FlowFile fails processing, nothing will be sent to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>record.count</name><description>The number of records in an outgoing FlowFile</description></writesAttribute><writesAttribute><name>mime.type</name><description>The MIME Type that the configured Record Writer indicates is appropriate</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><eventDriven>true</eventDriven><sideEffectFree>true</sideEffectFree><inputRequirement>INPUT_REQUIRED</inputRequirement></extension></extensions></extensionManifest>