The amqp: component supports the AMQP 1.0 protocol using the JMS Client API of the Qpid project. In case you want to use AMQP 0.9 (in particular RabbitMQ) you might also be interested in the Camel RabbitMQ component. Please keep in mind that prior to the Camel 2.17.0 AMQP component supported AMQP 0.9 and above, however since Camel 2.17.0 it supports only AMQP 1.0.
Maven users will need to add the following dependency to their
pom.xml for this component:
You can specify all of the various configuration options of the JMS component after the destination name.
As AMQP component is inherited from JMS component, the usage of the former is almost identical to the latter:
Configuring AMQP component
Starting from the Camel 2.16.1 you can also use the
AMQPComponent#amqp10Component(String connectionURI) factory method to return the AMQP 1.0 component with the pre-configured topic prefix:
Keep in mind that starting from the Camel 2.17 the
AMQPComponent#amqp10Component(String connectionURI) factory method has been deprecated on the behalf of the
Starting from Camel 2.17, in order to automatically configure the AMQP component, you can also add an instance of
org.apache.camel.component.amqp.AMQPConnectionDetails to the registry. For example for Spring Boot you just have to define bean:
You can also rely on the Camel properties to read the AMQP connection details. Factory method
AMQPConnectionDetails.discoverAMQP() attempts to read Camel properties in a Kubernetes-like convention, just as demonstrated on the snippet below:
To have using topics working with
camel-amqp you need to configure the component to use
topic:// as topic prefix, as shown below:
Keep in mind that both
AMQPComponent#amqpComponent() methods and
AMQPConnectionDetails pre-configure the component with the topic prefix, so you don't have to configure it explicitly.