List of usage examples for org.apache.commons.exec PumpStreamHandler PumpStreamHandler
public PumpStreamHandler(final OutputStream outAndErr)
PumpStreamHandler
. From source file:com.boulmier.machinelearning.jobexecutor.job.Job.java
public void start() throws IOException { final ByteArrayOutputStream out = new ByteArrayOutputStream(); final DefaultExecutor exec = new DefaultExecutor(); final ExecuteWatchdog wd = new ExecuteWatchdog(ExecuteWatchdog.INFINITE_TIMEOUT); final PumpStreamHandler output = new PumpStreamHandler(out); final DefaultExecuteResultHandler handler = new DefaultExecuteResultHandler(); exec.setWatchdog(wd);/*from ww w . j a v a 2 s . c o m*/ exec.setStreamHandler(output); exec.execute(cl, handler); JobExecutor.logger.info("Running job " + jobid); new Thread(new Runnable() { @Override public void run() { try { handler.waitFor(); Computer.ComputeProperties properties = Computer.ComputeProperties.buildFromRequest(req); new SenderComputer(new StorageComputer(out.toString(), properties)).compute(); JobExecutor.logger.info("Job complete " + jobid); } catch (InterruptedException ex) { exec.getWatchdog().destroyProcess(); JobExecutor.logger.error( "Job (" + jobid + ") has been destroyed due to internal error " + ex.getMessage()); } } }).start(); }
From source file:com.technofovea.packbsp.packaging.ExternalController.java
protected int exec(CommandLine cl, OutputStream out) throws ExecuteException { PumpStreamHandler handler = new PumpStreamHandler(out); // Auto started/stopped executor.setStreamHandler(handler);/*from ww w. j a v a 2 s .c o m*/ try { logger.debug("Executing: " + cl.toString()); int exitval = executor.execute(cl, environment); logger.debug("Exit val: " + exitval); return exitval; } catch (IOException ex) { throw new ExecuteException("IO error with output", -1, ex); } }
From source file:it.unisi.bdm.crawler.PhantomjsBrowser.java
@Override /**// w w w .j a va 2 s . c om * Invokes PhantomJS in order to download the page associated to `url`. * Please note that since the browser sometimes hangs, it's execution is * monitored by a wathdog that kills it after this.timeout ms. * * @param url * @return Page * @throws BrowserTimeoutException If PhantomJS hangs. */ public Page getPage(String url) throws BrowserTimeoutException { ByteArrayOutputStream stdout = new ByteArrayOutputStream(); PumpStreamHandler psh = new PumpStreamHandler(stdout); String line = "library/phantomjs library/crawler.js " + url; CommandLine cmdLine = CommandLine.parse(line); DefaultExecutor executor = new DefaultExecutor(); ExecuteWatchdog watchdog = new ExecuteWatchdog(this.timeout); executor.setWatchdog(watchdog); executor.setStreamHandler(psh); try { executor.execute(cmdLine); } catch (Exception e) { throw new BrowserTimeoutException(); } String json = stdout.toString(); return new Gson().fromJson(json, Page.class); }
From source file:com.blackducksoftware.tools.scmconnector.core.CommandLineExecutor.java
@Override public int executeCommand(Logger log, CommandLine command, File targetDir, String promptResponse) throws Exception { DefaultExecutor executor = new DefaultExecutor(); executor.setExitValue(0);/* w ww.j a v a 2s . c o m*/ PumpStreamHandler psh = new PumpStreamHandler(new ExecLogHangler(log, Level.INFO)); executor.setStreamHandler(psh); providePromptResponse(psh, promptResponse); executor.setWorkingDirectory(targetDir); // This log msg would reveal password // log.info("Command: " + command.toString() + " executed in: " // + targetDir.toString()); int exitStatus = 1; try { exitStatus = executor.execute(command, EnvironmentUtils.getProcEnvironment()); } catch (Exception e) { log.error("Failure executing Command: " + e.getMessage()); } return exitStatus; }
From source file:com.mobilecashout.osprey.deployer.actions.LocalShellAction.java
@Override public void execute(DeploymentContext context) throws DeploymentActionError { executor.setWorkingDirectory(context.buildDirectory()); executor.setStreamHandler(new PumpStreamHandler(logOutputStream)); try {//ww w. j a v a2 s . co m logOutputStream.write(String.format("Local shell invoked: %s\n", commandLine.toString()).getBytes()); executor.execute(commandLine); } catch (IOException e) { throw new DeploymentActionError(e); } }
From source file:com.creactiviti.piper.plugin.ffmpeg.Mediainfo.java
@Override public Map<String, Object> handle(Task aTask) throws Exception { CommandLine cmd = new CommandLine("mediainfo"); cmd.addArgument(aTask.getRequiredString("input")); log.debug("{}", cmd); DefaultExecutor exec = new DefaultExecutor(); File tempFile = File.createTempFile("log", null); try (PrintStream stream = new PrintStream(tempFile);) { exec.setStreamHandler(new PumpStreamHandler(stream)); exec.execute(cmd);/*from w w w. j ava 2 s. c o m*/ return parse(FileUtils.readFileToString(tempFile)); } catch (ExecuteException e) { throw new ExecuteException(e.getMessage(), e.getExitValue(), new RuntimeException(FileUtils.readFileToString(tempFile))); } finally { FileUtils.deleteQuietly(tempFile); } }
From source file:io.selendroid.io.ShellCommand.java
public static void execAsync(String display, CommandLine commandline) throws ShellCommandException { log.info("executing async command: " + commandline); DefaultExecutor exec = new DefaultExecutor(); ExecuteResultHandler handler = new DefaultExecuteResultHandler(); PumpStreamHandler streamHandler = new PumpStreamHandler(new PritingLogOutputStream()); exec.setStreamHandler(streamHandler); try {/* w w w. ja v a2 s . c om*/ if (display == null || display.isEmpty()) { exec.execute(commandline, handler); } else { Map env = EnvironmentUtils.getProcEnvironment(); EnvironmentUtils.addVariableToEnvironment(env, "DISPLAY=:" + display); exec.execute(commandline, env, handler); } } catch (Exception e) { throw new ShellCommandException("An error occured while executing shell command: " + commandline, e); } }
From source file:eu.creatingfuture.propeller.blocklyprop.propellent.Propellent.java
public List<String> getPorts() { List<String> ports = new ArrayList<>(); try {/*from ww w . j a v a 2 s. c o m*/ CommandLine cmdLine = new CommandLine("propellent/Propellent.exe"); cmdLine.addArgument("/id"); cmdLine.addArgument("/gui").addArgument("OFF"); DefaultExecutor executor = new DefaultExecutor(); executor.setExitValues(new int[] { 451, 301 }); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); PumpStreamHandler streamHandler = new PumpStreamHandler(outputStream); executor.setStreamHandler(streamHandler); try { exitValue = executor.execute(cmdLine); } catch (ExecuteException ee) { // exitValue = ee.getExitValue(); logger.log(Level.SEVERE, "Unexpected exit value: {0}", exitValue); return ports; } output = outputStream.toString(); // 301 = None found // 451 = Chip found if (exitValue == 301) { return ports; } // System.out.println("output: " + output); Scanner scanner = new Scanner(output); Pattern chipFoundPattern = Pattern.compile(".*?(EVT:505).*?"); Pattern pattern = Pattern.compile(".*?found on (?<comport>[a-zA-Z0-9]*).$"); while (scanner.hasNextLine()) { String portLine = scanner.nextLine(); if (chipFoundPattern.matcher(portLine).matches()) { Matcher portMatch = pattern.matcher(portLine); if (portMatch.find()) { String port = portMatch.group("comport"); ports.add(port); } } } // System.out.println("output: " + output); // System.out.println("exitValue: " + exitValue); return ports; } catch (IOException ioe) { logger.log(Level.SEVERE, null, ioe); return null; } }
From source file:eu.creatingfuture.propeller.webLoader.propellent.Propellent.java
public List<String> getPorts() { List<String> ports = new ArrayList<String>(); try {/*from w ww.ja v a 2 s . co m*/ CommandLine cmdLine = new CommandLine("propellent/Propellent.exe"); cmdLine.addArgument("/id"); cmdLine.addArgument("/gui").addArgument("OFF"); DefaultExecutor executor = new DefaultExecutor(); executor.setExitValues(new int[] { 451, 301 }); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); PumpStreamHandler streamHandler = new PumpStreamHandler(outputStream); executor.setStreamHandler(streamHandler); try { exitValue = executor.execute(cmdLine); } catch (ExecuteException ee) { // exitValue = ee.getExitValue(); logger.log(Level.SEVERE, "Unexpected exit value: {0}", exitValue); return ports; } output = outputStream.toString(); // 301 = None found // 451 = Chip found if (exitValue == 301) { return ports; } // System.out.println("output: " + output); Scanner scanner = new Scanner(output); Pattern chipFoundPattern = Pattern.compile(".*?(EVT:505).*?"); Pattern pattern = Pattern.compile(".*?found on (?<comport>[a-zA-Z0-9]*).$"); while (scanner.hasNextLine()) { String portLine = scanner.nextLine(); if (chipFoundPattern.matcher(portLine).matches()) { Matcher portMatch = pattern.matcher(portLine); if (portMatch.find()) { String port = portMatch.group("comport"); ports.add(port); } } } // System.out.println("output: " + output); // System.out.println("exitValue: " + exitValue); return ports; } catch (IOException ioe) { logger.log(Level.SEVERE, null, ioe); return null; } }
From source file:com.creactiviti.piper.plugin.ffmpeg.Ffmpeg.java
@Override public Object handle(Task aTask) throws Exception { List<String> options = aTask.getList("options", String.class); CommandLine cmd = new CommandLine("ffmpeg"); options.forEach(o -> cmd.addArgument(o)); log.debug("{}", cmd); DefaultExecutor exec = new DefaultExecutor(); File tempFile = File.createTempFile("log", null); try (PrintStream stream = new PrintStream(tempFile);) { exec.setStreamHandler(new PumpStreamHandler(stream)); int exitValue = exec.execute(cmd); return exitValue != 0 ? FileUtils.readFileToString(tempFile) : cmd.toString(); } catch (ExecuteException e) { throw new ExecuteException(e.getMessage(), e.getExitValue(), new RuntimeException(FileUtils.readFileToString(tempFile))); } finally {//w w w . j a va 2 s . com FileUtils.deleteQuietly(tempFile); } }