Hello, Can I ask for help, please? I use Camel to route messages between various email, ftp and web service endpoints. I want to add AMQP support as well. Recently I use RabbitMQ but I want the application to handle any AMQP 0.9.1 broker.
The problem is I did nor find any way how to set parameters like /durable=true/ to the AMQPComponent. I know QPID can use these parameters, but don't know how to pass them from Camel to QPID. If I want to connect to a durable queue it fails on incompatible parameters. This is because AMQP Component is inherited from JMSComponent and this component does not accept the necessary parameters. I construct the connection dynamically as Spring bean from configuration file (this works): / String CONNECTION_STRING = "amqp://%s:%s@%s/%s?brokerlist='tcp://%s:%s'"; ... amqpFactoryName = "amqConnectionFactory-" + code; endpointPrefix = "amqp-" + code; constructorArguments.addIndexedArgumentValue(0, connectionString, "java.lang.String"); amqpConnectionFactoryBeanDefinition.setConstructorArgumentValues(constructorArguments); amqpConnectionFactoryBeanDefinition.setAutowireCandidate(true); registry.registerBeanDefinition(amqpFactoryName, amqpConnectionFactoryBeanDefinition); GenericBeanDefinition amqpComponenetBeanDefinition = new GenericBeanDefinition(); amqpComponenetBeanDefinition.setBeanClass(AMQPComponent.class); amqpComponenetBeanDefinition.setAutowireCandidate(true); MutablePropertyValues values = new MutablePropertyValues(); values.addPropertyValue("connectionFactory", new RuntimeBeanReference(amqpFactoryName)); amqpComponenetBeanDefinition.setPropertyValues(values); registry.registerBeanDefinition(endpointPrefix, amqpComponenetBeanDefinition);/ The Camel route is defined like this: /from("amqp-in://BURL:direct://amq.direct//MyQueue") .to(...)/ This works well. But if the queue I want to connect to is durable, I tried: /amqp-in://BURL:direct://amq.direct//MyQueue?durable=true/ this fails: /Failed to resolve endpoint: amqp-IN://BURL:direct://amq.direct//MyQueue?durable=true There are 1 parameters that couldn't be set on the endpoint. Check the uri if the parameters are spelt correctly and that they are properties of the endpoint. Unknown parameters=[{durable=true}]/ I found out why it fails, but don't know how to make it work. Is there any way to set the paramaters to the underlying QPID component? Or a different way to solve this? As I sad, I would like to use generic AMQP approach, not just RabbitMQ. Thank you, any help is appreciated. Ondrej -- View this message in context: http://camel.465427.n5.nabble.com/How-to-set-QPID-parameters-e-g-durable-true-to-Camel-AMQPComponent-tp5757266.html Sent from the Camel - Users mailing list archive at Nabble.com.