Jason Foster created CAMEL-7003:
-----------------------------------

             Summary: RabbitMQ Producer cannot create exchanges, queues
                 Key: CAMEL-7003
                 URL: https://issues.apache.org/jira/browse/CAMEL-7003
             Project: Camel
          Issue Type: Bug
          Components: camel-rabbitmq
    Affects Versions: 2.12.1
         Environment: RabbitMQ 3.2.0 on CentOS 6.4 (running in VMWare 
Workstation 9.0.2 build-1031769)
Camel 2.12.1 running in Eclipse Helios on Windows 7
            Reporter: Jason Foster


There doesn't seem to be a way to have the producer declare an exchange or a 
queue.  The following route demonstrates this problem:

                from("stream:in?promptMessage=Enter message payload: ")
                
.to("rabbitmq://<server>:<port>/direct?queue=defect&username=guest&password=guest");

There also is no way for the producer to use the default exchange, (which has 
no name).  You cannot set an exchange name as a header with an empty string, 
and specifying 'direct' on the exchange uri also doesn't work.  However, the 
consumer appears to work and will declare at least queues, even on the default 
exchange.

The producer appears to only work with previously declared exchanges and 
queues, which isn't practical, especially in recovery situations, since you 
cannot guarantee the order things will start (producer vs. consumer) and the 
producer doesn't attempt any type of re-delivery in the case that the 
exchange/queue doesn't exist, nor does it indicate via logging or exceptions 
that there is a problem with delivery.

In Rabbit, creating exchanges and queues are both idempotent operations, so it 
wouldn't hurt to call the methods to declare the exchange and queue, regardless 
of whether they previously existed.  If you set up an endpoint to a 
non-existent queue and want to use the default direct exchange, you can't do 
that with this component.  

If an exchange and queue are created outside the component, (say by a consumer 
or using rabbitmq management console) then the producer works correctly.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to