package embedded.example;
import javax.inject.Singleton;
import javax.servlet.ServletContextEvent;
import org.ebaysf.web.cors.CORSFilter;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.servlet.GuiceServletContextListener;
import com.sun.jersey.guice.JerseyServletModule;
public class ContextListener extends GuiceServletContextListener {
static String username;
static String password;
static String serverAddress;
@Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
super.contextInitialized(servletContextEvent);
username = servletContextEvent.getServletContext().getInitParameter("username") != null
? servletContextEvent.getServletContext().getInitParameter("username")
: null;
password = servletContextEvent.getServletContext().getInitParameter("password") != null
? servletContextEvent.getServletContext().getInitParameter("password")
: null;
serverAddress = servletContextEvent.getServletContext().getInitParameter("serverAddress") != null
? servletContextEvent.getServletContext().getInitParameter("serverAddress")
: null;
}
@Override
protected Injector getInjector() {
return Guice.createInjector(new JerseyServletModule() {
@Override
protected void configureServlets() {
AnnotationConfigWebApplicationContext webApp = new AnnotationConfigWebApplicationContext();
webApp.setConfigLocation(FhirTesterConfig.class.getName());
serve("/*").with(new DispatcherServlet(webApp));
bind(CORSFilter.class).in(Singleton.class);
filter("/*").through(CORSFilter.class);
}
});
}
}