Services.chainStart(zkClientService, metricsCollectionService, resourceReporter));
LOG.info("Starting runnable: {}", name);
controller = injector.getInstance(getProgramClass()).run(program, programOpts);
final SettableFuture<ProgramController.State> state = SettableFuture.create();
controller.addListener(new AbstractListener() {
@Override
public void stopped() {
state.set(ProgramController.State.STOPPED);
}