final SimpleFuture<ServerDeploymentPlanResult> resultFuture = new SimpleFuture<ServerDeploymentPlanResult>();
final UpdateResultHandlerImpl resultHandler = new UpdateResultHandlerImpl(resultFuture, plan);
final ServerUpdateController controller = new ServerUpdateController(getServerConfiguration(), getServiceContainer(),
getDeploymentExecutor(), resultHandler, plan.isGlobalRollback(), !plan.isShutdown());
DeploymentPlanImpl planImpl = (DeploymentPlanImpl) plan;
for (DeploymentActionImpl action : planImpl.getDeploymentActionImpls()) {
addServerGroupDeploymentUpdate(action, resultHandler, controller);
}
// Execute the plan asynchronously
Runnable r = new Runnable() {