public InstanceProcess exec(String workspaceId,String machineId,Command command,@Nullable String outputChannel) throws NotFoundException, MachineException, BadRequestException {
  requiredNotNull(machineId,"Machine ID is required");
  requiredNotNull(command,"Command is required");
  requiredNotNull(command.getCommandLine(),"Command line is required");
  requiredNotNull(command.getName(),"Command name is required");
  requiredNotNull(command.getType(),"Command type is required");
  final Instance machine=environmentEngine.getMachine(workspaceId,machineId);
  final InstanceProcess instanceProcess=machine.createProcess(command,outputChannel);
  final int pid=instanceProcess.getPid();
  final LineConsumer processLogger=getProcessLogger(machineId,pid,outputChannel);
  executor.execute(ThreadLocalPropagateContext.wrap(null));
  return instanceProcess;
}

public InstanceProcess exec ( String workspaceId , String machineId , Command command , @ Nullable String outputChannel ) throws NotFoundException , MachineException , BadRequestException { requiredNotNull ( machineId , "Machine ID is required" ) ; requiredNotNull ( command , "Command is required" ) ; requiredNotNull ( command . getCommandLine ( ) , "Command line is required" ) ; requiredNotNull ( command . getName ( ) , "Command name is required" ) ; requiredNotNull ( command . getType ( ) , "Command type is required" ) ; final Instance machine = environmentEngine . getMachine ( workspaceId , machineId ) ; final InstanceProcess instanceProcess = machine . createProcess ( command , outputChannel ) ; final int pid = instanceProcess . getPid ( ) ; final LineConsumer processLogger = getProcessLogger ( machineId , pid , outputChannel ) ; executor . execute ( ThreadLocalPropagateContext . wrap ( null ) ) ; return instanceProcess ; }
execute a command in machine
