anchor.diff:  exchange produced messages will sent to. In the case of consumers, the
   exchange name determines which exchange the queue will bind to.
   
  -### Options
  -
  +=== Options
   
   // component options: START
   The RabbitMQ component has no options.
   // component options: END
  -
  -
  -
   
   
   // endpoint options: START
  
positive.code: behavior. If the value is false (by default) then the message is
  discarded/dead-lettered. If the value is true, then the message is
  re-queued. 
  |=======================================================================
  
  The following headers are used by the producer. If these are set on the
  camel exchange then they will be set on the RabbitMQ message.
  
  [width="100%",cols="10%,90%",options="header",]
  |=======================================================================
  |Property |Value
  
  |`rabbitmq.ROUTING_KEY` |The routing key that will be used when sending the message
  
negative.code: |`rabbitmq.TIMESTAMP` |The timestamp to set on the RabbitMQ message
  
  |`rabbitmq.APP_ID` |The appId to set on the RabbitMQ message
  |===
  
  Headers are set by the consumer once the message is received. The
  producer will also set the headers for downstream processors once the
  exchange has taken place. Any headers set prior to production that the
  producer sets will be overriden.
  
  === Message Body
  
  The component will use the camel exchange in body as the rabbit mq
  message body. The camel exchange in object must be convertible to a byte
  array. Otherwise the producer will throw an exception of unsupported
  body type.
  
  === Samples
  
  To receive messages from a queue that is bound to an exchange A with the
  routing key B,
  
  [source,java]
  ----
  from("rabbitmq://localhost/A?routingKey=B")
  ----
  
  To receive messages from a queue with a single thread with auto
  acknowledge disabled.
  
  [source,java]
  ----
  from("rabbitmq://localhost/A?routingKey=B&threadPoolSize=1&autoAck=false")
  ----
  
  To send messages to an exchange called C
  
  [source,java]
  ----
  to("rabbitmq://localhost/C")
  ----
  
  Declaring a headers exchange and queue
  
  [source,java]
  ----
  from("rabbitmq://localhost/ex?exchangeType=headers&queue=q&bindingArgs=#bindArgs")
  ----
  
  and place corresponding `Map<String, Object>` with the id of "bindArgs" in the Registry.
  
  For example declaring a method in spring
  
  [source,java]
  ----
  @Bean(name="bindArgs")
  public Map<String, Object> bindArgsBuilder() {
      return Collections.singletonMap("foo", "bar");
  }
  ----
  
  