package de.saumya.mojo.proxy;
import java.io.File;
import java.io.IOException;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class GemProxyServletContextListener implements ServletContextListener {
public void contextDestroyed(final ServletContextEvent sce) {
}
public void contextInitialized(final ServletContextEvent sce) {
try {
sce.getServletContext().setAttribute(Controller.class.getName(),
new Controller(new File(getStorage(sce))));
sce.getServletContext().log("registered "
+ Controller.class.getName());
}
catch (final IOException e) {
throw new RuntimeException("error initializing controller", e);
}
}
private String getStorage(final ServletContextEvent sce) {
String value = System.getenv("GEM_PROXY_STORAGE");
if(value == null){
value = System.getProperty("gem.proxy.storage");
if(value == null){
value = sce.getServletContext().getInitParameter("gem-proxy-storage");
if (value == null){
throw new RuntimeException("could not find directory location for storage:\n" +
"\tsystem property : gem.proxy.storage\n" +
"\tenvironment variable : GEM_PROXY_STORAGE\n" +
"\tcontext init parameter: gem-proxy-storage\n");
}
}
}
return value;
}
}