Hi

I dont think its a good idea to create a 2nd component. Instead
improve/fix make the the existing component better.

We love contributions
http://camel.apache.org/contributing.html



On Fri, Nov 15, 2013 at 7:49 PM, Christian Posta
<christian.po...@gmail.com> wrote:
> not sure what the rest of the community thinks... but i would say at
> least put it on github :)
> would it be possible to just auto-default to the "opinionated" config
> settings in the current component?
>
> On Fri, Nov 15, 2013 at 10:28 AM, Alex Sherwin <alex.sher...@gmail.com> wrote:
>> I found the RabbitMQ support shipped in 2.12 to be pretty sub-par for a
>> bunch of reasons:
>>
>>    - host/port must be configured in the URI
>>    - vhost must be configured in the URI
>>    - autoDelete cannot be specified separately for the Exchange/Queue
>>    - durability cannot be specified separately for the Exchange/Queue
>>    - poor options around ack/nack (autoAck is the only exposed option,
>>    which seems dangerous to me and
>> CAMEL-6767<https://issues.apache.org/jira/browse/CAMEL-6767> only
>>    addresses a current bug... which isn't taking exchange.isFailed() into
>>    account)
>>    - no options around redelivery on exchange failures
>>
>> I would think that all of those should probably be addressed in the current
>> RabbitMQComponent/RabbitMQEndpoint/RabbitMQConsumer classes
>>
>> However, to make using RabbitMQ as a viable option for a classic queue use
>> case, which is all I wanted to do, even fixing all of the above still left
>> the URI's feeling quite heavy.. mainly because the standard AMQP practices
>> around routing keys and anonymous queue bindings make perfect sense,
>> unless, you just want durable non-autodeleted named queues
>>
>> So I created RabbitMQQueueComponent/Consumer/Endpoint implementations which
>> make it behave like one may expect for regular queueing.  You configure the
>> one-time settings (host/port, defaults for durability etc on the component)
>> and then you can just create routes like this:
>>
>> from(rabbitmq:exchange?queue=from queue).to(rabbitmq:exchange?queue=to
>> queue)
>>
>> The component/endpoints/consumers  take care of the creating matching
>> routing keys, creating appropriate exchanges/queues/bindings using the AMQP
>> client etc to make it act like classic queues
>>
>> I implemented everything mentioned above, but it would be competing with
>> the existing RabbitMQ components (because, rightfully so, the default
>> implementation would want to have AMQP semantics)
>>
>> So my question is just... is there any interest to have contributed
>> components for RabbitMQ that have very opinionated default AMQP settings
>> and behaviors
>>
>> --
>> Alexander Sherwin
>
>
>
> --
> Christian Posta
> http://www.christianposta.com/blog
> twitter: @christianposta



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
Email: cib...@redhat.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen

Reply via email to