package com.thoughtworks.webanalyticsautomation.runUtils;
import org.apache.log4j.Logger;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
/**
* Created by: Anand Bagmar
* Email: abagmar@gmail.com
* Date: Dec 29, 2010
* Time: 1:07:03 PM
*
* Copyright 2010 Anand Bagmar (abagmar@gmail.com). Distributed under the Apache 2.0 License
*/
public class UIDriverThreadRunner implements Runnable {
private String command = null;
private Logger logger = null;
private Process process;
public UIDriverThreadRunner(Logger logger) {
this.logger = logger;
}
public void runInThread (String command) {
this.command = command;
Thread myThread = new Thread(this);
myThread.start();
}
public void run() {
logger.info("Running command in a new thread: " + command);
try {
logger.debug("*** Current dir: " + System.getProperty("user.dir"));
process = Runtime.getRuntime().exec(command);
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {
logger.debug(line);
}
}
catch (IOException e) {
e.printStackTrace();
}
}
public void stop() {
logger.info ("Calling stop in the thread");
process.destroy();
}
}