RabbitMQProducer.process method uses the existing rabbitmq.EXCHANGE_NAME header in preference to the exchange name that is part of the endpoint uri. This means that when consuming off one exchange and producing onto another, the rabbitmq.EXCHANGE_NAME needs to be explicitally removed, otherwise the messages will not be sent to the exchange name defined in the destinition uri.
The exchange name is a required part of the endpoint uri.
http://camel.apache.org/rabbitmq.html, so would it be better to ignore the header completely in the RabbitMQProducer? At least then the messages would go where you were expecting them to.
Happy to submit a pull request on Github if that helps.