public DefaultMessagingDelegate() {
queue = new LinkedBlockingQueue<Message<?>>();
messageExecutor = Executors.newCachedThreadPool();
engineExecutor = Executors.newSingleThreadExecutor();
listeners = new HashMap<String, List<MessageListener<? extends Message<?>>>>();
responseManager = new ResponseManager();
shuttingDown = new AtomicBoolean(false);
}