// we should preserve existing MEP so remember old MEP
// if you want to permanently to change the MEP then use .setExchangePattern in the DSL
final ExchangePattern existingPattern = exchange.getPattern();
// send the exchange to the destination using a producer
return producerCache.doInAsyncProducer(destination, exchange, pattern, callback, new AsyncProducerCallback() {
public boolean doInAsyncProducer(Producer producer, AsyncProcessor asyncProducer, final Exchange exchange,
ExchangePattern pattern, final AsyncCallback callback) {
final Exchange target = configureExchange(exchange, pattern);
log.debug(">>>> {} {}", destination, exchange);
return AsyncProcessorHelper.process(asyncProducer, target, new AsyncCallback() {