}
ExecCourtesyMonitor exec = new ExecCourtesyMonitor(courtesyCommand, courtesyWorkingDirectory);
exec.startPolling(courtesyPollingInterval, TimeUnit.SECONDS);
courtesyMonitor = exec;
} else {
courtesyMonitor = new UnconditionalCourtesyMonitor();
}
ThreadFactory threadFactory = new BackgroundThreadFactory();
ProgressStateFactory monitorFactory = new ProgressStateFactory();
worker = new ThreadServiceWorker(serviceFactory, threadFactory, monitorFactory, courtesyMonitor);