package de.dhbw.humbuch.guice;
import javax.servlet.Filter;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.servlet.GuiceFilter;
import de.davherrmann.guice.vaadin.UIScopeModule;
/**
* {@link Filter} for creating a Guice {@link Injector}
*
* @author davherrmann
*/
public class BasicFilter extends GuiceFilter {
private static Injector INJECTOR;
public static Injector getInjector() {
return INJECTOR;
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
if (INJECTOR != null) {
throw new ServletException("Injector already created?!");
}
INJECTOR = Guice.createInjector(new BasicModule(), new UIScopeModule());
filterConfig.getServletContext().log(
"Created injector with " + INJECTOR.getAllBindings().size()
+ " bindings.");
super.init(filterConfig);
}
}