ActiveMQ ComponentThe ActiveMQ component allows messages to be sent to a JMS This component is based on the JMS Component and uses Spring's JMS support for declarative transactions, using Spring's JmsTemplate for sending and a MessageListenerContainer for consuming. To use this component make sure you have the activemq.jar or activemq-core.jar on your classpath along with any Camel dependencies such as camel-core.jar, camel-spring.jar and camel-jms.jar. URI formatactivemq:[topic:]destinationName So for example to send to queue FOO.BAR you would use activemq:FOO.BAR You can be completely specific if you wish via activemq:queue:FOO.BAR If you want to send to a topic called Stocks.Prices then you would use activemq:topic:Stocks.Prices Configuring the Connection FactoryThe following test case camelContext.addComponent("activemq", activeMQComponent("vm://localhost?broker.persistent=false")); Configuring the Connection Factory using Spring XMLYou can configure the ActiveMQ broker URL on the ActiveMQComponent as follows <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://activemq.apache.org/camel/schema/spring http://activemq.apache.org/camel/schema/spring/camel-spring.xsd"> <camelContext xmlns="http://activemq.apache.org/camel/schema/spring"> </camelContext> <bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent"> <property name="brokerURL" value="tcp://somehost:61616"/> </bean> </beans> Invoking MessageListener POJOs in a Camel routeThe ActiveMQ component also provides a helper Type Converter from a JMS MessageListener to a Processor. This means that the Bean component is capable of invoking any JMS MessageListener bean directly inside any route. So for example you can create a MessageListener in JMS like this.... public class MyListener implements MessageListener { public void onMessage(Message jmsMessage) { // ... } } Then use it in your Camel route as follows from("file://foo/bar").
bean(MyListener.class);
i.e. you can reuse any of the Camel Components and easily integrate them into your JMS MessageListener POJO! Getting Component JARThe ActiveMQ Camel component is released with the ActiveMQ project itself. For Maven 2 users you simply just need to add the following dependency to your project. <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-core</artifactId> <version>5.1.0</version> </dependency> Alternatively you can download the component jar directly from the Maven repository: See Also |