package org.jfox.tomcat;
import org.huihoo.jfox.system.ServiceSupport;
import org.apache.tomcat.startup.EmbededTomcat;
public class IntegrateTomcat3 extends ServiceSupport {
private EmbededTomcat tcAp;
private String tomcatHome = null;
private String argsforTomcat[] = null;
public void doInit() throws Exception {
tomcatHome = System.getProperties().getProperty("tomcat.home");
if ((tomcatHome == null) || (tomcatHome.equalsIgnoreCase(""))) {
logger.error("The tomcat.home isn't set during launching");
throw new Exception("tomcat.home property is not set");
}
tcAp = new EmbeddedTomcat3();
ClassLoader cl = Thread.currentThread().getContextClassLoader();
tcAp.setCommonClassLoader(cl);
tcAp.setContainerClassLoader(cl);
tcAp.setAppsClassLoader(cl);
}
public void run() {
try {
tcAp.setArgs(argsforTomcat);
tcAp.execute();
}
catch (Exception e) {
logger.error(e);
}
}
public void doStop() throws Exception {
tcAp.stop();
}
protected void doStart() throws Exception {
ClassLoader cl = Thread.currentThread().getContextClassLoader();
run();
Thread.currentThread().setContextClassLoader(cl);
}
protected void doDestroy() throws Exception {
}
class EmbeddedTomcat3 extends EmbededTomcat {
public void debug(String s) {
logger.info("EmbeddedTomcat: " + s);
}
public void debug(String s, Throwable t) {
logger.info("EmbeddedTomcat: " + s, t);
}
}
}