Sometimes its easier to implement that logic in a java bean, and then use ProducerTemplate to easily send a message and wait for the reply.
Then the route is just
In terms of the JMS queue, you can use a consumerTemplate to wait for the reply. It supports a timeout value.
You can use JMSSelector only pickup the message with that header you need. However JMSSelector comes with a performance penalty.
You can also use EIPs for this. Then you would need to use EIPs such as Content Enricher
ProducerTemplate and ConsumerTemplate that is exacly what I want.