[ 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)