Broker Camel Component
Available as of AcitveMQ 5.9
Embedding Apache Camel inside the ActiveMQ broker provides great flexibility for extending the message broker with the integration power of Camel. Apache Camel routes also benefit in that you can avoid the serialization and network costs of connecting to ActiveMQ remotely - if you use the activemq component.
If however, you want to change the behaviour of messages flowing through the ActiveMQ message broker itself you will be limited to the shipped set of ActiveMQ BrokerInterceptors- or develop your ownBroker plugin and then introduce that as a jar on to the class path for the ActiveMQ broker.
The broker camel component makes this even easier - which intercepts messages as they move through the broker itself, allowing them to be modified and manipulated before they are persisted to the message store or delivered to end consumers.
You can include a camel.xml file into your ActiveMQ broker config and then if you want to take all messages sent to a Queue and publish them to a Topic, changing their priority along the way - you can do something like this:
A few things worth noting:
There are some extra classes that have been added to the activemq-broker package - to enable views of the running broker without using JMX - and to support the use of the broker component:
This is using the Camel Message Router pattern - note the use of Spring expression language spel in the when clause.