/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.sun.jersey.guice;
import com.google.inject.servlet.ServletModule;
import com.sun.jersey.guice.spi.container.servlet.GuiceContainer;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
/**
*
* @author paulsandoz
*/
public class JerseyTestServletModule extends ServletModule {
private Set<Class<?>> clazzes = new HashSet<Class<?>>();
private String path = "/*";
private Map<String, String> initParams = new HashMap<String, String>();
private Class<? extends GuiceContainer> servletClass = GuiceContainer.class;
public JerseyTestServletModule servlet(Class<? extends GuiceContainer> servletClass) {
this.servletClass = servletClass;
return this;
}
public JerseyTestServletModule path(String path) {
this.path = path;
return this;
}
public JerseyTestServletModule bindClass(Class<?> clazz) {
clazzes.add(clazz);
return this;
}
public JerseyTestServletModule initParam(String name, String value) {
initParams.put(name, value);
return this;
}
@Override
protected void configureServlets() {
configureBind();
configureServe();
}
protected void configureBind() {
for (Class<?> clazz : clazzes) {
bind(clazz);
}
}
protected void configureServe() {
serve(path).with(servletClass, initParams);
}
}