private static final Logger logger = LoggerFactory.getLogger("SubmitTaskAndPauseForCompletion");
@Override
public ExecutionResult execute(MessageContext messageContext, ExecutionContext executionContext) {
Message message = messageContext.getMessage();
// Blocking code here
// ...
//
executionContext.submitTask(new AuthenticationTask(), new PostAuthenticationCallback(), executionContext);
// This line resumes after the submitTask is done.