[ 
https://issues.apache.org/jira/browse/CAMEL-7003?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14289171#comment-14289171
 ] 

Hendy Irawan edited comment on CAMEL-7003 at 1/23/15 12:26 PM:
---------------------------------------------------------------

This ticket conflates exchange/queue creation with the issue of not being able 
to send to default exchange.

I've created a ticket which is specifically about the default exchange "": 
CAMEL-8270, which should have been fixed by CAMEL-7031 (2.12.3) but still 
happens in 2.14.1 (probably regression)


was (Author: ceefour):
This ticket conflates exchange/queue creation with the issue of not being able 
to send to default exchange.

I've created a ticket which is specifically about the default exchange "": 
CAMEL-8270

> 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
>            Assignee: Willem Jiang
>
> 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.3.4#6332)

Reply via email to