@Override
public Future<Message<?>> request(Message<?> message, String responseType, long timeout) {
if (message.getType() == null) {
throw new IllegalArgumentException("The Type is invalid.");
}
Future<Message<?>> future = responseManager.addResponseListener(new ResponseLock(responseType, timeout));
queueMessage(message);
return future;
}