## Summary

This processor consumes messages from AMQP messaging queue and converts them to a FlowFile to be routed to the next component in the flow. At the time of writing this document the supported AMQP protocol version is v0.9.1.

The component is based on RabbitMQ Client API The following guide and tutorial may also help you to brush up on some of the AMQP basics.

This processor does two things. It constructs FlwFile by extracting information from the consumed AMQP message (both body and attributes). Once message is consumed a FlowFile is constructed. The message body is written to a FlowFile and its com.rabbitmq.client.AMQP.BasicProperties are transfered into the FlowFile as attributes. AMQP attribute names are prefixed with amqp$ prefix.

## AMQP Properties

The following is the list of available standard AMQP properties which may come with the message: ("amqp$contentType", "amqp$contentEncoding", "amqp$headers", "amqp$deliveryMode", "amqp$priority", "amqp$correlationId", "amqp$replyTo", "amqp$expiration", "amqp$messageId", "amqp$timestamp", "amqp$type", "amqp$userId", "amqp$appId", "amqp$clusterId", "amqp$routingKey")

## Configuration Details

At the time of writing this document it only defines the essential configuration properties which are suitable for most cases. Other properties will be defined later as this component progresses. Configuring PublishAMQP:

1. Queue - [REQUIRED] the name of AMQP queue the messages will retrieved from. Usually provided by administrator (e.g., 'amq.direct')
2. Host Name - [REQUIRED] the name of the host where AMQP broker is running. Usually provided by administrator (e.g., 'myhost.com'). Defaults to 'localhost'.
3. Port - [REQUIRED] the port number where AMQP broker is running. Usually provided by the administrator (e.g., '2453'). Defaults to '5672'.
4. User Name - [REQUIRED] user name to connect to AMQP broker. Usually provided by the administrator (e.g., 'me'). Defaults to 'guest'.
5. Password - [REQUIRED] password to use with user name to connect to AMQP broker. Usually provided by the administrator. Defaults to 'guest'.
6. Use Certificate Authentication - [OPTIONAL] whether or not to use the SSL certificate common name for authentication rather than user name/password. This can only be used in conjunction with SSL. Defaults to 'false'.
7. Virtual Host - [OPTIONAL] Virtual Host name which segregates AMQP system for enhanced security. Please refer to this blog for more details on Virtual Host.