<extensionManifest><groupId>org.apache.nifi</groupId><artifactId>nifi-mqtt-nar</artifactId><version>1.22.0</version><parentNar><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>1.22.0</version></parentNar><systemApiVersion>1.22.0</systemApiVersion><buildInfo><tag>nifi-1.22.0-RC1</tag><branch>UNKNOWN</branch><revision>71e3ea9</revision></buildInfo><extensions><extension><name>org.apache.nifi.processors.mqtt.ConsumeMQTT</name><type>PROCESSOR</type><description>Subscribes to a topic and receives messages from an MQTT broker</description><tags><tag>subscribe</tag><tag>MQTT</tag><tag>IOT</tag><tag>consume</tag><tag>listen</tag></tags><properties><property><name>Broker URI</name><displayName>Broker URI</displayName><description>The URI(s) to use to connect to the MQTT broker (e.g., tcp://localhost:1883). The 'tcp', 'ssl', 'ws' and 'wss' schemes are supported. In order to use 'ssl', the SSL Context Service property must be set. When a comma-separated URI list is set (e.g., tcp://localhost:1883,tcp://localhost:1884), the processor will use a round-robin algorithm to connect to the brokers on connection failure.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>MQTT Specification Version</name><displayName>MQTT Specification Version</displayName><description>The MQTT specification version when connecting with the broker. See the allowable value descriptions for more details.</description><defaultValue>0</defaultValue><allowableValues><allowableValue><displayName>v3 AUTO</displayName><value>0</value><description>Start with v3.1.1 and fallback to v3.1.0 if not supported by a broker</description></allowableValue><allowableValue><displayName>v5.0</displayName><value>5</value><description></description></allowableValue><allowableValue><displayName>v3.1.1</displayName><value>4</value><description></description></allowableValue><allowableValue><displayName>v3.1.0</displayName><value>3</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>Username</name><displayName>Username</displayName><description>Username to use when connecting to the broker</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Password</name><displayName>Password</displayName><description>Password to use when connecting to the broker</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>SSL Context Service</name><displayName>SSL Context Service</displayName><description>The SSL Context Service used to provide client certificate information for TLS/SSL connections.</description><controllerServiceDefinition><className>org.apache.nifi.ssl.SSLContextService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>1.22.0</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Session state</name><displayName>Session state</displayName><description>Whether to start a fresh or resume previous flows. See the allowable value descriptions for more details.</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>Clean Session</displayName><value>true</value><description>Client and Server discard any previous session and start a new one. This session lasts as long as the network connection. State data associated with this session is not reused in any subsequent session</description></allowableValue><allowableValue><displayName>Resume Session</displayName><value>false</value><description>Server resumes communications with the client based on state from the current session (as identified by the ClientID). The client and server store the session after the client and server are disconnected. After the disconnection of a session that was not a clean session, the server stores further QoS 1 and QoS 2 messages that match any subscriptions that the client had at the time of disconnection as part of the session state</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Session Expiry Interval</name><displayName>Session Expiry Interval</displayName><description>After this interval the broker will expire the client and clear the session state.</description><defaultValue>24 hrs</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>MQTT Specification Version</propertyName><propertyDisplayName>MQTT Specification Version</propertyDisplayName><dependentValues><dependentValue>5</dependentValue></dependentValues></dependency><dependency><propertyName>Session state</propertyName><propertyDisplayName>Session state</propertyDisplayName><dependentValues><dependentValue>false</dependentValue></dependentValues></dependency></dependencies></property><property><name>Client ID</name><displayName>Client ID</displayName><description>MQTT client ID to use. If not set, a UUID will be generated.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Group ID</name><displayName>Group ID</displayName><description>MQTT consumer group ID to use. If group ID not set, client will connect as individual consumer.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Topic Filter</name><displayName>Topic Filter</displayName><description>The MQTT topic filter to designate the topics to subscribe to.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Quality of Service(QoS)</name><displayName>Quality of Service (QoS)</displayName><description>The Quality of Service (QoS) to receive the message with. Accepts values '0', '1' or '2'; '0' for 'at most once', '1' for 'at least once', '2' for 'exactly once'.</description><defaultValue>0</defaultValue><allowableValues><allowableValue><displayName>0 - At most once</displayName><value>0</value><description>Best effort delivery. A message won’t be acknowledged by the receiver or stored and redelivered by the sender. This is often called “fire and forget” and provides the same guarantee as the underlying TCP protocol.</description></allowableValue><allowableValue><displayName>1 - At least once</displayName><value>1</value><description>Guarantees that a message will be delivered at least once to the receiver. The message can also be delivered more than once</description></allowableValue><allowableValue><displayName>2 - Exactly once</displayName><value>2</value><description>Guarantees that each message is received only once by the counterpart. It is the safest and also the slowest quality of service level. The guarantee is provided by two round-trip flows between sender and receiver.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>record-reader</name><displayName>Record Reader</displayName><description>The Record Reader to use for parsing received MQTT Messages into Records.</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordReaderFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>1.22.0</version></controllerServiceDefinition><required>false</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 before writing them to a FlowFile.</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordSetWriterFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>1.22.0</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>add-attributes-as-fields</name><displayName>Add attributes as fields</displayName><description>If setting this property to true, default fields are going to be added in each record: _topic, _qos, _isDuplicate, _isRetained.</description><defaultValue>true</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><dependencies><dependency><propertyName>record-reader</propertyName><propertyDisplayName>Record Reader</propertyDisplayName></dependency></dependencies></property><property><name>message-demarcator</name><displayName>Message Demarcator</displayName><description>With this property, you have an option to output FlowFiles which contains multiple messages. This property allows you to provide a string (interpreted as UTF-8) to use for demarcating apart multiple messages. This is an optional property ; if not provided, and if not defining a Record Reader/Writer, each message received will result in a single FlowFile. To enter special character such as 'new line' use CTRL+Enter or Shift+Enter depending on the OS.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Connection Timeout (seconds)</name><displayName>Connection Timeout (seconds)</displayName><description>Maximum time interval the client will wait for the network connection to the MQTT server to be established. The default timeout is 30 seconds. A value of 0 disables timeout processing meaning the client will wait until the network connection is made successfully or fails.</description><defaultValue>30</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Keep Alive Interval (seconds)</name><displayName>Keep Alive Interval (seconds)</displayName><description>Defines the maximum time interval between messages sent or received. It enables the client to detect if the server is no longer available, without having to wait for the TCP/IP timeout. The client will ensure that at least one message travels across the network within each keep alive period. In the absence of a data-related message during the time period, the client sends a very small "ping" message, which the server will acknowledge. A value of 0 disables keepalive processing in the client.</description><defaultValue>60</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Last Will Message</name><displayName>Last Will Message</displayName><description>The message to send as the client's Last Will.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Last Will Topic</name><displayName>Last Will Topic</displayName><description>The topic to send the client's Last Will to.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Last Will Message</propertyName><propertyDisplayName>Last Will Message</propertyDisplayName></dependency></dependencies></property><property><name>Last Will Retain</name><displayName>Last Will Retain</displayName><description>Whether to retain the client's Last Will.</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><dependencies><dependency><propertyName>Last Will Message</propertyName><propertyDisplayName>Last Will Message</propertyDisplayName></dependency></dependencies></property><property><name>Last Will QoS Level</name><displayName>Last Will QoS Level</displayName><description>QoS level to be used when publishing the Last Will Message.</description><defaultValue>0</defaultValue><allowableValues><allowableValue><displayName>0 - At most once</displayName><value>0</value><description>Best effort delivery. A message won’t be acknowledged by the receiver or stored and redelivered by the sender. This is often called “fire and forget” and provides the same guarantee as the underlying TCP protocol.</description></allowableValue><allowableValue><displayName>1 - At least once</displayName><value>1</value><description>Guarantees that a message will be delivered at least once to the receiver. The message can also be delivered more than once</description></allowableValue><allowableValue><displayName>2 - Exactly once</displayName><value>2</value><description>Guarantees that each message is received only once by the counterpart. It is the safest and also the slowest quality of service level. The guarantee is provided by two round-trip flows between sender and receiver.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Last Will Message</propertyName><propertyDisplayName>Last Will Message</propertyDisplayName></dependency></dependencies></property><property><name>Max Queue Size</name><displayName>Max Queue Size</displayName><description>The MQTT messages are always being sent to subscribers on a topic regardless of how frequently the processor is scheduled to run. If the 'Run Schedule' is significantly behind the rate at which the messages are arriving to this processor, then a back up can occur in the internal queue of this processor. This property specifies the maximum number of messages this processor will hold in memory at one time in the internal queue. This data would be lost in case of a NiFi restart.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>parse.failure</name><description>If a message cannot be parsed using the configured Record Reader, the contents of the message will be routed to this Relationship as its own individual FlowFile.</description><autoTerminated>true</autoTerminated></relationship><relationship><name>Message</name><description>The MQTT message output</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>record.count</name><description>The number of records received</description></writesAttribute><writesAttribute><name>mqtt.broker</name><description>MQTT broker that was the message source</description></writesAttribute><writesAttribute><name>mqtt.topic</name><description>MQTT topic on which message was received</description></writesAttribute><writesAttribute><name>mqtt.qos</name><description>The quality of service for this message.</description></writesAttribute><writesAttribute><name>mqtt.isDuplicate</name><description>Whether or not this message might be a duplicate of one which has already been received.</description></writesAttribute><writesAttribute><name>mqtt.isRetained</name><description>Whether or not this message was from a current publisher, or was "retained" by the server as the last message published on the topic.</description></writesAttribute></writesAttributes><triggerSerially>true</triggerSerially><inputRequirement>INPUT_FORBIDDEN</inputRequirement><systemResourceConsiderations><systemResourceConsideration><resource>MEMORY</resource><description>The 'Max Queue Size' specifies the maximum number of messages that can be hold in memory by NiFi by a single instance of this processor. A high value for this property could represent a lot of data being stored in memory.</description></systemResourceConsideration></systemResourceConsiderations><seeAlso><see>org.apache.nifi.processors.mqtt.PublishMQTT</see></seeAlso></extension><extension><name>org.apache.nifi.processors.mqtt.PublishMQTT</name><type>PROCESSOR</type><description>Publishes a message to an MQTT topic</description><tags><tag>publish</tag><tag>MQTT</tag><tag>IOT</tag></tags><properties><property><name>Broker URI</name><displayName>Broker URI</displayName><description>The URI(s) to use to connect to the MQTT broker (e.g., tcp://localhost:1883). The 'tcp', 'ssl', 'ws' and 'wss' schemes are supported. In order to use 'ssl', the SSL Context Service property must be set. When a comma-separated URI list is set (e.g., tcp://localhost:1883,tcp://localhost:1884), the processor will use a round-robin algorithm to connect to the brokers on connection failure.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>MQTT Specification Version</name><displayName>MQTT Specification Version</displayName><description>The MQTT specification version when connecting with the broker. See the allowable value descriptions for more details.</description><defaultValue>0</defaultValue><allowableValues><allowableValue><displayName>v3 AUTO</displayName><value>0</value><description>Start with v3.1.1 and fallback to v3.1.0 if not supported by a broker</description></allowableValue><allowableValue><displayName>v5.0</displayName><value>5</value><description></description></allowableValue><allowableValue><displayName>v3.1.1</displayName><value>4</value><description></description></allowableValue><allowableValue><displayName>v3.1.0</displayName><value>3</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>Username</name><displayName>Username</displayName><description>Username to use when connecting to the broker</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Password</name><displayName>Password</displayName><description>Password to use when connecting to the broker</description><required>false</required><sensitive>true</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>SSL Context Service</name><displayName>SSL Context Service</displayName><description>The SSL Context Service used to provide client certificate information for TLS/SSL connections.</description><controllerServiceDefinition><className>org.apache.nifi.ssl.SSLContextService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>1.22.0</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Session state</name><displayName>Session state</displayName><description>Whether to start a fresh or resume previous flows. See the allowable value descriptions for more details.</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>Clean Session</displayName><value>true</value><description>Client and Server discard any previous session and start a new one. This session lasts as long as the network connection. State data associated with this session is not reused in any subsequent session</description></allowableValue><allowableValue><displayName>Resume Session</displayName><value>false</value><description>Server resumes communications with the client based on state from the current session (as identified by the ClientID). The client and server store the session after the client and server are disconnected. After the disconnection of a session that was not a clean session, the server stores further QoS 1 and QoS 2 messages that match any subscriptions that the client had at the time of disconnection as part of the session state</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Session Expiry Interval</name><displayName>Session Expiry Interval</displayName><description>After this interval the broker will expire the client and clear the session state.</description><defaultValue>24 hrs</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>MQTT Specification Version</propertyName><propertyDisplayName>MQTT Specification Version</propertyDisplayName><dependentValues><dependentValue>5</dependentValue></dependentValues></dependency><dependency><propertyName>Session state</propertyName><propertyDisplayName>Session state</propertyDisplayName><dependentValues><dependentValue>false</dependentValue></dependentValues></dependency></dependencies></property><property><name>Client ID</name><displayName>Client ID</displayName><description>MQTT client ID to use. If not set, a UUID will be generated.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Topic</name><displayName>Topic</displayName><description>The topic to publish the message to.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Retain Message</name><displayName>Retain Message</displayName><description>Whether or not the retain flag should be set on the MQTT message.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Quality of Service(QoS)</name><displayName>Quality of Service (QoS)</displayName><description>The Quality of Service (QoS) to send the message with. Accepts three values '0', '1' and '2'; '0' for 'at most once', '1' for 'at least once', '2' for 'exactly once'. Expression language is allowed in order to support publishing messages with different QoS but the end value of the property must be either '0', '1' or '2'. </description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>record-reader</name><displayName>Record Reader</displayName><description>The Record Reader to use for 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>1.22.0</version></controllerServiceDefinition><required>false</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 before publishing them as an MQTT Message.</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordSetWriterFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>1.22.0</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>message-demarcator</name><displayName>Message Demarcator</displayName><description>With this property, you have an option to publish multiple messages from a single FlowFile. This property allows you to provide a string (interpreted as UTF-8) to use for demarcating apart the FlowFile content. This is an optional property ; if not provided, and if not defining a Record Reader/Writer, each FlowFile will be published as a single message. To enter special character such as 'new line' use CTRL+Enter or Shift+Enter depending on the OS.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>VARIABLE_REGISTRY</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Connection Timeout (seconds)</name><displayName>Connection Timeout (seconds)</displayName><description>Maximum time interval the client will wait for the network connection to the MQTT server to be established. The default timeout is 30 seconds. A value of 0 disables timeout processing meaning the client will wait until the network connection is made successfully or fails.</description><defaultValue>30</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Keep Alive Interval (seconds)</name><displayName>Keep Alive Interval (seconds)</displayName><description>Defines the maximum time interval between messages sent or received. It enables the client to detect if the server is no longer available, without having to wait for the TCP/IP timeout. The client will ensure that at least one message travels across the network within each keep alive period. In the absence of a data-related message during the time period, the client sends a very small "ping" message, which the server will acknowledge. A value of 0 disables keepalive processing in the client.</description><defaultValue>60</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Last Will Message</name><displayName>Last Will Message</displayName><description>The message to send as the client's Last Will.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Last Will Topic</name><displayName>Last Will Topic</displayName><description>The topic to send the client's Last Will to.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Last Will Message</propertyName><propertyDisplayName>Last Will Message</propertyDisplayName></dependency></dependencies></property><property><name>Last Will Retain</name><displayName>Last Will Retain</displayName><description>Whether to retain the client's Last Will.</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><dependencies><dependency><propertyName>Last Will Message</propertyName><propertyDisplayName>Last Will Message</propertyDisplayName></dependency></dependencies></property><property><name>Last Will QoS Level</name><displayName>Last Will QoS Level</displayName><description>QoS level to be used when publishing the Last Will Message.</description><defaultValue>0</defaultValue><allowableValues><allowableValue><displayName>0 - At most once</displayName><value>0</value><description>Best effort delivery. A message won’t be acknowledged by the receiver or stored and redelivered by the sender. This is often called “fire and forget” and provides the same guarantee as the underlying TCP protocol.</description></allowableValue><allowableValue><displayName>1 - At least once</displayName><value>1</value><description>Guarantees that a message will be delivered at least once to the receiver. The message can also be delivered more than once</description></allowableValue><allowableValue><displayName>2 - Exactly once</displayName><value>2</value><description>Guarantees that each message is received only once by the counterpart. It is the safest and also the slowest quality of service level. The guarantee is provided by two round-trip flows between sender and receiver.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Last Will Message</propertyName><propertyDisplayName>Last Will Message</propertyDisplayName></dependency></dependencies></property></properties><relationships><relationship><name>success</name><description>FlowFiles that are sent successfully to the destination are transferred to this relationship.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>FlowFiles that failed to send to the destination are transferred to this relationship.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes></writesAttributes><supportsBatching>true</supportsBatching><inputRequirement>INPUT_REQUIRED</inputRequirement><systemResourceConsiderations><systemResourceConsideration><resource>MEMORY</resource><description>An instance of this component can cause high usage of this system resource.  Multiple instances or high concurrency settings may result a degradation of performance.</description></systemResourceConsideration></systemResourceConsiderations><seeAlso><see>org.apache.nifi.processors.mqtt.ConsumeMQTT</see></seeAlso></extension></extensions></extensionManifest>