package net.bunselmeyer.play.guice;
import com.google.inject.AbstractModule;
import com.google.inject.Provider;
import com.google.inject.servlet.RequestScoped;
import play.mvc.Http;
import static com.google.inject.servlet.ServletScopes.REQUEST;
public class PlayModule extends AbstractModule {
@Override
protected final void configure() {
bindScope(RequestScoped.class, REQUEST);
// Bind Play request
bind(Http.Request.class).toProvider(new Provider<Http.Request>() {
@Override
public Http.Request get() {
return Http.Context.current().request();
}
});
// Bind Play response
bind(Http.Response.class).toProvider(new Provider<Http.Response>() {
@Override
public Http.Response get() {
return Http.Context.current().response();
}
});
// Bind Play Http.Context
bind(Http.Context.class).toProvider(new Provider<Http.Context>() {
@Override
public Http.Context get() {
return Http.Context.current();
}
});
configurePlay();
}
// Override me
protected void configurePlay() {
}
}