package net.sourceforge.cruisecontrol.servlet;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
public class MainLoopLauncher extends HttpServlet {
private static final long serialVersionUID = 1L;
private Thread thread;
private MainLoopRunner runner;
public void destroy() {
super.destroy();
if (runner != null) {
runner.stop();
runner = null;
}
if (thread != null) {
thread.interrupt();
thread = null;
}
}
public void init() throws ServletException {
super.init();
Integer jmxport;
Integer rmiport;
Boolean start;
try {
InitialContext ic = new InitialContext();
Context context = (Context) ic.lookup("java:comp/env");
jmxport = (Integer) context.lookup("cruisecontrol.jmxport");
rmiport = (Integer) context.lookup("cruisecontrol.rmiport");
start = (Boolean) context.lookup("cruisecontrol.run.on.start");
} catch (NamingException e) {
throw new ServletException(e);
}
if (start.booleanValue()) {
runner = new MainLoopRunner(jmxport, rmiport);
thread = new Thread(runner);
thread.setDaemon(true);
thread.start();
}
}
}