package lucee.loader.servlet;
import java.util.Enumeration;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebListener;
import lucee.loader.engine.CFMLEngine;
import lucee.loader.engine.CFMLEngineFactory;
@WebListener
public class LuceeServletContextListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
try {
CFMLEngine engine = CFMLEngineFactory.getInstance();
// FUTURE add addServletContextEvent
engine.addServletConfig(new LuceeServletContextListenerImpl(sce,"init"));
}
catch (Exception se) {
se.printStackTrace();
}
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
try {
CFMLEngine engine = CFMLEngineFactory.getInstance();
// FUTURE add addServletContextEvent
engine.addServletConfig(new LuceeServletContextListenerImpl(sce,"release"));
}
catch (Exception se) {
se.printStackTrace();
}
}
public static class LuceeServletContextListenerImpl implements ServletConfig {
private ServletContextEvent sce;
private String status;
public LuceeServletContextListenerImpl(ServletContextEvent sce,String status) {
this.sce=sce;
this.status=status;
}
@Override
public String getServletName() {
return "LuceeServletContextListener";
}
@Override
public ServletContext getServletContext() {
return null;
}
public ServletContextEvent getServletContextEvent() {
return sce;
}
@Override
public String getInitParameter(String name) {
if("status".equalsIgnoreCase(name)) return status;
return null;
}
@Override
public Enumeration<String> getInitParameterNames() {
return null;
}
}
}