package org.kisst.gft;
import org.apache.log4j.PropertyConfigurator;
import java.io.File;
public class BaseRunner {
public final File configfile;
private final Class<? extends Module> [] modules;
private boolean running=false;
public final String topname;
private GftWrapper gft;
public BaseRunner(String topname, File configfilename, Class<? extends Module> ... modules) {
this.modules=modules;
this.topname=topname;
this.configfile = configfilename;
PropertyConfigurator.configure(this.configfile.getParent()+"/"+topname+".log4j.properties");
}
public void start() {
if (gft!=null)
throw new RuntimeException("Gft already running");
running=true;
gft=new GftWrapper(topname, configfile, modules);
gft.start();
}
public void run() {
start();
while (running) {
gft.join();
}
gft=null;
}
public void shutdown() {
running=false;
if (gft==null)
return;
gft.stop();
}
public void restart() {
if (gft==null)
return;
gft.stop();
}
}