final EOFAwareInputStream processOutputStream = eofAwareInputStreamFactory.create(process.getInputStream());
final EOFAwareInputStream processErrorStream = eofAwareInputStreamFactory.create(process.getErrorStream());
final Collection<EOFAwareInputStream> processStreams = asList(processOutputStream, processErrorStream);
final ExecuteStreamHandler streamHandler = executeStreamHandlerFactory.create(processOutputStream, processErrorStream, process.getOutputStream());
final ExecuteWatchdog watchdog = watchdogFactory.create(config);
watchdog.start(process);
return new ManagedProcess(process, destroyer, streamHandler, watchdog, processStreams, executorService);