Since we're on a major migration process of this website, some component documents here are out of sync right now. In the meantime you may want to look at the early version of the new website
https://camel.apache.org/staging/
We would very much like to receive any feedback on the new site, please join the discussion on the Camel user mailing list.
AMQPThe 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 <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-amqp</artifactId> <version>${camel.version}</version> <!-- use the same version as your Camel core version --> </dependency> URI formatamqp:[queue:|topic:]destinationName[?options] AMQP OptionsYou can specify all of the various configuration options of the JMS component after the destination name. UsageAs AMQP component inherits from the JMS component. The usage of the former is almost identical to the latter: Using AMQP component // Consuming from AMQP queue from("amqp:queue:incoming") .to(...); // Sending message to the AMQP topic from(...) .to("amqp:topic:notify"); Configuring AMQP componentStarting from the Camel 2.16.1 you can also use the Creating AMQP 1.0 component AMQPComponent amqp = AMQPComponent.amqp10Component("amqp://guest:guest@localhost:5672"); Keep in mind that starting from the Camel 2.17 the Creating AMQP 1.0 component AMQPComponent amqp = AMQPComponent.amqpComponent("amqp://localhost:5672"); AMQPComponent authorizedAmqp = AMQPComponent.amqpComponent("amqp://localhost:5672", "user", "password"); Starting from Camel 2.17, in order to automatically configure the AMQP component, you can also add an instance of AMQP connection details auto-configuration @Bean AMQPConnectionDetails amqpConnection() { return new AMQPConnectionDetails("amqp://lcoalhost:5672"); } @Bean AMQPConnectionDetails securedAmqpConnection() { return new AMQPConnectionDetails("amqp://lcoalhost:5672", "username", "password"); }
You can also rely on the Camel properties to read the AMQP connection details. The factory method
AMQP connection details auto-configuration export AMQP_SERVICE_HOST = "mybroker.com" export AMQP_SERVICE_PORT = "6666" export AMQP_SERVICE_USERNAME = "username" export AMQP_SERVICE_PASSWORD = "password" ... @Bean AMQPConnectionDetails amqpConnection() { return AMQPConnectionDetails.discoverAMQP(); } Configuring Connection FactoryLike with any other JMS-based component, usually it's important to configure JMS connection factory. For example, you'd like to set your broker URL or set proper connection credentials. Additionally, you would always want to set some kind of pooling (or caching) on the connection factory. An example of how to do both of these tasks is shown below. <bean id="jmsConnectionFactory" class="org.apache.qpid.jms.JmsConnectionFactory"> <property name="remoteURI" value="amqp://localhost:5672" /> <property name="username" value="admin"/> <property name="password" value="admin"/> </bean> <bean id="jmsCachingConnectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory"> <property name="targetConnectionFactory" ref="jmsConnectionFactory" /> </bean> <bean id="jmsConfig" class="org.apache.camel.component.jms.JmsConfiguration" > <property name="connectionFactory" ref="jmsCachingConnectionFactory" /> <property name="cacheLevelName" value="CACHE_CONSUMER" /> </bean> <bean id="amqp" class="org.apache.camel.component.amqp.AMQPComponent"> <property name="configuration" ref="jmsConfig" /> </bean> <camelContext xmlns="http://camel.apache.org/schema/blueprint" id="simple"> <route> <from uri="timer:simple?period=5000"/> <setBody> <simple>Hello World</simple> </setBody> <to uri="amqp:test"/> </route> </camelContext> Using amqp inside KarafTo use the Example: karaf@root()> repo-add camel karaf@root()> feature:install camel-amqp and the environment would be set. Use the
|