Executor ex = message.getExchange() != null
? message.getExchange().get(Executor.class) : null;
if (ex == null || SynchronousExecutor.isA(ex)) {
ex = transportFactory.getExecutor(destination.getBus());
if (ex != null) {
ex.execute(receiver);
} else {
new Thread(receiver).start();
}
} else {
ex.execute(receiver);