public int run(List<String> command, List<String> output) { int retCode = 1; ProcessBuilder pb = new ProcessBuilder(command); try { Process p = pb.start(); OutputBufferThread stdOut = new OutputBufferThread(p.getInputStream()); OutputBufferThread stdErr = new OutputBufferThread(p.getErrorStream()); stdOut.start(); stdErr.start(); retCode = p.waitFor(); if (retCode != 0) { mojo.getLog().warn(command + " failed with error code " + retCode); for (String s : stdErr.getOutput()) { mojo.getLog().debug(s); } } stdOut.join(); stdErr.join(); output.addAll(stdOut.getOutput()); } catch (Exception ex) { mojo.getLog().warn(command + " failed: " + ex.toString()); } return retCode; }
@Override public void debug(String msg) { if (verbose) { mojo.getLog().debug(msg); } }
@Override public void debug(String msg, Throwable t) { if (verbose) { mojo.getLog().debug(msg, t); } }
@Override public void error(String msg) { if (verbose) { mojo.getLog().error(msg); } }
@Override public void error(String msg, Throwable t) { if (verbose) { mojo.getLog().error(msg, t); } }
@Override public void info(String msg) { if (verbose) { mojo.getLog().info(msg); } }
@Override public void warn(String msg, Throwable t) { if (verbose) { mojo.getLog().warn(msg, t); } }
@Override public void info(String msg, Throwable t) { if (verbose) { mojo.getLog().info(msg, t); } }
@Override public void warn(String msg) { if (verbose) { mojo.getLog().warn(msg); } }
@Override public boolean isInfoEnabled() { return mojo.getLog().isInfoEnabled(); }
@Override public boolean isDebugEnabled() { return mojo.getLog().isDebugEnabled(); }
@Override public boolean isWarnEnabled() { return mojo.getLog().isWarnEnabled(); }
@Override public boolean isErrorEnabled() { return mojo.getLog().isErrorEnabled(); }
@Override public void info(String msg) { if (verbose) { mojo.getLog().info(msg); } }
private org.apache.maven.plugin.logging.Log getLog() { if (mojo == null) { throw new RuntimeException("Mojo not set; can not delegate logging"); } return mojo.getLog(); }