<extensionManifest><groupId>org.apache.nifi</groupId><artifactId>nifi-websocket-processors-nar</artifactId><version>2.1.0</version><parentNar><groupId>org.apache.nifi</groupId><artifactId>nifi-websocket-services-api-nar</artifactId><version>2.1.0</version></parentNar><systemApiVersion>2.0.0</systemApiVersion><buildInfo><tag>rel/nifi-2.1.0</tag><branch>main</branch><revision>1</revision></buildInfo><extensions><extension><name>org.apache.nifi.processors.websocket.ConnectWebSocket</name><type>PROCESSOR</type><description>Acts as a WebSocket client endpoint to interact with a remote WebSocket server. FlowFiles are transferred to downstream relationships according to received message types as WebSocket client configured with this processor receives messages from remote WebSocket server. If a new flowfile is passed to the processor, the previous sessions will be closed and any data being sent will be aborted.</description><tags><tag>subscribe</tag><tag>WebSocket</tag><tag>consume</tag><tag>listen</tag></tags><properties><property><name>websocket-client-controller-service</name><displayName>WebSocket Client ControllerService</displayName><description>A WebSocket CLIENT Controller Service which can connect to a WebSocket server.</description><controllerServiceDefinition><className>org.apache.nifi.websocket.WebSocketClientService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-websocket-services-api-nar</artifactId><version>2.1.0</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>websocket-client-id</name><displayName>WebSocket Client Id</displayName><description>The client ID to identify WebSocket session. It should be unique within the WebSocket Client Controller Service. Otherwise, it throws WebSocketConfigurationException when it gets started.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>binary message</name><description>The WebSocket binary message output</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>FlowFile holding connection configuration attributes (like URL or HTTP headers) in case of connection failure</description><autoTerminated>true</autoTerminated></relationship><relationship><name>text message</name><description>The WebSocket text message output</description><autoTerminated>false</autoTerminated></relationship><relationship><name>success</name><description>FlowFile holding connection configuration attributes (like URL or HTTP headers) in case of successful connection</description><autoTerminated>true</autoTerminated></relationship><relationship><name>disconnected</name><description>The WebSocket session is disconnected</description><autoTerminated>true</autoTerminated></relationship><relationship><name>connected</name><description>The WebSocket session is established</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>websocket.controller.service.id</name><description>WebSocket Controller Service id.</description></writesAttribute><writesAttribute><name>websocket.session.id</name><description>Established WebSocket session id.</description></writesAttribute><writesAttribute><name>websocket.endpoint.id</name><description>WebSocket endpoint id.</description></writesAttribute><writesAttribute><name>websocket.local.address</name><description>WebSocket client address.</description></writesAttribute><writesAttribute><name>websocket.remote.address</name><description>WebSocket server address.</description></writesAttribute><writesAttribute><name>websocket.message.type</name><description>TEXT or BINARY.</description></writesAttribute></writesAttributes><triggerSerially>true</triggerSerially><inputRequirement>INPUT_ALLOWED</inputRequirement></extension><extension><name>org.apache.nifi.processors.websocket.ListenWebSocket</name><type>PROCESSOR</type><description>Acts as a WebSocket server endpoint to accept client connections. FlowFiles are transferred to downstream relationships according to received message types as the WebSocket server configured with this processor receives client requests</description><tags><tag>subscribe</tag><tag>WebSocket</tag><tag>consume</tag><tag>listen</tag></tags><properties><property><name>websocket-server-controller-service</name><displayName>WebSocket Server ControllerService</displayName><description>A WebSocket SERVER Controller Service which can accept WebSocket requests.</description><controllerServiceDefinition><className>org.apache.nifi.websocket.WebSocketServerService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-websocket-services-api-nar</artifactId><version>2.1.0</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>server-url-path</name><displayName>Server URL Path</displayName><description>The WetSocket URL Path on which this processor listens to. Must starts with '/', e.g. '/example'.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>text message</name><description>The WebSocket text message output</description><autoTerminated>false</autoTerminated></relationship><relationship><name>disconnected</name><description>The WebSocket session is disconnected</description><autoTerminated>true</autoTerminated></relationship><relationship><name>connected</name><description>The WebSocket session is established</description><autoTerminated>false</autoTerminated></relationship><relationship><name>binary message</name><description>The WebSocket binary message output</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>websocket.controller.service.id</name><description>WebSocket Controller Service id.</description></writesAttribute><writesAttribute><name>websocket.session.id</name><description>Established WebSocket session id.</description></writesAttribute><writesAttribute><name>websocket.endpoint.id</name><description>WebSocket endpoint id.</description></writesAttribute><writesAttribute><name>websocket.local.address</name><description>WebSocket server address.</description></writesAttribute><writesAttribute><name>websocket.remote.address</name><description>WebSocket client address.</description></writesAttribute><writesAttribute><name>websocket.message.type</name><description>TEXT or BINARY.</description></writesAttribute></writesAttributes><triggerSerially>true</triggerSerially><inputRequirement>INPUT_FORBIDDEN</inputRequirement></extension><extension><name>org.apache.nifi.processors.websocket.PutWebSocket</name><type>PROCESSOR</type><description>Sends messages to a WebSocket remote endpoint using a WebSocket session that is established by either ListenWebSocket or ConnectWebSocket.</description><tags><tag>WebSocket</tag><tag>publish</tag><tag>send</tag></tags><properties><property><name>websocket-session-id</name><displayName>WebSocket Session Id</displayName><description>A NiFi Expression to retrieve the session id. If not specified, a message will be sent to all connected WebSocket peers for the WebSocket controller service endpoint.</description><defaultValue>${websocket.session.id}</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>websocket-controller-service-id</name><displayName>WebSocket ControllerService Id</displayName><description>A NiFi Expression to retrieve the id of a WebSocket ControllerService.</description><defaultValue>${websocket.controller.service.id}</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>websocket-endpoint-id</name><displayName>WebSocket Endpoint Id</displayName><description>A NiFi Expression to retrieve the endpoint id of a WebSocket ControllerService.</description><defaultValue>${websocket.endpoint.id}</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>websocket-message-type</name><displayName>WebSocket Message Type</displayName><description>The type of message content: TEXT or BINARY</description><defaultValue>TEXT</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></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><writesAttribute><name>websocket.controller.service.id</name><description>WebSocket Controller Service id.</description></writesAttribute><writesAttribute><name>websocket.session.id</name><description>Established WebSocket session id.</description></writesAttribute><writesAttribute><name>websocket.endpoint.id</name><description>WebSocket endpoint id.</description></writesAttribute><writesAttribute><name>websocket.message.type</name><description>TEXT or BINARY.</description></writesAttribute><writesAttribute><name>websocket.local.address</name><description>WebSocket server address.</description></writesAttribute><writesAttribute><name>websocket.remote.address</name><description>WebSocket client address.</description></writesAttribute><writesAttribute><name>websocket.failure.detail</name><description>Detail of the failure.</description></writesAttribute></writesAttributes><triggerSerially>true</triggerSerially><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></extension></extensions></extensionManifest>