<extensionManifest><groupId>org.apache.nifi</groupId><artifactId>nifi-jolt-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.jolt.JoltTransformJSON</name><type>PROCESSOR</type><description>Applies a list of Jolt specifications to the flowfile JSON payload. A new FlowFile is created with transformed content and is routed to the 'success' relationship. If the JSON transform fails, the original FlowFile is routed to the 'failure' relationship.</description><tags><tag>json</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 Transform</name><displayName>Jolt Transform</displayName><description>Specifies the Jolt Transformation that should be used with the provided specification.</description><defaultValue>jolt-transform-chain</defaultValue><allowableValues><allowableValue><displayName>Shift</displayName><value>jolt-transform-shift</value><description>Shift input JSON/data to create the output JSON.</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 JSON.</description></allowableValue><allowableValue><displayName>Remove</displayName><value>jolt-transform-remove</value><description>Remove values from input data to create the output JSON.</description></allowableValue><allowableValue><displayName>Cardinality</displayName><value>jolt-transform-card</value><description>Change the cardinality of input elements to create the output JSON.</description></allowableValue><allowableValue><displayName>Sort</displayName><value>jolt-transform-sort</value><description>Sort input json key 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><allowableValue><displayName>Modify - Default</displayName><value>jolt-transform-modify-default</value><description>Writes when key is missing or value is null</description></allowableValue><allowableValue><displayName>Modify - Overwrite</displayName><value>jolt-transform-modify-overwrite</value><description>Always overwrite value</description></allowableValue><allowableValue><displayName>Modify - Define</displayName><value>jolt-transform-modify-define</value><description>Writes when key is missing</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 Specification</name><displayName>Jolt Specification</displayName><description>Jolt Specification for transformation of JSON data. The value for this property may be the text of a Jolt specification or the path to a file containing a Jolt specification. 'Jolt Specification' must be set, or the 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>Custom Transformation Class Name</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 Transform</propertyName><propertyDisplayName>Jolt Transform</propertyDisplayName><dependentValues><dependentValue>jolt-transform-custom</dependentValue></dependentValues></dependency></dependencies></property><property><name>Custom Module Directory</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>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>true</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>MULTIPLE</cardinality><resourceTypes><resourceType>DIRECTORY</resourceType><resourceType>FILE</resourceType></resourceTypes></resourceDefinition><dependencies><dependency><propertyName>Jolt Transform</propertyName><propertyDisplayName>Jolt Transform</propertyDisplayName><dependentValues><dependentValue>jolt-transform-custom</dependentValue></dependentValues></dependency></dependencies></property><property><name>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><property><name>Pretty Print</name><displayName>Pretty Print</displayName><description>Apply pretty print formatting to the output of the Jolt transform</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</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>Max String Length</name><displayName>Max String Length</displayName><description>The maximum allowed length of a string value when parsing the JSON document</description><defaultValue>20 MB</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>failure</name><description>If a FlowFile fails processing for any reason (for example, the FlowFile is not valid JSON), it will be routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>success</name><description>The FlowFile with transformed content will be routed to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>mime.type</name><description>Always set to application/json</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.jolt.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 Transform</name><displayName>Jolt Transform</displayName><description>Specifies the Jolt Transformation that should be used with the provided specification.</description><defaultValue>jolt-transform-chain</defaultValue><allowableValues><allowableValue><displayName>Shift</displayName><value>jolt-transform-shift</value><description>Shift input JSON/data to create the output JSON.</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 JSON.</description></allowableValue><allowableValue><displayName>Remove</displayName><value>jolt-transform-remove</value><description>Remove values from input data to create the output JSON.</description></allowableValue><allowableValue><displayName>Cardinality</displayName><value>jolt-transform-card</value><description>Change the cardinality of input elements to create the output JSON.</description></allowableValue><allowableValue><displayName>Sort</displayName><value>jolt-transform-sort</value><description>Sort input json key 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><allowableValue><displayName>Modify - Default</displayName><value>jolt-transform-modify-default</value><description>Writes when key is missing or value is null</description></allowableValue><allowableValue><displayName>Modify - Overwrite</displayName><value>jolt-transform-modify-overwrite</value><description>Always overwrite value</description></allowableValue><allowableValue><displayName>Modify - Define</displayName><value>jolt-transform-modify-define</value><description>Writes when key is missing</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 Specification</name><displayName>Jolt Specification</displayName><description>Jolt Specification for transformation of JSON data. The value for this property may be the text of a Jolt specification or the path to a file containing a Jolt specification. 'Jolt Specification' must be set, or the 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>Custom Transformation Class Name</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 Transform</propertyName><propertyDisplayName>Jolt Transform</propertyDisplayName><dependentValues><dependentValue>jolt-transform-custom</dependentValue></dependentValues></dependency></dependencies></property><property><name>Custom Module Directory</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>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>true</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>MULTIPLE</cardinality><resourceTypes><resourceType>DIRECTORY</resourceType><resourceType>FILE</resourceType></resourceTypes></resourceDefinition><dependencies><dependency><propertyName>Jolt Transform</propertyName><propertyDisplayName>Jolt Transform</propertyDisplayName><dependentValues><dependentValue>jolt-transform-custom</dependentValue></dependentValues></dependency></dependencies></property><property><name>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><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>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>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>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></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><sideEffectFree>true</sideEffectFree><inputRequirement>INPUT_REQUIRED</inputRequirement></extension></extensions></extensionManifest>